0
trancer
02.03.12
✎
17:41
|
Всем привет.
Использую КД 2.0.28.1. Из одной УПП в другую УПП выгружаю Поступление товаров и услуг. Для некоторых документов мне нужно добавлять содержимое табличных частей из других документов, отобранных некоторым образом. Например, добавлять ТЧ Оборудование или дополнять ТЧ Товары содержимым ТЧ Товары другого документа. И т.д. "Сливающихся" документов может быть произвольное количество. Хотя, как я понимаю, это не принципиальный вопрос.
Буду признателен, если подскажете, хотя бы в общих словах, какие ПКО/ПКС можно создать в КД, чтобы получилось ТЧ доков.
Спасибо.
PS ПКО для документа Поступление взято из типовых примеров КД.
|
|
5
trancer
06.03.12
✎
19:58
|
В общем сделал так. На примере ТЧ Оборудование:
1. Для ПКГС Оборудование выставил галку "Получить из входящих данных".
2. В ПВД, в событии Перед выгрузкой:
КоллекцияОбъектов = Объект.Оборудование.Выгрузить();
// добавим ТЧ Оборудование из других поступлений, если есть с тем же входящим номером
// и другими реквизитами
Если ЗначениеЗаполнено(Объект.НомерВходящегоДокумента) Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПоступлениеТоваровУслуг.Ссылка
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.ДатаВходящегоДокумента = &ДатаВходящегоДокумента
| И ПоступлениеТоваровУслуг.ДоговорКонтрагента = &ДоговорКонтрагента
| И ПоступлениеТоваровУслуг.Контрагент = &Контрагент
| И ПоступлениеТоваровУслуг.НомерВходящегоДокумента = &НомерВходящегоДокумента
| И ПоступлениеТоваровУслуг.Ссылка <> &Ссылка");
Запрос.УстановитьПараметр("ДатаВходящегоДокумента", Объект.ДатаВходящегоДокумента);
Запрос.УстановитьПараметр("ДоговорКонтрагента", Объект.ДоговорКонтрагента);
Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
Запрос.УстановитьПараметр("НомерВходящегоДокумента", Объект.НомерВходящегоДокумента);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() > 0 Тогда
Пока Выборка.Следующий() Цикл
ТЗ = Выборка.Ссылка.Оборудование.Выгрузить();
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТЗ, КоллекцияОбъектов);
КонецЦикла;
КонецЕсли;
КонецЕсли;
ИсходящиеДанные = Новый Структура("Оборудование", КоллекцияОбъектов);
ВыгрузитьПоПравилу(Объект,, ИсходящиеДанные,, "ПоступлениеТоваровУслуг");
|
|