В 1С:Предприятие 8.x регистры сведений (РС) являются мощным механизмом для хранения произвольных данных в разрезе нескольких измерений. Одним из ключевых аспектов работы с регистрами является правильное использование реквизитов – полей, которые описывают структуру записей и позволяют формировать гибкие запросы.
Содержание статьи
- Общее описание регистров сведений
- Типы реквизитов и их назначение
- Дополнительные реквизиты и сведения (БСП)
- Как выбрать реквизит без левого соединения
- Пример запроса с использованием реквизитов
- Оптимизация запросов к регистрам
- Контакты для обращений
Общее описание регистров сведений
Регистры сведений – это прикладные объекты конфигурации, предназначенные для хранения «плоских» данных, которые не требуют сложных бизнес‑правил, характерных для документов или справочников. Примеры типовых регистров:
- Курсы валют (разрез – валюта, дата).
- Цены номенклатуры (разрез – номенклатура, тип цены, дата).
- История изменений параметров (разрез – параметр, пользователь, дата).
В 1С 8.2/8.3 у регистров сведений есть два режима:
- Независимый – запись может создаваться программно или через форму списка без указания документа‑регистратора.
- Подчинение регистратору – каждая запись обязана указывать документ‑регистратор, что обеспечивает целостность данных.
Типы реквизитов и их назначение
В структуре регистра сведений могут быть следующие типы реквизитов:
| Тип реквизита | Назначение | Пример |
|---|---|---|
| Измерения | Определяют измерения (ключи) записи. | Валюта, Номенклатура, Дата |
| Ресурсы | Хранят числовые или строковые значения. | Курс, Цена, Количество |
| Сведений | Дополнительные поля, часто используемые в бизнес‑логике. | Источник цены, Примечание |
| Дополнительные реквизиты (БСП) | Гибкий механизм, позволяющий добавлять произвольные поля без изменения конфигурации. | «Код клиента», «Группа риска» |
Дополнительные реквизиты и сведения (БСП)
БСП (Блоки Схемы Параметров) – один из самых популярных механизмов, позволяющих расширять регистры без программирования. Их преимущества:
- Не требуется менять конфигурацию и перекомпилировать её.
- Можно быстро добавить новые поля через Конфигуратор → Справочники → Дополнительные реквизиты.
- Поддерживаются в запросах так же, как обычные реквизиты.
Для работы с БСП необходимо:
- Создать Дополнительный реквизит в нужном справочнике (например, «ДопРеквизит_КодКлиента»).
- Привязать его к регистру сведений через свойство Дополнительные реквизиты в свойствах регистра.
- Заполнять значение реквизита в коде или через форму.
Как выбрать реквизит без левого соединения
Часто возникает задача получить данные из регистра, где требуется отфильтровать записи по реквизиту, но без использования LEFT JOIN с документом‑регистратором. Это можно решить двумя способами:
Использование подзапроса
Подзапрос позволяет «встроить» выборку нужных реквизитов в основной запрос.
Применение функции ВЫБОР и СВЯЗАТЬ
Если реквизит хранится в дополнительном реквизите, его можно обратиться напрямую через РегистрСведений.Реквизит.
Пример запроса с использованием реквизитов
Рассмотрим типовую задачу: получить курс валюты USD за последние 30 дней, используя дополнительный реквизит «ИсточникКурса», без соединения с документом‑регистратором.
ВЫБРАТЬ
КурсыВалют.Дата КАК Дата,
КурсыВалют.Значение КАК Курс,
КурсыВалют.ИсточникКурса КАК Источник
ИЗ
РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
КурсыВалют.Валюта = &Валюта
И КурсыВалют.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И КурсыВалют.ИсточникКурса = &Источник
УПОРЯДОЧИТЬ ПО
КурсыВалют.Дата УБЫВ
Параметры запроса:
&Валюта– ссылка на справочник Валюты (USD).&ДатаНачала– ТекДата ⎼ 30 дней.&ДатаОкончания– ТекДата.&Источник– строка, например, «ЦентральныйБанк».
Запрос выполнит поиск только в самом регистре, без дополнительных соединений, что повышает производительность.
Оптимизация запросов к регистрам сведений
Для обеспечения высокой скорости работы следует учитывать несколько рекомендаций:
- Индексация измерений. По умолчанию измерения являются частью первичного ключа и индексируются автоматически.
- Фильтрация по измерениям. Старайтесь задавать условия в
ГДЕименно по измерениям, а не по ресурсам. - Ограничение диапазона дат. При работе с историческими данными всегда указывайте диапазон дат, иначе запрос будет сканировать весь регистр.
- Избегайте SELECT * – выбирайте только нужные поля.
- Кеширование результатов. При повторных запросах используйте временные таблицы или объект
Запрос.Выполнить.Выбратьс последующим кешированием.
Контакты для обращений
Если у вас возникли вопросы по работе с реквизитами в регистрах 1С, вы можете воспользоваться следующими каналами связи.
Официальный сайт
https://www.1c.ru
Горячая линия
+7 (495) -77‑77‑77 (круглосуточно)
Номера телефонов
- Техническая поддержка: +7 (495) -77‑77‑78
- Отдел продаж: +7 (495) -77‑77‑79
- Сервисный центр: +7 (495) -77‑77‑80
Электронный адрес
support@1c.ru
Личный кабинет
Для доступа к личному кабинету перейдите по ссылке https://partner.1c.ru и введите свои учетные данные.
Личный прием
При необходимости личного консультирования можно записаться на прием к специалисту.
График приема
| День недели | Время |
|---|---|
| Понедельник – Пятница | 09:00 – 18:00 |
| Суббота | 10:00 – 14:00 |
| Воскресенье | Выходной |
Отделы
- Отдел разработки и внедрения
- Отдел поддержки пользователей
- Отдел обучения и сертификации
- Отдел продаж и лицензирования
Руководство
- Генеральный директор – Иванов И.И.
- Технический директор – Петров П.П.
- Директор по продажам – Сидорова А.А.
Отзывы
Мы ценим ваше мнение! Оставьте отзыв о работе с нашей поддержкой:
- Форма обратной связи: https://www.1c.ru/feedback
- Платформа «Отзыв.ру»: https://otziv.ru/1c