Табличные части справочников – это вложенные таблицы, позволяющие хранить произвольный набор строковых и числовых данных, связанных с отдельным элементом справочника. В отличие от обычных реквизитов, табличные части могут содержать множество записей, что делает их удобным инструментом для реализации сложных бизнес‑структур (ценовые листы, графики отпусков, параметры продукции и т.п.).
Что нужно знать перед обращением к табличной части
- Имя табличной части задаётся в конфигураторе и используется как имя свойства объекта.
- Табличная часть хранится в отдельной таблице БД, но в запросах её можно использовать как самостоятельный источник данных.
- В коде 1С доступ к строкам табличной части осуществляется через объект
ТаблицаЗначений(илиТабличнаяЧастьу объектов‑документов/справочников).
Обращение к табличной части через язык запросов
В конструкторе запросов (или в текстовом запросе) достаточно перетащить имя табличной части в поле Таблицы. После этого к полям табличной части можно обращаться как к обычным полям таблицы.
2.1 Пример запроса к табличной части справочника «Номенклатура»
ВЫБРАТЬ
Номенклатура.Ссылка КАК Справочник,
ТЧ_Характеристики.Наименование КАК Характеристика,
ТЧ_Характеристики.Значение КАК Значение
ИЗ
Справочник.Номенклатура КАК Номенклатура
// Перетаскиваем табличную часть «Характеристики» в список таблиц
ЛЕВОЕ СОЕДИНЕНИЕ ТЧ_Характеристики
КАК ТЧ_Характеристики
ПО ТЧ_Характеристики.Ссылка = Номенклатура.Ссылка
ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ
// Фильтруем только элементы, а не группы
В результате получаем список всех характеристик, привязанных к каждому элементу справочника.
2.2 Группировка и агрегатные функции
ВЫБРАТЬ
Номенклатура.Ссылка КАК Справочник,
СУММА(ТЧ_Характеристики.Значение) КАК СуммаЗначений
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ТЧ_Характеристики КАК ТЧ_Характеристики
ПО ТЧ_Характеристики.Ссылка = Номенклатура.Ссылка
ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
Запрос подсчитывает суммарное значение всех строк табличной части «Характеристики» для каждого элемента справочника.
Обращение к табличной части в программном коде (1С:Предприятие)
3.1 Чтение строк табличной части
// Предположим, что у справочника «Номенклатура» есть табличная часть «Характеристики».
Процедура ПримерЧтенияТЧ
// Выбираем элемент справочника
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Молоко");
Если Номенклатура = Неопределено Тогда
Сообщить("Элемент не найден");
Возврат;
КонецЕсли;
// Получаем доступ к табличной части
ТЧ = Номенклатура.Характеристики; // ТаблицаЗначений
// Перебираем строки
Для Каждого Строка Из ТЧ Цикл
Наименование = Строка.Наименование;
Значение = Строка.Значение;
Сообщить(Наименование + ": " + Формат(Значение, "ЧГ=0"));
КонецЦикла;
КонецПроцедуры
3.2 Добавление и изменение строк
Процедура ДобавитьХарактеристику(Элемент, Наименование, Значение)
ТЧ = Элемент.Характеристики; // ТаблицаЗначений
НоваяСтрока = ТЧ.Добавить;
НоваяСтрока.Наименование = Наименование;
НоваяСтрока.Значение = Значение;
// Сохраняем изменения в справочнике
Элемент.Записать;
КонецПроцедуры
// Пример вызова
Элемент = Справочники.Номенклатура.НайтиПоКоду("001");
Если Элемент <> Неопределено Тогда
ДобавитьХарактеристику(Элемент, "СрокГодности", 30);
КонецЕсли;
3.3 Удаление строк
Процедура УдалитьХарактеристику(Элемент, Наименование)
ТЧ = Элемент.Характеристики;
Для i = ТЧ.Количество По 1 Шаг -1 Цикл
Если ТЧ[i].Наименование = Наименование Тогда
ТЧ.Удалить(i);
КонецЕсли;
КонецЦикла;
Элемент.Записать;
КонецПроцедуры
Особенности работы с вложенными таблицами
- Индексация – в больших справочниках рекомендуется создавать индексы по полям, часто используемым в запросах (например,
СсылкаиНаименование). - Память – при работе с огромными табличными частями (тысячи строк) лучше использовать постраничный вывод в запросах (
ОБРЕЗАТЬ). - Транзакции – изменения в табличных частях следует выполнять внутри транзакций, чтобы избежать частичных записей.
- Валидация – в обработчике
ПередЗаписьюможно проверять уникальность комбинаций полей внутри табличной части.
Лучшие практики
- Если требуется часто использовать данные табличной части в отчетах, вынесите её в отдельный справочник и связывайте через ссылку – это ускорит запросы.
- Не храните в табличной части большие объёмы текста (используйте реквизит типа
Строкав справочнике). - Для массовой загрузки используйте метод
ЗагрузитьИзТаблицыЗначений– он значительно быстрее, чем построчное добавление. - Оформляйте имена табличных частей в едином стиле (например, «ТЧ_Характеристики»), чтобы облегчить поиск в запросах.
Часто задаваемые вопросы (FAQ)
6.1 Можно ли использовать табличную часть в качестве источника данных в ОбъектныйЗапрос?
Да; Табличную часть можно указать в разделе Таблицы запроса, как показано в примерах выше. При этом она будет вести себя как обычная таблица.
6.2 Как получить текущую (выбранную) строку табличной части в форме?
В обработчике формы используйте ЭлементыФормы.ИмяТЧ.ВыбранныеЭлементы или ЭлементыФормы.ИмяТЧ.ТекущаяСтрока.
6.3 Что делать, если запрос к табличной части возвращает пустой набор?
Проверьте:
- Корректность имени табличной части в запросе.
- Наличие строк в самой табличной части (можно открыть справочник в конфигураторе и посмотреть данные).
- Условия
ГДЕ– они могут отфильтровать все записи.
6.4 Как объединить данные из нескольких табличных частей разных справочников?
Создайте запрос с несколькими ЛЕВОЕ СОЕДИНЕНИЕ или используйте ОБЪЕДИНИТЬ (UNION) для объединения результатов.
Контактная информация для получения помощи
Официальный сайт
https://support-1c.example.com
Горячая линия
Телефон: +7 (495) -23‑45‑67 (круглосуточно)
Номера телефонов отдела технической поддержки
- Москва: +7 (495) -23‑45‑67 доб. 101
- Санкт‑Петербург: +7 (812) -55‑66‑77 доб. 202
- Региональный центр (Россия): +7 (800) -00‑30‑40
Электронный адрес
support@1c.example.com
Личный кабинет пользователя
Перейдите по ссылке https://support-1c.example.com/cabinet и авторизуйтесь с помощью вашего логина и пароля.
Личный прием специалистов
Для записи на личный прием заполните форму записи на приём или позвоните по телефону горячей линии.
График приёма
- Пн‑Пт: 09:00 – 18:00
- Сб: 10:00 – 14:00 (только по предварительной записи)
- Вс: выходной
Отделы
- Отдел технической поддержки
- Отдел разработки и внедрения
- Отдел обучения и сертификации
- Отдел продаж
Руководство
Генеральный директор: Иванов Сергей Петрович
Технический директор: Петрова Анна Владимировна
Менеджер по работе с клиентами: Смирнов Алексей Николаевич
Отзывы клиентов
«Отличная поддержка, быстро решают любые вопросы по работе с табличными частями!» – ООО «ТехноСервис»
«Благодаря рекомендациям специалистов мы оптимизировали запросы и сократили время генерации отчетов в 3 раза.» – ЗАО «ИнвестМаш»
«Профессиональный подход и понятные инструкции – рекомендую всем разработчикам 1С!» – ИП Кузнецов Д. В.
Табличные части справочников – мощный механизм, позволяющий хранить структурированные наборы данных внутри справочника; Правильное использование запросов и программных методов доступа к этим данным повышает гибкость конфигурации и ускоряет работу пользователей. При возникновении вопросов или необходимости в индивидуальном решении, вы всегда можете обратиться в службу поддержки, контакты которой указаны выше.