Вход | Регистрация
 
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
Доп.вопрос. А нужно ли для ПКГС установить флаг "Получить из входящих данных"?

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