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

Быстрый старт · 10 мин

Табличная часть в 1С: что это такое и как с ней работать

Что такое табличная часть в 1С, где она встречается, как заполнять и редактировать строки, работать с ней программно и исправлять типичные ошибки.

Табличная часть — это встроенная в объект 1С таблица, в которой хранится список однотипных строк: товары в накладной, сотрудники в приказе, этапы в договоре. Она не существует отдельно от «родителя»: у документа «Реализация товаров и услуг» табличная часть «Товары» живёт только внутри конкретного документа, и удалить её, не трогая сам документ, нельзя.

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

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

Что такое табличная часть и где она встречается

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

Встречаются табличные части почти везде:

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

Важно отличать табличную часть от табличного документа и таблицы значений. Табличный документ — это печатная форма (макет, похожий на Excel). Таблица значений — временная структура в памяти, которую программист создаёт для расчётов. Табличная часть, в отличие от них, постоянно хранится в базе данных вместе с объектом.

Как устроена табличная часть: строки, колонки, владелец

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

Объект-владелец и его табличные части сохраняются атомарно: при записи документа в базу одновременно записываются все его табличные части. Если документ не записан, изменения в строках тоже не сохранятся. Поэтому после редактирования строк всегда нужно нажимать «Записать» или «Провести» — иначе при закрытии формы программа спросит о сохранении, а при отказе данные пропадут.

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

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

Базовый способ — ручное добавление строк. Нажмите «Добавить» (или клавишу Insert), в новой строке заполните колонки: выберите номенклатуру из справочника, введите количество и цену. Сумма обычно рассчитывается автоматически, как и НДС, если ставка указана.

Быстрее работает кнопка «Подбор»: открывается форма списка номенклатуры, где можно двойным щелчком или кнопкой «Перенести» добавлять позиции, не закрывая окно. Это удобно при большом количестве строк — не нужно каждый раз открывать выбор заново.

Порядок заполнения табличной части
  1. 1
    Откройте документ и перейдите на вкладку с нужной табличной частью
  2. 2
    Добавьте строки кнопкой «Добавить» или через «Подбор»
  3. 3
    Заполните обязательные колонки: номенклатура, количество, цена, ставка НДС
  4. 4
    Проверьте автоматически рассчитанные суммы и итог по документу
  5. 5
    Нажмите «Провести» и убедитесь, что программа не выдала сообщений об ошибках

Дополнительные приёмы, которые экономят время:

  • копирование строки — выделите строку и нажмите F9 или кнопку «Скопировать»;
  • множественное выделение — с Ctrl или Shift можно удалить сразу несколько строк;
  • загрузка из файла — во многих конфигурациях есть обработка «Загрузка данных из табличного документа» для массового импорта строк из Excel;
  • команда «Заполнить» — в ряде документов табличная часть заполняется автоматически по основанию (например, по заказу или остаткам).

Как работать с табличной частью программно

Во встроенном языке 1С табличная часть доступна как свойство объекта. Типовые операции — добавление строки, перебор строк в цикле, поиск и удаление. Ниже примеры для документа.

bsl
// Добавление строки
НоваяСтрока = ДокументОбъект.Товары.Добавить();
НоваяСтрока.Номенклатура = НоменклатураСсылка;
НоваяСтрока.Количество = 2;
НоваяСтрока.Цена = 1500;

// Перебор строк
Для Каждого СтрокаТовары Из ДокументОбъект.Товары Цикл
    СуммаСтроки = СтрокаТовары.Количество * СтрокаТовары.Цена;
КонецЦикла;

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

ДокументОбъект.Записать();

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

Для выгрузки табличной части в таблицу значений используется метод Выгрузить(), для загрузки обратно — Загрузить(ТаблицаЗначений). Это стандартный приём при обмене данными и в обработках заполнения.

Типичные ошибки и как их исправить

Самая частая проблема — документ не проводится из-за ошибки в строке табличной части. Программа выдаёт сообщение вида «В строке номер 3 не заполнена колонка Номенклатура». Решение: открыть указанную строку и заполнить обязательное поле. Номер строки в сообщении соответствует колонке «N» в таблице на форме.

Вторая группа ошибок — расхождение сумм. Например, сумма по строкам не сходится с суммой в шапке или с печатной формой. Причины: ручное изменение суммы после пересчёта цены, округление НДС, строка с нулевым количеством. Проверяйте каждую строку: умножьте количество на цену и сравните с суммой.

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

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

После заполнения или изменения табличной части выполните короткую проверку, прежде чем считать работу завершённой. Это занимает меньше минуты, но защищает от ошибок в учёте.

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

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

Итоговая сумма документа
Норма

Совпадает с суммой в первичном документе или расчёте

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

Расхождение — ищите строку с неверной ценой или количеством

Проведение документа
Норма

Документ проводится без сообщений об ошибках

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

Сообщение с номером строки — заполните обязательные колонки

Печатная форма
Норма

Все строки выводятся, суммы совпадают с формой документа

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

Строки обрезаны или суммы отличаются — проверьте данные и макет

Движения по регистрам
Норма

После перепроведения остатки и обороты корректны

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

Остатки не изменились — документ не был перепроведён

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

Частые вопросы о табличных частях 1С

Можно ли добавить свою колонку в табличную часть документа?

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

Почему кнопка «Добавить» неактивна в табличной части?

Чаще всего документ проведён и открыт в режиме просмотра, либо у пользователя нет прав на изменение. Также форма может блокировать редактирование, если документ создан на основании другого и заполняется только автоматически. Проверьте статус документа и права доступа.

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

В пользовательском режиме — через создание на основании (кнопка «Создать на основании») или копирование документа целиком (F9 в списке). Программно — выгрузить табличную часть в таблицу значений методом Выгрузить() и загрузить в другой объект методом Загрузить().

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

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

Можно ли восстановить случайно удалённые строки табличной части?

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

Итог

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

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