---
title: Программное создание табличного макета для загрузки данных в табличную часть
slug: общие-бсп-стандартные-подсистемы-3-1-10-загрузка-данных-из-файла/программное-создание-табличного-макета-для-загрузки-данных-в-табличную-часть
---

```bsl
// Возвращает описание колонок табличной части или таблицы значений.
// Синтаксис
//
// Функция СформироватьОписаниеКолонок(Таблица, Колонки = Неопределено) Экспорт
// Параметры
//
//  Таблица - ТаблицаЗначений - ОписаниеТабличнойЧасти с колонками.
//          - Строка - для получения списка колонок табличной части
//              необходимо указать его полное имя строкой, как в метаданных, например "Документы.СчетНаОплату.ТабличныеЧасти.Товары".
//  Колонки - Строка - список извлекаемых колонок, разделенный запятыми. Например: "Номер, Товар, Количество".
// Возвращаемое значение
//
//   Массив из см. ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета.

&НаКлиенте
Процедура ЗагрузитьТоварыИзФайла(Команда)
    
    ПараметрыЗагрузки = ЗагрузкаДанныхИзФайлаКлиент.ПараметрыЗагрузкиДанных();
    ПараметрыЗагрузки.ПолноеИмяТабличнойЧасти = "_ДемоНоменклатура.Аналоги";
    ПараметрыЗагрузки.Заголовок = НСтр("ru = 'Загрузка списка аналогов из файла'");
    
    // Описание колонок для макета загрузки комплектации
    ПараметрыЗагрузки.КолонкиМакета = ОписаниеКолонокМакетаДляЗагрузкиАналогов();
    
    Оповещение = Новый ОписаниеОповещения("ЗагрузитьАналогиИзФайлаЗавершение", ЭтотОбъект);
    ЗагрузкаДанныхИзФайлаКлиент.ПоказатьФормуЗагрузки(ПараметрыЗагрузки, Оповещение);
    
КонецПроцедуры

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