В конфигурации "Бухгалтерия государственного учреждения 2.0" (БГУ 2.0) механизм проведения документов существенно отличается от привычных коммерческих конфигураций. Часто возникают ситуации, когда после обновления или при создании собственной настройки, документ проводится, но движения по определенным регистрам (например, "Оплата поставщикам, кредиторам") отсутствуют. Рассмотрим подробно причины этого поведения и методику решения проблемы.
Прежде чем приступать к отладке, нам необходимо понять, как именно формируются проводки и движения в этой конфигурации. В отличие от жестко прописанного кода в процедуре ОбработкаПроведения модуля объекта, в БГУ 2.0 используется механизм Типовых операций.
Логика работы такова:
ТиповыеОперации.Именно поэтому стандартная отладка (точка останова в модуле документа) часто не дает результата: вы просто не попадаете в тот момент, где формируется конкретная запись регистра, так как это происходит внутри общих модулей интерпретатора операций.
Разберем ситуацию, с которой столкнулся автор вопроса. У него была типовая операция (поставляемая фирмой 1С) и созданная на ее основе собственная (скопированная и немного измененная).
После обновления релиза конфигурации разработчики (1С) могли внести изменения в структуру регистров или логику проведения:
Суть проблемы: При обновлении конфигурации предопределенные (типовые) операции обновляются автоматически. А ваша созданная копия ("нетиповая") остается в том виде, в котором она была на момент создания. В результате, обновленный механизм проведения ожидает получить данные, которых нет в настройках вашей старой копии операции.
Поскольку прямой отладчик не всегда удобен для анализа настроек операций, наиболее эффективным методом поиска причины является использование Замера производительности. Пройдем этот путь по шагам, как это сделал автор решения.
Для начала нам нужно локализовать место, где система пытается записать данные в проблемный регистр.
В открывшемся списке строк кода нам необходимо найти упоминание нашего регистра. Воспользуйтесь поиском (Ctrl+F) и введите имя регистра, например, ОплатаПоставщикам (или его синоним). Вы найдете строки кода в общих модулях, отвечающие за формирование наборов записей.
Анализируя код вокруг найденной строки, вы увидите процедуру, которая собирает данные. Сравнив поведение на типовой операции и на вашей, можно увидеть, что в пользовательской операции массив данных приходит неполным.
Как выяснилось в ходе обсуждения, наиболее частая причина — отсутствие необходимых Источников данных в настройке операции. Исправим это.
Выполним следующие действия:
Скорее всего, вы обнаружите, что в типовой операции появились новые поля или формулы, которых нет у вас. Также обратите внимание на цветовые индикаторы: если в вашей операции какие-то поля подсвечены красным, это значит, что связь с реквизитами документа потеряна.
Что нужно сделать:
Помимо настроек самой операции, движения по регистрам взаиморасчетов и обязательств в БГУ 2.0 сильно зависят от настроек справочника Договоры и иные основания возникновения обязательств.
Проверьте следующие настройки в договоре контрагента:
Однако, если при смене операции на типовую (в рамках одного и того же договора) движения появляются, значит проблема точно лежит в плоскости настроек самой ТиповойОперации, как мы разобрали выше.
Если вы сталкиваетесь с тем, что движения не формируются: