Подсистема БСП Загрузка данных из файла позволяет (в том числе) реализовать загрузку из табличного документа или файла для табличной части объекта. Цель доработки (расширение) максимально упростить и ускорить процесс включения этой функциональности для объекта.
Выполнено и протестировано: платформа 8.3.25.1072, конфигурация ERP 2.5.15.82
ЗАДАЧА (пример)
1. Справочник Сделки с клиентами содержит табличные части Участники и Первичный спрос.
2. Документ Поступление арендованных ОС (забалансовый учет) содержит табличную часть ОС.
Обеспечить возможность загрузки табличных частей из табличного документа или файла.
ВЫПОЛНЕНИЕ
Для появления на формах объектов команд загрузки необходимо (4 шага):
Шаг 1. Включить справочник и документ в расширение.
Шаг 2. Общий модуль ЗаполнениеОбъектовПереопределяемый. В процедуру ПриОпределенииОбъектовСКомандамиЗаполнения добавить объекты метаданных.
&После("ПриОпределенииОбъектовСКомандамиЗаполнения")
Процедура ЗИФ_ПриОпределенииОбъектовСКомандамиЗаполнения(Объекты)
Объекты.Добавить(Метаданные.Справочники.СделкиСКлиентами);
Объекты.Добавить(Метаданные.Документы.ПоступлениеАрендованныхОС);
КонецПроцедуры
Шаг 3. Общий модуль ЗагрузкаДанныхИзФайлаПереопределяемый.
В процедуру ЗИФ_ОбъектыСЗагрузкойТабличныхЧастей добавить информацию о загружаемых табличных частях (через запятую) объектов метаданных.
Процедура ЗИФ_ОбъектыСЗагрузкойТабличныхЧастей(ТабличныеЧастиОбъектов) Экспорт
ЭлементКоллекцииОбъект = ТабличныеЧастиОбъектов.Добавить();
ЭлементКоллекцииОбъект.ОбъектМД = "Справочник.СделкиСКлиентами";
ЭлементКоллекцииОбъект.СписокТЧ = "ПартнерыИКонтактныеЛица,ПервичныйСпрос";
ЭлементКоллекцииОбъект = ТабличныеЧастиОбъектов.Добавить();
ЭлементКоллекцииОбъект.ОбъектМД = "Документ.ПоступлениеАрендованныхОС";
ЭлементКоллекцииОбъект.СписокТЧ = "ОС";
КонецПроцедуры
В процедуру ЗИФ_ИсключаемыеРеквизитыТабличныхЧастей добавить информацию о пропускаемых (игнорируемых) при загрузке реквизитах табличных частей (через запятую).
Процедура ЗИФ_ИсключаемыеРеквизитыТабличныхЧастей(ИсключаемыеРеквизиты) Экспорт
ЭлементКоллекцииОбъект = ИсключаемыеРеквизиты.Добавить();
ЭлементКоллекцииОбъект.ОбъектМД = "Справочник.СделкиСКлиентами";
ЭлементКоллекцииОбъект.ИмяТЧ = "ПартнерыИКонтактныеЛица";
ЭлементКоллекцииОбъект.СписокРеквизитов = "РольПартнера,РольКонтактногоЛица";
ЭлементКоллекцииОбъект = ИсключаемыеРеквизиты.Добавить();
ЭлементКоллекцииОбъект.ОбъектМД = "Документ.ПоступлениеАрендованныхОС";
ЭлементКоллекцииОбъект.ИмяТЧ = "ОС";
ЭлементКоллекцииОбъект.СписокРеквизитов = "ИдентификаторСтроки";
КонецПроцедуры
Шаг 4. В модули менеджеров объектов скопировать процедуру ДобавитьКомандыЗаполнения.
Процедура ДобавитьКомандыЗаполнения(КомандыЗаполнения, Параметры) Экспорт
ЗИФ_ЗагрузкаДанныхИзФайлаСервер.ДобавитьКомандыЗаполнения(КомандыЗаполнения, Параметры);
КонецПроцедуры
На этом все. Макеты добавлять не нужно, никаких иных действий тоже. Команды формируются подсистемой БСП ПодключаемыеКоманды. В формах объектов появятся действия загрузки - типовой функционал (результат на скринах).
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.15.82