Где формируются проводки по регистру бухгалтерии в документе Корректировка реализации в УПП 1.3

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При работе с конфигурацией «Управление производственным предприятием» (УПП) редакции 1.3 программисты часто сталкиваются с тем, что движения документа по регистру бухгалтерии Хозрасчетный невозможно найти привычным способом через модуль объекта. Документ Корректировка реализации — один из самых сложных в этом плане, так как его логика распределена между менеджером модуля, общими модулями партионного учета и механизмами проведения по партиям. Разберем подробно, где именно искать код, отвечающий за «рождение» бухгалтерских записей.

Архитектурные особенности формирования движений в УПП

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

Рассмотрим основные факторы, влияющие на процесс:

  1. Режим учета затрат: Если в вашей базе используется РАУЗ (Расширенная аналитика учета затрат), то окончательные стоимостные движения по Кт 41 или 43 счетов появятся только после выполнения регламентной операции Расчет себестоимости.
  2. Партионный учет: Если используется классический партионный учет, проводки по себестоимости формируются механизмом списания партий. Если в настройках параметров учета снята галочка «Списывать партии при проведении документов», проводки по регистру Хозрасчетный в части списания ТМЦ появятся только после запуска обработки Проведение по партиям.

Шаг 1: Поиск основного кода в менеджере модуля

Проанализируем структуру документа. В современных версиях УПП 1.3 значительная часть логики вынесена в Менеджер модуля. Это сделано для оптимизации и возможности формирования проводок без создания тяжеловесного объекта документа.

Выясним точное место формирования проводок по товарам. Как показывает практика, основной алгоритм сосредоточен в процедуре:

Документы.КорректировкаРеализаций.СформироватьПроводкиПоТовару()

Эта процедура отвечает за подготовку данных для формирования записей в регистре бухгалтерии. Именно здесь определяется, какие счета доходов и расходов будут задействованы, как будет рассчитываться сумма НДС и какие субконто будут заполнены. Если вам нужно изменить логику заполнения счетов, начинать анализ стоит именно отсюда.

Шаг 2: Механизм записи движений через общие модули

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

Для записи движений в УПП часто используется процедура:

УправлениеЗапасамиПартионныйУчет.ЗаписатьДвижения

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

Шаг 3: Взаимосвязь с таблицей СписанныеТовары

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

Рассмотрим пример кода, который может встретиться при доработке системы (с осторожностью относитесь к подобным вставкам):


Процедура ЗаполнитьКолонкиРегистраСписанныеТоварыПоТоварамРегл(ТаблицаДвижений, СтруктураШапкиДокумента, ТаблицаПоТоварам)
    
    // Заполнение базовых реквизитов организации и отражения в учете
    ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете, "ОтражатьВБухгалтерскомУчете");
    ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
    
    Для Каждого Строка Из ТаблицаДвижений Цикл
        СтрокаТЧ = ТаблицаПоТоварам.Получить(Строка.НомерСтроки);
        
        // Установка корреспондирующих счетов из ТЧ документа
        Строка.КорСчетБУ      = СтрокаТЧ.СчетРасходовБУ;
        Строка.КорСубконтоБУ2 = СтрокаТЧ.СубконтоБУ;
        
        // Определение суммы задолженности в зависимости от того, возврат это или исправление
        ЭтоВозврат = (Строка.КодОперацииПартииТоваров = Перечисления.КодыОперацийПартииТоваров.ВозвратОтПокупателя);
        Строка.СуммаЗадолженностиБУ = ?(ЭтоВозврат, -(СтрокаТЧ.СуммаБезНДС + СтрокаТЧ.НДС), СтрокаТЧ.СуммаБезНДС + СтрокаТЧ.НДС);
    КонецЦикла;
    
    // Внимание: если здесь вызвать ТаблицаДвижений.Очистить(), 
    // проводки по списанию себестоимости в БУ сформированы не будут!
    
КонецПроцедуры

Шаг 4: Различия в типах операций

Выясним, как тип операции документа влияет на место формирования проводок. В Корректировке реализации есть два ключевых режима:

  1. Корректировка по согласованию сторон: Проводки обычно делаются текущей датой (датой документа корректировки). Код в менеджере модуля анализирует разницу между «до» и «после» и формирует дополнительные или сторнирующие записи.
  2. Исправление в первичных документах: Здесь включается механизм «красного сторно». Система может обращаться к функции ПодготовитьТаблицуСторно, которая программно вычитает движения исходного документа реализации. В этом случае проводки формируются на основании движений регистратора-основания.

Советы по поиску «исчезающих» проводок

Если вы все еще не видите, где записывается набор записей Хозрасчетный, попробуйте следующие методы:

Таким образом, для полного понимания процесса формирования движений в Корректировке реализации необходимо последовательно изучить Менеджер документа (формирование таблиц проводок) и Общие модули партионного учета (физическая запись наборов в регистр). Только комплексный анализ этих узлов позволит точно определить точку внесения изменений в логику учета.

← На главную