Как создать или изменить вид операции документа в 1С:БГУ?

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

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

Почему нельзя просто добавить вид операции в пользовательском режиме

Проанализируем архитектуру конфигурации. В БГУ 1.0 перечень операций хранится в служебном справочнике ВидыОпераций. Тем не менее этот справочник является предопределенным и жестко связан со структурой метаданных:

  1. Перезапись настроек при обновлении конфигурации. Список операций и правила подстановки счетов формируются из встроенных XML-макетов, поставляемых фирмой «1С». При установке очередного релиза конфигурации или при выполнении регламентной процедуры обновления служебных данных справочник ВидыОпераций полностью перезаписывается значениями из типовых макетов. В результате любые пользовательские изменения удаляются.
  2. Программный алгоритм проведения. В документах БГУ логика формирования бухгалтерских записей и движений по регистрам заложена непосредственно в модуле объекта документа в процедуре ОбработкаПроведения. Программа проверяет условие вида Если ВидОперации = ... Тогда. Простое добавление строки в справочник не создает алгоритма формирования проводок: даже если документ запишется, провести его без доработки кода конфигурации не удастся.

Разбор распространенных ошибок при настройке операций

Для модификации правил операций часто применяется внешняя обработка настройки. При попытке интерактивно создать новый элемент с ее помощью возникают следующие исключения:

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

Ошибка «Значение не является значением объектного типа (Строки)». В коде обработки ошибка проявляется на строке:


ВеткаРеквизитов = Ветка.Строки.Найти(РеквизитДокумента, "РеквизитДокумента", Истина);

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

Способ 1. Изменение существующих операций через штатную обработку

Если задача заключается только в расширении доступных счетов или КОСГУ в уже существующей хозяйственной операции, разберем порядок действий без внесения глобальных правок в программный код.

  1. Воспользуемся специализированной внешней обработкой НастройкаВидовОпераций_БГУРед10.epf (поставляется в составе методических материалов диска ИТС).
  2. Откроем обработку в режиме «1С:Предприятие», выберем нужный документ и перейдем к интересующему виду операции.
  3. В табличной части «Допустимые значения параметров» отредактируем доступные значения реквизитов (например, добавим недостающие коды КОСГУ или субконто).
  4. Выгрузим полученную схему настроек документа в отдельный XML-файл с помощью кнопки выгрузки.
  5. Чтобы изменения не затирались при обновлении, откроем информационную базу в конфигураторе, найдем макет схемы операций нужного документа и заменим его содержимое на выгруженный XML-файл. При последующих типовых обновлениях конфигурации достаточно аккуратно объединять измененный макет.

Способ 2. Создание новой операции через Конфигуратор

Когда требуется принципиально новый тип хозяйственной операции с уникальной логикой формирования движений, необходимо внести доработки в структуру метаданных. Разберем по шагам, как это реализовать:

  1. В дереве метаданных конфигуратора найдем перечисление или справочник видов операций, привязанный к выбранному документу, и добавим новое значение.
  2. В модуле объекта документа найдем процедуру ОбработкаПроведения и добавим обработку нового вида операции. Посмотрим на типовой пример реализации:

Если ВидОперации = Перечисления.ВидыОперацийПоступлениеОС.ПоступлениеОтПоставщика Тогда
    // Формирование проводок по стандартному алгоритму
ИначеЕсли ВидОперации = Перечисления.ВидыОперацийПоступлениеОС.СвойВидОперации Тогда
    // Формирование проводок по новому пользовательскому алгоритму
    Проводка = Движения.БухгалтерскиеПроводки.Добавить();
    Проводка.Период = Дата;
    Проводка.СчетДт = СчетУчета;
    Проводка.СчетКт = СчетРасчетов;
    Проводка.Сумма = СуммаДокумента;
КонецЕсли;
  1. В модуле формы документа настроим правила видимости и доступности реквизитов для нового значения операции при смене реквизита ВидОперации.

Способ 3. Альтернативные варианты без изменения конфигурации

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

  1. Подключаемая обработка заполнения табличной части. Создадим внешнюю обработку по стандарту БСП/БГУ, которая подключается к документу через справочник дополнительных отчетов и обработок. Пользователь выбирает стандартную операцию «Прочие», нажимает кнопку заполнения, и обработка автоматически подставляет требуемые КФО, счета учета и аналитику. Это исключает ручные ошибки оператора.
  2. Типовые операции в документе «Операция (бухгалтерская)». Если операция не требует обязательного формирования движений по сложным вспомогательным регистрам накопления, настроим шаблон типовой проводки в стандартном ручном документе. В справочнике шаблонов можно жестко задать правила выбора КФО, дебетовых и кредитовых счетов, а также заполняемые субконто.
  3. Использование редакции БГУ 2.0. Отметим важное архитектурное отличие редакции 2.0: в ней механизм видов операций заменен на справочник ТиповыеОперации. Пользователи могут создавать собственные типовые операции непосредственно в режиме предприятия копированием существующих шаблонов без программирования, а изменения не затираются при обновлении релизов.
← На главную