Как обнулить регистры накопления по производству и складам в 1С:УПП 1.3?

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

В процессе работы в конфигурации «1С:Управление производственным предприятием 1.3» часто возникает ситуация, когда данные в управленческих регистрах (складские остатки, материалы в производстве, незавершенное производство) накапливают ошибки. Если таких данных «безумное количество» и они признаны некорректными, возникает необходимость их полной очистки, чтобы начать учет «с чистого листа», не затрагивая при этом бухгалтерский и налоговый учет. Разберем подробно, как реализовать эту задачу максимально быстро и качественно.

Метод 1: Использование документов инвентаризации и списания

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

  1. Создадим документ «Инвентаризация товаров на складе». В нем выберем нужный склад и организацию.
  2. Заполним документ текущими остатками по данным учета. На этом этапе в табличной части появятся все позиции, которые программа «видит» на складе.
  3. Теперь нам необходимо обнулить колонку «Количество фактическое». Если строк тысячи, делать это вручную невозможно. Используем встроенную «Групповую обработку справочников и документов».
  4. В обработке выберем тип объекта «Документы», установим отбор по нашему конкретному документу инвентаризации.
  5. В настройках обработки обязательно установим флаг «Разрешить изменение объектов».
  6. Выберем действие «Изменить реквизит», найдем поле Количество (или КоличествоУчет в зависимости от версии обработки) и установим значение 0.
  7. После того как в документе инвентаризации фактическое количество стало равным нулю, на его основании создадим документ «Списание товаров». Он автоматически заполнится всей разницей (весь учетный остаток уйдет в расход).

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

Метод 2: Программная очистка наборов записей

Если документов настолько много, что стандартное удаление или проведение складских актов займет недели, рассмотрим программный подход. Метод заключается в прямой записи пустого набора записей в конкретные регистры. Выясним, как это выглядит в коде:


// Пример очистки регистра "ТоварыНаСкладах"
Процедура ОбнулитьРегистрНакопления(ИмяРегистра)
    НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
    // Если нужно очистить вообще всё без фильтра по регистратору
    // Будьте осторожны: это удалит ВСЕ движения в истории!
    НаборЗаписей.Записать(Истина); 
КонецПроцедуры

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

Метод 3: Свертка базы данных

Свертка — это радикальный, но наиболее правильный метод для очистки исторических данных. Разберем по шагам, как это работает в УПП:

Свертка выполняет две задачи: удаляет движения документов до определенной даты и создает документы «Ввод начальных остатков» или «Корректировка записей регистров» на дату свертки. Чтобы обнулить производство, вы можете:

  1. Запустить стандартную обработку «Свертка информационной базы».
  2. На этапе выбора регистров указать только те, что относятся к производству и складам (например, ТоварыНаСкладах, МатериалыВПроизводстве, НезавершенноеПроизводство).
  3. После формирования остатков просто не проводить созданные документы ввода остатков или удалить из них строки — тогда по этим регистрам в системе образуется «пустота» на дату свертки.

Важный нюанс: Режим РАУЗ (Расширенная аналитика учета затрат)

Проанализируем специфику УПП 1.3. Если в вашей базе включен режим РАУЗ, то классические регистры остатков (партии, товары на складах) могут не использоваться или использоваться частично. В этом случае все основные данные о затратах и остатках материалов в производстве хранятся в регистре накопления УчетЗатрат (и УчетЗатратРегл для бухгалтерии).

Внимание: При использовании РАУЗ очищать нужно именно эти регистры. Если вы обнулите «Товары на складах», но оставите записи в «Учете затрат», расчет себестоимости в конце месяца может выдать непредсказуемые результаты, так как система будет видеть остатки по аналитике затрат.

Метод 4: Работа с датой запрета изменения

Часто при попытке обнуления через групповые обработки возникает ошибка: «Редактирование данных этого периода запрещено». Рассмотрим, как обойти это ограничение для административных целей:

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


ОбъектДокумент = СсылкаНаДокумент.ПолучитьОбъект();
ОбъектДокумент.ОбменДанными.Загрузка = Истина; 
// Этот флаг позволяет игнорировать проверки при записи, включая дату запрета
ОбъектДокумент.Записать(РежимЗаписиДокумента.Запись);

Оптимизация производительности при массовом удалении

Если вы решили все же удалять документы, проанализируем, почему это происходит долго. Основная нагрузка идет на пересчет итогов регистров. Посмотрим, как ускорить процесс:

Подводя итог, наиболее сбалансированным методом для пользователя будет Инвентаризация + Списание, а для технического специалиста — Свертка базы по выбранным регистрам или использование документа Корректировка записей регистров, заполненного программно остатками с обратным знаком.

← На главную