В процессе работы в конфигурации «1С:Управление производственным предприятием 1.3» часто возникает ситуация, когда данные в управленческих регистрах (складские остатки, материалы в производстве, незавершенное производство) накапливают ошибки. Если таких данных «безумное количество» и они признаны некорректными, возникает необходимость их полной очистки, чтобы начать учет «с чистого листа», не затрагивая при этом бухгалтерский и налоговый учет. Разберем подробно, как реализовать эту задачу максимально быстро и качественно.
Этот способ является наиболее безопасным и «штатным» с точки зрения логики программы. Он позволяет не просто удалить записи, а зафиксировать факт обнуления в системе. Проанализируем алгоритм действий:
Количество (или КоличествоУчет в зависимости от версии обработки) и установим значение 0.Если в системе присутствуют отрицательные остатки, по аналогичной схеме на основании инвентаризации создается документ «Оприходование товаров», который выведет минус в ноль.
Если документов настолько много, что стандартное удаление или проведение складских актов займет недели, рассмотрим программный подход. Метод заключается в прямой записи пустого набора записей в конкретные регистры. Выясним, как это выглядит в коде:
// Пример очистки регистра "ТоварыНаСкладах"
Процедура ОбнулитьРегистрНакопления(ИмяРегистра)
НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
// Если нужно очистить вообще всё без фильтра по регистратору
// Будьте осторожны: это удалит ВСЕ движения в истории!
НаборЗаписей.Записать(Истина);
КонецПроцедуры
Важно понимать последствия: если вы просто очистите набор записей у регистратора, документ останется «проведенным» (с зеленой галочкой), но не будет делать никаких движений. Проанализируем риски: при любом случайном перепроведении такого документа старые (неправильные) данные вернутся. Поэтому данный метод рекомендуется использовать только в связке с пометкой документов на удаление или установкой даты запрета редактирования.
Свертка — это радикальный, но наиболее правильный метод для очистки исторических данных. Разберем по шагам, как это работает в УПП:
Свертка выполняет две задачи: удаляет движения документов до определенной даты и создает документы «Ввод начальных остатков» или «Корректировка записей регистров» на дату свертки. Чтобы обнулить производство, вы можете:
ТоварыНаСкладах, МатериалыВПроизводстве, НезавершенноеПроизводство).Проанализируем специфику УПП 1.3. Если в вашей базе включен режим РАУЗ, то классические регистры остатков (партии, товары на складах) могут не использоваться или использоваться частично. В этом случае все основные данные о затратах и остатках материалов в производстве хранятся в регистре накопления УчетЗатрат (и УчетЗатратРегл для бухгалтерии).
Внимание: При использовании РАУЗ очищать нужно именно эти регистры. Если вы обнулите «Товары на складах», но оставите записи в «Учете затрат», расчет себестоимости в конце месяца может выдать непредсказуемые результаты, так как система будет видеть остатки по аналитике затрат.
Часто при попытке обнуления через групповые обработки возникает ошибка: «Редактирование данных этого периода запрещено». Рассмотрим, как обойти это ограничение для административных целей:
Перейдем в интерфейс «Заведующий учетом» — «Настройка даты запрета изменения данных». Здесь можно либо полностью отключить проверку даты запрета, либо исключить из нее пользователя, под которым выполняются работы. Также в программных обработках рекомендуется использовать следующий прием:
ОбъектДокумент = СсылкаНаДокумент.ПолучитьОбъект();
ОбъектДокумент.ОбменДанными.Загрузка = Истина;
// Этот флаг позволяет игнорировать проверки при записи, включая дату запрета
ОбъектДокумент.Записать(РежимЗаписиДокумента.Запись);
Если вы решили все же удалять документы, проанализируем, почему это происходит долго. Основная нагрузка идет на пересчет итогов регистров. Посмотрим, как ускорить процесс:
Управление итогами отключите расчет текущих и промежуточных итогов для целевых регистров. Это может ускорить процесс в несколько раз.TRUNCATE TABLE. Однако после этого обязательно требуется запуск тестирования и исправления в 1С с пересчетом итогов, иначе отчеты будут показывать старые данные.Simple на время проведения работ.Подводя итог, наиболее сбалансированным методом для пользователя будет Инвентаризация + Списание, а для технического специалиста — Свертка базы по выбранным регистрам или использование документа Корректировка записей регистров, заполненного программно остатками с обратным знаком.