Как массово заменить статью затрат в документах Отчет производства за смену

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

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

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

Причина сложности: структура документа ОПЗС

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

  1. Материалы: здесь указывается статья, по которой списывается сырье на выпуск.
  2. Прочие затраты: в этой вкладке фиксируются нематериальные расходы (например, электроэнергия или амортизация), распределяемые на выпуск.
  3. Возвратные отходы: здесь также может присутствовать статья затрат для корректного сторнирования расходов.
  4. Технологические операции: в некоторых редакциях статьи могут быть задействованы и здесь.

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

Способ 1: Использование встроенной обработки Групповое изменение реквизитов

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

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

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

Способ 2: Программная замена через код

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

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


Выборка = Документы.ОтчетПроизводстваЗаСмену.Выбрать(ДатаНачала, ДатаОкончания);

Пока Выборка.Следующий() Цикл
    ОбъектДок = Выборка.ПолучитьОбъект();
    Изменено = Ложь;
    
    // Проходим по табличной части "Материалы"
    Для Каждого СтрокаТЧ Из ОбъектДок.Материалы Цикл
        Если СтрокаТЧ.СтатьяЗатрат = СтараяСтатья Тогда
            СтрокаТЧ.СтатьяЗатрат = НоваяСтатья;
            Изменено = Истина;
        КонецЕсли;
    КонецЦикла;
    
    // Проходим по табличной части "Прочие затраты"
    Для Каждого СтрокаТЧ Из ОбъектДок.ПрочиеЗатраты Цикл
        Если СтрокаТЧ.СтатьяЗатрат = СтараяСтатья Тогда
            СтрокаТЧ.СтатьяЗатрат = НоваяСтатья;
            Изменено = Истина;
        КонецЕсли;
    КонецЦикла;
    
    Если Изменено Тогда
        Попытка
            // Важно использовать РежимЗаписиДокумента.Проведение
            ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
            Сообщить("Документ " + ОбъектДок + " успешно изменен и проведен.");
        Исключение
            Сообщить("Ошибка при проведении документа " + ОбъектДок + ": " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

В данном коде мы используем метод Записать(РежимЗаписиДокумента.Проведение). Это критически важно, так как при изменении Статьи затрат должны обновиться движения в регистрах накопления, таких как Затраты на производство и Выпуск продукции.

Способ 3: Внешние обработки (Универсальный подбор и обработка)

Для тех, кто не хочет писать код, существуют профессиональные инструменты, такие как обработка «Универсальный подбор и обработка объектов» (часто встречается на дисках ИТС или профильных ресурсах). В ней можно реализовать произвольный алгоритм для каждой строки выбранных документов. Это позволяет:

Критически важные нюансы методологии

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

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

Рекомендация по проверке

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

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

Рассмотренные нами методы позволяют быстро и эффективно навести порядок в производственном учете, избежав при этом рутинного ручного труда.

← На главную