Как сделать активной кнопку «Заполнить файл данными документа» в 1С:Документооборот 8 ПРОФ для зарегистрированных документов?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

В процессе работы с 1С:Документооборот 8 ПРОФ многие пользователи сталкиваются с тем, что после регистрации документа система блокирует возможность автоматического обновления файлов. Это логичное поведение с точки зрения делопроизводства, однако на практике часто возникает потребность внести корректировки в файл даже после того, как документу присвоен регистрационный номер. В этой статье мы разберем, почему это происходит и как решить данную задачу программными средствами.

Понимание ограничений версии ПРОФ

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

Это означает, что попытки найти соответствующие настройки в меню программы не увенчаются успехом. Логика доступности действий в версии ПРОФ заложена непосредственно в коде конфигурации. Поэтому, если вам необходимо обойти стандартную блокировку для зарегистрированных документов, единственным рабочим методом является программное вмешательство.

Анализ механизма доступности полей

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

Делопроизводство - ПолучитьДоступныеИНедоступныеПоСостояниюПоля()

Именно этот метод анализирует текущий статус документа и решает, позволить пользователю нажать кнопку «Заполнить файл данными документа» или скрыть/заблокировать её. Для того чтобы изменить поведение системы, нам потребуется «вмешаться» в логику работы этого метода или переопределить её с помощью Расширений конфигурации.

Реализация решения: пошаговый алгоритм

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

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

Пример логики, которую можно реализовать программно:


// Пример псевдокода для реализации логики в расширении
Функция ПолучитьДоступныеИНедоступныеПоСостояниюПоля_Переопределенная(ДокументСсылка)
    
    // Получаем стандартный результат проверки
    Результат = ПрошлыйВызов(ДокументСсылка);
    
    // Если документ зарегистрирован, разрешаем заполнение файлов для администратора
    Если ДокументСсылка.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияДокументов.Зарегистрирован") Тогда
        Если РольДоступна("ПолныеПрава") Тогда
            // Снимаем блокировку для кнопки заполнения файла
            Результат.РазрешитьЗаполнениеФайлов = Истина;
        КонецЕсли;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Важные нюансы и риски

При выполнении данной доработки важно учитывать несколько критических аспектов:

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

← На главную