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

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

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

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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


Объект.СуммаДокумента = лТЧПриемник.Итог("Сумма");

Параметры.Контрагент = Объект.Контрагент;
Параметры.НаименованиеДоговора="Договор с покупателем Автосалон";
Параметры.Объект = Объект;

Выполнить(Алгоритмы.СоздатьДоговор);
Выполнить(Алгоритмы.СчетаУчета);

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

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

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

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