При работе в конфигурациях на базе 1С:Предприятие 8 (например, в Управление торговлей 10.3) часто возникает ситуация, когда в уже проведенных документах был неверно указан договор. Стандартный механизм Корректировка записей регистров предназначен для сторнирования, что не подходит в случаях, когда нужно просто поправить аналитику без изменения количественных или суммовых показателей. Разберем, как решить эту задачу профессионально.
Стандартный документ Корректировка записей регистров спроектирован для обеспечения целостности данных. Его задача — аннулировать ошибочное движение (запись с отрицательными значениями) и создать новое (с положительными). Однако, если ваша задача заключается исключительно в изменении реквизита Договор, использование сторно приводит к искажению отчетов по валовой прибыли и остаткам, так как система начинает оперировать «минусовыми» записями, что крайне нежелательно в закрытом периоде.
Наиболее эффективный способ исправления данных в «закрытом» периоде — это прямое вмешательство в набор записей регистра. Мы не создаем новые документы, а меняем реквизиты в уже существующих записях.
Рассмотрим алгоритм действий при написании внешней обработки:
Регистратор (ссылку на документ реализации).НаборЗаписей соответствующего регистра накопления.НаборЗаписей.Прочитать().Договор.НаборЗаписей.Записать().Пример программного кода для реализации этого подхода:
// Предположим, мы правим регистр Продажи
НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокументРеализации);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Запись.ДоговорКонтрагента = НовыйДоговор;
КонецЦикла;
НаборЗаписей.Записать();
Если объем правок велик, а написание обработки занимает много времени, опытные разработчики используют Инструменты Разработчика (ИР). Это мощный комплекс для прямого манипулирования данными базы данных.
Работая в ИР, вы можете:
Важно помнить, что при работе через ИР вы берете на себя ответственность за логическую целостность системы. Обязательно проверяйте отчеты после внесения правок.
При внесении подобных изменений всегда соблюдайте следующие правила:
Комментарий (если оно есть) или во внутренних логах причину и время правок. Это критически важно для аудита через год-два.Обновление итогов, если конфигурация и версия платформы это поддерживают, чтобы отчеты показывали актуальные остатки.УТ не передастся автоматически в Бухгалтерию. Вам потребуется либо повторно выгрузить измененные документы, либо согласовать изменения в обеих базах.Таким образом, прямое изменение реквизита в наборе записей регистра — это единственный легитимный способ исправления ошибки в «закрытом периоде», когда стандартное перепроведение невозможно или логика учета запрещает изменения через сторно. Будьте аккуратны, всегда работайте с отбором по регистратору и тщательно тестируйте результат на копии базы.