Регистры накопления в 1С:Предприятие — это один из ключевых объектов конфигурации, который хранит данные об остатках и оборотах товаров, денежных средств, взаиморасчетов и других учетных показателей. Без умения работать с этими регистрами сложно представить полноценную работу в системе, будь то бухгалтерский учет, складская логистика или управление зарплатой. Однако многие пользователи — особенно новички — сталкиваются с трудностями при поиске и открытии регистров накопления в интерфейсе программы.
В этой статье мы разберем все возможные способы доступа к регистрам накопления в разных конфигурациях 1С (от 1С:Бухгалтерии до 1С:Управления торговлей), рассмотрим нюансы работы в режимах 1С:Предприятие и Конфигуратор, а также дадим практические советы по анализу данных. Особое внимание уделим типичным ошибкам, которые мешают пользователям найти нужный регистр, и покажем, как их избежать.
Что такое регистр накопления и зачем он нужен
Регистр накопления — это объект метаданных в 1С:Предприятие, предназначенный для хранения информации об остатках (на определенную дату) и оборотах (за период) по различным измерителям. В отличие от регистров сведений, которые хранят справочную информацию, регистры накопления фиксируют динамические данные, изменяющиеся в результате хозяйственных операций.
Примеры использования регистров накопления:
- 📦 Остатки товаров на складах — сколько единиц каждого товара есть в наличии.
- 💰 Взаиморасчеты с контрагентами — дебиторская и кредиторская задолженность.
- 🕒 Остатки рабочего времени — учет отработанных часов сотрудников.
- 📊 Финансовые результаты — прибыли и убытки по периодам.
Каждый регистр накопления имеет свою структуру, которая включает:
- 📌 Измерения — параметры, по которым ведется учет (например,
Склад,Номенклатура). - 📏 Ресурсы — количественные показатели (например,
Количество,Сумма). - 🔄 Реквизиты — дополнительные атрибуты (например,
Валюта,Ставка НДС).
Без регистров накопления невозможно формировать многие отчеты (например, Оборотно-сальдовую ведомость или Анализ субконто), поэтому умение с ними работать критично для аналитиков, бухгалтеров и разработчиков.
Способы открытия регистра накопления в режиме 1С:Предприятие
В пользовательском режиме (1С:Предприятие) доступ к регистрам накопления зависит от конфигурации и прав доступа. Рассмотрим основные варианты.
Способ 1: Через меню "Операции"
Это универсальный метод, который работает в большинстве типовых конфигураций (1С:Бухгалтерия, 1С:УТ, 1С:ЗУП):
- Откройте главное меню программы.
- Перейдите в раздел
Операции → Регистры накопления. - В открывшемся окне выберите нужный регистр из списка (например,
ТоварыНаСкладахилиВзаиморасчетыСКонтрагентами).
Если в вашей конфигурации нет пункта Операции в главном меню, попробуйте:
- 🔍 Нажать
Ctrl+Shift+Fдля вызова поиска по меню и ввести "Регистры накопления". - 🖱️ Кликнуть правой кнопкой мыши на свободном месте панели инструментов и выбрать
Настройка → Добавить команду, затем найти нужный регистр.
Проверить права доступа в 1С|Убедиться, что база не заблокирована другим пользователем|Закрыть все открытые документы перед редактированием|Сделать резервную копию данных (для критичных изменений)-->
Способ 2: Через отчеты и обработки
Многие регистры накопления можно открыть непосредственно из отчетов:
- Откройте отчет, который использует данные регистра (например,
Оборотно-сальдовая ведомость по счету). - Дважды кликните по строке с данными, которые вас интересуют.
- В некоторых конфигурациях появится контекстное меню с пунктом
Просмотреть движения документаилиОткрыть регистр.
Пример для 1С:Бухгалтерии 8.3:
- Откройте отчет
Анализ счета(разделОтчеты → Бухгалтерские отчеты). - Выберите счет (например,
60.01— расчеты с поставщиками). - Нажмите на сумму в колонке
СальдоилиОборот— система предложит открыть регистрВзаиморасчетыСКонтрагентами.
Если дважды клик по сумме в отчете не срабатывает, попробуйте нажать правой кнопкой мыши и выбрать "Показать движения документа" или "Открыть регистр".
Способ 3: Через журнал документов
Если вам нужно просмотреть, как документ повлиял на регистр накопления:
- Откройте журнал документов (например,
Реализация товаров и услуг). - Выделите нужный документ и нажмите
Действия → Показать движения(илиAlt+Shift+D). - В открывшемся окне выберите вкладку с названием регистра накопления (например,
ТоварыНаСкладах).
Это удобно, когда нужно отследить, какой именно документ изменил остатки на складе или сумму задолженности.
Что делать, если пункт "Показать движения" отсутствует?
Если в меню документа нет команды "Показать движения", это может означать:
1. У вашей роли недостаточно прав (обратитесь к администратору).
2. Документ еще не проведен (нажмите "Провести").
3. В конфигурации отключена возможность просмотра движений для этого типа документов (требуется доработка).
Как открыть регистр накопления в Конфигураторе
В режиме Конфигуратор доступ к регистрам накопления имеют только пользователи с правами администратора. Этот способ нужен для настройки структуры регистра или написания программного кода.
Шаг 1: Запуск Конфигуратора
Чтобы открыть регистр накопления в Конфигураторе:
- Закройте все сеансы 1С:Предприятие.
- Запустите 1С:Предприятие в режиме Конфигуратор (выберите базу и удерживайте
Shiftпри запуске или выберите в списке баз). - Введите пароль администратора (если требуется).
Шаг 2: Поиск регистра в дереве метаданных
В окне Конфигуратора:
- В левой части экрана найдите ветку
Общие → Регистры накопления. - Раскройте список и выберите нужный регистр (например,
ТоварыНаСкладах). - Дважды кликните на нем, чтобы открыть окно редактирования.
В этом окне вы можете:
- 📝 Изменять структуру регистра (добавлять/удалять измерения, ресурсы).
- 🔧 Настраивать права доступа.
- 💻 Писать обработчики событий (например,
ПриЗаписи).
Изменения в Конфигураторе требуют обновления конфигурации базы данных. После редактирования регистра нажмите Конфигурация → Обновить конфигурацию базы данных.
Шаг 3: Просмотр данных регистра через "Все функции"
Если нужно просмотреть данные регистра без изменения его структуры:
- В Конфигураторе нажмите
Отладка → Все функции(илиCtrl+Shift+F). - В открывшемся окне найдите раздел
РегистрыНакопления. - Выберите метод
ОткрытьФормуСписка()илиОткрытьФормуВыбора()для нужного регистра.
Это откроет форму списка записей регистра, аналогичную той, что доступна в режиме 1С:Предприятие, но с расширенными возможностями фильтрации.
Поиск регистра накопления по имени в коде
Если вы работаете с внешними обработками или пишете программный код, может потребоваться обращение к регистру накопления через встроенный язык 1С. Вот как это сделать:
Способ 1: Прямое обращение по имени
Имя регистра накопления в коде указывается в формате:
РегистрыНакопления.ИмяРегистра
Примеры:
// Получение остатков по товарам на складе
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКонца, ) КАК ТоварыНаСкладахОстатки";
Запрос.УстановитьПараметр("ДатаКонца", ТекущаяДата());
Результат = Запрос.Выполнить();
Способ 2: Поиск через глобальный контекст
Если вы не знаете точное имя регистра, можно воспользоваться методом Метаданные():
// Получение списка всех регистров накопления
Метаданные = Метаданные();
Для Каждого Регистр Из Метаданные.РегистрыНакопления Цикл
Сообщить(Регистр.Имя);
КонецЦикла;
Это выведет в окно сообщений имена всех регистров накопления в текущей конфигурации.
Способ 3: Через конструктор запросов
В режиме 1С:Предприятие:
- Откройте любой отчет, который поддерживает конструктор запросов (например,
Универсальный отчет). - Нажмите
Конструктор запроса. - В дереве объектов найдите раздел
Регистры накопленияи выберите нужный.
Это поможет визуально построить запрос к регистру без ручного ввода кода.
Типичные ошибки и их решения
При работе с регистрами накопления пользователи часто сталкиваются с проблемами. Рассмотрим самые распространенные:
| Ошибка | Возможная причина | Решение |
|---|---|---|
| Регистр накопления не отображается в списке | Недостаточно прав доступа или регистр скрыт в интерфейсе | Проверьте роль пользователя в Администрирование → Пользователи или обратитесь к администратору |
| Ошибка "Недостаточно прав для просмотра регистра" | Ограничения на уровне ролей или конфигурации | Запросите расширенные права или запустите 1С в режиме Конфигуратор |
| Данные в регистре не соответствуют документам | Ошибки при проведении документов или ручное редактирование регистра | Выполните Тестирование и исправление базы (Администрирование → Тестирование и исправление) |
| Не удается открыть регистр через отчет | Отчет не настроен на взаимодействие с регистром | Используйте универсальные отчеты (Оборотно-сальдовая ведомость по регистру) |
Если регистр накопления открывается, но данные в нем отсутствуют или некорректны, проверьте:
- 🔹 Правильность заполнения документов, которые формируют движения по регистру.
- 🔹 Дату, на которую запрашиваются остатки (возможно, вы смотрите данные на будущую дату).
- 🔹 Настройки фильтров в форме регистра (например, может быть установлен фильтр по складу или организации).
Если после проведения документа движения в регистре не появились, проверьте модуль документа на наличие процедуры ОбработкаПроведения() — возможно, там пропущена запись в регистр.
Анализ данных регистра накопления
Простого открытия регистра накопления недостаточно — нужно уметь анализировать хранящиеся в нем данные. Рассмотрим основные приемы.
Просмотр остатков и оборотов
В форме регистра накопления обычно доступны две ключевые вкладки:
- 📅 Остатки — данные на конкретную дату.
- 🔄 Обороты — изменения за период.
Чтобы проанализировать остатки:
- Откройте регистр (например,
ТоварыНаСкладах). - Перейдите на вкладку
Остатки. - Укажите дату, на которую нужно получить данные.
- Настройте отборы (например, по складу или номенклатуре).
Для анализа оборотов:
- Перейдите на вкладку
Обороты. - Задайте период (начало и конец).
- Используйте группировки по измерениям (например, по
КонтрагентуилиДоговору).
Экспорт данных в Excel
Для дальнейшего анализа данные из регистра можно выгрузить в Excel:
- В форме регистра нажмите
Еще → Выгрузить в Excel(илиФайл → Сохранить как...). - Выберите формат (
.xlsxили.csv). - Укажите путь для сохранения файла.
В некоторых конфигурациях для выгрузки может потребоваться использовать внешнюю обработку (например, ВыгрузкаДанныхВExcel.epf).
Сравнение данных с другими регистрами
Часто требуется сверить данные из одного регистра накопления с другим. Например, остатки товаров на складе (ТоварыНаСкладах) и данные по партиям (ПартииТоваровНаСкладах). Для этого:
- Откройте
Универсальный отчет(Отчеты → Стандартные отчеты). - Добавьте оба регистра в источники данных.
- Настройте связи между измерениями (например,
НоменклатураиСклад).
Это поможет выявить расхождения, например, когда в одном регистре есть остатки, а в другом — нет.
Практические советы для разработчиков
Если вы занимаетесь доработкой конфигураций или написанием внешних обработок, работа с регистрами накопления требует особого подхода.
Оптимизация запросов к регистрам
Запросы к регистрам накопления могут тормозить систему, если не оптимизированы. Следующие приемы помогут ускорить работу:
- 🚀 Используйте
ИНДЕКСИРОВАТЬ ПОдля полей, по которым часто идет отбор. - 📊 Ограничивайте период выборки (например, вместо
ДАТАВРЕМЯ(1,1,1)используйте конкретную дату). - 🔍 Избегайте выборки всех полей — указывайте только необходимые.
Пример оптимизированного запроса:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрНакопления.ТоварыНаСкладах.Остатки.Номенклатура КАК Номенклатура,
| СУММА(РегистрНакопления.ТоварыНаСкладах.Остатки.КоличествоОстаток) КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКонца, Склад = &Склад)
|СГРУППИРОВАТЬ ПО
| РегистрНакопления.ТоварыНаСкладах.Остатки.Номенклатура";
Запрос.УстановитьПараметр("ДатаКонца", ТекущаяДата());
Запрос.УстановитьПараметр("Склад", СсылкаНаСклад);
Результат = Запрос.Выполнить();
Работа с виртуальными таблицами
Регистры накопления поддерживают виртуальные таблицы, которые упрощают получение остатков и оборотов:
- 📌
Остатки()— остатки на дату. - 🔄
Обороты()— обороты за период. - 📊
ОстаткиИОбороты()— комбинированные данные.
Пример использования виртуальной таблицы:
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Номенклатура КАК Номенклатура,
| Остатки.КоличествоОстаток КАК ОстатокНаНачало,
| Обороты.КоличествоПриход КАК Приход,
| Обороты.КоличествоРасход КАК Расход
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаНачала, ) КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНачала, &ДатаКонца, ) КАК Обороты
| ПО Остатки.Номенклатура = Обороты.Номенклатура";
Программное заполнение регистра
Иногда требуется вручную записать данные в регистр накопления (например, при миграции данных или исправлении ошибок). Для этого используйте метод Записать():
Регистр = РегистрыНакопления.ТоварыНаСкладах;
НаборЗаписей = Регистр.СоздатьНаборЗаписей();
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.Номенклатура = СсылкаНаНоменклатуру;
НоваяЗапись.Склад = СсылкаНаСклад;
НоваяЗапись.КоличествоОстаток = 100;
НаборЗаписей.Записать();
Внимание! Ручное изменение регистров может привести к расхождению данных. Всегда делайте резервную копию перед такими операциями.
Разница между регистрами накопления и другими объектами 1С
Часто пользователи путают регистры накопления с другими объектами 1С, такими как регистры сведений, регистры бухгалтерии или табличные части документов. Разберем ключевые отличия:
| Объект | Назначение | Пример использования | Хранит остатки? |
|---|---|---|---|
| Регистр накопления | Учет остатков и оборотов по измерениям | Остатки товаров на складах, взаиморасчеты | Да |
| Регистр сведений | Хранение справочной информации | Курсы валют, цены номенклатуры | Нет |
| Регистр бухгалтерии | Хранение бухгалтерских проводок | Обороты по счетам бухгалтерского учета | Да (сальдо) |
| Табличная часть документа | Хранение данных, связанных с документом | Список товаров в реализации | Нет |
Главное отличие регистра накопления — он автоматически поддерживает остатки и обороты, тогда как регистр сведений просто хранит данные без привязки к датам и периодам.
Например, если вам нужно узнать, сколько товаров было на складе на конкретную дату, вы обращаетесь к регистру накопления. А если требуется посмотреть историю изменения цены товара — к регистру сведений.
FAQ: Частые вопросы по работе с регистрами накопления
Как узнать, какой регистр накопления используется в документе?
Откройте документ в режиме Конфигуратор, найдите процедуру ОбработкаПроведения() и посмотрите, в какие регистры идут записи. Например, строка Движения.ТоварыНаСкладах.Записать(); указывает на регистр ТоварыНаСкладах.
Можно ли редактировать регистр накопления вручную?
Да, но это не рекомендуется, так как может привести к расхождению данных. Если требуется исправить ошибку, лучше:
- Найти документ, который сформировал неверные движения.
- Отменить его проведение, исправить и провести заново.
Ручное редактирование допустимо только в исключительных случаях и должно сопровождаться резервным копированием базы.
Почему в регистре накопления нет данных, хотя документы проведены?
Возможные причины:
- Документы проведены с ошибками (проверьте логи проведения).
- Настройка регистра изменена, и движения записываются в другое место.
- Дата в фильтре регистра установлена раньше даты документов.
- Права пользователя ограничивают просмотр данных.
Выполните Тестирование и исправление базы данных и проверьте движения документов через Все функции.
Как перенести данные из одного регистра накопления в другой?
Для переноса данных:
- Напишите обработку, которая читает данные из исходного регистра.
- Создайте набор записей для целевого регистра.
- Запишите данные с преобразованием структуры (если необходимо).
Пример кода:
ИсходныйРегистр = РегистрыНакопления.СтарыйРегистр;
ЦелевойРегистр = РегистрыНакопления.НовыйРегистр;
Выборка = ИсходныйРегистр.ВыбратьОстатки();
Пока Выборка.Следующий() Цикл
Набор = ЦелевойРегистр.СоздатьНаборЗаписей();
НоваяЗапись = Набор.Добавить();
НоваяЗапись.Период = Выборка.Период;
НоваяЗапись.Номенклатура = Выборка.Номенклатура;
НоваяЗапись.Количество = Выборка.КоличествоОстаток;
Набор.Записать();
КонецЦикла;
Как восстановить данные в регистре накопления после сбоя?
Если данные в регистре повреждены:
- Восстановите базу из резервной копии (если она есть).
- Используйте
Тестирование и исправление(Администрирование → Тестирование и исправление). - Перепроведите все документы за период (через
Обработка "Групповое перепроведение документов").
Если повреждения серьезные, может потребоваться помощь специалиста по 1С.