Skip to content

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

// Возвращает описание колонок табличной части или таблицы значений.
// Синтаксис
//
// Функция СформироватьОписаниеКолонок(Таблица, Колонки = Неопределено) Экспорт
// Параметры
//
// Таблица - ТаблицаЗначений - ОписаниеТабличнойЧасти с колонками.
// - Строка - для получения списка колонок табличной части
// необходимо указать его полное имя строкой, как в метаданных, например "Документы.СчетНаОплату.ТабличныеЧасти.Товары".
// Колонки - Строка - список извлекаемых колонок, разделенный запятыми. Например: "Номер, Товар, Количество".
// Возвращаемое значение
//
// Массив из см. ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета.
&НаКлиенте
Процедура ЗагрузитьТоварыИзФайла(Команда)
ПараметрыЗагрузки = ЗагрузкаДанныхИзФайлаКлиент.ПараметрыЗагрузкиДанных();
ПараметрыЗагрузки.ПолноеИмяТабличнойЧасти = "_ДемоНоменклатура.Аналоги";
ПараметрыЗагрузки.Заголовок = НСтр("ru = 'Загрузка списка аналогов из файла'");
// Описание колонок для макета загрузки комплектации
ПараметрыЗагрузки.КолонкиМакета = ОписаниеКолонокМакетаДляЗагрузкиАналогов();
Оповещение = Новый ОписаниеОповещения("ЗагрузитьАналогиИзФайлаЗавершение", ЭтотОбъект);
ЗагрузкаДанныхИзФайлаКлиент.ПоказатьФормуЗагрузки(ПараметрыЗагрузки, Оповещение);
КонецПроцедуры
&НаСервере
Функция ОписаниеКолонокМакетаДляЗагрузкиАналогов();
КолонкиМакета = ЗагрузкаДанныхИзФайла.СформироватьОписаниеКолонок(Объект.Аналоги);
ЗагрузкаДанныхИзФайлаКлиентСервер.УдалитьКолонкуМакета("Аналог", КолонкиМакета);
Если Объект.ВидНоменклатуры.Наименование = "Услуга" Тогда
// У услуг нет штрихкода
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета("ШтрихкодАртикул", ОбщегоНазначения.ОписаниеТипаСтрока(20), НСтр("ru = 'Артикул'"));
Иначе
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета("ШтрихкодАртикул", ОбщегоНазначения.ОписаниеТипаСтрока(20), НСтр("ru = 'Штрихкод и Артикул'"));
КонецЕсли;
Колонка.ОбязательнаДляЗаполнения = Истина;
Колонка.Позиция = 1;
Колонка.Группа = "Номенклатура";
Колонка.Родитель = "Аналог";
КолонкиМакета.Добавить(Колонка);
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
Колонка.Группа = "Номенклатура";
Колонка.Родитель = "Аналог";
Колонка.Позиция = 2;
Колонка.Подсказка = НСтр("ru='Наименование аналогичного товара, который полностью идентичен
|по своему функциональному назначению и техническим характеристикам.'");
КолонкиМакета.Добавить(Колонка);
Колонка = ЗагрузкаДанныхИзФайлаКлиентСервер.КолонкаМакета("Совместимость", КолонкиМакета);
Колонка.Позиция = 3;
Возврат КолонкиМакета;
КонецФункции