Как изменить срок действия утвержденного договора в «1С:Документооборот» при помощи дополнительного соглашения?

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

В процессе работы с договорами в программе «1С:Документооборот» пользователи часто сталкиваются со следующей задачей: договор согласован, утвержден, зарегистрирован и закрыт от редактирования. Спустя некоторое время стороны решают продлить срок его действия и составляют дополнительное соглашение. Дополнительное соглашение регистрируется в системе, однако срок действия самого основного договора остается прежним, из-за чего программа начинает помечать его как истекший.

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

Почему поле «Срок действия» становится недоступным для редактирования?

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

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

Способ 1. Стандартный механизм продления через карточку дополнительного соглашения (Рекомендуемый)

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

Проанализируем этот процесс по шагам:

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

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

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

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

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

  1. Выбираем тип документа (например, «Внутренний документ» и конкретный вид — «Договор аренды»).
  2. Находим матрицу состояний документа.
  3. Для нужного состояния (например, «Зарегистрирован») переходим в настройки доступности полей.
  4. Находим реквизит Срок действия (или группу реквизитов сроков) и устанавливаем для него признак Разрешено для конкретных ролей пользователей (например, для юристов или ответственных за договор).

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

Способ 3. Программное изменение срока для версии ПРОФ

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

Рассмотрим пример кода, который позволяет обойти стандартную блокировку записи реквизитов для закрытого документа при программном изменении срока:


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

Этот код позволяет программно обновить дату окончания договора и связать его с допсоглашением в обход интерактивных запретов интерфейса. Использование флага ОбменДанными.Загрузка = Истина позволяет временно обойти подписки на события проверки прав редактирования.

Как этот процесс организован в «1С:Документооборот 3.0»?

При переходе на актуальную редакцию 3.0 работа с договорами и сроками становится еще более удобной и автоматизированной:

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

← На главную