Задать вопрос
@Xris

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

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

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

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

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

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

Похожие вопросы
Aston Москва
от 200 000 до 230 000 ₽
Aston Санкт-Петербург
от 230 000 до 270 000 ₽
Технодор СК Екатеринбург
от 150 000 до 300 000 ₽