0
Saari
13.04.16
✎
09:13
|
Документ "Установка цен номенклатуры" необходимо переносить обменом из УТ 10.3 в БУХ 3.0.
В УТ реквизит "ТипЦен" находится в табличной части "ТипыЦен". Поэтому при обмене один документ с несколькими типами цен из УТ перейдет в несколько документов в БУХ 3.0.
Для этого написал в ПВД в "ПередВыгрузкой" такой код:
Отказ = Истина;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНом.ТипЦен КАК ТипЦен,
| ЦеныНом.Номенклатура КАК Номенклатура,
| ЦеныНом.Цена КАК Цена,
| ЦеныНом.Валюта КАК Валюта
|ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК ЦеныНом
|ГДЕ
| ЦеныНом.Регистратор = &Регистратор
|СГРУППИРОВАТЬ ПО
| ЦеныНом.ТипЦен,
| ЦеныНом.Номенклатура,
| ЦеныНом.Цена,
| ЦеныНом.Валюта
|ИТОГИ
| МАКСИМУМ(Цена)
|ПО
| ТипЦен
|";
Запрос.УстановитьПараметр("Регистратор", Объект.Ссылка);
ТаблицаЦен = Запрос.Выполнить().Выбрать();
СтруктураОбъекта = Новый Структура;
ВыборкаПоТипамЦен = ТаблицаЦен.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоТипамЦен.Следующий() Цикл
СтруктураОбъекта.Вставить("ТипыЦен", ВыборкаПоТипамЦен.ТипЦен);
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Номенклатура");
Товары.Колонки.Добавить("Цена");
Товары.Колонки.Добавить("Валюта");
ВыборкаДетали = ВыборкаПоТипамЦен.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
Если ЗначениеЗаполнено(ВыборкаДетали.Номенклатура) Тогда
ЗаполнитьЗначенияСвойств(Товары.Добавить(), ВыборкаДетали);
КонецЕсли;
КонецЦикла;
СтруктураОбъекта.Вставить("Товары", Товары);
СтруктураОбъекта.Вставить("ПометкаУдаления", Товары.Количество() = 0);
СтруктураОбъекта.Вставить("Проведен", НЕ Товары.Количество() = 0);
// Выгрузка документа
ВыгрузитьПоПравилу(СтруктураОбъекта,,,, "УстановкаЦенНоменклатуры00001");
КонецЦикла;
В ПКО в конвертации свойств перечислил реквизиты шапки и табличную часть "Товары" с тремя реквизитами: Валюта, Номенклатура, Цена.
После обмена нет ни ошибок, ни результата переноса в БУХ.
Подскажите, как правильно для данной задачи настроить обмен?
|
|