В системе 1С:Предприятие термины «измерение» и «ресурс» часто вызывают путаницу — особенно у новичков, которые только начинают осваивать платформу. На первый взгляд оба понятия связаны с хранением данных, но их роль в конфигурациях принципиально разная. Ошибки в выборе между ними могут привести к некорректной работе отчётов, регистров или даже целых подсистем учёта.
Эта статья поможет разобраться, чем измерения отличаются от ресурсов, как они взаимодействуют в регистрах накопления, бухгалтерии и других объектах 1С, а также когда и какой элемент стоит применять. Мы проанализируем реальные примеры из типовых конфигураций (например, 1С:Бухгалтерия или 1С:Управление торговлей), рассмотрим последствия неправильного выбора и дадим практические рекомендации для разработчиков и пользователей.
Если вы когда-нибудь задавались вопросом, почему в регистре остатков товаров Номенклатура — это измерение, а Количество — ресурс, или почему при создании отчёта некоторые поля доступны только в разрезе, а другие — в ресурсах, этот материал станет вашим гидом.
1. Что такое измерения в 1С: определение и назначение
Измерения в 1С:Предприятие — это аналитические признаки, по которым группируются данные в регистрах (накопления, бухгалтерии, расчётов). Они определяют, в каком разрезе будут храниться и обрабатываться записи. Проще говоря, измерения отвечают на вопрос: «По чему мы ведём учёт?»
Примеры из типовых конфигураций:
- 📦 Номенклатура в регистре остатков товаров — позволяет учитывать остатки по каждому виду товара отдельно.
- 🏢 Склад — группирует данные по местам хранения.
- 👥 Контрагент в регистре расчётов — разделяет долги по каждому партнёру.
- 📅 Период (дата) — обязательное измерение во временных регистрах.
Измерения могут быть:
- 🔹 Простыми (один тип данных, например,
СправочникСсылка.Номенклатура). - 🔹 Составными (несколько полей, например,
Номенклатура + Характеристика). - 🔹 Подчинёнными (иерархические, как
Организация → Подразделение).
⚠️ Внимание: Если в регистре не указано ни одного измерения (кроме обязательного Период), все данные будут записываться «в кучу» — без возможности аналитики по разрезам. Это типичная ошибка при создании кастомных регистров.
Главная особенность измерений — они не участвуют в арифметических операциях. Их задача — разделять данные, а не суммировать. Например, в регистре остатков вы не сложите Номенклатуру1 + Номенклатуру2 — это бессмысленно, зато можете получить остатки по каждой номенклатуре отдельно.
2. Ресурсы в 1С: что это и зачем нужны
Ресурсы — это количественные показатели, которые хранят числовые значения в регистрах. Они отвечают на вопрос: «Что мы учитываем в разрезе измерений?» Если измерения определяют структуру данных, то ресурсы — их содержание.
Классические примеры ресурсов:
- 📊 Количество — сколько единиц товара на складе.
- 💰 Сумма — денежное выражение операции.
- ⚖️ Вес — для логистических расчётов.
- ⏱️ Время — в регистрах рабочего времени.
В отличие от измерений, ресурсы можно суммировать, вычитать, умножать — то есть использовать в вычислениях. Например, в отчёте «Ведомость по товарам» вы можете:
- 🔢 Посчитать общее количество товаров на всех складах (сумма по ресурсу
Количество). - 💵 Найти среднюю цену (ресурс
Сумма/ ресурсКоличество). - 📉 Построить график динамики остатков (изменение ресурса
Количествопо измерениюПериод).
⚠️ Внимание: Если в регистре не указан ни один ресурс, он станет «пустышкой» — будет хранить только структуру (измерения), но не данные. Это частая ошибка при копировании регистров из других конфигураций.
Ресурсы всегда имеют тип данных, поддерживающий арифметические операции: Число, Дата (для временных интервалов), реже — Строка (например, для конкатенации). В типовых конфигурациях чаще всего используются:
| Ресурс | Тип данных | Пример использования |
|---|---|---|
Количество |
Число(15, 3) |
Остатки товаров, кол-во часов работы |
Сумма |
Число(15, 2) |
Денежные обороты, выручка |
Вес |
Число(15, 3) |
Логистика, складской учёт |
Длительность |
Число(10, 0) |
Учёт рабочего времени |
Критическое отличие: ресурсы могут быть виртуальными (вычисляемыми на лету, например, СуммаНДС = Сумма * СтавкаНДС), тогда как измерения всегда хранятся в базе явно.
3. Ключевые различия: измерения vs ресурсы
Чтобы окончательно разграничить понятия, сведем их особенности в сравнительную таблицу:
| Критерий | Измерения | Ресурсы |
|---|---|---|
| Назначение | Определяют разрезы учёта (по чему группируем данные) | Хранят количественные показатели (что учитываем) |
| Типы данных | Любые (справочники, документы, перечисления, строки) | Только числовые (Число, Дата для интервалов) |
| Арифметические операции | ❌ Не поддерживаются | ✅ Поддерживаются (+, -, *, /, суммирование) |
| Примеры | Номенклатура, Склад, Контрагент |
Количество, Сумма, Вес |
| Обязательность | Минимум 1 (например, Период в регистрах накопления) |
Минимум 1 (иначе регистр не имеет смысла) |
| Использование в отчётах | Для группировки (ГРУППИРОВКА ПО) |
Для агрегации (СУММА, СРЕДНЕЕ) |
Простой пример для запоминания:
- 📌 Измерение = «полка в магазине» (раздел: молочные продукты, хлеб, напитки).
- 📌 Ресурс = «сколько товаров на полке» (количество пакетов молока, буханок хлеба).
4. Как измерения и ресурсы работают вместе: примеры из типовых конфигураций
В реальных конфигурациях 1С измерения и ресурсы всегда используются совместно. Рассмотрим несколько типовых сценариев:
📦 Регистр остатков товаров (1С:Управление торговлей)
- 🔹 Измерения:
Номенклатура,Склад,Партия. - 🔹 Ресурсы:
Количество,Сумма.
Здесь мы можем узнать, сколько (ресурс) какого товара (измерение) на каком складе (измерение). При этом можно:
- 📊 Посчитать общее количество товаров на всех складах (сумма по ресурсу
Количество). - 📈 Построить отчёт по оборотам номенклатуры (изменение ресурса
Суммав разрезе измеренияНоменклатура).
💰 Регистр бухгалтерии (1С:Бухгалтерия)
- 🔹 Измерения:
СчетБухгалтерскогоУчета,Контрагент,Договор. - 🔹 Ресурсы:
Сумма,ВалютнаяСумма,Количество.
Здесь ресурсы позволяют формировать бухгалтерский баланс (суммы по счетам), а измерения — детализировать операции (например, какой контрагент должен деньги).
⏱️ Регистр рабочего времени (1С:Зарплата и Управление Персоналом)
- 🔹 Измерения:
Сотрудник,Подразделение,ВидРабочегоВремени(отпуск, больничный, работа). - 🔹 Ресурсы:
КоличествоЧасов,КоличествоДней.
Ресурсы здесь используются для расчёта зарплаты, а измерения — для аналитики (например, сколько дней отпуска взял сотрудник Иванов).
Если в отчёте нужно показать данные и по измерениям, и по ресурсам, используйте конструкцию ГРУППИРОВКА ПО Измерение1, Измерение2 СУММА(Ресурс1), МАКСИМУМ(Ресурс2). Это позволит избежать двойной обработки данных.
5. Типичные ошибки при работе с измерениями и ресурсами
Даже опытные разработчики иногда путают измерения и ресурсы, что приводит к ошибкам в учёте или некорректной работе отчётов. Рассмотрим самые распространённые промахи:
❌ Ошибка 1: Использование ресурса вместо измерения
🔴 Пример: В регистре остатков товаров Номенклатура сделали ресурсом, а не измерением.
🔴 Последствия:
- Невозможно будет получить остатки по каждой номенклатуре отдельно — система будет суммировать все товары в одну кучу.
- Отчёты типа «Ведомость по товарам» перестанут работать корректно.
❌ Ошибка 2: Отсутствие обязательных измерений
🔴 Пример: В регистре накопления не указан Период (обязательное измерение для временных регистров).
🔴 Последствия:
- Система не сможет хранить историю изменений (например, остатки товаров на разные даты).
- Отчёты по динамике (например, «Обороты между датами») будут неверными.
❌ Ошибка 3: Неправильный тип данных для ресурса
🔴 Пример: Ресурс Сумма сделан типом Строка вместо Число(15, 2).
🔴 Последствия:
- Невозможно будет суммировать значения в отчётах.
- При записях с десятичными разделителями (например,
"1000.50") возникнут ошибки преобразования типов.
❌ Ошибка 4: Избыточные измерения
🔴 Пример: В регистре остатков добавлено измерение Менеджер, хотя учёт по менеджерам не нужен.
🔴 Последствия:
- Увеличится объём базы данных (лишние записи).
- Замедлится работа отчётов из-за избыточной детализации.
☑️ Проверка корректности измерений и ресурсов
Регистр будет хранить только структуру данных (измерения), но не сами значения. Например, в регистре остатков товаров вы сможете увидеть, какие товары учитываются (по измерению Что будет, если в регистре не указать ни одного ресурса?
Номенклатура), но не сколько их (нет ресурса Количество). Фактически такой регистр бесполезен для учёта.
6. Практические рекомендации: когда что использовать
Чтобы не ошибиться в выборе между измерением и ресурсом, следуйте этим правилам:
✅ Когда нужно измерение:
- 📌 Если данные нужно группировать или фильтровать (например, по складам, контрагентам, периодам).
- 📌 Если значение нельзя сложить/вычесть (например,
Номенклатура,Договор). - 📌 Если это аналитический признак (например,
ВидДвиженияДенегв банковских операциях).
✅ Когда нужен ресурс:
- 📌 Если значение можно суммировать или агрегировать (например,
Количество,Сумма). - 📌 Если это количественный показатель (например,
Вес,Объём). - 📌 Если данные будут использоваться в математических выражениях (например,
СуммаНДС = Сумма * СтавкаНДС).
🔧 Технические советы для разработчиков:
- 🛠️ Для ускорения отчётов индексируйте часто используемые измерения (в настройках регистра).
- 🛠️ Если ресурс используется только для расчётов (например,
СуммаНДС), сделайте его виртуальным — это сэкономит место в базе. - 🛠️ Избегайте слишком длинных составных измерений (например,
Номенклатура + Характеристика + Серия + Качество) — это усложнит поддержку.
Главное правило: если вы можете сложить два значения — это ресурс. Если нет (например, нельзя сложить два контрагента) — это измерение.
7. Как исправить ошибки с измерениями и ресурсами
Если вы уже допустили ошибку в конфигурации (например, сделали измерение ресурсом или наоборот), исправить её можно двумя способами:
🔧 Способ 1: Редактирование конфигурации
- Откройте конфигуратор (
1Cv8.exe /config). - Найдите проблемный регистр в дереве объектов.
- Измените тип поля с измерения на ресурс (или наоборот).
- Обновите конфигурацию базы данных (
Конфигурация → Обновить).
⚠️ Внимание: При таком изменении данные в базе могут быть утеряны! Перед правкой сделайте резервную копию (Администрирование → Выгрузить информационную базу).
🔧 Способ 2: Перенос данных через обработку
Если в регистре уже есть критичные данные, проще:
- Создать новый регистр с правильной структурой.
- Написать обработку для переноса данных из старого регистра в новый.
- Заменить ссылки на старый регистр в коде и отчётах.
- Удалить старый регистр (после проверки корректности работы).
Используйте запрос с конструкцией Запрос.Текст = "ВЫБРАТЬ | СтарыйРегистр.Период КАК Период, | СтарыйРегистр.Номенклатура КАК Номенклатура, | СтарыйРегистр.Количество КАК Количество |ИЗ | РегистрНакопления.СтарыйРегистр КАК СтарыйРегистр | |ПОМЕСТИТЬ НовыйРегистр"; Запрос.Выполнить(); Обязательно проверьте результат в Как перенести данные между регистрами без потерь?
ВЫБРАТЬ ... ПОМЕСТИТЬ или циклом по записям старого регистра. Пример кода:
Запрос = Новый Запрос;
НовыйРегистр перед удалением старого!
8. Часто задаваемые вопросы (FAQ)
🔍 Можно ли в одном регистре использовать только измерения без ресурсов?
Технически — да, но такой регистр будет бесполезен для учёта. Он сможет хранить только структуру данных (например, список номенклатуры), но не их значения (количество, сумму). Типичный пример — регистр сведений без ресурсов, который используется только для хранения справочной информации (например, курсы валют).
🔍 Почему в регистре бухгалтерии измерение СчетБухгалтерскогоУчета обязательно?
Потому что бухгалтерский учёт ведётся в разрезе счетов. Без этого измерения невозможно сформировать оборотно-сальдовую ведомость, баланс или другие регламентированные отчёты. Счет определяет природу операции (актив, пассив, доход, расход), а ресурсы (Сумма) — её величину.
🔍 Как добавить виртуальный ресурс в существующий регистр?
Виртуальные ресурсы добавляются в конфигураторе:
- Откройте регистр в дереве объектов.
- Вкладка
Ресурсы→Добавить. - Установите флаг
Виртуальный. - Задайте выражение для расчёта (например,
СуммаНДС = Сумма * СтавкаНДС / 100).
После обновления конфигурации виртуальный ресурс будет доступен в отчётах, но не будет храниться в базе (вычисляется на лету).
🔍 В чём разница между измерением и реквизитом регистра?
Реквизиты регистра — это дополнительные атрибуты, которые не участвуют в группировке данных. Например, в регистре остатков товаров реквизитом может быть Комментарий или Ответственный. Они не влияют на структуру хранения, но могут использоваться для фильтрации или вывода в отчётах.
Измерения же определяют структуру регистра и обязательно участвуют в группировке. Например, без измерения Номенклатура вы не сможете получить остатки по каждому товару.
🔍 Можно ли в отчёте использовать ресурс как измерение?
Нет, это противоречит логике 1С. Однако вы можете:
- 📌 Сгруппировать данные по измерениям, а затем вывести ресурсы в колонках.
- 📌 Использовать условное оформление для визуального разделения ресурсов (например, раскрасить отрицательные остатки в красный цвет).
- 📌 Создать вычисляемое поле в отчёте, которое будет имитировать группировку по ресурсу (например, разбить суммы по диапазонам: «до 1000», «1000-5000» и т.д.).