23.01.2017

Динамическое создание колонок в таблице на форме 1С (Обычное приложение)

Автор: Белозерских Евгений

     Задача! Необходимо, в таблице которая расположена на форме 1С (обычной, не управляемой), получить программно произвольный состав колонок. Так же, необходимо настроить обработку события "ПриИзменении" в ячейках таблицы.
     Перед стартом, убедимся что на форме расположена таблица, в которой нет колонок и выглядит она вот так:

Форма обычного приложения с таблицей

Начало. Удаляем колонки таблицы

     Первое что мы сделаем, это удалим имеющиеся колонки таблицы, т.к. они могли остаться после предыдущего выполнения (если нет необходимости, то этот шаг пропускаем)
	// Очистить все колонки таблицы
	ТаблицаЗначений.Колонки.Очистить();
	// Удалить колонку табдицы с индексом "2", т.е. третью по счету
	ТаблицаЗначений.Колонки.Удалить(2);

	// Так же выполняем удаление колонок для элементов формы
	ЭлементыФормы.ТаблицаЗначений.Колонки.Очистить();
	// Или так
	ЭлементыФормы.ТаблицаЗначений.Колонки.Удалить(2);
	
	// Плюс удаляем строки таблицы
	ТаблицаЗначений.Строки.Очистить();
	// Теперь таблица пустая, ни строк, ни колонок

Добавляем колонки таблицы

     Предположим что в ячейках будут только числовые данные. Добавляем колонки в таблицу значений, и таблицу на форме
	// Описание типов
	КЧ 		= Новый КвалификаторыЧисла(10,2);
	Массив	= Новый Массив;
	Массив.Добавить(Тип("Число"));
	ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);

	// Действие "ПриИзменении"
	// ПриИзмененииЯчейкиТаблицыЗначений - наименование процедуры
	// Процедура ПриИзмененииЯчейкиТаблицыЗначений (Элемент)
	ДействиеИзменениеПаллет	= Новый Действие("ПриИзмененииЯчейкиТаблицыЗначений");

	ИмяКолонки		= "Колонка1НаФорме";
	КолонкаТаблицы	= ТаблицаЗначений.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, ИмяКолонки, 30);

	КолонкаТаблицыНаФорме	= ЭлементыФормы.ТаблицаЗначений.Колонки.Добавить(ИмяКолонки, ИмяКолонки);
	КолонкаТаблицыНаФорме.Данные	= ИмяКолонки;
	КолонкаТаблицыНаФорме.Положение	= ПоложениеКолонки.НоваяКолонка;

	КолонкаТаблицыНаФорме.ЭлементУправления.УстановитьДействие("ПриИзменении",	ДействиеИзменениеПаллет);
     Если выполнить данные код, то в таблице расположенной на форме будет создана одна колонка с именем "Колонка1НаФорме". Поэтому для динамического создания произвольного количества колонок, необходимо оформить выше указанный код в процедуру, и вызывать ее с необходимыми параметрами.

Другие статьи

Функция вычисления контрольной цифры для штрихкода EAN-13 (EAN-8)

    Рабочая функция для вычисления контрольной цифры в штрихкоде формата EAN-13 или EAN-8

Чтение текстового файла в 1С

    Пример чтения данных текстового файла (на клиенте и сервере) при разработке в режиме управляемого приложения 1С

Чтение (Загрузка) данных из MXL в 1С 8.3

    Рабочий пример обработки чтения (загрузки) данных из MXL файла, с учетом отказа от использования модальных вызовов

Открыть форму выбора 1С 8.3

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

Чтение и загрузка DBF в 1С 8.3

    Пример программного кода для чтения и/или записи файлов в формате DBF

Выгрузка объекта «1С» в XML и загрузка объекта из XML файла

    Пример выгрузки объекта информационной базы (СправочникОбъект, ДокументОбъект) «1С» в XML файл, и пример обратной загрузки объекта из XML файла

Выгрузка и загрузка XML через DOM

    Полезный пример того, как можно выгрузить в XML данные и загрузить обратно через DOM. Обработка осуществляется при помощи таких объектов как: ЗаписьXML, ЧтениеXML, ЗаписьDOM, ДокументDOM, ПостроительDOM.

HTTP запрос в 1С средствами «WinHttpRequest»

    Пример реализации HTTP запроса в 1С, средствами «WinHttpRequest» 

Программное изменение расписания фонового задания 1С 8.3

   Пример программного кода, для редактирования расписания выполнения фонового задания в 1С 8.3 в режиме отказа использования модальных вызовов

Оформление строк табличной части 1С 8.3

    Пример условного оформления элементов формы, в частности строк табличной части в 1С 8.3 (управляемые формы)

Обработка заполнения табличной части в 1С 8.3

    В статье рассматривается разработка обработки заполнения табличной части на примере конфигурации 1С:ERP
 

Запрос к таблице значений 1С 8.3

    В статье описан простой пример того, как можно сформировать запрос 1С к данным таблицы значений, т.е. как передать таблицу значений в параметр запроса
 

Динамическое создание колонок в таблице на форме 1С 8.3

      Практический пример того, каким образом в управляемом интерфейсе можно создавать и удалять колонки в таблице значений на форме

Чтение (загрузка) данных в 1С 8.3 из Excel

     Для передачи различной информации очень часто применяются табличные документы Excel. Переносить руками информацию из такого файла можно, но не удобно. Поэтому давайте рассмотрим, как можно программно в 1С обработать такой документ

Сохранение и восстановление настроек 1С 8.3

    Пример работы с хранилищем настроек 1C, для программного сохранения и получения сохраненных настроек

Внешняя печатная форма 1С 8.3

      Изменения в печатных формах, как и разработка новых, одна из самых распространенных задач. И для этих целей предназначен механизм внешних печатных форм, используемый в конфигурациях 1С.

Определение даты создания ссылки в 1С

Определяем дату создания ссылки по уникальному идентификатору объекта 1С

Программное создание команды и кнопки на форме 1С 8.3

Небольшой пример того, как программно создавать команды и элементы управления на управляемых формах 1С

Открыть форму созданного объекта (Справочник, документ в 1С 8.2, 8.3)

Создаем новый объект, НЕ записываем его в базу, и открываем форму