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

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

Создание ПКО

Создание ПКО
Я
   Alex1979rak
 
26.12.12 - 11:28
Добрый день, уважаемые коллеги.
Ситуация.
Есть конфа-источник: бухия УСНО (7.70.190). В ней есть документ "ПриказОПриемеНаРаботу".
Есть также конфа-приемник: ЗУП 8 (2.5.59.2). В ней есть документ "ПриемНаРаботуВОрганизацию"
Задача. По максимуму перенести указанные документы из 7-ки в 8-ку.
Делаю ПКО "ПриемНаРаботу" в КД 2. Реквизиты шапки переносятся нормально. А вот табличную часть "РаботникиОрганизации" дока в ЗУПе не знаю как правильно заполнять. Ведь табл.части в семерочном доке нет и она в ПКО источника - пустое значение.
Подскажите, пожалуйста, куда копать?
 
 
   BlackSeaCat
 
1 - 26.12.12 - 11:30
Гм! Всю жизни считал, что ПКО - это приходный кассовый ордер.
   Alex1979rak
 
2 - 26.12.12 - 11:31
ПКО - правило конвертации объекта.
   Guk
 
3 - 26.12.12 - 11:33
я бы копал в сторону формирования в ПВД источника данных и передачи его в ПКО...
   Alex1979rak
 
4 - 26.12.12 - 11:36
(3) Такая мысль у меня была. Но как это правильно сделать?
   batman69
 
5 - 26.12.12 - 11:36
(2) Умный?
   Andy13
 
6 - 26.12.12 - 11:38
Создай табличную часть из данных 7.7
Или в ПВД, или в обработчике "ПередВыгрузкой" - ИсходящиеДанные.
   Guk
 
7 - 26.12.12 - 11:40
(4) так в ПВД заполняешь объект ВыборкаДанных, указываешь ПКО, которое будет использовано и все...
   Alex1979rak
 
8 - 26.12.12 - 11:45
(6) Если это ИсходящиеДанные, то я должен в этот параметр поместить таблицу значений?
   Andy13
 
9 - 26.12.12 - 11:47
(8) Не. СписокЗначений. В списке значений одно из значений будет ТаблицейЗначений с представлением-именем табличной части.
   Andy13
 
10 - 26.12.12 - 11:48
(9)+ В ПКГС для всех ПКС указываешь в источнике - получить из внешних данных.
 
 Рекламное место пустует
   Alex1979rak
 
11 - 26.12.12 - 11:50
(9) а пример можешь привести? а то как-то не совсем понятно
(10) это я понял. спасибо.
   Andy13
 
12 - 26.12.12 - 11:51
(11) Щас пороюсь...
   Абыр
 
13 - 26.12.12 - 11:52
(0)
1) В ПКО "ПриемНаРаботу" создаете ПКГС для табличной части приемника. Т.е. источник у вас будет пустой, получатель - видимо, ТЧ "РаботникиОрганизации". Соответственно в ПКГС у вас будут ПКС для реквизитов ТЧ приемника с пустым источником.
2) В ПКГС в обработчике "Перед обработкой" пишете
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("ИмяРеквизитаТЧПолучателя");
и т.д. Т.е. программно создаете в 7ке табличную часть. Имена колонок ТЗ должны совпадать с именами реквизитов ТЧ получателя. И в этом же обработчике заполняется ТЗ как вам надо
3) Не забывайте указывать ПКО для ПКС в ПКГС)
   Alex1979rak
 
14 - 26.12.12 - 11:54
(13) спасибо. пробую.
   Andy13
 
15 - 26.12.12 - 11:58
Не ИсходящиеДанные, а ВходящиеДанные.
Ошибся...
   Andy13
 
16 - 26.12.12 - 11:59
Нашел пример из конвертации ТиС в УТ
   Andy13
 
17 - 26.12.12 - 12:03
Перенос ГТД

Перед выгрузкой:
Разделы = СоздатьОбъект("ТаблицаЗначений");
Разделы.НоваяКолонка("СтавкаНДС");
Разделы.НоваяКолонка("СтавкаПошлины");
Разделы.НоваяКолонка("СуммаНДС");
Разделы.НоваяКолонка("СуммаПошлины");
Разделы.НоваяКолонка("ТаможеннаяСтоимость");
Разделы.НоваяКолонка("НДСВВалюте");
Разделы.НоваяКолонка("ПошлинаВВалюте");
Разделы.НоваяКолонка("ТаможеннаяСтоимостьВВалютеРеглУчета");

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

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

Для всей ТЧ "Разделы" установлена галочка "Получить из входящих данных".

В ПКГС "Перед обработкой":
Если ТипЗначенияСтр(ВходящиеДанные) = "СписокЗначений" Тогда
    КоллекцияОбъектов = ВходящиеДанные.Получить("Разделы");
КонецЕсли;
   Andy13
 
18 - 26.12.12 - 12:05
Суть простая, делаешь таблицу значений повторяющую табличную часть по структуре, заполняешь, пихаешь в список значений.
Зачем в ПКГС доп.проверка на список значений, не знаю. У меня и так срабатывало.
   Абыр
 
19 - 26.12.12 - 12:10
(18) Проверка из-за
Если ТабЧасть.КоличествоСтрок() > 0 Тогда
т.е. у вас при пустой табличной части список значений создаваться не будет.
   Alex1979rak
 
20 - 26.12.12 - 12:28
Доп.вопрос. А нужно ли для ПКГС установить флаг "Получить из входящих данных"?

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