Загрузка данных из файла. Расширение функционала типовой загрузки из файла (БСП)
Типовая загрузка из файла из подсистемы БСП имеет мощный функционал по загрузке из табличного документа, или файла, но также имеет ряд ограничений. Приведу несколько примеров, с которыми пришлось столкнуться. В частности, при заполнении табличной части нет возможности загрузить и сопоставить колонку, которой нет в загружаемой табличной части. Также нет функционала по загрузке документов, обработка умеет загружать только справочники.
- Описание
- Подробнее
Описание
Полностью описывать функционал работы этой подсистемы не буду, эту информацию можно почерпнуть из документации по БСП, ограничусь лишь кратким описанием функционала.
Подсистема позволяет:
— Загружать из файла любой справочник системы;
— Заполнять табличные части документов из файла;
— Вставлять из буфера обмена ссылочные типы;
Для заполнения табличной части, необходимо реализовать процедуру по поиску реквизитов ссылочных типов, процедуру по решению неоднозначностей в ссылочных типах (если например найдены дубли). Эти процедуры реализуются в модуле менеджера документа.
Примеры буду рассматривать на конфигурации 1С:ЗУП. Принцип будет одинаковый для любой конфигурации со встроенной БСП, и встроенной подсистемой "Загрузка данных из файла".
Ситуация №1:
Вывести команду на форму списка документа "Изменение графика работы списком", и загрузить документы из файла (excel).
Для этой задачи хотелось бы использовать типовую обработку, а не писать свою по загрузке из excel.
Колонки для загрузки следующие: Табельный номер сотрудника, ФИО, Расчетный период, График работы, Дата начала, Дата окончания.
У документ нет подходящей табличной части, которая содержала бы все эти колонки. Поэтому необходимо расширить функционал обработки, чтобы она могла прочитать и обработать все колонки (включая ссылочные). Базово будем использовать табличную часть "Сотрудники", она содержит ссылку на сотрудника.
Добавляем команду на форму по загрузке документов:

Загружать будем следующие данные:

При использовании типовой обработки, в результате поиска, будут выданы только колонки, которые есть в табличной части. Тут не будет колонок график работы, расчётный период, и других. Будет только колонка сотрудник.

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

Далее по нажатии на команду загрузить данные, будет создан документ изменение графика работы списком.

Ситуация №2.
Необходимо заполнить табличную часть существующего документа доход в натуральной форме. В документе вид дохода указывается в шапке документа:

В файле excel, который нужно загрузить, присутствует колонка "Вид дохода", и если вид дохода в файле не соответствует виду дохода выбранному в документе, выдавать ошибку и такие строки не загружать. В этой задаче также потребуется поиск данных по колонке, которой нет в табличной части. Также необходимо проверять, чтобы дата получения дохода в документе соответствовал расчетному периоду в загружаемом файле.
Такой вариант загрузки реализован в расширении.
Загружаем следующие данные:

После чтения, получаем результат:

После загрузки заполняется табличная часть, с заполнением всех колонок типовыми механизмами.

Другие мои разработки по ЗУП:
— Регламентная выгрузка сотрудников и структуры предприятия в 1С:Документооборот 3.0 из 1С:ЗУП 3.1
— Статистика персонала в разрезе территорий в 1С:ЗУП
— Загрузка документов "Доход в натуральной форме" из Еxcel в 1С:ЗУП
— Анализ зарплаты и взносов по сотрудникам (в целом за период) для 1С:ЗУП 3.1

