@Xris

Конвертация данных: разбить документ на два одного типа?

Как при конвертации разбить один документ на два одного типа по партиям в табличной части? У меня получается он выделяет только одну партию.
ИсходящиеДанные = Новый Структура();
	ИсходящиеДанные.Вставить("ДокументОснование", "");
	ИсходящиеДанные.Вставить("Товары", "");
	ИсходящиеДанные.Вставить("СуммаДокумента", "");
	ИсходящиеДанные.Вставить("риц_ВхНомер", Объект.Номер);

	Если Объект.ПометкаУдаления ИЛИ Объект.Проведен Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ 
		|	ВозвратПоставщикуТовары.Партия
		|ИЗ
		|	Документ.ВозвратПоставщику.Товары КАК ВозвратПоставщикуТовары
		|ГДЕ
		|	ВозвратПоставщикуТовары.Ссылка = &Ссылка" ;
		Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
		Выборка = Запрос.Выполнить();
		Если НЕ Выборка.Пустой() Тогда
			Результат = Выборка.Выбрать();
			Пока Результат.Следующий() Цикл
				Товары = Новый Массив;
				СуммаДокумента = 0;  
				Для каждого ВыборкаТовары из Объект.Товары Цикл
					Если ВыборкаТовары.Партия = Результат.Партия Тогда
						СтрокаТЧ = Новый Структура();
						СтрокаТЧ.Вставить("Номенклатура", ВыборкаТовары.Номенклатура);
						СтрокаТЧ.Вставить("Количество", ВыборкаТовары.Количество);
						СтрокаТЧ.Вставить("КоличествоУпаковок", ВыборкаТовары.Количество);
						СтрокаТЧ.Вставить("Цена", ВыборкаТовары.Цена);
						СтрокаТЧ.Вставить("Сумма", ВыборкаТовары.Сумма);
						СтрокаТЧ.Вставить("СтавкаНДС", ВыборкаТовары.СтавкаНДС);
						СтрокаТЧ.Вставить("СуммаНДС", ВыборкаТовары.СуммаНДС);
						СтрокаТЧ.Вставить("СуммаСНДС", ВыборкаТовары.СуммаВсего);
						Товары.Добавить(СтрокаТЧ);
						СуммаДокумента = ВыборкаТовары.СуммаВсего+СуммаДокумента;
					КонецЕсли;
				КонецЦикла;
				ИсходящиеДанные.ДокументОснование = Результат.Партия;
				ИсходящиеДанные.Товары = Товары;
				ИсходящиеДанные.СуммаДокумента = СуммаДокумента;
				ВыгрузитьПоПравилу(Объект.Ссылка,, ИсходящиеДанные,, "ВозвратПоставщику_КорректировкаПриобретения");
			КонецЦикла;
		Иначе
			Товары = Новый Массив;
			СуммаДокумента = 0;
			Для каждого Строка из Объект.Товары Цикл
				СтрокаТЧ = Новый Структура();
				СтрокаТЧ.Вставить("Номенклатура", Строка.Номенклатура);
				СтрокаТЧ.Вставить("Количество", Строка.Количество);
				СтрокаТЧ.Вставить("КоличествоУпаковок", Строка.Количество);
				СтрокаТЧ.Вставить("Цена", Строка.Цена);
				СтрокаТЧ.Вставить("Сумма", Строка.Сумма);
				СтрокаТЧ.Вставить("СтавкаНДС", Строка.СтавкаНДС);
				СтрокаТЧ.Вставить("СуммаНДС", Строка.СуммаНДС);
				СтрокаТЧ.Вставить("СуммаСНДС", Строка.СуммаВсего);
				Товары.Добавить(СтрокаТЧ);
				СуммаДокумента = Строка.СуммаВсего+СуммаДокумента;
			КонецЦикла;
			ИсходящиеДанные = Новый Структура();
			ИсходящиеДанные.ДокументОснование = Объект.ДокументОснования;
			ИсходящиеДанные.Товары = Товары;
			ИсходящиеДанные.СуммаДокумента = СуммаДокумента;
		ВыгрузитьПоПравилу(Объект.Ссылка,, ИсходящиеДанные,, "ВозвратПоставщику_КорректировкаПриобретения");
		КонецЕсли;
	КонецЕсли;
  • Вопрос задан
  • 2442 просмотра
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
В целом все правильно, только нужно сделать уникальное поле поиска при загрузке. Сейчас у тебя по ссылке/номеру данные каждой следующей партии перезаписывают предыдущую выгрузку этого документа. Без ПКО с одним ПВД трудно угадать, но полагаю что в XML-файле есть записи по каждой партии. Еще можно чуть-чуть подправить правила загрузки. Или правила поиска...

Конвертация настолько гибкая, что можно одно и тоже сделать несколькими способами :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fosihas
@fosihas
Автоматизации учета на 1С.
Условие запроса/кода проверь. выполни ее через обработку посмотри что получается.

смущает запрос
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы