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

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

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

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

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

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

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

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

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

Ключевое свойство измерений: совокупность их значений формирует ключ записи. В регистре сведений с режимом «независимый» не может существовать двух записей с одинаковым набором значений измерений на одну дату (для периодических регистров). В регистрах накопления уникальность обеспечивается связкой «регистратор + набор измерений» в рамках одной строки движений.

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

Что такое ресурсы и как они ведут себя в итогах

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

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

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

Реквизиты: третий вид полей регистра

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

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

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

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

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

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

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

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

Как выбрать тип поля

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

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

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

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

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

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

Регистры расчёта и бухгалтерии

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

Типичные ошибки при работе с измерениями и ресурсами

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

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

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

Типичные ошибки
01
Сумма помещена в измерения — итоги не суммируются, таблица итогов разрастается
02
Измерение не заполняется при проведении — остатки зависают на пустых значениях
03
Избыточные измерения «про запас» — замедление проведения и расчёта итогов
04
Нужное для отборов поле вынесено в реквизиты — отборы в виртуальных таблицах недоступны
05
Изменение состава измерений в заполненном регистре без анализа последствий для данных

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

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

Полезно проверить уникальность: попробуйте программно создать две записи регистра сведений с одинаковыми измерениями — система должна либо перезаписать существующую, либо выдать ошибку (в зависимости от режима). Это подтвердит, что ключевые поля определены правильно.

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

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

Заполнение измерений в движениях документа
Норма

Все измерения содержат осмысленные значения

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

Есть записи с пустыми измерениями

Отчёт по виртуальной таблице остатков
Норма

Остатки группируются по измерениям и суммируются ресурсы

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

Каждая строка отдельная, суммы не сворачиваются

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

Отчёт формируется быстро на рабочем объёме данных

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

Заметные задержки даже на небольших данных

Сверка с учётными данными
Норма

Остатки регистра совпадают с первичными документами

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

Расхождения, «зависшие» суммы

FAQ

Чем измерение отличается от ресурса простыми словами?

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

Можно ли изменить состав измерений в регистре, где уже есть данные?

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

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

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

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

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

Что делать, если в регистре появились записи с пустыми измерениями?

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

Когда поле лучше сделать реквизитом, а не измерением?

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

Итог

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

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