Загрузка табличных частей

Постановка задачи

Постановка задачи

Усложним задачу сформулированную при загрузке справочников, к существующим колонка добавим колонки код и количество.

№ п/пНомерГруппа
МатериалыКолво
11Мебель
Кровать
5
21Мебель
Диван15
31Инструменты
Молоток
4
42Инструменты
Дрель14
52Канцтовары
Кнопка6
61Канцтовары
Скрепка
7

Сформированную таблицу необходимо загрузить в 2 документа поступления товаров и услуг (номер 1 и номер 24 и 2 строчки соответственно в табличную часть "Товары")
Используя предопределенный шаблоны "Импорт Excel"  импортируем данные в таблицу результата из файла, после чего перейдем на закладку Обработка результата и перетащим настройку обработки Загрузка данных (настройка создана при загрузке справочников) на колонку "Номер".

Примечание.
Если колонки 
Номер у вас нет в дереве выбранных обработок то в контекстном меню дерева выберите пункт Обновить.

Добавим в дерево объектов ПКО "Поступление товаров и услуг". Поскольку документ имеет табличные части в дереве мы можем развернуть ПКО чтобы добраться до нужной табличной части.
Заполним таблицу свойств табличной части товары:
  • Номенклатура - будем загружать по ПКО "Номенклатура"
  • ЕдиницаИзмерения И ЕденициИзмеренияМест  - возьмем основную единицу для отчетов из загруженной номенклатуры СтрокаТЧ.Номенклатура.ЕдиницаДляОтчетов
  • Количество - используем данные текущей строки результата ТекущиеДанные.Колво
  • Коэффициент - Возьмем из загруженной единицы измерения СтрокаТЧ.ЕдиницаИзмерения.Коэффициент
Важно:
При выборе значения в 
таблице свойств для табличной части с использованием Диалога выбора переменной, доступна переменная СтрокаТЧ, которая обозначает добавляемую строку, для данной строки доступны только переменные у которых в таблице свойств установлен признак "Использовать" и которые находятся выше текущего свойства.

Для регистров аналогичное поведение у переменной Запись


Теперь вернемся к шапке документа.  В настройках ПКО снимем, установленный по умолчанию флажок Загружать только по ссылке на ПКО теперь для каждой строчки(группы строчек) таблицы результата  мы будем создавать документ поступление товаров и услуг. Но нам нужно создать документ только 2 раза, а строк у нас 6, как быть в этом случае?
В этом случаем мы обработке должны указать какие строки в какие документы группировать. Обычно в таких случаях какая то колонка является ключевой, наш случай не был исключением - ключевой колонкой в заявленном наборе данных является колонка "Номер" и именно на колонку "Номер" мы перетащили обработку загрузки данных


Примечание:
При передаче в обработку текущей строки результата происходит анализ загружаемых данных и если используется хоть одна табличная часть загружаемого объекта, в обработку
 передаются вспомогательные данные(строки результата), у которых значение объекта такое же как и у текущей строки. При обработке последующих строк, строки переданные во вспомогательные данных - игнорируются.
Таким образом при первой итерации будут загружены строки (№ п/п1,2,3,6 в документ с номером 1, а во второй итерации будут загружены строки (№ п/п)  4,5 в документ с номером 2.

В таблице свойств шапки документа просто обозначим реквизит Номер по которому и будем производить поиск, и обязательную для документа Дату.

Поле(колонку) номер мы явно не сможем выбрать в диалоге выбора переменнойпоскольку оно не соответствует типу назначения (номер строковой, а значение числовое), поэтому значение необходимо преобразовать с помощью выражения на встроенном языке. Выделите необходимую переменную и нажмите Открыть в поле пути
в открывшемся окне добавьте функцию Строка(...)




или
 

Теперь можно сохранить настройку и выполнить загрузку данных, нажав кнопку выполнить в конструкторе и как и прежде используя монитор.

Дополнение:
Для того чтобы загрузка выполнялась наиболее оптимально установите для ПКО "Номенклатура" флажок Загружать только по ссылке из ПКО ведь теперь нет необходимости создавать номенклатуру явно, нашей целью является документ Поступление товаров услуг, а уж если будет необходимо по ссылке из него или его табличных частей создастся номенклатура.

Результатом загрузки будет документ с необходимым строчками, однако если мы еще раз выполним загрузку то количество строк удвоится (старые строчки не удаляются). 
Избежать этой ситуации можно 2 путями:
  1. В настройках ПКО "Поступление товаров услуг" установить флажок Не замешать существующие данные при загрузке, а только создавать новые, таким образом существующий документ вовсе не будет изменен (это не очень хороший путь, поскольку не работает в случае если необходимо изменить шапку документа).
  2. Удалить существующие строки.