Имя: Пароль:
1C
1С v8
КД 2 остатки по товарам из УТ10.3 в БП 3.0
0 applesound
 
23.01.19
23:23
Доброго времени суток.
Необходимо решить задачу:
Из УТ 10.3 перенести в БП 3.0 остатки по товарам в разрезе партий поступлений. Для написания правил использую конфигурацию КД 2.

Создал ПКО ВводНачальныхОстатков_Структура, убрал галку Искать объект приемника по внутреннему идентификатору объекта источника, установил галку Автоматически

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

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

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

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


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


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

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


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

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

КонецЦикла;

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


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