Разработка и Конфигурация · 8 мин
Что такое ТЧ в 1С и как с ней работать
ТЧ в 1С — это табличная часть документа или справочника. Разбираем, где она находится, как заполнить, изменить и обратиться к ней программно.
ТЧ в 1С — сокращение от «табличная часть». Так называют встроенную таблицу внутри документа, справочника или другого объекта конфигурации, которая хранит список однотипных строк. Классический пример — документ «Реализация товаров и услуг»: шапка содержит контрагента, дату и договор, а табличная часть «Товары» — перечень номенклатуры с количеством, ценой и суммой по каждой позиции.
Термин используют и пользователи, и разработчики, но с разным смыслом. Для пользователя ТЧ — это просто таблица на форме, которую нужно заполнить. Для программиста — коллекция строк объекта, к которой обращаются через код встроенного языка: Документ.Товары. Понимание устройства табличных частей помогает правильно заполнять документы, искать ошибки в данных и дорабатывать конфигурацию.
Табличные части есть не только у документов. Они встречаются у справочников (например, «Спецификации» у номенклатуры), у планов видов характеристик и ряда других объектов. У одного объекта может быть несколько табличных частей — например, у «Реализации» это «Товары», «Услуги» и «Возвратная тара» в типовых конфигурациях.
Где находится табличная часть и как её увидеть
На форме документа табличная часть выглядит как обычная таблица с колонками и кнопками «Добавить», «Подобрать», «Удалить». В типовых конфигурациях она расположена под реквизитами шапки или на отдельной вкладке. Если документ содержит несколько табличных частей, они обычно разнесены по закладкам — например, «Товары» и «Услуги».
В конфигураторе список табличных частей виден в дереве метаданных: откройте нужный документ или справочник и разверните ветку «Табличные части». Там же задаются колонки — реквизиты табличной части с типами данных: число, строка, ссылка на справочник и так далее.
Если вы работаете в пользовательском режиме и не видите привычной таблицы, проверьте настройки формы: через меню «Ещё» — «Изменить форму» можно включить отображение скрытой табличной части или нужной колонки. Это безопасная операция, она меняет только внешний вид формы, а не данные.
Как заполнить табличную часть в пользовательском режиме
Самый простой способ — построчное добавление: нажмите «Добавить» и заполните колонки. При выборе номенклатуры типовые конфигурации обычно подставляют цену, ставку НДС и единицу измерения автоматически, если эти данные заданы в карточке товара и настройках документа.
Для больших перечней удобнее кнопка «Подобрать»: открывается форма подбора, где можно выбрать сразу несколько позиций, и они попадут в табличную часть одним действием. Во многих конфигурациях доступна загрузка из файла Excel или буфера обмена — ищите команду «Загрузить» или «Заполнить» в меню табличной части.
- 1Откройте документ и перейдите на вкладку с нужной табличной частью
- 2Нажмите «Подобрать» или «Добавить» и выберите позиции
- 3Проверьте автоматически подставленные цены, количество и ставки НДС
- 4При необходимости скорректируйте итоги вручную и запишите документ
После заполнения сверьте итоговые суммы внизу таблицы с ожидаемыми значениями. Расхождение итога с суммой по строкам чаще всего означает ручную правку итоговой суммы или ошибку округления в какой-то из строк.
Табличная часть и реквизиты шапки: в чём разница
Реквизиты шапки описывают объект в целом: дата, номер, контрагент, организация, склад. Они одни на весь документ. Табличная часть описывает переменный список позиций, количество которых заранее неизвестно. Именно поэтому список товаров нельзя сделать обычными реквизитами — число колонок было бы фиксированным.
Важное следствие: при проведении документа движения по регистрам формируются обычно по строкам табличной части. Если строка заполнена с ошибкой — неверный склад, лишняя позиция, нулевое количество — ошибка уйдёт в учёт. Поэтому контроль ТЧ перед проведением важнее, чем контроль шапки.
Как обратиться к табличной части программно
Во встроенном языке табличная часть доступна как свойство объекта по её имени. Например, перебор строк документа «Реализация товаров и услуг» выглядит так:
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.Сумма = СтрокаТЧ.Количество * СтрокаТЧ.Цена;
КонецЦикла;
Типичные операции: добавление строки методом Добавить(), поиск методом Найти() или НайтиСтроки(), очистка методом Очистить(), подсчёт итога методом Итог("Сумма"). Для выгрузки данных в таблицу значений используется метод Выгрузить(), для загрузки обратно — Загрузить().
КоличествоСтрок = Объект.Товары.Количество();
ИтогоПоДокументу = Объект.Товары.Итог("Сумма");При работе с объектом через менеджер (например, Документы.РеализацияТоваровУслуг.СоздатьДокумент()) изменения табличной части сохранятся только после вызова метода Записать(). Если обработка формирует движения, потребуется запись в режиме проведения.
Типичные ошибки при работе с ТЧ
Чаще всего пользователи сталкиваются с дублями строк: одна и та же номенклатура добавлена дважды с разным количеством. При проведении это даёт завышенные движения. Проверить дубли можно сортировкой по колонке номенклатуры или отчётом по документу.
Вторая частая проблема — незаполненные обязательные колонки: пустое количество, неуказанный склад или счёт учёта. Типовые конфигурации при проведении выводят сообщения об ошибках с указанием номера строки — ориентируйтесь на него, нумерация в сообщении совпадает с номером строки табличной части.
Как проверить корректность табличной части
Минимальная проверка перед проведением: итог по колонке суммы равен сумме документа, в каждой строке заполнены обязательные колонки, нет дублей позиций. В типовых конфигурациях часть этих проверок выполняется автоматически при проведении, но полагаться только на них не стоит — сообщение об ошибке появится уже в момент записи.
Как проверить результат
Совпадает с итоговой суммой документа
Расхождение — значит, итог правили вручную или есть ошибка округления
Каждая позиция встречается один раз
Дубли строк с одинаковым товаром
Заполнены, больше нуля
Нулевые или пустые значения — документ не проведётся или проведётся неверно
Для массовой проверки большого числа документов удобно использовать групповое перепроведение или встроенные отчёты по учёту: расхождение между данными документа и регистрами видно по оборотам.
FAQ: частые вопросы о табличных частях
Может ли у одного документа быть несколько табличных частей?
Да. Например, у документа реализации в типовых конфигурациях обычно есть отдельные табличные части для товаров и услуг. Каждая хранится и заполняется независимо, но все принадлежат одному документу и проводятся вместе с ним.
Чем табличная часть отличается от регистра сведений?
Табличная часть хранится только внутри своего объекта и недоступна без него. Регистр сведений — самостоятельная структура, данные которой можно читать и изменять отдельно, с отборами и периодичностью. Для списков, привязанных к документу, используют ТЧ; для независимых данных — регистры.
Как скопировать табличную часть из одного документа в другой?
В пользовательском режиме многие конфигурации поддерживают ввод документа на основании другого — табличная часть переносится автоматически. Программно используют методы Выгрузить() у исходного объекта и Загрузить() у целевого, при необходимости предварительно обработав выгруженную таблицу значений.
Почему при проведении пишет «в строке номер 2 не заполнено количество»?
Номер в сообщении — это номер строки табличной части. Откройте документ, найдите строку с этим номером в соответствующей табличной части и заполните указанную колонку. Если сообщение не указывает, какая именно ТЧ, проверьте все вкладки документа.
Можно ли восстановить удалённые строки табличной части?
Если документ не записан, достаточно закрыть его без сохранения. Если изменения записаны, штатной отмены нет — строки придётся восстанавливать вручную, из архивной копии базы или по данным движений, если документ был проведён до изменения.
Что важно запомнить
ТЧ — табличная часть объекта 1С: список однотипных строк внутри документа или справочника. Заполняйте её через подбор, проверяйте итоги и обязательные колонки до проведения, а программные изменения выполняйте с записью объекта и резервной копией.