PDA

Просмотр полной версии : КД 2 остатки по товарам из УТ10.3 в БП 3.0



applesound
24.01.2019, 00:05
Доброго времени суток.
Необходимо решить задачу:
Из УТ 10.3 перенести в БП 3.0 остатки по товарам в разрезе партий поступлений. Для написания правил использую конфигурацию КД 2.

Создал ПКО ВводНачальныхОстатков_Стр� �ктура, убрал галку Искать объект приемника по внутреннему идентификатору объекта источника, установил галку Автоматически генерировать номер или код, если он не задан.
Источник: РегистрНакопленияЗапись.П� �ртииТоваровНаСкладах
Приёмник: ДокументСсылка.ВводНачаль� �ыхОстатков
Создал ПКС с пустым источником:
Шапка
Организация,Дата
Табличная часть (НоменклатураНаСкладе)
Склад, Номенклатура, Количество, Сумма, Партия, РасчетныйДокумент

Создал ПВД ВводНачальныхОстатков_Стр� �ктура_Товары
Объект выборки: РегистрНакопленияЗапись.П� �ртииТоваровНаСкладах
Способ выборки: Произвольный алгоритм
Правило конвертации: ВводНачальныхОстатков_Стр� �ктура

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

Запрос.Текст = ЗапросТекст;


Запрос.УстановитьПараметр("Дата",Параметры.ДатаПолученияОс татков);
Результат = Запрос.Выполнить();
ВыборкаДанных = Результат.Выбрать();


// структура табличной части
НоменклатураНаСкладе = Новый ТаблицаЗначений;
НоменклатураНаСкладе.Коло� �ки.Добавить("Склад");
НоменклатураНаСкладе.Коло� �ки.Добавить("Номенклатура");
НоменклатураНаСкладе.Коло� �ки.Добавить("Количество");
НоменклатураНаСкладе.Коло� �ки.Добавить("Сумма");
НоменклатураНаСкладе.Коло� �ки.Добавить("Партия");
НоменклатураНаСкладе.Коло� �ки.Добавить("РасчетныйДокумент");

// шапка документа
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Организация",);
ИсходящиеДанные.Вставить("дата", );


Пока ВыборкаДанных.следующий() цикл

//заполнение табличной части
НоваяСтрока= НоменклатураНаСкладе.Доба� �ить();
НоваяСтрока.Склад = Выборка;
НоваяСтрока.Номенклатура = Выборка;
НоваяСтрока.Количество = Выборка;
НоваяСтрока.Сумма = Выборка;
НоваяСтрока.Партия = Выборка;
НоваяСтрока.РасчетныйДоку� �ент = Выборка;

КонецЦикла;

ИсходящиеДанные.Вставить("НоменклатураНаСкладе",НоменклатураНаСкладе);


В параметрах добавил параметр ДатаПолученияОстатков, установил галку Диалог и ТипЗначени = Дата
В итоге получил 0 выгруженных документов.