К статье
Практический материал

Разработка и Конфигурация · 12 мин

Чем отличается ресурс от измерения в 1С

Разбираем разницу между измерениями и ресурсами в регистрах 1С: назначение, правила выбора, типичные ошибки проектирования и примеры для сведений и накопления.

Измерения и ресурсы — два фундаментальных типа реквизитов регистров в 1С, и путаница между ними приводит к серьёзным проблемам: медленным отчётам, невозможности получить нужные итоги и необходимости переделывать структуру данных на работающей базе. Разница между ними концептуально проста: измерение отвечает на вопрос «в каком разрезе хранятся данные», а ресурс — «какое значение хранится». Но на практике выбор не всегда очевиден.

Классический пример — регистр накопления «Остатки товаров». Номенклатура и склад — это измерения: они определяют, в разрезе каких товаров и каких складов ведётся учёт. Количество и сумма — ресурсы: это числовые показатели, которые изменяются при каждом движении. Платформа автоматически поддерживает итоги по ресурсам в разрезе измерений, именно поэтому отчёт по остаткам работает быстро.

Ошибка на этапе проектирования обходится дорого. Если разместить номенклатуру в ресурсах, платформа не сможет корректно хранить несколько позиций в одном наборе записей. Если поместить количество в измерения, итоги перестанут суммироваться, и получить остаток станет невозможно без обхода всех записей. Поэтому различие нужно понимать до создания регистра, а не после накопления данных.

Что такое измерение регистра

Измерение — это реквизит регистра, который формирует аналитические разрезы хранения. Набор значений всех измерений однозначно идентифицирует позицию, в которой лежит значение ресурса. В регистре сведений комбинация измерений образует ключ записи: двух записей с одинаковыми значениями всех измерений (и периода, если регистр периодический) существовать не может.

Типичные примеры измерений: номенклатура, склад, организация, контрагент, договор, валюта, физическое лицо. Общий признак — это сущности учёта, по которым нужно группировать, фильтровать и получать итоги. Измерения участвуют в индексировании, поэтому отбор и группировка по ним выполняются быстро.

Количество измерений влияет на производительность и объём хранения. Каждое дополнительное измерение увеличивает число возможных комбинаций и размер таблицы итогов. Практическое правило: включайте в измерения только те разрезы, по которым реально нужны итоги или уникальность, а не все мыслимые атрибуты объекта.

Что такое ресурс регистра

Ресурс — это значение, которое хранится в разрезе измерений. В регистрах накопления ресурсы почти всегда числовые: количество, сумма, вес, объём. Платформа автоматически рассчитывает и хранит итоги (суммы) по ресурсам, что обеспечивает быстрое получение остатков и оборотов без перебора движений.

В регистрах сведений ресурс может иметь любой тип: строка, дата, булево, ссылка. Например, в регистре «Цены номенклатуры» измерение — номенклатура, а ресурс — цена. Здесь ресурс не суммируется, он просто возвращает актуальное значение на дату. Это принципиальное отличие поведения ресурсов в разных видах регистров.

Тип ресурса выбирайте с запасом по разрядности, но без излишеств: для денежных сумм принято использовать число с двумя знаками после запятой, для количества — с тремя. Изменение типа ресурса после накопления данных возможно, но требует контроля: сужение разрядности приведёт к потере точности существующих значений.

Ключевые различия: сравнительная таблица

Различия удобнее всего видны в сопоставлении по основным характеристикам поведения в платформе.

КритерийИзмерениеРесурс
НазначениеРазрез хранения и аналитикиХранимое значение
ИтогиПо измерениям группируютПо ресурсам суммируют
Типичные типыСсылки на справочники и документыЧисла, в регистрах сведений — любые
УникальностьВходят в ключ записиНа уникальность не влияют
Индексы и отборыИндексируются, быстрый отборОтбор медленнее, итогов не даёт
ПримерНоменклатура, складКоличество, сумма

Из таблицы следует практический критерий выбора: если по полю нужно фильтровать, группировать или обеспечивать уникальность — это измерение. Если по полю нужно суммировать, получать остаток или хранить изменяемое значение — это ресурс.

Поле используется в отборах отчётовПризнак измерения

Проверьте, группируются ли по нему данные

Поле суммируется в итогахПризнак ресурса

Проверьте, нужен ли остаток или оборот

Поле — ссылка на справочникЧаще измерение

Уточните, не хранится ли это значение-показатель

Поле — число с итогамиОднозначно ресурс

Измерения не суммируются платформой

Как выбрать: измерение или ресурс

Задайте себе три вопроса о каждом реквизите будущего регистра. Первый: нужно ли по этому полю получать итоги (сумму, остаток)? Если да — это ресурс. Второй: нужно ли по этому полю отбирать и группировать данные? Если да — это измерение. Третий: должна ли комбинация этого поля с другими быть уникальной? Если да — это измерение.

Пограничный случай — ссылочные поля, которые хранят значение, а не разрез. Например, «Ответственный менеджер» в регистре сведений о статусах заказов. Если менеджер — просто атрибут записи, а итоги и уникальность по нему не нужны, его правильнее сделать ресурсом или реквизитом. Если же требуется аналитика «объём продаж по менеджерам» — менеджер должен стать измерением регистра накопления.

Маршрут решения

Как выбрать действие

По полю нужны сумма, остаток или оборотДелайте поле ресурсом
По полю нужны группировка, отбор или уникальность записиДелайте поле измерением
Поле — справочный атрибут без итогов и без отборовСделайте его реквизитом регистра, а не измерением
Поле нужно и для отборов, и как значениеПродумайте два поля или пересмотрите структуру регистра

Отдельно упомянем реквизиты регистра — третий тип полей, о котором часто забывают. Реквизит хранит дополнительную информацию о движении, не влияя ни на разрезы, ни на итоги. Классический пример — номер накладной или комментарий в движениях. Использование реквизитов вместо измерений снижает избыточность и ускоряет работу регистра.

Особенности для разных видов регистров

Регистры накопления

В регистрах накопления вида «Остатки» платформа хранит таблицу итогов по ресурсам в разрезе измерений. Каждое движение изменяет итоги. Поэтому все поля, по которым нужны остатки, обязаны быть измерениями, а все суммируемые показатели — ресурсами. Ошибка здесь критична: получить остаток по «неправильному» разрезу без перепроектирования невозможно.

В регистрах вида «Обороты» итоги хранятся как суммы за период, остатков нет. Требования к разделению те же, но ошибка чуть менее болезненна: оборот можно пересчитать запросом по таблице движений, хотя и медленно.

Регистры сведений

В регистрах сведений измерения образуют ключ уникальности. Если сделать номенклатуру измерением периодического регистра «Цены», то для каждого товара на каждую дату будет одна запись — это корректно. Ресурсом будет цена. Если же цену сделать измерением, ограничение уникальности станет бессмысленным, а получение актуальной цены потребует дополнительной логики.

Типичные ошибки при проектировании

Самая распространённая ошибка — перенос всех атрибутов объекта в измерения «про запас». Каждое лишнее измерение раздувает таблицу итогов, замедляет запись движений и усложняет запросы. Если по полю не планируется группировка или отбор, место ему в реквизитах.

Вторая ошибка — размещение числового показателя в измерениях ради «уникальности по сумме». Итоги по такому полю получить нельзя, а отчёты придётся строить обходом всех записей. Третья ошибка — хранение изменяемого значения (например, текущего статуса) в измерении: при смене статуса придётся удалять старую запись и создавать новую, что усложняет логику.

Типичные ошибки
01
Сумма или количество помещены в измерения — итоги и остатки перестают рассчитываться
02
Все атрибуты объекта добавлены в измерения — раздувается таблица итогов, падает скорость записи
03
Изменяемое значение (статус, цена) сделано измерением — при каждом изменении нужно пересоздавать запись
04
Справочный атрибут без отборов сделан измерением вместо реквизита — лишняя аналитика без пользы
05
Изменение состава измерений в заполненном регистре без проверки дублей — ошибка при обновлении конфигурации

Как проверить правильность структуры

Проверка выполняется до заполнения регистра реальными данными. Создайте тестовые движения или записи и постройте типовой отчёт, который планируется использовать: остатки по складам, продажи по контрагентам, цены на дату. Если отчёт строится стандартными средствами (виртуальными таблицами остатков и оборотов, срезом последних) — структура выбрана верно.

Если для нужного отчёта приходится обходить таблицу движений запросом, суммировать в коде или выбирать записи с последующей обработкой — это сигнал, что разрез или показатель размещены не там. Исправлять структуру нужно до промышленной эксплуатации: миграция данных между измерениями и ресурсами на больших объёмах — трудоёмкая операция.

Контрольные точки

Как проверить результат

Построение отчёта по остаткам
Норма

Используется виртуальная таблица Остатки, отчёт быстрый

Тревожный признак

Нужен обход таблицы движений запросом

Уникальность записей регистра сведений
Норма

Ключ из измерений соответствует логике учёта

Тревожный признак

Появляются дубли или невозможно добавить нужную запись

Состав измерений
Норма

По каждому измерению есть реальные отборы или группировки

Тревожный признак

Есть измерения, которые нигде не используются

Типы ресурсов
Норма

Разрядность покрывает максимальные значения с запасом

Тревожный признак

Переполнение или потеря точности при хранении

Изменение структуры существующего регистра

Если ошибка обнаружилась после накопления данных, действуйте осторожно. Перенос поля из ресурсов в измерения в заполненном регистре сведений может вызвать конфликт уникальности: несколько записей с разными значениями бывшего ресурса превратятся в записи с одинаковым ключом. Перед обновлением конфигурации на рабочей базе сделайте резервную копию и проверьте данные на дубли.

Безопасный сценарий миграции: создать новый регистр с правильной структурой, перенести данные обработкой, перевести документы и отчёты на новый регистр, и только после проверки удалить старый. На больших объёмах перенос выполняйте порциями в монопольном режиме или в период минимальной нагрузки.

Полезный приём: перед созданием регистра выпишите на бумаге 3–5 отчётов, которые по нему будут строиться. Разрезы этих отчётов — ваши измерения, показатели — ресурсы. Такой черновик занимает десять минут и исключает большинство ошибок проектирования.
ПЗ
Практическое замечание

Часто задаваемые вопросы

Может ли одно поле быть и измерением, и ресурсом?

Нет, одно поле регистра имеет один тип. Если сущность нужна и как разрез, и как хранимое значение, обычно создают два поля или пересматривают структуру: чаще всего достаточно измерения, а «значение» получают через связанный регистр сведений.

Чем реквизит регистра отличается от измерения?

Реквизит хранит дополнительную информацию о записи, но не входит в ключ, не участвует в итогах и не индексируется для отборов. Реквизиты подходят для справочных атрибутов движения — комментариев, номеров первичных документов, авторов записи.

Сколько измерений можно добавить в регистр?

Жёсткий практический предел определяется здравым смыслом: каждое измерение увеличивает таблицу итогов и замедляет запись. Если измерений больше пяти-семи, стоит проверить, все ли они реально используются в отчётах и отборах.

Можно ли сделать ресурс ссылочного типа в регистре накопления?

Технически платформа позволяет, но итоги по такому ресурсу не рассчитываются, и практического смысла в этом обычно нет. Ссылочные значения в регистрах накопления почти всегда должны быть измерениями или реквизитами.

Что произойдёт с итогами, если добавить новое измерение в регистр накопления?

Платформа пересчитает таблицу итогов при реструктуризации. На больших регистрах это длительная операция, требующая монопольного доступа. Данные не потеряются, но окно обновления нужно планировать заранее.

Итог

Что важно запомнить

Измерение задаёт разрез хранения и входит в ключ записи, ресурс — хранимое значение, по которому платформа считает итоги. Критерий выбора: группировка и отбор — измерение, сумма и остаток — ресурс, справочный атрибут без аналитики — реквизит. Ошибки проектирования исправляйте до накопления данных, а изменения на заполненном регистре выполняйте только с резервной копией.