Имя: Пароль:
1C
1С v8
Документ УстановкаЦенНоменклатуры из УТ 10.3 в БУХ 3.0 (правила обмена)
0 Saari
 
13.04.16
09:13
Документ "Установка цен номенклатуры" необходимо переносить обменом из УТ 10.3 в БУХ 3.0.
В УТ реквизит "ТипЦен" находится в табличной части "ТипыЦен". Поэтому при обмене один документ с несколькими типами цен из УТ перейдет в несколько документов в БУХ 3.0.
Для этого написал в ПВД в "ПередВыгрузкой" такой код:

Отказ = Истина;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ЦеныНом.ТипЦен КАК ТипЦен,
|    ЦеныНом.Номенклатура КАК Номенклатура,
|    ЦеныНом.Цена КАК Цена,
|    ЦеныНом.Валюта КАК Валюта
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНом
|ГДЕ
|    ЦеныНом.Регистратор = &Регистратор
|СГРУППИРОВАТЬ ПО
|    ЦеныНом.ТипЦен,
|    ЦеныНом.Номенклатура,
|    ЦеныНом.Цена,
|    ЦеныНом.Валюта
|ИТОГИ
|    МАКСИМУМ(Цена)
|ПО
|    ТипЦен
|";

Запрос.УстановитьПараметр("Регистратор", Объект.Ссылка);

ТаблицаЦен = Запрос.Выполнить().Выбрать();

СтруктураОбъекта = Новый Структура;

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

В ПКО в конвертации свойств перечислил реквизиты шапки и табличную часть "Товары" с тремя реквизитами: Валюта, Номенклатура, Цена.

После обмена нет ни ошибок, ни результата переноса в БУХ.

Подскажите, как правильно для данной задачи настроить обмен?
1 Saari
 
13.04.16
11:28
?
2 AneJIbcuH
 
13.04.16
12:22
попробуй в ПВД для выгрузки ЦенНоменклатуры использовать
"ВыборкаДанных", а не ВыгрузитьПоПравилу
3 AneJIbcuH
 
13.04.16
12:30
Кстати, Скорее всего в ПВД не указал Способ Выборки - "Произвольный алгоритм" и в начале убери Отказ = Истина;