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

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

Измерения и ресурсы в 1С: назначение, отличия и практика проектирования

Что такое измерения и ресурсы в регистрах 1С, чем они отличаются от реквизитов, как правильно проектировать структуру регистра и избегать типичных ошибок.

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

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

Что такое измерения и как они работают

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

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

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

Что такое ресурсы и какие у них особенности

Ресурс — это числовое (реже строковое или другое) значение, которое хранится в разрезе измерений. Классические примеры: «Количество», «Сумма», «Цена», «Курс». Для регистров накопления ресурсы — это то, что суммируется в итогах: остаток товара на складе получается как сумма всех приходов минус расходы по ресурсу «Количество».

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

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

Чем реквизиты отличаются от измерений и ресурсов

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

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

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

Измерения и ресурсы в разных видах регистров

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

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

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

Как спроектировать структуру регистра без переделок

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

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

Порядок действий
  1. 1
    Выпишите все отчёты и контроли, которые должны работать по регистру
  2. 2
    Определите разрезы аналитики — назначьте их измерениями
  3. 3
    Определите суммируемые показатели — назначьте их ресурсами
  4. 4
    Оставшиеся информационные поля оформите реквизитами
  5. 5
    Проверьте уникальность: комбинация измерений должна однозначно определять запись
  6. 6
    Создайте тестовые движения и постройте плановые отчёты до запуска в работу

Типичные ошибки и их последствия

Самая распространённая ошибка — сделать измерением поле с очень большим числом значений там, где это не нужно, например добавлять документ-регистратор в измерения. Это резко увеличивает таблицу итогов и замедляет проведение документов. Для связи записи с документом у подчинённых регистров уже есть стандартное поле «Регистратор».

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

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

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

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

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

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

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

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

Построение ключевых отчётов
Норма

Отчёт строится по одному регистру стандартными настройками

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

Нужны соединения нескольких регистров или программная сборка данных

Скорость проведения документов
Норма

Проведение занимает приемлемое время без роста при увеличении данных

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

Проведение заметно замедляется по мере накопления записей

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

Одна комбинация измерений — один смысловой факт

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

По одной комбинации теряется детализация или возникают дубли

Частые вопросы

Можно ли изменить тип или состав измерений после запуска базы в работу?

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

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

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

Может ли ресурс быть не числовым?

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

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

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

Что выбрать для хранения цен: регистр сведений или накопления?

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

Зачем нужны реквизиты регистра, если есть измерения?

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

Итог

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

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