1C-CodeКак сделать → Как добавить колонку в таблицу значений программно

Как добавить колонку в таблицу значений в 1С

Методом Колонки.Добавить, вторым параметром — тип. Тип не обязателен, но без него колонка примет что угодно, и это выйдет боком.

Код

ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗ.Колонки.Добавить("Количество",   Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Сумма",        Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
ТЗ.Колонки.Добавить("Комментарий");   // без типа — примет любое значение

Что здесь важно

1. Тип задавать стоит почти всегда

Колонка без типа принимает что угодно. Это удобно ровно до первого Итог или Сортировать: сложить строку с числом нельзя, и вы получите ошибку в месте, далёком от того, где ошиблись.

2. Квалификаторы решают вопрос копеек

Новый КвалификаторыЧисла(15, 2) — пятнадцать знаков, из них два после запятой. Без квалификаторов число хранится как есть, и в суммы просачиваются хвосты вида 833,3300000000001.

3. Колонку можно добавить и к заполненной таблице

Значения в ней у всех существующих строк будут пустыми — Неопределено или ноль, смотря по типу. Заполнять придётся отдельным проходом.

4. Третий параметр — заголовок для показа

ТЗ.Колонки.Добавить("СуммаНДС", Тип, "Сумма НДС"). Имя колонки — идентификатор, в нём нельзя пробелов; заголовок — то, что увидит человек на форме.

Где обычно спотыкаются

Имя колонки обязано быть правильным идентификатором: буквы, цифры, подчёркивание, не с цифры. «Сумма НДС» с пробелом не пройдёт, а вот «Сумма_НДС» или «СуммаНДС» — да. Ошибка при этом возникает не при добавлении, а при первом обращении через точку.

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

Открыть тренажёр

Разобраться глубже

Другие вопросы

Как получить остатки на дату запросом в 1С Как программно провести документ в 1С Как избавиться от запроса в цикле в 1С Как свернуть таблицу значений Как найти строку в таблице значений Как выгрузить колонку таблицы значений в массив Как превратить массив в таблицу значений Как передать таблицу значений с сервера на клиент Как отобрать строки в таблице значений Как отсортировать таблицу значений Как записать движения регистра накопления программно Чем регистр остатков отличается от регистра оборотов Как контролировать остатки при проведении документа Как добавить реквизит расширением конфигурации Как сравнить две таблицы значений Какие бывают соединения в запросе 1С и чем отличаются Как выгрузить таблицу значений в Excel Чем дерево значений отличается от таблицы значений Как задать условное оформление таблицы на форме