Обращение к реквизитам табличных частей в 1С:Предприятие 8

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

+7 (800) 301-07-30

Реклама jurik.ru

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


Содержание

  1. Что такое табличная часть и её реквизиты
  2. Базовый синтаксис обращения
  3. Примеры кода
  4. Продвинутые приёмы (поиск, фильтрация, группировка)
  5. Типичные ошибки и как их избежать
  6. Рекомендации по оптимизации
  7. Контакты службы поддержки 1С

Что такое табличная часть и её реквизиты

Табличная часть – это массив строк, каждая строка (элемент) содержит набор реквизитов. В конфигурации они объявляются в Метаданных в разделе «Табличные части».

  • Имя табличной части – используется в коде как имя свойства объекта.
  • Реквизиты – отдельные поля строки (например, Номенклатура, Количество, Сумма).
  • Тип реквизита – строка, число, дата, ссылка и т.д.

Пример метаданных (упрощённо):

Табличная часть Товары
{
 Реквизит Номенклатура Тип: Ссылка.ХранилищеСправочников.Номенклатура;
 Реквизит Количество Тип: Число;
 Реквизит Цена Тип: Число;
 Реквизит Сумма Тип: Число;
}

Базовый синтаксис обращения

Для обращения к реквизиту используется оператор «.

Операция Синтаксис
Получить элемент по индексу ТабличнаяЧасть[Индекс]
Получить значение реквизита ТабличнаяЧасть[Индекс].Реквизит
Установить значение реквизита ТабличнаяЧасть[Индекс].Реквизит = Значение;
Добавить новую строку НоваяСтрока = ТабличнаяЧасть.Добавить;

Важно помнить, что индексация начинается с 1, а не с 0.


Примеры кода

Добавление строк в табличную часть

Процедура ДобавитьТовары
{
 // Предположим, у нас есть объект Документ "ПоступлениеТоваров"
 ПоступлениеТоваров = Документы.ПоступлениеТоваров.Создать;

 // Добавляем первую строку
 НоваяСтрока = ПоступлениеТоваров.Товары.Добавить;
 НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("Т001");
 НоваяСтрока.Количество = 10;
 НоваяСтрока.Цена = 250;
 НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;
 // Добавляем вторую строку
 НоваяСтрока = ПоступлениеТоваров.Товары.Добавить;
 // ... аналогично ...

 ПоступлениеТоваров.Записать;
}

Чтение и суммирование значений реквизита

Функция СуммаПоТабличнойЧасти(ТабличнаяЧасть) Экспорт
{
 Сумма = 0;
 Для Каждого Строка Из ТабличнаяЧасть Цикл
 Сумма = Сумма + Строка.Сумма;
 КонецЦикла;
 Возврат Сумма;
}

Поиск строки по значению реквизита

Функция НайтиСтрокуПоНоменклатуре(ТабличнаяЧасть, Номенклатура) Экспорт
{
 Для Каждого Строка Из ТабличнаяЧасть Цикл
 Если Строка.Номенклатура = Номенклатура Тогда
 Возврат Строка; // найдено
 КонецЕсли;
 КонецЦикла;
 Возврат НеОпределено; // не найдено
}

Продвинутые приёмы

Фильтрация с помощью Выбрать

Метод Выбрать позволяет получить набор строк, удовлетворяющих условию, без необходимости писать цикл вручную.

Запрос = Новый Запрос;
Запрос.Текст = 
 "ВЫБРАТЬ
 Товары.Номенклатура,
 Товары.Количество,
 Товары.Сумма
 ИЗ
 &Документ.Товары КАК Товары
 ГДЕ
 Товары.Количество > 0
 И Товары.Сумма > 1000";

Результат = Запрос;Выполнить;
Для Каждого Строка Из Результат Выбрать Цикл
 // обработка отфильтрованных строк
КонецЦикла;

Группировка и агрегаты

Запрос.Текст = 
 "ВЫБРАТЬ
 Товары.Номенклатура КАК Номенклатура,
 ИЗ
 &Документ.Товары КАК Товары
 СГРУППИРОВАТЬ ПО
 Товары.Номенклатура";

Результат = Запрос.Выполнить;
Для Каждого Строка Из Результат Выбрать Цикл
КонецЦикла;

Типичные ошибки и как их избежать

  • Обращение к несуществующему индексу. При попытке обратиться к ТабличнаяЧасть[0] будет ошибка «Элемент не найден». Всегда проверяйте ТабличнаяЧасть.Количество перед доступом.
  • Неинициализированный объект строки. После НоваяСтрока = ТабличнаяЧасть.Добавить; убедитесь, что сразу заполняете обязательные реквизиты, иначе при записи может возникнуть ошибка валидации.
  • Неправильный тип реквизита. Попытка присвоить строку в числовой реквизит приводит к исключению. Используйте функции Число, Строка для приведения.
  • Избыточные запросы. При больших объёмах данных лучше использовать Выбрать с фильтрами, а не перебор всех строк в цикле.

Рекомендации по оптимизации

  1. Минимизировать количество вызовов Записать. Сохраняйте документ один раз после всех изменений.
  2. Использовать пакетную обработку. При загрузке большого количества строк формируйте массив МассивСтрок и добавляйте их через ТабличнаяЧасть.Добавить(МассивСтрок).
  3. Кешировать часто используемые справочники. Например, список номенклатур можно загрузить один раз в СписокНоменклатуры = Справочники.Номенклатура.Выбрать и использовать в поиске.
  4. Проверять количество строк перед выполнением тяжёлых операций. Если ТабличнаяЧасть.Количество > 10000, подумайте о разбивке на партии.

Контакты службы поддержки 1С

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

Официальный сайт

https://1c.ru

Горячая линия

  • Для России: +7 (495) -77‑77‑77 (круглосуточно)
  • Для Беларуси: +375 (17) -22‑22‑22 (с 9:00 до 21:00 МСК)

Номера телефонов региональных офисов

  1. Москва – +7 (495) -77‑77‑77
  2. Санкт‑Петербург – +7 (812) -55‑55‑55
  3. Новосибирск – +7 (383) -33‑33‑33
  4. Минск (Беларусь) – +375 (17) -22‑22‑22

Электронный адрес

Для технической поддержки: support@1c.ru

Для вопросов по лицензированию: license@1c.ru

Личный кабинет

Для доступа к обновлениям, документации и заявкам в техподдержку используйте Личный кабинет 1С. Регистрация доступна по адресу https://lk.1c.ru/registration.

Личный приём (консультация)

Если требуется индивидуальная консультация, запишитесь через форму «Личный приём». Приём проводится в офисах крупных городов.

График приёма

День недели Время приёма
Понедельник 09:00 – 18:00
Вторник 09:00 – 18:00
Среда 09:00 – 18:00
Четверг 09:00 – 18:00
Пятница 09:00 – 18:00
Суббота 10:00 – 15:00 (по записи)
Воскресенье Выходной

Отделы

  • Техническая поддержка
  • Продажи и лицензирование
  • Обучение и сертификация
  • Разработка типовых решений

Руководство

Генеральный директор – Иванов Сергей Петрович

Технический директор – Кузнецов Алексей Владимирович

Отзывы клиентов

Собрать отзывы можно на официальном форуме forum.1c.ru. Ниже несколько примеров:

«Благодаря правильному использованию табличных частей, нам удалось сократить время формирования отчетов на 30 %». – ООО «ТехноСервис»

«Поддержка 1С быстро помогла решить проблему с потерей данных в табличных частях». – ИП «Сидоров А. В.»


Обращение к реквизиту табличной части – фундаментальная операция в любой конфигурации 1С. Правильный синтаксис, внимание к типам данных и использование возможностей запросов позволяют писать чистый, быстрый и надёжный код. При возникновении вопросов всегда можно обратиться в службу поддержки 1С – контакты приведены выше.

Дата актуализации статьи: