В данной статье подробно разбирается работа с реквизитами регистров в языке запросов платформы 1С:Предприятие 8. Понимание структуры регистров (накопления, сведений, бухгалтерии, расчета) и правильного обращения к их измерениям, ресурсам и реквизитам — фундамент эффективной разработки отчетов и обработок данных.
Описание
Архитектура регистров в 1С
Любой регистр в 1С представляет собой таблицу в базе данных. С точки зрения языка запросов, регистр — это источник данных (таблица), имеющий строго определенный набор полей:
- Измерения (Dimensions), поля, по которым происходит группировка и индексация (например, Номенклатура, Склад, Контрагент). В запросе к ним обращаются напрямую:
Регистр.Номенклатура. - Ресурсы (Resources) — числовые поля, подлежащие агрегации (суммированию): Количество, Сумма, Стоимость. В запросах часто используются с функциями агрегации:
СУММА(Регистр.Количество). - Реквизиты (Attributes) — дополнительные информационные поля, не участвующие в первичном ключе и не суммируемые (например, НомерГТД, СрокГодности, ХарактеристикаНоменклатуры для регистров сведений).
- Системные поля —
Период,НомерСтроки,Активность(для регистров накопления),ВидДвижения(Приход/Расход),Регистратор,НомерСтроки.
Особенности обращения к реквизитам в запросе
Главное правило: Реквизиты регистров накопления и бухгалтерии недоступны для прямого чтения в таблице движений (выборке), если они не включены в измерения или ресурсы. В регистрах сведений реквизиты доступны всегда.
Для доступа к реквизитам регистров накопления/бухгалтерии используются:
- Виртуальные таблицы (Остатки, Обороты, БалансИОбороты) — реквизиты недоступны.
- Физическая таблица движений (
РегистрНакопления.Имя.Движенияили простоРегистрНакопления.Имяпри выборке движений), реквизиты доступны для чтения. - Связи (JOIN) с регистрами сведений или справочниками для получения дополнительных атрибутов.
Примеры запросов
Чтение реквизитов регистра сведений (прямой доступ)
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Характеристика,
ЦеныНоменклатурыСрезПоследних.Цена,
ЦеныНоменклатурыСрезПоследних.Валюта, // Реквизит
ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения // Реквизит
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних Чтение реквизитов регистра накопления (через таблицу движений)
ВЫБРАТЬ
ТоварыНаСкладах.Период,
ТоварыНаСкладах.Регистратор,
ТоварыНаСкладах.Номенклатура,
ТоварыНаСкладах.Склад,
ТоварыНаСкладах.Количество, // Ресурс
ТоварыНаСкладах.НомерГТД, // Реквизит (доступен в движениях!)
ТоварыНаСкладах.СрокГодности // Реквизит
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТоварыНаСкладах.Период МЕЖДУ &НачалоПериода И &КонецПериода Получение реквизитов через LEFT JOIN (для виртуальных таблиц)
Если нужно получить реквизит (например, НомерГТД) в отчете по остаткам (виртуальная таблица), где его нет:
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.Склад,
Остатки.КоличествоОстаток,
Движения.НомерГТД
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментВремени, ) КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК Движения
ПО Остатки.Номенклатура = Движения.Номенклатура
И Остатки.Склад = Движения.Склад
// Внимание: требует уточнения уникальности строки (Период, НомерСтроки) Контакты для обращений
По техническим вопросам работы с языком запросов 1С, оптимизации выборок по регистрам и ошибкам доступа к реквизитам:
- Техническая поддержка 1С (линия 1С:ITS): Для клиентов с активным соглашением ИТС.
- Партнерская сеть 1С: Ваш сервирующий партнер (франчайзи) — первый эшелон поддержки.
- Сообщество разработчиков: Форум forum.1c.ru, Инфостарт infostart.ru.
Официальный сайт
Основной портал документации и обновлений:
- Сайт фирмы 1С: https://1c.ru
- Портал ИТС (Информационно-технологическое сопровождение): https://its.1c.ru (требует авторизации) — здесь находится полный синтаксис-помощник и методические документы по регистрам.
- Документация по языку запросов: Раздел «Синтаксис языка запросов» -> «Источники данных» -> «Регистры».
Горячая линия
Единый номер горячей линии фирмы 1С (для общих вопросов лицензирования, покупки, поиска партнера):
###-###-#### (бесплатно по России)
Примечание: По программным ошибкам в коде запросов горячая линия фирмы 1С не консультирует. Обращайтесь к партнеру или на форумы.
Номера телефонов
- Головной офис (Москва): +7 (495) -88-90-90
- Санкт-Петербург: +7 (812) -80-48-48
- Техподдержка партнеров (только для сертифицированных партнеров): Доступна в личном кабинете партнера на portal.1c.ru
Электронный адрес
- Общие вопросы (продажи, маркетинг): info@1c.ru
- Техподдержка (через ИТС): Заявки создаются внутри личного кабинета на its.1c.ru.
- Сообщения об ошибках платформы (багрепорты): platform@1c.ru (требует точного описания воспроизведения).
Личный кабинет
Для доступа к обновлениям платформы, документации (Синтаксис-помощник), типовым конфигурациям и созданию заявок в техподдержку:
- Портал 1С:ИТС / Личный кабинет: https://its.1c.ru
- Личный кабинет партнера: https://partner.1c.ru
- Личный кабинет пользователя (для покупок курсов, сертификатов): https://login.1c.ru
Личный прием
Фирма 1С не осуществляет личный прием разработчиков для консультаций по коду запросов. Взаимодействие ведется дистанционно через:
- Систему заявок на портале ИТС.
- Сервирующего партнера (в офисе партнера возможен личный прием по договоренности).
- Учебные центры 1С (по записям на курсы).
График приема (Режим работы поддержки)
| Служба | Режим работы (МСК) |
|---|---|
| Горячая линия 8-800 | Пн-Пт: 09:00 – 18:00 |
| Техподдержка ИТС (прием заявок) | Круглосуточно (обработка Пн-Пт 09:00–18:00) |
| Офисы продаж (Москва/СПб) | Пн-Пт: 10:00 – 19:00 |
Отделы (Структура поддержки разработки)
В контексте разработки на 1С, «отделы» — это функциональные зоны ответственности:
- Отдел разработки платформы (1C R&D): Отвечает за ядро языка запросов, виртуальные таблицы, оптимизатор СУБД. Принимают багрепорты на
platform@1c.ru. - Отдел методической поддержки (ИТС): Пишут документацию, статьи KB (Knowledge Base), примеры использования реквизитов в регистрах.
- Центр сертификации и обучения: Проводят экзамены «1С:Профессионал», «1С:Специалист» по платформе (включая язык запросов).
- Партнерская сеть (Франчайзи): Локальные отделы техподдержки и разработки у партнеров 1С.
Руководство (Ключевые фигуры платформы)
- Борис Нуралиев — Президент фирмы 1С, главный архитектор идеологии платформы.
- Олег Ткачев — Вице-президент, курирует разработку платформы и технологий (в т.ч. язык запросов).
- Сергей Беляков, Директор по развитию платформы.
- Руководители направлений разработки ядра СУБД и языка запросов (имена не публикуются открыто, взаимодействие через багтрекер).
Отзывы (Мнения сообщества и лучшие практики)
Агрегация типичных отзывов и «болезненных точек» разработчиков при работе с реквизитами в регистрах:
Положительные аспекты
- Мощь виртуальных таблиц: «Остатки/Обороты считаются мгновенно на миллионах записей без ручного JOIN’а движений».
- Гибкость регистров сведений: «Идеальны для хранения срезов, истории цен, настроек — реквизиты доступны везде».
- Синтаксис-помощник (Ctrl+Space): «Подсказка по реквизитам регистров работает отлично, ошибки компиляции ловятся на этапе написания».
Типичные проблемы и жалобы
- «Реквизиты пропадают в виртуальных таблицах», Самая частая ошибка новичков. Пытаются выбрать
НомерГТДизОстатки. Решение: использовать движений или JOIN. - «Медленные запросы к движениям с реквизитами» — Чтение физической таблицы движений (
Регистр.Движения) с большим количеством реквизитов и без условий по измерениям вызывает полное сканирование таблицы (Full Scan). Решение: всегда фильтровать по Периоду и Измерениям. - «Неочевидное поведение СрезПоследних для регистров сведений» — Если измерений нет или они не уникальны, возвращается произвольная строка. Требует понимания «Измерений среза».
- «Отсутствие индексов по реквизитам» — Нельзя создать индекс по реквизиту регистра накопления в конфигураторе. Поиск по реквизиту всегда медленный. Совет: выносите часто искомые атрибуты в Измерения или отдельный Регистр сведений.
Лучшие практики (Best Practices) от экспертов
- Используйте виртуальные таблицы (Остатки, Обороты, БалансИОбороты) везде, где не нужны реквизиты движений. Это в 10-100 раз быстрее.
- Для реквизитов в отчетах по остаткам используйте технику «Связывание через регистр сведений» (хранение атрибутов партии в отдельном регистре сведений с измерениями: Номенклатура, Склад, Партия/НомерГТД).
- Избегайте SELECT * — явно перечисляйте поля. Это ускоряет передачу данных и делает код читаемым.
- Проверяйте план запроса (Консоль запросов -> План запроса) на наличие «Full Scan» по таблицам движений.
Статья подготовлена на основе документации 1С:Предприятие 8 (Синтаксис-помощник) и практики разработки высоконагруженных систем. Актуально для платформы 8.3.20+.