1C-Code → Как сделать → Как добавить колонку в таблицу значений программно
Методом Колонки.Добавить, вторым параметром — тип. Тип не обязателен, но без него колонка примет что угодно, и это выйдет боком.
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
ТЗ.Колонки.Добавить("Комментарий"); // без типа — примет любое значение
Колонка без типа принимает что угодно. Это удобно ровно до первого Итог или Сортировать: сложить строку с числом нельзя, и вы получите ошибку в месте, далёком от того, где ошиблись.
Новый КвалификаторыЧисла(15, 2) — пятнадцать знаков, из них два после запятой. Без квалификаторов число хранится как есть, и в суммы просачиваются хвосты вида 833,3300000000001.
Значения в ней у всех существующих строк будут пустыми — Неопределено или ноль, смотря по типу. Заполнять придётся отдельным проходом.
ТЗ.Колонки.Добавить("СуммаНДС", Тип, "Сумма НДС"). Имя колонки — идентификатор, в нём нельзя пробелов; заголовок — то, что увидит человек на форме.
Имя колонки обязано быть правильным идентификатором: буквы, цифры, подчёркивание, не с цифры. «Сумма НДС» с пробелом не пройдёт, а вот «Сумма_НДС» или «СуммаНДС» — да. Ошибка при этом возникает не при добавлении, а при первом обращении через точку.
Проверить на практике. В тренажёре такой код запускается на настоящем интерпретаторе языка 1С с демонстрационной базой: справочники, документы, регистры. Без установки платформы и без риска для рабочей базы.