Как корректно удалить ошибочную запись из регистра накопления в 1С, созданную помеченным на удаление документом в закрытом периоде?

Программист 1С v8.3 (Управляемые формы) Управленческий учет
← На главную

При работе в системе 1С пользователи часто сталкиваются с ситуацией, когда документ, даже помеченный на удаление или находящийся в закрытом периоде, продолжает формировать движения в регистрах накопления. Это может приводить к расхождениям в учете и некорректным данным в отчетах. В частности, речь идет о проблеме, когда ошибочная запись в регистре накопления, таком как ДенежныеСредстваУПодотчетныхЛиц, требует исправления или удаления, но прямое вмешательство кажется рискованным, особенно если период закрыт.

Давайте разберем эту непростую ситуацию, рассмотрим различные подходы к ее решению и выясним, какой из них является наиболее безопасным и корректным.

Постановка проблемы и первоначальные опасения

Представьте, что у нас есть документ, который по каким-то причинам был помечен на удаление. Однако этот документ, несмотря на свою "ненужность", все равно успел сделать движения в регистре накопления. При попытке удалить эту запись напрямую возникает вопрос: не нарушит ли это закрытие месяца, если период уже закрыт? Также существует опасение, что использование стандартного механизма Корректировки регистров приведет к увеличению общей суммы оборотов в отчетах, что в свою очередь вызовет расхождения с бухгалтерскими данными.

Автор исходной проблемы столкнулся именно с такой ситуацией, когда документ, помеченный на удаление, создал запись в регистре ДенежныеСредстваУПодотчетныхЛиц. Было замечено, что после попытки сделать корректировку, общая сумма в отчете Денежные средства увеличилась, итоговые суммы перестали сходиться с бухгалтерской обороткой.

Ключевые аспекты, которые необходимо учитывать

Прежде чем принимать решение о способе исправления данных, рассмотрим несколько важных моментов:

  1. Влияние на закрытие месяца: Насколько сильно изменение данных в регистре повлияет на регламентные операции закрытия месяца? Регистры накопления, используемые преимущественно для оперативного или управленческого учета (как ДенежныеСредстваУПодотчетныхЛиц), зачастую не участвуют напрямую в расчетах, формирующих бухгалтерские проводки при закрытии месяца. Однако это не означает, что риска нет совсем. Если данные из этого регистра агрегируются или являются источником для других регистров, влияющих на финансовый учет, то изменения могут потребовать перепроведения регламентных операций. Всегда рекомендуется проводить любые изменения на копии базы данных, прежде чем применять их в рабочей базе.
  2. Различие между прямым удалением и корректировкой: Это фундаментальное различие.
    • Прямое удаление записи полностью исключает ее из истории движений регистра. Это может быть нежелательно с точки зрения аудита и отслеживания изменений, так как стирает факт существования ошибочной записи.
    • Корректировка регистра создает новую запись, которая компенсирует или изменяет существующую. Это сохраняет историю, позволяя видеть как исходную (ошибочную) запись, так и ее исправление. Такой подход обычно предпочтительнее для обеспечения прозрачности учета.
  3. Воздействие на обороты в отчетах: Проблема "увеличения общей суммы оборотов" при корректировке, которая беспокоила автора, возникает, если корректировка создается как новая запись с видом движения "Приход" или "Расход", не сторнирующая предыдущую. Например, если ошибочно был приход на 100, а мы делаем еще один "Расход" на 100, то оборот по приходу будет 100, а по расходу - 100, и общие обороты увеличатся до 200, хотя остаток будет нулевым. Правильное использование сторно-записей при корректировке позволяет сохранить корректность оборотов, поскольку сторно-запись (как правило, с отрицательной суммой, меняющая вид движения на противоположный или явно помечающаяся как сторно) компенсирует исходную запись, не увеличивая общие обороты.
  4. Связанные отчеты: Изменения в регистрах напрямую влияют на данные в отчетах, таких как "Движения денежных средств", отчеты по подотчетным лицам. Важно убедиться, что после корректировки все связанные отчеты корректно отражают изменения и остаются согласованными с бухгалтерским учетом.

Методы исправления ошибочных движений

Рассмотрим два основных подхода к исправлению ошибочных движений в регистре накопления.

Вариант 1: Прямое удаление записей регистра (менее предпочтительный подход)

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

Для прямого удаления записей из регистра накопления программно, мы можем использовать следующий код в обработке или консоли запросов/кода:


// Предполагаем, что у нас есть ссылка на некорректный документ
// Например, Док = Документы.НашДокумент.НайтиПоНомер("0000001", ДатаНачала, ДатаОкончания);
// Или Док = Документы.НашДокумент.ПолучитьСсылку(Новый УникальныйИдентификатор("..."));

// Получаем менеджер регистра накопления
МенеджерРегистра = РегистрыНакопления.ДенежныеСредстваУПодотчетныхЛиц;

// Создаем набор записей регистра
НаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей();

// Устанавливаем отбор по регистратору (документу, который сделал движения)
НаборЗаписей.Отбор.Регистратор.Установить(Док);

// Считываем записи, соответствующие отбору
НаборЗаписей.Прочитать();

// Очищаем набор записей. Это приведет к удалению всех записей,
// которые попали под отбор, при следующей операции Записать()
НаборЗаписей.Очистить();

// Записываем пустой набор записей, что фактически удаляет движения документа
// из регистра.
НаборЗаписей.Записать();

Сообщить("Движения документа " + Док.Вид() + " №" + Док.Номер + " от " + Док.Дата + " из регистра " + МенеджерРегистра.Метаданные().Имя + " успешно удалены.");

Предостережения:

  1. Безвозвратность: Удаленные таким образом записи восстановить будет невозможно без восстановления базы данных из резервной копии.
  2. Целостность данных: Убедитесь, что удаление этих записей не нарушит логику других взаимосвязанных регистров или документов, которые могли опираться на эти движения.
  3. Права доступа: Для выполнения таких операций требуются полные права администратора или разработчика.
  4. Закрытые периоды: В закрытом периоде прямое удаление может быть заблокировано системой или требовать снятия блокировки периода, что само по себе является рискованной операцией.

Вариант 2: Использование документа "Корректировка регистров" со сторно (рекомендуемый и безопасный подход)

Этот метод является наиболее предпочтительным, поскольку он позволяет исправить ошибочные движения, сохраняя при этом полную историю изменений. Документ Корректировка регистров создает новую запись, которая компенсирует некорректную, не стирая ее из истории, что очень важно для аудита и анализа данных.

Давайте разберем по шагам, как использовать этот подход для решения нашей проблемы:

  1. Создание нового документа "Корректировка регистров":

    В большинстве типовых конфигураций 1С существует стандартный документ Корректировка регистров. Мы создаем новый экземпляр этого документа. Обычно он находится в разделе "Операции" или "Учет и отчетность".

  2. Выбор типа операции и регистра:

    В документе Корректировка регистров мы должны указать, какие регистры будут корректироваться. В нашем случае это регистр накопления ДенежныеСредстваУПодотчетныхЛиц.

    На закладке, связанной с регистрами накопления, мы добавляем новую строку для корректируемого регистра.

  3. Заполнение строк движений регистра:

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

    Предположим, ошибочная запись создала движение с ВидомДвижения = Приход и положительной суммой. Нам нужно "отменить" это движение.

    Мы создаем новую запись в табличной части корректировки для регистра ДенежныеСредстваУПодотчетныхЛиц со следующими параметрами:

    • Вид движения: Указываем Расход. Это важно, чтобы компенсировать исходный Приход. Если исходная запись была Расход, то здесь мы указываем Приход.
    • Сумма: Вводим сумму, которая была в ошибочной записи, но с отрицательным знаком. Например, если ошибочно пришло 100, то здесь указываем -100. Это фактически превращает запись "Расход на -100" в "Приход на 100", что компенсирует исходный "Приход на 100". Или, как в примере из темы, если висела сумма с минусом, то сторнируем ее Расход с минусом.
    • Измерение "Подотчетное лицо": Указываем то же подотчетное лицо, что и в ошибочной записи.
    • Измерение "Валюта": Указываем ту же валюту.
    • Флаг "Сторно": Устанавливаем его в положение Да. Этот флаг является критически важным. Он сигнализирует системе, что данная запись не является новым движением, а предназначена для сторнирования или корректировки существующего. В некоторых конфигурациях отрицательная сумма с видом движения, противоположным исходному, уже является сторнирующей, но явное указание "Сторно - Да" усиливает этот эффект и помогает в отчетности.

    Таким образом, мы формируем запись, которая нейтрализует эффект от ошибочной записи, не увеличивая при этом общие обороты, поскольку сторно-запись по своей сути является "отменяющей" записью.

    В сообщении 10 автор успешно применил этот подход: "Сделала документ корректировки регистра, с записью Расход, сумма с минусом, сторно - да. Все село правильно." Это подтверждает эффективность данного метода.

  4. Проведение документа:

    После заполнения всех необходимых полей, мы проводим документ Корректировка регистров. Система сформирует необходимые движения в регистре накопления, которые исправят ошибочные данные.

Последствия для отчетов и обеспечения консистентности данных

После проведения документа Корректировка регистров со сторно-записью, необходимо тщательно проверить следующие моменты:

  1. Отчеты по регистру: Сформируйте отчеты по регистру ДенежныеСредстваУПодотчетныхЛиц (например, универсальный отчет по движениям регистра) за период, включающий как ошибочную, так и корректирующую записи. Убедитесь, что конечные остатки и обороты теперь корректны.
  2. Связанные отчеты: Проверьте отчеты, которые используют данные из этого регистра, например, отчеты по расчетам с подотчетными лицами, отчеты о движении денежных средств (если регистр ДенежныеСредстваУПодотчетныхЛиц влияет на них). Убедитесь, что они показывают правильные данные.
  3. Согласованность с бухгалтерским учетом: Несмотря на то что ДенежныеСредстваУПодотчетныхЛиц является регистром накопления управленческого характера, его данные часто должны быть согласованы с соответствующими счетами бухгалтерского учета. Убедитесь, что исправление не привело к новым расхождениям в бухгалтерском учете. Если обнаружились расхождения, возможно, потребуется также провести корректировки в бухгалтерском или налоговом учете (например, через операции, введенные вручную, или другие специализированные документы корректировки, если это предусмотрено конфигурацией).
  4. Аудит: Сохранение истории корректировок является важным аспектом аудируемости. Документ Корректировка регистров с явной сторно-записью оставляет четкий след о том, кто, когда и что исправил, что значительно упрощает анализ и контроль.

Дополнительные рекомендации

Заключение

Мы выяснили, что наиболее безопасным и корректным способом исправления ошибочной записи в регистре накопления, такой как ДенежныеСредстваУПодотчетныхЛиц, созданной помеченным на удаление документом в закрытом периоде, является использование документа Корректировка регистров. Ключевым моментом здесь является создание сторно-записи с видом движения, противоположным ошибочному, отрицательной суммой и установленным флагом "Сторно - Да". Этот метод позволяет сохранить целостность данных, обеспечивает аудируемость и предотвращает искажение оборотов в отчетах.

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

← На главную