Как программно включить отображение ссылки «Исправить» в документах 1С:ЗУП 3.1?

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

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

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

Логика работы механизма исправления документов

Проанализируем, почему команда исправления не появляется сразу после проведения кадрового документа. В типовой архитектуре ЗУП 3.1 гиперссылка «Исправить» выводится динамически в командной панели или нижней части формы. Система анализирует статус документа с помощью процедур общего модуля ИсправлениеДокументовЗарплатаКадры.

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

  1. Документ проведен в информационной базе.
  2. По документу зарегистрирована фактическая выплата (создан и проведен документ Ведомость в кассу, Ведомость в банк или Ведомость на счета).
  3. В информационной базе за соответствующий расчетный месяц проведен документ Отражение зарплаты в бухучете.
  4. Установлена общая или индивидуальная дата запрета изменения данных, перекрывающая дату или расчетный период документа.

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

Программный поиск процедур управления кнопкой

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

  1. ИсправлениеДокументовЗарплатаКадры.ДоступноИсправлениеРасчетногоДокумента — функция, определяющая, разрешено ли создавать документ-исправление для переданного объекта.
  2. ИсправлениеДокументовЗарплатаКадры.ПрочитатьРеквизитыИсправления — процедура, считывающая параметры исходного документа и определяющая статус его редактирования.

Вариант 1. Переопределение логики через расширение конфигурации

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

Подключим функцию ДоступноИсправлениеРасчетногоДокумента в расширение и изменим возвращаемое значение с помощью аннотации &Вместо или &После:


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

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

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

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

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