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

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

Откуда попадают данные в регистр накопления 1С

Разбираем, откуда попадают данные в регистр накопления 1С: проведение документов, движения, ручные операции, обмены. Как проверить и исправить записи.

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

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

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

Что такое регистратор и почему без него записи не бывает

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

Поэтому ответ на вопрос «откуда взялась эта строка» всегда начинается с колонки «Регистратор». Откройте список записей регистра (через меню «Все функции» → «Регистры накопления» или из отчёта), найдите нужную строку и посмотрите, какой документ указан в этой колонке. Открыв документ, вы можете проверить его движения кнопкой «Дт/Кт» или через «Ещё» → «Движения документа» в типовых конфигурациях.

Основной источник: проведение документов

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

Логика формирования записей описана в модуле объекта документа, в процедуре ОбработкаПроведения. В типовых решениях на БСП чаще используется механизм «Проведение по регистрам» с текстами запросов в модуле менеджера документа. Если движения формируются не так, как ожидается, причину нужно искать именно в этом коде, а не в самом регистре — регистр лишь хранит результат.

Что происходит при перепроведении

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

Ручные операции и корректировка регистров

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

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

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

Обмены данными и загрузка из внешних источников

В распределённых системах записи регистров могут приходить из других баз: через планы обмена, универсальный формат EnterpriseData, прямые COM/HTTP-интеграции. При загрузке документа обменом он проводится в базе-приёмнике и формирует движения так же, как если бы его провели вручную — с точки зрения регистра разницы нет.

Отличить «обменные» записи можно косвенно: по пользователю, от имени которого сеанс обмена выполнял проведение (виден в журнале регистрации), либо по специфическим комментариям и реквизитам документа. В журнале регистрации при включённом отборе по событию «Данные. Изменение» видно, какой сеанс и в какое время изменил документ и его движения.

Программная запись из обработок и расширений

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

Набор = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();

Набор.Отбор.Регистратор.Установить(ДокументСсылка);

Запись = Набор.Добавить();

Запись.ВидДвижения = ВидДвиженияНакопления.Приход;

Запись.Период = ДокументСсылка.Дата;

Запись.Номенклатура = НужнаяНоменклатура;

Запись.Количество = 10;

Набор.Записать();

Риск такого подхода в том, что запись с замещением (параметр по умолчанию) полностью удаляет прежние движения регистратора. Если обработка ошибочно записала пустой набор по чужому документу, его движения исчезнут, хотя сам документ останется проведённым. Это одна из самых коварных причин «потерянных» остатков.

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

Как отследить источник конкретной записи

Практический порядок действий при расследовании «откуда взялась строка»:

Порядок расследования записи
  1. 1
    Откройте записи регистра через «Все функции» → «Регистры накопления» и найдите строку
  2. 2
    Посмотрите колонку «Регистратор» и откройте документ-источник
  3. 3
    Проверьте движения документа и признак ручной корректировки
  4. 4
    Откройте журнал регистрации с отбором по данным документа — найдёте пользователя и время изменения
  5. 5
    Если регистратор — «Корректировка регистров» или обработка, выясните цель правки у автора

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

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

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

Запись в регистре
Норма

Есть регистратор, документ проведён, движения совпадают со строкой

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

Регистратор распроведён или движения документа пусты

Движения документа
Норма

Сформированы проведением, флаг ручной корректировки снят

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

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

Журнал регистрации
Норма

Изменения делал известный пользователь в рабочем порядке

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

Изменения от фонового сеанса обмена или неизвестной обработки

Ограничения и границы самостоятельной работы

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

Если расхождения носят массовый характер (например, после неудачного обмена или обновления конфигурации), не исправляйте записи поодиночке — восстановите последовательность проведения штатной обработкой «Проведение документов» или привлеките специалиста по 1С для анализа кода проведения.

Итог

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

Любая запись регистра накопления создана регистратором — начинайте поиск с него. Источники: проведение документов, ручные корректировки, обмены и программная запись. Журнал регистрации показывает, кто и когда изменил данные. Прямые правки в регистре делайте только после резервной копии.

Частые вопросы

Может ли запись в регистре накопления существовать без документа?

Нет. Поле «Регистратор» обязательно, и платформа не позволит записать строку без ссылки на документ. Если кажется, что записи «ниоткуда», ищите колонку регистратора в списке записей регистра.

Документ проведён, но движений в регистре нет. Почему?

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

Как найти все ручные правки в регистре за период?

Отберите записи по типу регистратора «Корректировка регистров» и проверьте документы с установленным признаком ручной корректировки движений. Дополнительно журнал регистрации покажет события изменения данных по конкретным пользователям.

Чем опасна обработка «исправления остатков» из интернета?

Такие обработки часто пишут наборы записей с замещением напрямую в регистр. Ошибка в отборе по регистратору может стереть движения посторонних документов. Запускайте подобные инструменты только на копии базы и сверяйте отчёты до и после.

Почему после обмена появились неожиданные движения?

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

Как запретить пользователям ручную правку движений?

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