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

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

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

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

Причина блокировки: различие версий ПРОФ и КОРП

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

Посмотрим на ключевую разницу между версиями конфигурации:

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

Вариант 1. Отключение ограничения доступности полей (без программирования)

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

Разберем по шагам, как это сделать:

  1. Перейдем в раздел Настройка и администрирование.
  2. Откроем пункт Настройка программы и перейдем на вкладку Делопроизводство.
  3. Найдем и снимем флаг Ограничивать доступность полей по состоянию (соответствует системной константе ОграничиватьДоступностьПолейПоСостоянию).
  4. Сохраним настройки.

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

Вариант 2. Программная доработка через расширение конфигурации

Если бизнес-требования не позволяют открывать доступ ко всем полям зарегистрированного документа для всех пользователей, выясним причину блокировки в коде. Управление доступностью элементов формы выполняется процедурой УстановитьДоступностьПоСостоянию в общем модуле Делопроизводство.

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


// В общем модуле Делопроизводство
// Устанавливает доступность полей карточки документа в зависимости от состояния
Процедура УстановитьДоступностьПоСостоянию(Форма, Состояние, ДоступныеПоля = "") Экспорт

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

КонецПроцедуры

Рассмотрим подробнее логику данного алгоритма: если у сотрудника включена дополнительная роль (например, У_ПравоИзменятьДокПослеРегистрации), структура ДоступныеПоля очищается, благодаря чему система не накладывает программных запретов на форму, и кнопки добавления файлов остаются активными.

Вариант 3. Использование механизма связей документов

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

  1. Отсканированный подписанный документ загружаем в систему как отдельный файл в раздел Файлы либо создаем карточку связанного документа.
  2. В карточке зарегистрированного документа переходим на вкладку Связи.
  3. Добавляем связь с типом «Приложение», «Имеет копию» или «Относится к», указав загруженную скан-копию.

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

Вариант 4. Настройка доступности по состоянию (для версии КОРП)

Если база работает на редакции 1С:Документооборот КОРП, дорабатывать код не требуется. Проанализируем действия администратора:

  1. Перейдем в раздел Настройка и администрирование → Настройка доступности по состоянию.
  2. Выберем требуемый вид внутреннего документа.
  3. В строке состояния Зарегистрирован перейдем к настройке прав конкретной роли (например, «Делопроизводители»).
  4. Убедимся, что для реквизита или группы файлов установлен флаг доступности.
  5. Если настройки внешне заданы корректно, но пользователь все равно сталкивается с неактивными кнопками, достаточно просто открыть правила, перепроверить вкладки и нажать Записать и закрыть — система выполнит пересчет прав и обновит кэш доступности.

Проверка прав доступа к объектам

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

  1. Права на папку внутренних документов: даже при наличии права на сам документ, у сотрудника должно быть предоставлено право Изменение на конкретную папку, в которой лежит внутренний документ.
  2. Рабочая группа документа: если для вида документа включено ведение рабочих групп, проверим состав участников. Если пользователь не входит в рабочую группу объекта с правом на изменение, любые действия по добавлению файлов блокируются на уровне подсистемы прав доступа.
← На главную