← Назад к вопросам

Зачем нужны регистры?

1.3 Junior🔥 181 комментариев
#Объекты метаданных#Регистры

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Назначение регистров в 1С

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

Основное назначение

Регистры предназначены для:

  • Хранения фактов хозяйственной деятельности
  • Ведения аналитики данных
  • Быстрой выборки информации по различным срезам
  • Обеспечения целостности данных
  • Аудита операций

Типы регистров

1. Регистры накопления (Accumulation Registers)

  • Накапливают факты (приход, расход)
  • Поддерживают разрезы (аналитику)
  • Могут быть активом или пассивом
  • Пример: Товары на складе, Деньги в кассе
Регистр.ТоварыНаСкладе
- Склад (аналитика)
- Товар (аналитика)
- Дата (временной период)
- Количество (значение)

2. Регистры сведений (Information Registers)

  • Хранят справочную информацию
  • Не накапливаются, а обновляются
  • Быстрый доступ к текущему значению
  • Пример: Курсы валют, Коэффициенты, Параметры
Регистр.КурсыВалют
- Валюта
- Дата
- Курс (текущее значение)

3. Регистры расчёта (Calculation Registers)

  • Результаты сложных многоэтапных расчётов
  • История расчётов по периодам
  • Для зарплатных и сложных вычислений

4. Регистры бухгалтерии (Accounting Registers)

  • Проводки по счётам
  • Многомерная аналитика
  • Для учёта и отчётности

Почему используются регистры

Производительность:

  • Быстрая выборка данных по срезам
  • Индексирование по аналитике
  • Агрегация значений

Аналитика:

  • Разрезы срезов (начальные остатки, обороты)
  • Выборка по различным критериям
  • Анализ тенденций

Консистентность:

  • Целостность данных при проведении
  • Откат изменений при отмене проведения
  • Синхронизация с документами

Практический пример

Учёт остатков товаров:

Процедура УчестьПриход(Товар, Количество, Склад)
    НаборЗаписей = РегистрыНакопления.ТоварыНаСкладе.СоздатьНаборЗаписей();
    
    Запись = НаборЗаписей.Добавить();
    Запись.ВидДвижения = ВидДвижения.Приход;
    Запись.Период = ТекущаяДата();
    Запись.Товар = Товар;
    Запись.Склад = Склад;
    Запись.Количество = Количество;
    
    НаборЗаписей.Записать();
КонецПроцедуры;

Выборка остатков:

Процедура ПолучитьОстаток(Товар, Склад)
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    СУММА(Остатки.Количество) КАК Остаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладе.Остатки(,) КАК Остатки
    |ГДЕ
    |    Остатки.Товар = @Товар
    |    И Остатки.Склад = @Склад");
    
    Запрос.УстановитьПараметр("Товар", Товар);
    Запрос.УстановитьПараметр("Склад", Склад);
    
    Результат = Запрос.Выполнить();
КонецПроцедуры;

Срезы регистров

Срезы остатков:

  • Получить остатки на определённую дату
  • Быстрый расчёт текущего состояния
  • Не требует суммирования всех операций

Срезы оборотов:

  • Получить суммы за период
  • Анализ движения по датам
  • Быстрая аналитика

Преимущества использования регистров

1. Скорость:

  • Оптимизированные запросы
  • Индексирование данных
  • Быстрая агрегация

2. Удобство:

  • Встроенные срезы
  • Простые API для работы
  • Стандартизованный подход

3. Надёжность:

  • Откат при ошибке
  • Синхронизация с документами
  • Целостность данных

4. Аналитика:

  • Анализ по разрезам
  • История изменений
  • Многомерная аналитика

Без регистров было бы:

  • Медленные запросы с полным суммированием
  • Сложный код для выборки данных
  • Потеря информации об аналитике
  • Невозможность аудита операций
  • Высокая нагрузка на БД

Регистры — фундаментальный компонент архитектуры 1С, обеспечивающий эффективное хранение, выборку и анализ данных хозяйственной деятельности.

Зачем нужны регистры? | PrepBro