Разработка и Конфигурация · 10 мин
Для чего нужны измерения регистра в 1С
Разбираем, для чего нужны измерения регистра в 1С, чем они отличаются от ресурсов и реквизитов, как выбрать состав измерений и не перегрузить базу.
Измерения регистра — это разрезы аналитики, в которых 1С хранит и накапливает числовые данные: остатки товаров по складам, дебиторку по контрагентам, остатки денег по кассам. Каждое движение по регистру записывается в конкретную комбинацию значений измерений, и именно благодаря этому система мгновенно отвечает на вопрос «сколько чего и где лежит» без перебора всех документов.
Если представить регистр как таблицу, то измерения — это колонки-ключи, по которым группируются строки. Например, в регистре «Остатки товаров» измерениями обычно являются «Номенклатура» и «Склад», а ресурсом — «Количество». Запись «Товар А, Склад 1, 10 шт.» означает, что в разрезе этой пары значений хранится остаток 10 единиц.
Без измерений регистр превратился бы в единственное число без аналитики — общий остаток без понимания, какой это товар и на каком складе. Именно измерения превращают регистр из простого счётчика в инструмент оперативного учёта и отчётности.
Что такое измерения и как они устроены внутри регистра
Измерение — это реквизит регистра особого типа, который участвует в формировании ключа записи. Для регистра накопления вида «Остатки» платформа хранит итоговые значения ресурсов именно в разрезе всех измерений: каждая уникальная комбинация значений измерений образует отдельную «ячейку» итогов.
В регистре сведений измерения играют ещё более жёсткую роль: комбинация значений измерений (плюс период, если регистр периодический) образует уникальный ключ. Это значит, что двух записей с одинаковым набором значений измерений в один момент времени существовать не может — вторая запись либо заменит первую, либо вызовет ошибку уникальности, в зависимости от способа записи.
Тип значения измерения задаётся в конфигураторе и обычно представляет собой ссылку на справочник, документ или перечисление. Платформа строит по измерениям индексы, поэтому отбор и группировка по ним в запросах выполняются быстро — в отличие от отбора по реквизитам регистра, которые в ключ не входят.
Главная задача измерений — аналитические разрезы итогов
Основное назначение измерений — позволить получать итоги в нужных разрезах без дополнительной обработки. Когда бухгалтер открывает отчёт «Остатки на складах», данные уже лежат в готовом виде: платформа хранит таблицу итогов, где каждая строка соответствует комбинации измерений, и отчёт просто читает её.
Чем больше измерений у регистра, тем более детальные срезы доступны «из коробки». Добавив измерение «Организация», вы получаете остатки по каждой организации отдельно; добавив «Серия номенклатуры» — остатки по сериям. Но каждое измерение умножает количество хранимых комбинаций, поэтому детализация всегда обходится дороже в объёме и скорости.
Практический критерий прост: измерение нужно, если по этому разрезу регулярно строятся отчёты, выполняются контроли остатков или накладываются отборы в запросах. Если разрез нужен раз в квартал для разовой аналитики, его лучше вынести в реквизит регистра или получать соединением с данными документа.
Как измерения влияют на контроль остатков
Механизм контроля отрицательных остатков в 1С опирается именно на измерения. Когда документ списывает товар, платформа проверяет итог по комбинации измерений, указанной в движении: «Товар А + Склад 1». Если измерение «Склад» в регистре отсутствует, контроль будет выполняться по товару в целом — и система пропустит ситуацию, когда на одном складе минус, а на другом избыток.
Поэтому состав измерений напрямую определяет точность учёта. Недостаток измерений ведёт к «размазыванию» остатков: учёт вроде сходится в общей сумме, но по конкретным складам, партиям или контрагентам данные недостоверны. Это одна из самых частых причин расхождений между учётными и фактическими остатками.
Как выбрать состав измерений для регистра
Выбор измерений начинается с анализа вопросов, на которые должен отвечать регистр. Сформулируйте их буквально: «сколько товара на каждом складе», «какая задолженность по каждому контрагенту и договору», «сколько часов отработал каждый сотрудник по каждому проекту». Каждое существительное-разрез в этих вопросах — кандидат в измерения.
Затем отсейте кандидатов по частоте использования и кардинальности. Измерение со ссылкой на справочник из сотен тысяч элементов, по которому отчёты строятся редко, — плохой кандидат: оно раздует таблицу итогов. Хороший кандидат — разрез с умеренным числом значений, по которому постоянно выполняются отборы и контроль.
- 1Выпишите отчёты и контроли, которые должны работать по регистру
- 2Выделите из них аналитические разрезы-вопросы (по кому, по чему, где)
- 3Проверьте каждый разрез: нужен ли отбор/итог по нему в большинстве запросов
- 4Оцените кардинальность справочника — число возможных значений измерения
- 5Оставьте в измерениях только регулярно используемые разрезы, остальное вынесите в реквизиты
- 6Проверьте на копии базы скорость проведения документов и построения отчётов
Измерения, ресурсы и реквизиты: в чём разница
Новички часто путают три вида полей регистра. Измерения — это разрезы, в которых хранятся данные; ресурсы — числовые (реже строковые) значения, которые накапливаются или сохраняются; реквизиты — дополнительная информация о движении, не участвующая в ключе и итогах. Например, в движении по регистру продаж: «Номенклатура» и «Контрагент» — измерения, «Количество» и «Сумма» — ресурсы, «Менеджер» — реквизит.
Разница имеет практические последствия. По измерениям платформа строит индексы и хранит итоги — отбор по ним быстрый. Отбор по реквизиту требует перебора записей и работает медленнее на больших объёмах. Поэтому ошибочное размещение аналитики в реквизитах вместо измерений — типичная причина «тормозящих» отчётов.
| Критерий | Измерение | Ресурс | Реквизит |
|---|---|---|---|
| Роль | Разрез аналитики, ключ записи | Накапливаемое значение | Дополнительная информация |
| Участие в итогах | Определяет комбинации итогов | Суммируется в итогах | Не участвует |
| Индексация и отбор | Быстрый отбор | Обычно не используется для отбора | Медленный отбор |
| Типичные примеры | Номенклатура, Склад, Контрагент | Количество, Сумма | Комментарий, Менеджер |
Типичные ошибки при проектировании измерений
Самая распространённая ошибка — избыточные измерения «на всякий случай». Каждое лишнее измерение умножает число строк в таблице итогов, замедляет проведение документов и увеличивает базу. Регистр с шестью-семью измерениями высокой кардинальности может стать узким местом всей системы.
Обратная ошибка — недостаточная детализация. Если убрать измерение, по которому нужен контроль (например, «Партия» при партионном учёте), восстановить корректные данные задним числом бывает невозможно без перепроведения всей истории. Поэтому состав измерений продумывается до запуска учёта, а не после.
Третья группа ошибок — неправильный тип измерения. Составной тип «все ссылочные» замедляет соединения и усложняет запросы; строка неограниченной длины в измерении вообще недопустима. Используйте конкретные ссылочные типы и ограниченную длину строк.
Как проверить, что измерения настроены правильно
Проверка начинается с отчётов: постройте стандартный отчёт по регистру в разрезе каждого измерения и сверьте итоги с ожидаемыми значениями. Если итог «в целом» сходится, а в разрезе склада или контрагента появляются странные суммы — вероятно, состав измерений не соответствует логике учёта или в движениях есть записи с пустыми значениями измерений.
Отдельно проверьте скорость: замерьте время проведения типового документа и время построения основного отчёта до и после изменения состава измерений на копии базы. Заметная деградация — сигнал пересмотреть кардинальность или количество измерений.
Как проверить результат
Суммы совпадают с контрольными данными по каждому разрезу
Итог сходится только в целом, в разрезах расхождения или пустые значения
Время проведения сопоставимо с прежним после изменения регистра
Проведение заметно замедлилось, растут блокировки
Система блокирует списание при минусе в нужном разрезе
Минус по складу проходит из-за отсутствующего измерения
FAQ: частые вопросы об измерениях регистров
Можно ли добавить измерение в регистр, по которому уже есть движения?
Технически да, но у существующих записей новое измерение окажется пустым, и итоги в новом разрезе будут недостоверны. Обычно требуется обработка, заполняющая значение нового измерения в старых движениях, либо перепроведение документов. Работу выполняйте на копии базы.
Чем измерение регистра сведений отличается от измерения регистра накопления?
В регистре сведений комбинация измерений — это уникальный ключ записи: по одной комбинации может храниться только одно значение. В регистре накопления комбинация измерений определяет ячейку итогов, в которую суммируются ресурсы множества движений.
Сколько измерений может быть у регистра?
Платформа допускает десятки измерений, но практический предел определяется производительностью: каждое измерение увеличивает число комбинаций итогов и стоимость записи. На практике регистры редко содержат больше пяти-семи действительно нужных измерений.
Что лучше для редко используемой аналитики — измерение или реквизит?
Реквизит. Он не раздувает таблицу итогов и не замедляет запись, а данные по нему можно получить запросом с соединением. Измерение оправдано только при регулярных отборах, группировках или контроле по этому разрезу.
Почему в отчёте появляются строки с пустым значением измерения?
Чаще всего в движениях есть записи, где измерение не заполнено — из-за ошибок в процедуре проведения или ручных операций над регистром. Найдите такие записи запросом с отбором по пустой ссылке и исправьте источник: обычно это код формирования движений.
Влияют ли измерения на обмен данными и права доступа?
Да, косвенно. Механизмы RLS и отборы в планах обмена часто строятся по измерениям регистров (например, по организации или складу), поэтому состав измерений определяет, насколько гибко можно ограничить доступ и фильтровать выгружаемые данные.
Что важно запомнить
Измерения регистра задают аналитические разрезы хранения итогов и обеспечивают контроль остатков. Выбирайте их по реальным отчётам и контролям, избегайте избыточной детализации, а любые изменения состава измерений проверяйте на копии базы с резервной копией.