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