Разработка и Конфигурация · 10 мин
Для чего нужны табличные части в 1С и как с ними работать
Для чего нужны табличные части в 1С: структура, различия от реквизитов, типовые сценарии в документах и справочниках, ошибки и советы по работе.
Табличная часть — это способ хранить внутри одного объекта 1С (документа, справочника, обработки) список однотипных строк: товары в накладной, сотрудники в приказе, этапы работ в договоре. Без табличных частей каждую строку пришлось бы оформлять отдельным документом или выдумывать реквизиты вида «Товар1», «Товар2», «Товар3», что быстро упирается в ограничения и делает учёт неудобным.
Логика проста: шапка объекта хранит общие данные (дату, контрагента, склад, организацию), а табличная часть — переменное количество строк с одинаковым набором колонок (номенклатура, количество, цена, сумма). Одна строка табличной части физически не существует без родительского объекта: удалите документ — удалятся и все его строки.
Что такое табличная часть и как она устроена
Табличная часть состоит из колонок (реквизитов табличной части) и строк. У каждой строки есть автоматический номер, а колонки могут быть любых типов: ссылки на справочники, числа, даты, строки, булево. Например, в документе «Реализация товаров и услуг» табличная часть «Товары» содержит колонки «Номенклатура», «Количество», «Цена», «Сумма», «Ставка НДС».
У одного объекта может быть несколько табличных частей. Та же реализация обычно содержит «Товары», «Услуги» и иногда «Серии» или «Агентские услуги». Это позволяет разделить разнородные данные внутри одного документа: товары проводятся по складским регистрам, услуги — только по регистрам продаж.
На уровне базы данных табличная часть хранится в отдельной таблице, связанной с родительским объектом по ссылке. Поэтому платформа эффективно работает даже с документами на тысячи строк, а запросы позволяют обращаться к табличным частям как к обычным таблицам.
Чем табличная часть отличается от реквизитов и регистров
Новички часто путают три механизма хранения данных. Реквизит шапки хранит одно значение на объект — одну дату, одного контрагента. Табличная часть хранит множество строк внутри объекта. Регистр (сведений или накопления) хранит данные, разнесённые по периодам или объектам, и не привязан жёстко к одному документу.
| Критерий | Реквизит шапки | Табличная часть | Регистр |
|---|---|---|---|
| Количество значений | Одно на объект | Сколько угодно строк | Сколько угодно записей |
| Привязка | К объекту | Только к своему объекту | К измерениям, периоду, регистратору |
| Жизнь без родителя | Нет | Нет | Да (записи могут жить отдельно) |
| Типичное применение | Дата, контрагент, склад | Товары, услуги, сотрудники | Остатки, обороты, курсы валют |
Правило выбора: если данные повторяются строками внутри одного документа — это табличная часть. Если данные должны накапливаться, суммироваться и анализироваться по разным документам — это регистр. Табличная часть — источник данных, регистр — место их учёта после проведения.
Типовые сценарии использования
Товары и услуги в документах
Самый частый сценарий — список позиций в документах купли-продажи: поступление, реализация, счёт на оплату, заказ. Пользователь добавляет строки, указывает номенклатуру и количество, а механизмы конфигурации автоматически рассчитывают сумму, НДС и итог по документу. Именно табличная часть позволяет одной кнопкой «Подбор» добавить сразу десятки позиций.
Сотрудники и начисления в кадровых документах
В зарплатных конфигурациях табличные части хранят списки сотрудников в приказах о приёме, отпусках, премиях, а также расшифровки начислений и удержаний в документах расчёта. Один документ «Начисление зарплаты» может содержать сотни строк — по одной на каждого сотрудника.
Составные данные в справочниках
Табличные части есть и у справочников: например, у элемента «Номенклатура» может храниться список единиц измерения или штрихкодов, у контрагента — контактные лица. Это удобно, когда данные не имеют самостоятельной жизни и нужны только в контексте владельца.
Строки позиций с количеством и ценой — классический случай
Это данные регистра накопления, а не табличной части
Часто выносят в регистр сведений, чтобы искать без открытия карточки
Список привязан к одному контрагенту и не нужен отдельно
Как работать с табличной частью пользователю
В форме документа строки добавляются кнопкой «Добавить», клавишей Insert или механизмом подбора. Многие конфигурации поддерживают вставку из буфера обмена: можно скопировать колонки из Excel и вставить прямо в табличную часть, если форма это позволяет. Для больших списков удобны сортировка по колонке, поиск по строке (Ctrl+F) и групповое изменение цен или ставок через кнопку «Изменить».
- 1Откройте документ и заполните шапку: организацию, контрагента, склад
- 2Нажмите «Добавить» или «Подбор» на панели табличной части
- 3Выберите номенклатуру, укажите количество и цену
- 4Проверьте автоматически рассчитанные сумму и НДС
- 5Сверьте итог по документу с первичным документом поставщика
- 6Проведите документ и убедитесь в отсутствии сообщений об ошибках
Признак корректного заполнения — совпадение итоговой суммы документа с бумажным или электронным первичным документом и отсутствие ошибок при проведении. Если программа сообщает о незаполненных колонках, проверьте строки с пустой номенклатурой или нулевым количеством: их проще удалить, чем оставлять «мусор».
Работа с табличными частями в коде и запросах
Разработчику табличная часть доступна как коллекция строк. Типовые операции: перебор в цикле, поиск строк по условию, добавление и удаление строк, итог по колонке методом Итог().
Для Каждого СтрокаТовара Из Объект.Товары Цикл
СтрокаТовара.Сумма = СтрокаТовара.Количество * СтрокаТовара.Цена;
КонецЦикла;
ИтогоПоДокументу = Объект.Товары.Итог("Сумма");
В запросах табличная часть обращается через точку: Документ.РеализацияТоваровУслуг.Товары. При соединении шапки с табличной частью используют связь по полю «Ссылка». Важно помнить: выборка из табличной части возвращает строки, а не сам документ, поэтому для получения даты или контрагента нужно обращаться к полям ссылки.
ВЫБРАТЬ Товары.Номенклатура, Товары.Количество, Товары.Ссылка.Дата КАК ДатаДокумента ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Товары ГДЕ Товары.Ссылка = &СсылкаОграничения и типичные ошибки
Табличная часть не заменяет регистры. Если разместить в табличной части данные, которые нужно анализировать накопительно (остатки, задолженность по периодам), отчёты придётся строить долгими запросами по всем документам. Обратная ошибка — вынос в регистр того, что логично хранить строками документа, что усложняет ввод и проверку.
Как выбрать: табличная часть или другой механизм
Как выбрать механизм хранения
Как проверить результат
Совпадает с первичным документом
Расходится — ищите пропущенные или лишние строки
Проходит без сообщений об ошибках
Сообщения о незаполненных колонках или отрицательных остатках
Все позиции выведены с корректными суммами
Пустые строки, нулевые суммы, дубли позиций
Количество записей соответствует строкам табличной части
Строки есть, а движений нет — документ не перепроведён
Частые вопросы о табличных частях
Можно ли скопировать табличную часть из одного документа в другой?
Да. В пользовательском режиме многие конфигурации предлагают кнопку «Заполнить» или «Скопировать строки». Программно используют методы Загрузить() и Выгрузить(): выгрузить табличную часть источника в таблицу значений и загрузить её в приёмник. Состав колонок при этом должен совпадать.
Есть ли ограничение на количество строк в табличной части?
Жёсткого практического лимита для обычной работы нет, документы на тысячи строк — обычное дело. Однако очень большие табличные части замедляют открытие формы и проведение, поэтому документы на десятки тысяч строк лучше разбивать на несколько.
Что происходит со строками при копировании документа?
При копировании документа копируются и все его табличные части — новый документ получает те же строки. Это удобно для повторяющихся отгрузок: скопируйте прошлый документ, поменяйте дату и скорректируйте количество.
Почему в отчёте нет данных, хотя табличная часть заполнена?
Отчёты строятся по регистрам, а не по табличным частям. Если документ не проведён или проведён с ошибкой, движения в регистры не попали. Проверьте статус проведения и наличие движений в форме документа.
Может ли справочник иметь табличную часть?
Да, справочники поддерживают табличные части наравне с документами. Типичный пример — список единиц измерения у номенклатуры или состав комплекта. Строки так же удаляются вместе с элементом справочника.
Что важно запомнить
Табличная часть хранит список однотипных строк внутри одного объекта: товары в накладной, сотрудников в приказе, услуги в акте. Шапка отвечает за общие данные, табличная часть — за позиции, регистры — за накопление и аналитику. Любые массовые изменения табличных частей делайте только после резервной копии и с перепроведением документов.