Регистр сведений — один из ключевых объектов конфигурации 1С:Предприятие, который часто вызывает вопросы у начинающих разработчиков и даже опытных пользователей. В отличие от справочников или документов, регистры сведений не хранят списки объектов, а фиксируют динамические данные, которые могут изменяться со временем. Это делает их незаменимыми для учета курсов валют, остатков на складах, цен номенклатуры и других параметров, требующих историчности.
Главная особенность регистра сведений — возможность хранить не только текущие значения, но и всю историю изменений с привязкой к дате. Например, если в компании изменилась ставка НДС с 18% на 20%, регистр сохранит обе версии с указанием периодов их действия. Это критично для корректного формирования отчетности и анализа данных за прошлые периоды. Однако многие пользователи 1С не до конца понимают, где именно применяются эти объекты и как их правильно настраивать.
В этой статье мы разберем 12 реальных сценариев использования регистров сведений — от стандартных задач бухучета до неочевидных приемов в торговле и зарплатных расчетах. Вы узнаете, как регистры взаимодействуют с другими объектами конфигурации, какие ошибки чаще всего допускают при их настройке, и получите практические рекомендации по оптимизации работы с ними.
1. Курсы валют и их история: классический пример
Самый распространенный случай применения регистра сведений — хранение курсов валют. В любой типовой конфигурации 1С (Бухгалтерия, УТ, ERP) есть регистр КурсыВалют, который фиксирует официальные курсы ЦБ или внутренние курсы компании с привязкой к дате. Это позволяет:
- 📅 Автоматически пересчитывать суммы в иностранной валюте при изменении курса
- 📊 Формировать отчеты с учетом исторических курсов (например, для налоговой декларации)
- 🔄 Сравнивать динамику курсов за разные периоды
Особенность этого регистра — периодичность (обычно "День"). Это означает, что для каждой даты может быть зафиксировано только одно значение курса для конкретной валюты. Если попытаться записать два разных курса на одну дату, система либо перезапишет значение, либо выдаст ошибку (в зависимости от настроек).
Чтобы избежать ошибок при загрузке курсов валют, настройте автоматическое обновление через веб-сервисы ЦБ или Нацбанка. В типовой конфигурации это делается в разделе Администрирование → Поддержка и обслуживание → Обновление курсов валют
| Параметр | Значение для курсов валют | Пояснение |
|---|---|---|
| Тип регистра | Сведения | Хранит динамические данные с историей |
| Периодичность | День | Одно значение курса на дату |
| Измерения | Валюта | Ссылка на справочник Валюты |
| Ресурсы | Курс, Множитель | Хранимые числовые значения |
2. Цены номенклатуры: управление прайс-листами
В торговле регистры сведений активно используются для хранения цен номенклатуры. Типовые конфигурации (1С:Управление торговлей, 1С:ERP) содержат регистр ЦеныНоменклатуры, где фиксируются:
- 🏷️ Базовые цены (закупочные, розничные, оптовые)
- 📈 Скидки и наценки для разных групп клиентов
- 🔖 Сезонные акции и специальные предложения
Отличие от курсов валют — здесь часто применяется несколько измерений:
Номенклатура, ТипЦен, Характеристика (например, размер или цвет товара). Это позволяет гибко управлять ассортиментом. Например, одна и та же футболка может иметь разную цену в зависимости от размера (S, M, L) и типа цены (опт/розница).
Важный нюанс: при изменении цены на товар старая версия не удаляется, а остается в истории. Это критично для:
- 📋 Формирования отчетов о продажах за прошлые периоды
- 🔍 Анализа рентабельности с учетом старых закупочных цен
- 🛒 Корректного оформления возвратов товаров по старым ценам
Всегда проверяйте настройки периодичности регистра цен! Если установить периодичность "Секунда", система будет создавать новые записи при каждом изменении цены, что приведет к перегрузке базы.
3. Ставки налогов и сборов: НДС, страховые взносы
В бухгалтерских конфигурациях (1С:Бухгалтерия 8, 1С:ЗУП) регистры сведений хранят актуальные ставки налогов:
НДС, налог на прибыль, страховые взносы. Например, регистр СтавкиНДС содержит историю изменений ставок (10%, 18%, 20%) с привязкой к датам вступления в силу.
Это позволяет:
- 📑 Автоматически подставлять правильную ставку в документы (счета, накладные)
- 📊 Корректно формировать декларации по НДС с учетом исторических данных
- 🔄 Пересчитывать суммы при изменении законодательства
Ошибка многих пользователей — ручное исправление ставок в старых документах. Это нарушает историю и может привести к искажению отчетности. Вместо этого нужно:
- Зафиксировать новую ставку в регистре сведений с правильной датой
- Перепровести документы за период действия новой ставки
- Сформировать корректирующие записи при необходимости
4. Графики работы и производственные календари
В модулях Зарплата и Управление Персоналом регистры сведений управляют графиками работы сотрудников и производственными календарями. Например, регистр ГрафикиРаботыСотрудников хранит:
- 🕒 Стандартные графики (5/2, 2/2, сменные)
- 📅 Индивидуальные графики для конкретных сотрудников
- 🏖️ Исключения (отпуска, больничные, командировки)
Особенность таких регистров — использование подчинения регистратору. Например, график сотрудника может быть привязан к документу ПриемНаРаботу или КадровоеПеремещение. Это позволяет автоматически обновлять графики при изменении должности или отдела.
Типичная ошибка: забывают настроить период действия графика. Если не указать дату окончания, система будет использовать устаревшие данные даже после увольнения сотрудника. Это приводит к неправильному расчету:
- 💰 Зарплаты (недо/переплата)
- ⏱️ Отработанного времени
- 📊 Статистики по персоналу
Что будет если не обновлять производственный календарь?
Если не актуализировать данные о праздничных и выходных днях, система будет рассчитывать зарплату и отпускные по устаревшим правилам. Например, в 2026 году 8 марта выпало на пятницу, а в 2026 — на субботу. Без обновления календаря программа может неправильно посчитать выходные дни для отпуска, что приведет к ошибкам в расчетах.
5. Скидки и бонусные программы для клиентов
В торговле регистры сведений активно применяются для управления скидками и бонусными программами. Например, в 1С:Управление торговлей есть регистр СкидкиНакопления, который хранит:
- 🎁 Персональные скидки для VIP-клиентов
- 🛒 Накопительные бонусы (например, "10 покупок = скидка 5%")
- 📦 Акции типа "3 по цене 2"
Ключевая особенность — использование несколько ресурсов в одном регистре:
ПроцентСкидки, СуммаБонуса, ДатаИстечения. Это позволяет гибко комбинировать разные типы поощрений.
Пример настройки скидки "Покупай 2 товара — 3-й в подарок":
Если КоличествоВКорзине(Номенклатура) >= 2 Тогда
Регистр.СкидкиНакопления.Добавить();
Регистр.ТипСкидки = Перечисление.ТипыСкидок.Подарок;
Регистр.Номенклатура = ТекущаяНоменклатура;
Регистр.КоличествоДляПодарка = 3;
Регистр.ПериодДействия = ТекущаяДата() + 30;
КонецЕсли;
Важно: при работе с бонусными программами всегда проверяйте период действия скидок. Истекшие записи нужно архивировать или удалять, чтобы не перегружать базу. В типовой конфигурации это делается обработкой ОчисткаИстекшихСкидок.
6. Остатки товаров на складах: альтернатива регистрам накопления
Хотя для учета остатков чаще используют регистры накопления, в некоторых случаях применяют и регистры сведений. Например, для фиксации:
- 📦 Минимальных/максимальных запасов (нормы запасов)
- 🏭 Резервов под заказы (забронированные товары)
- 🚚 Транзитных остатков (товары в пути)
Преимущество регистра сведений здесь — возможность хранить плановые значения, которые не зависят от реальных движений документов. Например, менеджер может установить норму минимального запаса для товара, и система будет автоматически формировать заказы поставщикам при снижении остатка ниже этого порога.
Пример структуры регистра НормыЗапасов:
| Измерение | Ресурс | Пример значения |
|---|---|---|
| Номенклатура | МинимальныйЗапас | 10 шт. |
| Склад | МаксимальныйЗапас | 100 шт. |
| Период (Месяц) | СезонныйКоэффициент | 1.5 (для декабря) |
Обратите внимание: для реального учета остатков все равно потребуется регистр накопления. Регистр сведений здесь играет дополнительную роль — он хранит нормативные данные, которые используются для анализа и планирования.
Установить периодичность регистра (обычно "Месяц")
Заполнить минимальные и максимальные значения для каждой номенклатуры
Настроить сезонные коэффициенты (если нужны)
Связать регистр с отчетом "Анализ запасов"
Автоматизировать оповещения о недостатке товаров-->
7. Настройки пользователей и прав доступа
Регистры сведений часто используются для хранения индивидуальных настроек пользователей и прав доступа. Например, в конфигурации может быть регистр НастройкиПользователей, где фиксируются:
- 🖥️ Предпочтения интерфейса (тема, язык, расположение панелей)
- 🔑 Права на доступ к определенным разделам или документам
- 📌 Последние используемые отчеты или обработки
Преимущество перед справочником — возможность хранить историю изменений. Например, если сотрудник временно получил доступ к конфиденциальным данным, а затем права были отозваны, в регистре останется запись о периоде действия расширенных прав.
Пример кода для записи настроек пользователя:
Настройки = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
Настройки.Пользователь = ТекущийПользователь();
Настройки.ТемнаяТема = Истина;
Настройки.ЯзыкИнтерфейса = "Английский";
Настройки.ПоследнийОтчет = СсылкаНаОтчет;
Настройки.Записать();
Важный момент: при работе с настройками пользователей всегда проверяйте уникальность записей. Если два администратора одновременно изменят настройки одного пользователя, может возникнуть конфликт записей. В типовой конфигурации это решается блокировками на уровне транзакций.
8. Технические параметры оборудования и интеграций
В системах, где 1С интегрирована с внешним оборудованием (сканеры штрихкодов, весы, терминалы сбора данных), регистры сведений хранят технические параметры:
- 🖨️ Настройки принтеров этикеток (размер шрифта, шаблоны)
- 📡 Параметры подключения к весам (COM-порт, скорость передачи)
- 🔌 Конфигурации обмена данными с сайтом или CRM
Пример: регистр НастройкиОборудования может содержать такие поля:
| Измерение | Ресурс | Пример |
|---|---|---|
| ТипОборудования | COMПорт | COM3 |
| Модель | СкоростьОбмена | 9600 бод |
| Склад | IPАдрес | 192.168.1.100 |
Особенность таких регистров — часто требуется быстрый доступ к актуальным настройкам. Для этого используют метод ПолучитьПоследние(), который возвращает последние записанные значения без обращения к истории.
Для ускорения работы с техническими настройками создайте обработку "Быстрый доступ к оборудованию", которая будет кешировать часто используемые параметры в памяти.
FAQ: Ответы на частые вопросы
❓ Можно ли в регистре сведений хранить файлы (например, сканы документов)?
Нет, регистр сведений предназначен только для хранения структурированных данных (числа, строки, ссылки). Для файлов используйте хранилище значений или прикрепляйте файлы непосредственно к документам/справочникам через реквизит типа "ХранилищеЗначения".
❓ Как очистить историю в регистре сведений, оставив только актуальные данные?
Для этого используйте обработку "Очистка истории регистров сведений" (входит в типовую поставку). Важно:
- Сделайте резервную копию базы перед очисткой
- Укажите дату, до которой нужно сохранить историю
- Проверьте, не используются ли старые данные в отчетах
В ручном режиме очистку можно выполнить запросом:
Удалить Из РегистрСведений.ИмяРегистра Где Период < ДатаОчистки();
❓ В чем разница между регистром сведений и регистром накопления?
Основные отличия:
| Критерий | Регистр сведений | Регистр накопления |
|---|---|---|
| Тип данных | Любые динамические параметры | Итоги по операциям (остатки, обороты) |
| История | Сохраняет все изменения | Хранит только итоговые значения |
| Пример использования | Курсы валют, цены | Остатки товаров, взаиморасчеты |
❓ Как ускорить работу с большими регистрами сведений?
Рекомендации по оптимизации:
- 🔧 Используйте индексы по часто запрашиваемым полям
- 🗃️ Архивируйте устаревшие данные (старше 3-5 лет)
- 🔄 Настройте фоновые регламентные задания для очистки
- 📊 Для отчетов используйте виртуальные таблицы
Пример создания индекса:
Индексировать По Период, Номенклатура;
❓ Можно ли в регистре сведений хранить данные с периодичностью "Секунда"?
Технически да, но это крайне не рекомендуется. Проблемы:
- 🐢 Значительное замедление работы базы
- 🗑️ Быстрый рост объема хранимых данных
- 🔍 Сложности с анализом (слишком детализированная история)
Оптимальные периодичности: "День", "Месяц" или "Неделя". Для секундной детализации лучше использовать журналы документов или регистры бухгалтерии.