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

Дата: 21.09.2026 10:11:59
Таблица значений
Программирование 1С
Обработки
Запросы 1С
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Любые

Колонки таблицы значений задают структуру данных в обработке: имя поля, тип и порядок. Прежде чем добавлять строки, определите, какие данные будут храниться — ссылка на номенклатуру, строковый артикул, количество, дата или сумма.

Создание таблицы и колонок

Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Номенклатура");
Таблица.Колонки.Добавить("Количество");
Таблица.Колонки.Добавить("Комментарий");

Строка = Таблица.Добавить();
Строка.Номенклатура = СсылкаНоменклатуры;
Строка.Количество = 3;
Строка.Комментарий = "Загрузка из файла";

Имена колонок должны быть понятными и уникальными. Если таблицу нужно передать в запрос или сопоставить с реквизитом формы, имена колонок должны совпадать с ожидаемыми полями.

Зачем указывать тип

Для простой временной обработки можно создать колонку без явного типа. Но для параметра запроса, загрузки из файла и строгой проверки данных лучше задать тип сразу. Тогда платформа корректно обрабатывает ссылку, число, дату и строку, а ошибка не появляется только в момент выполнения сложного запроса.

ТипыНоменклатуры = Новый ОписаниеТипов(
    "СправочникСсылка.Номенклатура");
ТипыКоличество = Новый ОписаниеТипов("Число");

Таблица.Колонки.Добавить("Товар", ТипыНоменклатуры);
Таблица.Колонки.Добавить("КоличествоЗаказа", ТипыКоличество);

Тип справочника, документа или перечисления зависит от метаданных конкретной базы. Не копируйте имя типа из примера без проверки конфигурации.

Поиск, заполнение и выгрузка

Строки можно искать по структуре отбора, а значения одной колонки — выгружать в массив. Это удобно, когда нужно найти уже добавленный товар, подготовить список ссылок для запроса или проверить дубли.

Отбор = Новый Структура("Номенклатура", СсылкаНоменклатуры);
НайденныеСтроки = Таблица.НайтиСтроки(Отбор);

Если НайденныеСтроки.Количество() = 0 Тогда
    // Добавить новую строку.
КонецЕсли;

СписокТоваров = Таблица.ВыгрузитьКолонку("Номенклатура");

Подготовка для запроса

Если таблица значений передаётся параметром запроса, названия и типы колонок должны быть совместимы с языком запросов. Ссылочные значения хранят в типизированной колонке, строки ограничивают разумной длиной, а сложные объекты в таблицу-параметр не помещают. Передавайте только поля, которые реально используются в запросе.

Типичные ошибки

  • Колонка создаётся после добавления строк. Код становится хрупким и сложнее контролировать заполнение.
  • В числовую колонку пишут строку. Получается неявное преобразование или ошибка в расчёте.
  • Имена колонок не совпадают с формой или запросом. Данные не загружаются в ожидаемое поле.
  • Нет типа у таблицы-параметра. Запрос не может выбрать тип для обработки значений.
  • Удаляют колонку, которую использует алгоритм. Ошибка возникает далеко от места изменения.

Когда нужна доработка

Если требуется загрузить табличную часть из Excel, сопоставить колонки поставщика или проверить дубли перед записью, нужна обработка с понятной структурой данных. Опишите файл и результат — оценим доработку.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.