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