К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как создать таблицу в 1С:Предприятие

Как создать таблицу в 1С:Предприятие: табличный документ, таблица значений и табличная часть справочника. Пошаговые инструкции, примеры кода, ошибки и FAQ.

В 1С:Предприятие слово «таблица» означает сразу несколько разных объектов, и прежде чем создавать что-либо, нужно понять, какая именно таблица требуется. Пользователю чаще всего нужен табличный документ — файл в формате MXL, похожий на лист Excel, который можно заполнить, отформатировать и распечатать. Разработчику обычно нужна таблица значений — программная структура данных в памяти, или табличная часть — вложенная таблица внутри справочника или документа.

Каждый из этих вариантов создаётся своим способом: табличный документ — через меню «Файл» или в конфигураторе, таблица значений — только кодом на встроенном языке, табличная часть — в дереве метаданных конфигуратора. Ниже разобраны все три сценария с конкретными шагами, примерами кода и типичными ошибками.

Инструкции применимы к платформе 1С:Предприятие 8.3 в режимах «Тонкий клиент» и «Толстый клиент». В типовых конфигурациях (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) названия пунктов меню могут немного отличаться, но логика действий сохраняется.

Какую таблицу вы хотите создать: выбираем тип объекта

Прежде чем открывать конфигуратор или редактор, определите назначение таблицы. От этого зависит весь дальнейший путь, и ошибка на этом этапе приводит к тому, что созданный объект не решает задачу.

Табличный документ нужен, если требуется визуальная таблица: прайс-лист, отчёт для просмотра на экране, макет для печати, шаблон с объединёнными ячейками и рамками. Это аналог листа Excel внутри 1С.

Таблица значений нужна для промежуточной обработки данных в коде: выгрузить результат запроса, отсортировать строки, сгруппировать показатели, передать данные между процедурами. Она существует только в оперативной памяти, пока выполняется код, и не хранится в базе.

Табличная часть нужна, когда справочник или документ должен хранить список строк: товары в накладной, сотрудники в приказе, контактные лица у контрагента. Это постоянная структура данных, которая сохраняется в базе вместе с объектом.

Сравнение вариантов

Табличный документ

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

Таблица значений

Для обработки данных в коде. Живёт только в памяти, требует знания встроенного языка.

Табличная часть

Для хранения строк внутри справочника или документа. Создаётся только в конфигураторе, нужны права на изменение конфигурации.

Как создать табличный документ в режиме предприятия

Это самый простой сценарий, доступный обычному пользователю без прав разработчика. Откройте меню «Файл» → «Новый» и в списке типов документов выберите «Табличный документ». Откроется пустой лист с сеткой ячеек.

Заполнение аналогично работе в электронных таблицах: щёлкните ячейку и введите текст или число, выделите диапазон для объединения ячеек (меню «Таблица» → «Объединить»), настройте шрифт, границы и цвет заливки через панель форматирования или пункт «Свойства» контекстного меню.

Чтобы сохранить результат, используйте «Файл» → «Сохранить как» и выберите формат: MXL (родной формат 1С), XLSX, PDF, HTML или ODS. Формат MXL сохраняет все особенности оформления, остальные форматы подходят для передачи документа тем, у кого нет 1С.

Порядок действий
  1. 1
    Откройте «Файл → Новый → Табличный документ»
  2. 2
    Введите данные в ячейки, объедините нужные диапазоны
  3. 3
    Настройте шрифты, границы и заливку через контекстное меню
  4. 4
    Сохраните файл в формате MXL или экспортируйте в XLSX/PDF
  5. 5
    Откройте сохранённый файл и проверьте, что оформление не «поехало»

Табличный документ как макет в конфигураторе

Если таблица нужна как шаблон для печатной формы или отчёта, её создают в конфигураторе. Откройте конфигурацию, найдите нужный объект (например, документ «Реализация товаров»), перейдите на вкладку «Макеты» и нажмите «Добавить» → «Табличный документ». В редакторе макета выделяйте области, задавайте имена областей и вставляйте параметры вида [НаименованиеТовара] — они будут заполняться данными при формировании печатной формы.

Как создать таблицу значений программно

Таблица значений создаётся только кодом на встроенном языке. Минимальный пример: объявляем таблицу, добавляем колонки с указанием типа данных и заполняем строки.

Таблица = Новый ТаблицаЗначений;

Таблица.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)));

Таблица.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));

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

НоваяСтрока = Таблица.Добавить();

НоваяСтрока.Номенклатура = "Товар 1";

НоваяСтрока.Количество = 5;

НоваяСтрока.Сумма = 1250.50;

На практике таблицу значений чаще получают из запроса методом Запрос.Выполнить().Выгрузить() — тогда структура колонок формируется автоматически по полям запроса. Дальше с таблицей работают методами Найти(), НайтиСтроки(), Сортировать(), Свернуть(), Итог().

Важно помнить: метод Свернуть() изменяет саму таблицу, удаляя детальные строки. Если исходные данные ещё понадобятся, сначала сделайте копию через Таблица.Скопировать().

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

Как добавить табличную часть к справочнику или документу

Табличная часть создаётся только в конфигураторе и требует прав на изменение структуры конфигурации. Откройте конфигуратор, найдите нужный объект в дереве конфигурации, раскройте его ветку, щёлкните правой кнопкой по пункту «Табличные части» и выберите «Добавить».

Задайте имя табличной части (например, «Товары» или «Сотрудники»), затем добавьте реквизиты — это колонки таблицы: номенклатура, количество, цена, сумма. Для каждого реквизита укажите тип: строка, число, ссылка на справочник. После этого обновите конфигурацию базы данных клавишей F7 и подтвердите реструктуризацию.

Чтобы табличная часть появилась на форме объекта, откройте форму документа и перетащите табличную часть из панели реквизитов в дерево элементов формы. В управляемых формах платформа часто делает это автоматически при обновлении формы.

Заполнение табличной части программно

В коде к строкам табличной части обращаются как к коллекции: Документ.Товары.Добавить() создаёт новую строку, далее заполняются её реквизиты. Для перебора строк используется цикл Для Каждого Строка Из Документ.Товары Цикл. После изменений не забудьте записать объект методом Записать(), иначе данные не сохранятся в базе.

Проверка результата и типичные ошибки

После создания таблицы любого типа убедитесь, что она работает так, как задумано. Для табличного документа — откройте сохранённый файл и проверьте оформление. Для таблицы значений — выведите количество строк через Сообщить(Таблица.Количество()) или посмотрите содержимое в отладчике. Для табличной части — создайте тестовый документ в режиме предприятия и добавьте несколько строк.

Контрольные точки

Как проверить результат

Табличный документ
Норма

Файл открывается, ячейки и оформление на месте

Тревожный признак

Пустой лист или сбитое форматирование после сохранения

Таблица значений
Норма

Количество() возвращает ожидаемое число строк, колонки доступны по именам

Тревожный признак

Ошибка «Поле не обнаружено» — имя колонки указано с опечаткой

Табличная часть
Норма

Строки добавляются в форме и сохраняются после записи документа

Тревожный признак

Табличная часть не видна на форме или данные пропадают после записи

Типичные ошибки
01
Добавление колонки без типа, а затем попытка свернуть таблицу по ней — итоги считаются некорректно из-за смешанных типов
02
Обращение к колонке таблицы значений по имени с опечаткой — ошибка «Поле объекта не обнаружено» в момент выполнения
03
Забытый метод Записать() после заполнения табличной части — введённые строки теряются
04
Добавление табличной части в рабочую базу без копии — при сбое реструктуризации данные объекта могут быть повреждены
05
Использование табличного документа для хранения данных — он не предназначен для учёта, информацию из него сложно обработать программно

Частые вопросы о создании таблиц в 1С

Можно ли создать таблицу в 1С без конфигуратора?

Да — табличный документ создаётся в режиме предприятия через «Файл → Новый». А вот таблицу значений и табличную часть без конфигуратора или внешней обработки создать нельзя: первая требует исполнения кода, вторая — изменения структуры конфигурации.

Чем таблица значений отличается от табличной части?

Таблица значений — временная структура в памяти для обработки данных в коде, она исчезает после завершения процедуры. Табличная часть — постоянная структура, привязанная к справочнику или документу, её строки хранятся в базе данных вместе с объектом.

Как вывести таблицу значений на экран пользователю?

Создайте на форме обработки или отчёта реквизит типа «ТаблицаЗначений», добавьте в него колонки и перетащите реквизит в дерево элементов формы — платформа отобразит табличное поле. Затем заполните реквизит данными в коде.

Можно ли загрузить данные из Excel в таблицу 1С?

Да, но штатного универсального загрузчика в платформе нет. Обычно используют типовые обработки загрузки данных из табличного документа (входят во многие конфигурации) или читают файл программно через COM-объект Excel либо через сохранение листа как табличного документа MXL.

Почему после добавления табличной части пользователи её не видят?

Чаще всего не обновлена форма объекта — табличную часть нужно вручную добавить в элементы формы. Также проверьте права доступа: роль пользователя должна включать права на просмотр и редактирование соответствующего объекта; при необходимости обновите роли и перезапустите сеанс пользователя.

Итог

Что важно запомнить

Определите тип таблицы по задаче: табличный документ — для печати и просмотра, таблица значений — для обработки данных в коде, табличная часть — для хранения строк в объекте. Изменения структуры конфигурации делайте только на копии базы. После создания всегда проверяйте результат: откройте файл, посчитайте строки или заполните тестовый документ.