Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

КД справочники. указать своего родителя. самого верхнего уровня

КД справочники. указать своего родителя. самого верхнего уровня
Я
   zladenuw
 
02.01.13 - 14:58
Как указать самого верхнего уровня родителя своего.
Типа Источник1, а дальше вся иерархия как в источнике.
 
 
   fisher
 
1 - 02.01.13 - 15:03
Этот родитель в источнике есть? Или только в приемнике?
   zladenuw
 
2 - 02.01.13 - 15:12
(1) в приемники есть
   fisher
 
3 - 02.01.13 - 15:17
1) создаешь ПКО для поиска элемента справочника по коду (в ПКС только "Код", поиск по нему, в свойствах ПКО галки расставляешь, что мол только находить надо)
2) В ПКО своего справочника в ПКС "Родитель" в "Перед выгрузкой" ежели корневой элемент, то переназначаешь ПКО на 1) (свойство, кажись, "ИмяПКО" называется - глянь справку по обработчикам), и Значение = <КодРодителяВПриемнике>
   zladenuw
 
4 - 02.01.13 - 15:18
(3) да я чуток по другому сделал. в ПКО после загрузки

Если Объект.ЭтоГруппа и НЕ ЗначениеЗаполнено(Объект.Родитель) Тогда
    Объект.Родитель = Справочники.Номенклатура.НайтиПонаименованию("Упр8");
КонецЕсли;
   zladenuw
 
5 - 02.01.13 - 15:20
(3) да мне нужно сохранить всю иерархию. а ее вложить в свою группу.

И вопрос такой.

А как сразу создать Приходный кассовый на основание Реализации ?
   zladenuw
 
6 - 02.01.13 - 15:22
(5) пока вариант 1. в ПКО после загрузки создать документ и заполнить его реализацией. а можно как то еще или нет ?
   fisher
 
7 - 02.01.13 - 15:25
(3) + В правиле 1) в ПКС "Код" в "Перед загрузкой" "Значение = Источник"
(4) Можно. Но хуже. Обработчики на стороне приемника, особенно с операциями в базе, заметно влияют на производительность. Да и с точки зрения идеологии КД - это костыль.
(5) Иерархия сохранится.
(6) Если ссылка на основание есть, то основание загрузится по ссылке.
   zladenuw
 
8 - 02.01.13 - 15:27
(7) основание нет.
(4) оставлю себе на заметку. пока надо сделать что бы все работало. а там уже оптимизирую.
пока не понял как нужно сделать.
   zladenuw
 
9 - 02.01.13 - 15:28
(7) тогда получается нужно вот это все так же исправить?
Это в ПКО после загрузки.
Объект.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Объект.Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");
Объект.ТипЦен = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойТипЦенПродажи");
Объект.ВалютаДокумента = Константы.ВалютаУправленческогоУчета.Получить();
Объект.УчитыватьНДС = Истина;
Объект.СуммаВключаетНДС = Истина;
Объект.ОтражатьВУправленческомУчете = Истина;
Объект.ОтражатьВБухгалтерскомУчете = Истина;
Объект.КурсВзаиморасчетов = 1;
Объект.КратностьВзаиморасчетов = 1;
Объект.ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада;


лТЧПриемник = Объект.Товары;
СхемыРеализацииТовары = Справочники.СхемыРеализации.Товары;
Для каждого СтрокаТовары из лТЧПриемник цикл
     СтрокаТовары.ЕдиницаИзмерения = СтрокаТовары.Номенклатура.ЕдиницаХраненияОстатков;
     СтрокаТовары.Сумма = СтрокаТовары.Цена*СтрокаТовары.Количество;
     СтрокаТовары.СтавкаНДС = СтрокаТовары.Номенклатура.СтавкаНДС;
     СтрокаТовары.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаТовары.Сумма,
                                                           Объект.УчитыватьНДС, Объект.СуммаВключаетНДС,
                                                           УчетНДС.ПолучитьСтавкуНДС(СтрокаТовары.СтавкаНДС));
     СтрокаТовары.Качество = Справочники.Качество.новый;
     СтрокаТовары.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;


     СтрокаТовары.СхемаРеализации = СхемыРеализацииТовары;
     СтрокаТовары.НалоговоеНазначение = Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_Облагаемая;
     СтрокаТовары.НалоговоеНазначениеДоходовИЗатрат = Справочники.НалоговыеНазначенияАктивовИЗатрат.ХозДеятельность;
КонецЦикла;    
  Объект.СуммаДокумента = лТЧПриемник.Итог("Сумма");
лТЧПриемникУслуги = Объект.Услуги;
СхемыРеализацииУслуги = Справочники.СхемыРеализации.Услуги;
Для каждого СтрокаУслуги из лТЧПриемникУслуги цикл
    //СтрокаУслуги.ЕдиницаИзмерения = СтрокаУслуги.Номенклатура.ЕдиницаХраненияОстатков;
 
     СтрокаУслуги.Сумма = СтрокаУслуги.Цена*СтрокаУслуги.Количество;
     СтрокаУслуги.СтавкаНДС = СтрокаУслуги.Номенклатура.СтавкаНДС;
     СтрокаУслуги.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаУслуги.Сумма,
                                                           Объект.УчитыватьНДС, Объект.СуммаВключаетНДС,
                                                           УчетНДС.ПолучитьСтавкуНДС(СтрокаУслуги.СтавкаНДС));
   // СтрокаТовары.Качество = Справочники.Качество.новый;
 
   // СтрокаТовары.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;
 


     СтрокаУслуги.СхемаРеализации = СхемыРеализацииУслуги;
    //СтрокаТовары.НалоговоеНазначение = Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_Облагаемая;
 
     СтрокаУслуги.НалоговоеНазначениеДоходовИЗатрат = Справочники.НалоговыеНазначенияАктивовИЗатрат.ХозДеятельность;
КонецЦикла;
 Объект.СуммаДокумента =  Объект.СуммаДокумента+лТЧПриемник.Итог("Сумма");
//Параметры.Установить("Контрагент",Объект.Контрагент);
 
// Параметры.Установить("НаименованиеДоговора","Автосалон");
////Параметры.Установить("Документ",Объект);
 
//Выполнить("Алгоритмы.СоздатьДоговор()"); 
 

 // СоздатьДоговор();
 

СпрДоговора = Справочники.ДоговорыКонтрагентов;
Контрагент = Объект.Контрагент;

НайденДоговор = СпрДоговора.НайтиПоНаименованию("Договор с покупателем СТО",,,Контрагент.Ссылка);
Если СпрДоговора.ПустаяССылка() = НайденДоговор Тогда
    НовыйДоговор = СпрДоговора.СоздатьЭлемент();
    НовыйДоговор.Наименование = "Договор с покупателем СТО";
    НовыйДоговор.Владелец =  Контрагент.Ссылка;
    НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаУправленческогоУчета.Получить();
    НовыйДоговор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
    НовыйДоговор.Организация = Объект.Организация;    
    НовыйДоговор.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.БезДополнительныхУсловий;
    НовыйДоговор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
    НовыйДоговор.СхемаНалоговогоУчета  = Справочники.СхемыНалоговогоУчетаПоДоговорамКонтрагентов.ПоПервомуСобытию;

    Попытка
        НовыйДоговор.Записать();

    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;    
        Договор = НовыйДоговор.Ссылка;    
Иначе
    Договор = НайденДоговор.Ссылка;
КонецЕсли;
  Объект.ДоговорКонтрагента = Договор;

  СчетаУчета = УправлениеВзаиморасчетами.ПолучитьСчетаРасчетовСКонтрагентом( Объект.Организация,  Объект.Контрагент,  Объект.ДоговорКонтрагента);
            
            Если  Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
                 Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
                 Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
            ИначеЕсли Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.Бартерный Тогда
                 Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателяПриБартере;
                 Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателяПриБартере;
            Иначе
                 Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
                 Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
            КонецЕсли;
            
             Объект.СчетУчетаРасчетовПоТаре          = СчетаУчета.СчетУчетаТарыПокупателя;
             Объект.СчетУчетаРасчетовПоТареПоАвансам = СчетаУчета.СчетАвансовПоТареПокупателя;
             Объект.СчетУчетаНДС                      = СчетаУчета.СчетУчетаНДСПродаж;
             Объект.СчетУчетаНДСПодтвержденный       = СчетаУчета.СчетУчетаНДСПродажПодтвержденный;
             

  
  Попытка
           Объект.Записать(РежимЗаписиДокумента.Проведение)
       Исключение
           Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);        
       КонецПопытки;
   zladenuw
 
10 - 02.01.13 - 15:44
в источнике есть реквизит булевый физлицо. как при загрузке указать что бы заполнялся ЮрФизЛицо ?
пробовал в пкс Значение = ?(Источник.ЭтоФизЛицо,"ФизЛицо","ЮрЛицо");

НО не хочет. как правильно ?
 
 Рекламное место пустует
   fisher
 
11 - 02.01.13 - 16:00
(8) Т.е. этих ордеров в источнике нет, что ли? Зачем их в процессе импорта создавать?
Но ежели таки надо, то рисуется ПКО для ордера, где источником - реализация. Если хочешь, чтобы ордера выгружались всегда вместе с реализациями автоматом, то в ПКО реализаций прописываешь и выгрузку ордеров через "ВыгрузитьПоПравилу". В каком событии - не помню. В "После выгрузки", что ли...
(9) Это забивание гвоздей рукояткой пневмо-пистолета.
(10) Код похож на правильный. Где косяк - отсюда не видно. ПКО перечисления назначено? Это код из "Перед выгрузкой" ПКС "ЮрФизЛицо"?
   zladenuw
 
12 - 02.01.13 - 16:10
(11) с (10) затупил сам. все ок. после загрузки условие ставил.

(9) а как тогда надо ? пока нужного достиг так.

(8) сейчас люди закрывают наряд-заказ в 8. потом руцями набивают документ расход и на основание его делают пко в 1с7.
хочу что бы при нажатие кнопки создать в 8. все создалось :).
хотелку почти сделал. кроме пко
   zladenuw
 
13 - 02.01.13 - 16:13
(11) перенес в алгоритмы создание договора и счета учета. или это не вариант ?
   fisher
 
14 - 02.01.13 - 16:14
(13) Через ПКО это всё делается.
   zladenuw
 
15 - 02.01.13 - 16:18
(3,7) разобрался с родителем. спасибо. все как обычно просто.
   zladenuw
 
16 - 02.01.13 - 16:19
(15) так ведь правильно ?
Если Источник.Уровень()=0 Тогда
    Значение = "ГР0000254";
КонецЕсли;
   zladenuw
 
17 - 02.01.13 - 16:56
вот что осталось после загрузки.
как и это можно переместить в ПКС ?

Объект.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Объект.Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");
Объект.ТипЦен = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойТипЦенПродажи");

лТЧПриемник = Объект.Товары;
Для каждого СтрокаТовары из лТЧПриемник цикл
     СтрокаТовары.ЕдиницаИзмерения = СтрокаТовары.Номенклатура.ЕдиницаХраненияОстатков;
     СтрокаТовары.Сумма = СтрокаТовары.Цена*СтрокаТовары.Количество;
     СтрокаТовары.СтавкаНДС = СтрокаТовары.Номенклатура.СтавкаНДС;
     СтрокаТовары.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаТовары.Сумма,
                                                           Объект.УчитыватьНДС, Объект.СуммаВключаетНДС,
                                                           УчетНДС.ПолучитьСтавкуНДС(СтрокаТовары.СтавкаНДС));
 КонецЦикла;    
 

 Объект.СуммаДокумента = лТЧПриемник.Итог("Сумма");
 
 Параметры.Контрагент = Объект.Контрагент;
 Параметры.НаименованиеДоговора="Договор с покупателем Автосалон";
 Параметры.Объект = Объект;
 
 Выполнить(Алгоритмы.СоздатьДоговор); 
 Выполнить(Алгоритмы.СчетаУчета);
 
             
Попытка
   Объект.Записать(РежимЗаписиДокумента.Проведение)
Исключение
   Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);        
КонецПопытки;
   PiotrLoginov
 
18 - 02.01.13 - 17:22
Насчет реквизитов шапки не скажу, но табличную часть(ЕдиницаИзмерения и протчее) однозначно можно заполнить создав соответствующие ПКС. И я бы не стал рассчитывать НДС функцией приемника.
   zladenuw
 
19 - 02.01.13 - 17:27
(18) спасибо
   Pasha
 
20 - 02.01.13 - 17:52
(0) Выгрузку остатков из Бух 7.7 в БП 2.0 посмотри... там есть как раз материалы и товары грузятся в справочник номенклатура в свои папки
   zladenuw
 
21 - 02.01.13 - 17:57
да уже разобрался. думаю 2-3 дня и приведу все в порядок.
Вопрос в другом. передавать через файл или по СОМ.
   PiotrLoginov
 
22 - 02.01.13 - 18:02
Через COM еще какое-то время будешь возиться с настройкой. Имхо, проще подождать пока файл сформируется.

Сам этой темой заморочен. Насчет (20) : где можно достать выгрузку остатков из типовой Бух 7.7 в типовую БП 2.0 ? Заранее премного благодарен за подсказку. К ИТС доступа не имею.
   zladenuw
 
23 - 02.01.13 - 18:05
(22) так руцями по кому бегают. кумарит что каждый раз подключение.
но решил проблему через 
    ТекCOMОбъект = ПолучитьИзВременногоХранилища(ПараметрыСеанса.АдресCOMОбъекта);
       //ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения);
 

Убивает то что документ передается за 1 секундку. а подключение идет до 10

Но. Нужно заполнить отборы. пока смотрю.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует