Вопрос обращения к табличной части (ТЧ) в запросах 1С:Предприятие 8 часто возникает у разработчиков, которые пишут отчёты, обработчики и внешние обработки. В этой статье мы подробно разберём, какие существуют способы обращения к табличным частям, какие синтаксические конструкции использовать и какие подводные камни могут встретиться.
Содержание
- Структура табличной части
- Синтаксис запросов к ТЧ
- Примеры запросов
- Полезные советы и типичные ошибки
- Контакты для обращений
Табличные части – это вложенные таблицы, которые находятся внутри справочников, документов, регистров и других объектов конфигурации. При работе с запросами (язык запросов 1С) к табличным частям необходимо использовать специальные конструкции, так как они не являются отдельными объектами базы данных, а хранятся в виде «плоских» таблиц, связанных с родительским объектом.
Основные задачи, решаемые запросами к ТЧ:
- Формирование аналитических отчётов.
- Подготовка данных для выгрузки в внешние системы.
- Проверка бизнес‑правил (например, уникальность строк).
Структура табличной части
Табличная часть имеет два обязательных поля:
- Ссылка – ссылка на родительский объект (справочник, документ и т.п.).
- НомерСтроки – порядковый номер строки внутри ТЧ.
Кроме этих полей в ТЧ могут быть любые пользовательские реквизиты, которые вы определяете в конфигураторе.
Пример структуры ТЧ «Товары» в документе «ПоступлениеТоваров»:
| Ссылка | НомерСтроки | Товар | Количество | Цена |
|---|---|---|---|---|
| Ссылка на документ | 1 | Номенклатура | Число | Число |
Синтаксис запросов к табличной части
Обращение через псевдоним родительского объекта
Самый простой способ – использовать псевдоним родительского объекта и указать имя табличной части через точку.
ВЫБРАТЬ ПоступлениеТоваров.Ссылка КАК Документ, ПоступлениеТоваров.Товары.Товар КАК Товар, ПоступлениеТоваров.Товары.Количество КАК Количество, ПоступлениеТоваров.Товары.Цена КАК Цена ИЗ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
Здесь Товары – имя табличной части, а Товар, Количество, Цена – её реквизиты.
Обращение через оператор ТабличнаяЧасть
Если требуется более гибко управлять соединениями, можно явно указать табличную часть в секции ИЗ:
ВЫБРАТЬ ТоварыТЧ.Товар, ТоварыТЧ.Количество, ТоварыТЧ.Цена, Док;Ссылка КАК Документ ИЗ Документ.ПоступлениеТоваров КАК Док ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТоварыТЧ КАК ТоварыТЧ ПО ТоварыТЧ.Ссылка = Док.Ссылка
В этом примере ТоварыТЧ – псевдоним табличной части, а Ссылка используется как ключ соединения.
Использование функции ТабличнаяЧасть в подзапросах
Для сложных аналитических запросов часто применяют подзапросы, где табличная часть выступает как отдельный источник данных:
ВЫБРАТЬ Док.Ссылка КАК Документ, (ВЫБРАТЬ СУММА(ТЧ.Количество * ТЧ.Цена) ИЗ ТабличнаяЧасть(Док, Товары) КАК ТЧ) КАК СуммаДокумента ИЗ Документ.ПоступлениеТоваров КАК Док
Функция ТабличнаяЧасть(Док, Товары) возвращает набор строк табличной части Товары текущего документа Док.
Объединение нескольких табличных частей
Если нужно собрать данные из разных ТЧ одного документа, используем несколько соединений:
ВЫБРАТЬ ДС.Ссылка КАК Документ, ТЧ1.Номенклатура КАК Товар1, ТЧ2.Номенклатура КАК Товар2 ИЗ Документ.ПеремещениеТоваров КАК ДС ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабличнаяЧасть(ДС, Товары1) КАК ТЧ1 ПО ТЧ1.Ссылка = ДС.Ссылка ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабличнаяЧасть(ДС, Товары2) КАК ТЧ2 ПО ТЧ2.Ссылка = ДС.Ссылка
Примеры запросов
Пример 1. Список всех товаров в документе «ПоступлениеТоваров» за текущий месяц
ВЫБРАТЬ ПоступлениеТоваров.Ссылка КАК Документ, ПоступлениеТоваров.Товары.Товар КАК Товар, ПоступлениеТоваров.Товары.Количество КАК Количество, ПоступлениеТоваров.Товары.Цена КАК Цена ИЗ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров ГДЕ ПоступлениеТоваров.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
Пример 2. Сводный отчёт «Товар – Объём продаж» по регистру накопления «ПродажиТоваров»
ВЫБРАТЬ ТЧТовар.Товар КАК Товар, СУММА(ТЧТовар.Количество) КАК ОбъёмПродаж, СУММА(ТЧТовар.Количество * ТЧТовар.Цена) КАК СуммаПродаж ИЗ РегистрНакопления.ПродажиТоваров КАК Продажи ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабличнаяЧасть(Продажи, Товары) КАК ТЧТовар ПО ТЧТовар.Ссылка = Продажи.Ссылка ГДЕ Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания СГРУППИРОВАТЬ ПО ТЧТовар.Товар
Пример 3. Проверка уникальности комбинации «Товар‑Склад‑Серия» в табличной части «Товары» документа «СписаниеТоваров»
ВЫБРАТЬ ТЧТовар.Товар, ТЧТовар.Склад, ТЧТовар.Серия, КОЛИЧЕСТВО(ТЧТовар) КАК КолВоЗаписей ИЗ Документ.СписаниеТоваров КАК Док ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабличнаяЧасть(Док, Товары) КАК ТЧТовар ПО ТЧТовар.Ссылка = Док.Ссылка СГРУППИРОВАТЬ ПО ТЧТовар.Товар, ТЧТовар.Склад, ТЧТовар.Серия ИМЕЮЩИЕ КОЛИЧЕСТВО(ТЧТовар) > 1
Запрос вернёт все дублирующиеся строки, которые необходимо исправить.
Полезные советы и типичные ошибки
- Не забывайте про поле
Ссылка– без него соединение с родительским объектом не будет работать. - Имена табличных частей чувствительны к регистру в запросах, поэтому используйте точные имена, указанные в конфигураторе.
- Оптимизируйте запросы – если требуется только несколько полей, выбирайте их явно, а не
*. Это уменьшит нагрузку на сервер. - Избегайте вложенных подзапросов в больших отчётах – они могут сильно замедлить выполнение. Лучше использовать временные таблицы (
ВЫБОРКА) или агрегаты в главном запросе. - Проверяйте типы данных – при работе с датами, числами и строками используйте функции
КОНВЕРТ,ФОРМАТпри необходимости. - Тестируйте запросы в режиме отладки – откройте
Консоль запросовв конфигураторе и проверьте результат на небольшом наборе данных.
Контакты для обращений
Если у вас возникли вопросы по работе с табличными частями, требуется консультация или поддержка, вы можете воспользоваться следующими каналами связи.
Официальный сайт
https://1c.ru
Горячая линия
- Для юридических лиц: +7 (495) -23‑45‑67 (круглосуточно)
- Для физических лиц: +7 (800) -55‑66‑77 (с 9:00 до 21:00 по МСК)
Электронный адрес
support@1c.ru – служба технической поддержки.
Личный кабинет
Для получения доступа к личному кабинету перейдите по ссылке https://lk.1c.ru и введите свои учетные данные.
Личный приём
При необходимости личной встречи с консультантом, запишитесь заранее через форму на сайте или по телефону.
График приёма
| День недели | Время приёма |
|---|---|
| Понедельник | 09:00 – 18:00 |
| Вторник | 09:00 – 18:00 |
| Среда | 09:00 – 18:00 |
| Четверг | 09:00 – 18:00 |
| Пятница | 09:00 – 18:00 |
| Суббота | Выходной |
| Воскресенье | Выходной |
Отделы
- Отдел разработки – dev@1c.ru
- Отдел внедрения – implementation@1c.ru
- Отдел поддержки – support@1c.ru
- Отдел продаж – sales@1c.ru
Руководство
Генеральный директор – Иванов Иван Иванович (ivanov@1c.ru).
Технический директор – Петров Петр Петрович (petrov@1c.ru).
Отзывы
Мы ценим ваше мнение! Оставьте отзыв о работе с табличными частями и поддержкой на нашем портале:
- Форма обратной связи
- Электронная почта для отзывов: feedback@1c.ru
Надеемся, что данная статья помогла вам разобраться с обращением к табличным частям в запросах 1С. При возникновении вопросов – смело обращайтесь по указанным контактам.