Перенос Остатков При Конвертации

  • Автор темы SeverBap
  • Дата начала
S

SeverBap

Нужно при обмене данными передавать доступный товар на складе.
доступный товар = остатки товаров - товар в резереве
В источнике надо задействовать два регистра накопления как-то собарать в оду таблицу, а в приемник только регистр сведений.
Как такое реализовать в конвертации, кто нибудь с таким сталкивался?
 
S

SeverBap

может какой-то пример есть в конвертации данных в демке?
 
S

SeverBap

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

Вложения

  • Обмен_УТ_УМ.xml
    26,8 КБ · Просмотры: 526
D

Darlock

Мне кажется надо использовать обработчик "ПередВыгрузкой" и там все оформлять и считать. С конвертацией не часто работаю.
 
S

SeverBap

Код:
Запрос = Новый запрос();
Запрос.текст = "ВЫБРАТЬ
|	ВложенныйЗапрос.Склад КАК МестоХранения,
|	ВложенныйЗапрос.Номенклатура КАК Номенклатура,
|	СУММА(ВложенныйЗапрос.КоличествоОстаток - ВложенныйЗапрос.КоличествоВРезерве) КАК Количество
|ИЗ
|	(ВЫБРАТЬ
|		ТоварыНаСкладахОстатки.Склад КАК Склад,
|		ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
|		ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
|		0 КАК КоличествоВРезерве
|	ИЗ
|		РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, {(Склад).* КАК Склад, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры}) КАК ТоварыНаСкладахОстатки
|	
|	ОБЪЕДИНИТЬ ВСЕ
|	
|	ВЫБРАТЬ
|		ТоварыВРезервеНаСкладахОстатки.Склад,
|		ТоварыВРезервеНаСкладахОстатки.Номенклатура,
|		0,
|		ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
|	ИЗ
|		РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, {(Склад).* КАК Склад, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (ДокументРезерва).* КАК ДокументОснование}) КАК ТоварыВРезервеНаСкладахОстатки) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
|	ВложенныйЗапрос.Склад,
|	ВложенныйЗапрос.Номенклатура";
Запрос.УстановитьПараметр("ДатаКон",КонецДня(ТекущаяДата()));
ВыборкаДанных = запрос.Выполнить().Выбрать();
вот рабочий вариант и все хорошо грузит (я так был близко до это сутра)
 
S

SeverBap

Выползло то что при загрузи в регистр сведений он добавляет данные, а надо очистить регистр перед загрузкой! Для это в ПКО передзагрузкой прописал код об очистке регистра но он чистить каждый раз как только объект загружается:
Код:
Набор = РегистрыСведений.ОстаткиТоваров.СоздатьНаборЗаписей();
Набор.Записать();
надо оформить чтобы он один раз это сделал. Я так понимаю надо через параметр это сделать но где его прописать? :)
 
S

SeverBap

прописал в самой конвертации в событии "перед загрузкой данных" и все пошло!

Добавлено: такое ощущение что сам с собой переписываюсь! :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!