Имя: Пароль:
1C
1С v8
КД 2. Документ Комплектация из УТ 10.3 в ОперациюБух в БП 2.0
0 Румата
 
03.09.18
14:54
Доброго времени суток. Попросили написать правила обмена для конфигурации УТ -БП. Самописный документ "Отчет производства" из УТ должен переносится в ОперациюБух в БП.

Вот код, который я написал в ПКГС в процедуре "Перед обработкой" :

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НашДокумент", Источник.Ссылка);
Запрос.Текст = "ВЫБРАТЬ
                   |    ПартииТоваровНаСкладахОбороты.Номенклатура,
                   |    ПартииТоваровНаСкладахОбороты.КоличествоОборот,
                   |    ПартииТоваровНаСкладахОбороты.СтоимостьОборот
                   |ИЗ
                   |    РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК ПартииТоваровНаСкладахОбороты
                   |ГДЕ
                   |    ПартииТоваровНаСкладахОбороты.Регистратор = &НашДокумент";
КоллекцияОБъектовТемп  = Новый ТаблицаЗначений;
КоллекцияОБъектовТемп.Колонки.Добавить("СубконтоДт");
КоллекцияОБъектовТемп.Колонки.Добавить("СубконтоКт");
КоллекцияОБъектовТемп.Колонки.Добавить("ВалютаДт");
КоллекцияОБъектовТемп.Колонки.Добавить("ВалютаКт");
КоллекцияОБъектовТемп.Колонки.Добавить("Организация");
КоллекцияОБъектовТемп.Колонки.Добавить("НеКорректироватьСтоимостьАвтоматически");
КоллекцияОБъектовТемп.Колонки.Добавить("Содержание");
КоллекцияОБъектовТемп.Колонки.Добавить("ВалютнаяСуммаДт");
КоллекцияОБъектовТемп.Колонки.Добавить("ВалютнаяСуммаКт");
КоллекцияОБъектовТемп.Колонки.Добавить("КоличествоДт");
КоллекцияОБъектовТемп.Колонки.Добавить("КоличествоКт");
КоллекцияОБъектовТемп.Колонки.Добавить("Сумма");
КоллекцияОБъектовТемп.Колонки.Добавить("СуммаВРДт");
КоллекцияОБъектовТемп.Колонки.Добавить("СуммаВРКт");
КоллекцияОБъектовТемп.Колонки.Добавить("СуммаНУДт");
КоллекцияОБъектовТемп.Колонки.Добавить("СуммаНУКт");
КоллекцияОБъектовТемп.Колонки.Добавить("СуммаПРДт");
КоллекцияОБъектовТемп.Колонки.Добавить("СуммаПРКт");
КоллекцияОБъектовТемп.Колонки.Добавить("Активность");
КоллекцияОБъектовТемп.Колонки.Добавить("Период");
КоллекцияОБъектовТемп.Колонки.Добавить("Регистратор");
КоллекцияОБъектовТемп.Колонки.Добавить("СчетДт");
КоллекцияОБъектовТемп.Колонки.Добавить("СчетКт");

ТТТ = Запрос.Выполнить().Выгрузить();
Для Каждого СтрТТТ из ТТТ Цикл
    СтрКоллекцияОБъектов = КоллекцияОБъектовТемп.Добавить();
    Если СтрТТТ.КоличествоОборот<0 Тогда
        СтрКоллекцияОБъектов.СчетДт = "41.11";
        СтрКоллекцияОБъектов.СчетКт = "20.01";
        СтрКоллекцияОБъектов.КоличествоДт = - СтрТТТ.КоличествоОборот;
        СтрКоллекцияОБъектов.Сумма = - СтрТТТ.СтоимостьОборот;
        СубконтоДт = Новый Соответствие;
        СубконтоДт.Вставить(Новый Структура("Код", "00001"), СтрТТТ.Номенклатура);
        СтрКоллекцияОБъектов.СубконтоДт=СубконтоДт;
    Иначе
        СтрКоллекцияОБъектов.СчетКт = "41.11";
        СтрКоллекцияОБъектов.СчетДт = "20.01";
        СтрКоллекцияОБъектов.КоличествоКт = СтрТТТ.КоличествоОборот;
        СтрКоллекцияОБъектов.Сумма =  СтрТТТ.СтоимостьОборот;
        СубконтоКт = Новый Соответствие;
        СубконтоКт.Вставить(Новый Структура("Код", "00001"), СтрТТТ.Номенклатура);
        СтрКоллекцияОБъектов.СубконтоКт=СубконтоКт;
    КонецЕсли;    
    СтрКоллекцияОБъектов.Активность = Истина;
    СтрКоллекцияОБъектов.Организация =  Источник.Ссылка.Организация;
КонецЦикла;    



КоллекцияОБъектов= КоллекцияОБъектовТемп.Скопировать();


=============================

При выгрузке из УТ вылетает ошибка "Итератор для значения не определен". Т.е. даже выгрузка не проходит. Специально в конце написанного текста добавил строку КоллекцияОБъектов.ВыбратьСтроку();

Показывается ТЗ, т.е. ошибка не в коде. Подскажите пожалуйста где искать ошибку. Вот скрин ПКО http://imglink.ru/show-image.php?id=d3f71b346e3e5ee84c754ad9f851960b
1 Acemore
 
03.09.18
15:04
Почему не сделать в ПВД и правилом выгружать каждый документ  - примеров куча.
2 Румата
 
03.09.18
15:12
(Acemore) Через произвольный алгоритм ? Можете ссылку дать на нормальный рабочий пример ?
3 Acemore
 
03.09.18
15:21
(2) http://catalog.mista.ru/public/402469/

В ПКО выбираете входящие данные - набор движений по регистрам бухгалтерии для операции и программно ее создаете.