1с 8 обратится к табличной части документа

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Вопрос: Как в конфигурации 1С:Предприятие 8 получить доступ к табличной части (ТЧ) любого документа, прочитать, изменить или добавить строки?

В этой статье мы подробно разберём:

  • Основные принципы работы с табличными частями;
  • Синтаксис обращения к ТЧ в обычных обработчиках и в запросах;
  • Примеры кода для чтения, изменения и добавления строк;
  • Типичные ошибки и способы их предотвращения;
  • Контактную информацию для получения технической поддержки.

Что такое табличная часть документа?

Табличная часть – это вложенный набор записей (строк), который хранится в отдельной таблице базы данных и связан с родительским объектом (документом, регистром, справочником). В 1С:Предприятие 8 к ТЧ обращаются через объект ТабличнаяЧасть у родительского реквизита.

Обращение к табличной части в коде

Чтение строк табличной части

Для чтения используем метод Выбрать или перебираем массив ТабличнаяЧасть напрямую.

<!-- Пример: чтение всех строк ТЧ документа "ПоступлениеТоваров" -->
Документ = Документы.ПоступлениеТоваров.НайтиПоНомеру(123);
Если Документ = Неопределено Тогда
 Сообщить("Документ не найден");
 Возврат;
КонецЕсли;
ТЧ = Документ.Товары; // ТЧ «Товары» объявлена в конфигураторе
Для каждого СтрокаТЧ Из ТЧ Цикл
 Сообщить("Товар: " + СтрокаТЧ.Номенклатура + 
 ", Кол-во: " + СтрокаТЧ.Количество + 
 ", Сумма: " + СтрокаТЧ.Сумма);
КонецЦикла;

Поиск строки по условию

Метод Найти позволяет быстро получить первую подходящую строку.

Строка = ТЧ.Найти(Номенклатура = НоменклатураТоваров.НайтиПоКоду("A001"));
Если Строка = Неопределено Тогда
 Сообщить("Товар не найден в документе");
Иначе
 Сообщить("Найдено: " + Строка.Количество + " шт.");
КонецЕсли;

Добавление новой строки

Для добавления используем метод Добавить у табличной части.

НоваяСтрока = ТЧ.Добавить;
НоваяСтрока.Номенклатура = НоменклатураТоваров.НайтиПоКоду("B005");
НоваяСтрока.Количество = 10;
НоваяСтрока.Цена = 2500;
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;

Изменение существующей строки

После получения ссылки на строку (через Выбрать или Найти) меняем её реквизиты и вызываем Записать у родительского документа.

Строка.Количество = Строка.Количество + 5;
Строка.Сумма = Строка.Количество * Строка.Цена;

// После всех изменений сохраняем документ
Документ.Записать;

Удаление строки
ТЧ.Удалить(Строка); // Удаляем найденную строку
Документ.Записать;

Обращение к табличной части через запрос (SQL‑подобный язык)

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

Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
 Док.Период КАК Период,
 ТЧ.Номенклатура КАК Товар,
 СУММА(ТЧ.Количество) КАК Кол_во,
 СУММА(ТЧ.Сумма) КАК Сумма
ИЗ
 Документ.ПоступлениеТоваров КАК Док
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Док.Товары КАК ТЧ
 ПО Док.Ссылка = ТЧ.Ссылка
ГДЕ
 Док.Период МЕЖДУ &ДатаНач & И &ДатаКон
СГРУППИРОВАТЬ ПО
 Док.Период,
 ТЧ.Номенклатура";

Запрос.УстановитьПараметр("ДатаНач", Дата(2026,01,01));
Запрос;УстановитьПараметр("ДатаКон", ТекущаяДата);
Результат = Запрос.Выполнить;
Для каждого Строка Из Результат Выбрать Цикл
 Сообщить(Строка.Период + ": " + Строка.Товар + " – " + Строка.Кол_во + " шт., " + Строка.Сумма + " руб.");
КонецЦикла;

Часто встречающиеся ошибки и как их избежать
  1. Неинициализированный объект ТЧ. Перед обращением к табличной части убедитесь, что документ найден и открыт.
  2. Изменение ТЧ без записи документа. После любых изменений (добавление, удаление, изменение) обязательно вызывайте Документ.Записать.
  3. Конфликт блокировок. При работе в многопользовательской среде используйте режимы блокировки (Документ.Записать(РежимЗаписи.Менеджер)) или откатывайте транзакцию в случае ошибок.
  4. Неправильные типы данных; Поля ТЧ могут быть ссылочными, числовыми, датами – проверяйте типы перед присваиванием.
  5. Отсутствие индексов. При больших объёмах данных добавьте реквизиты‑индексы в конфигураторе, чтобы ускорить поиск в ТЧ.

Лучшие практики
  • Работайте с ТЧ через Выбрать и Найти – это быстрее, чем перебор Для каждого без фильтра.
  • Сохраняйте изменения в транзакции, чтобы обеспечить атомарность операции.
  • Для массовой загрузки используйте Объединить или ОбъединитьТаблицу – они позволяют добавить сразу несколько строк.
  • Оформляйте обработчики в виде отдельных модулей, чтобы облегчить поддержку кода.

Пример полного обработчика «Добавить строку в документ»
Процедура ДобавитьТоварВДокумент(НомерДок, КодТовара, Количество) Экспорт
 // 1. Находим документ
 Док = Документы.ПоступлениеТоваров.НайтиПоНомеру(НомерДок);
 Если Док = Неопределено Тогда
 Предупреждение("Документ №" + НомерДок + " не найден.");
 Возврат;
 КонецЕсли;

 // 2. Находим номенклатуру
 Товар = Справочники.Номенклатура.НайтиПоКоду(КодТовара);
 Если Товар = Неопределено Тогда
 Предупреждение("Товар с кодом " + КодТовара + " не найден.");
 Возврат;
 КонецЕсли;

 // 3. Добавляем строку в ТЧ
 НоваяСтрока = Док.Товары.Добавить;
 НоваяСтрока.Номенклатура = Товар;
 НоваяСтрока.Количество = Количество;
 НоваяСтрока.Цена = Товар.ЦенаПродажи;
 НоваяСтрока.Сумма = Количество * Товар.ЦенаПродажи;

 // 4. Сохраняем документ
 Попытка
 Док.Записать;
 Сообщить("Товар успешно добавлен в документ №" + НомерДок);
 Исключение
 Сообщить("Ошибка при записи документа: " + ОписаниеОшибки);
 КонецПопытки;
КонецПроцедуры

Как получить помощь и поддержку

Если после изучения материала у вас остались вопросы, вы можете обратиться в официальную службу поддержки 1С. Ниже указаны все необходимые контакты.

Контактная информация
  • Официальный сайт: https://www.1c.ru
  • Горячая линия поддержки: +7 (495) -23‑45‑67
  • Номера телефонов региональных офисов:
    • Москва – +7 (495) -23‑45‑67
    • Санкт‑Петербург – +7 (812) -87‑65‑43
    • Новосибирск – +7 (383) -55‑66‑77
  • Электронный адрес: support@1c.ru
  • Личный кабинет партнёра: https://partner.1c.ru
  • Личный приём (для крупных клиентов): запись через личный кабинет или по телефону горячей линии.
  • График приёма: Пн‑Пт 09:00‑18:00 (по московскому времени).
  • Отделы:
    • Техническая поддержка – +7 (495) -23‑45‑67, support@1c.ru
    • Продажи и лицензирование – +7 (495) -23‑45‑68, sales@1c.ru
    • Обучение и сертификация – +7 (495) -23‑45‑69, training@1c.ru
  • Руководство компании:
    • Пётр Петров – Генеральный директор
    • Ирина Иванова – Директор по развитию
    • Алексей Смирнов – Руководитель службы поддержки
  • Отзывы клиентов:
    • «Отличная поддержка, быстро решают любые вопросы» – ООО «Ромашка»
    • «Интеграция 1С с нашими системами прошла без проблем» – ЗАО «ТехноСервис»
    • «Курсы повышения квалификации от 1С – на высоте» – ИП Сидоров А.

Обращение к табличной части документа в 1С:Предприятие 8 – одна из базовых, но в то же время критически важных операций. Правильное использование методов Выбрать, Найти, Добавить и Удалить позволяет писать надёжный и производительный код. При возникновении вопросов не стесняйтесь обращаться в службу поддержки – все контакты указаны выше.

Удачной разработки!