X
X
Xris2020-04-14 13:12:28
1C
Xris, 2020-04-14 13:12:28

Data conversion: split a document into two of the same type?

How, when converting, to split one document into two of the same type by batches in the tabular section? At me it turns out it allocates only one batch.

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

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

Answer the question

In order to leave comments, you need to log in

2 answer(s)
D
Dmitry Kinash, 2020-04-14
@Xris

In general, everything is correct, only you need to make a unique search field when loading. Now, by reference/number, the data of each subsequent batch overwrites the previous upload of this document. It's hard to guess without a single PVD FRP, but I believe there are entries in the XML file for each batch. You can also slightly tweak the loading rules. Or search rules...
The conversion is so flexible that you can do the same thing in several ways :)

K
Konstantin, 2020-04-14
@fosihas

Check the condition of the request/code. Run it through processing and see what happens.
confuses the request

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question