Как передавать дела на время отпуска в 1С:Документооборот и настраивать скрипты автозаполнения

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

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

Механизм передачи дел через «Отсутствие» и «Делегирование прав»

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

  1. Регистрация отсутствия: В разделе «Личное» или «Совместная работа» необходимо создать документ Отсутствие. Здесь указываются сроки отпуска, причина и, что самое важное, сотрудник, который будет замещать коллегу.
  2. Настройка делегирования: На основании созданного отсутствия система предложит настроить Делегирование прав. Это критически важный шаг. Делегирование позволяет другому пользователю видеть документы и задачи от лица отпускника. Вы можете делегировать как все права, так и только определенные области (например, только работу с входящими документами или конкретными процессами).
  3. Настройка замещения (для версии 3.0): В актуальных редакциях программы вместо делегирования используется механизм «Замещающие и помощники». Мы указываем замещающего, и система автоматически добавляет задачи отпускника в список задач исполнителя с пометкой «от [Имя]».

Работа с уже запущенными задачами: Эскалация

Часто возникает вопрос: что делать с задачами, которые уже находятся в работе («начаты»), и в которых нельзя просто так поменять контролера или исполнителя? Рассмотрим ситуацию, когда нужно «подтолкнуть» процесс.

Для этого мы используем механизм Эскалация задач. Эскалация позволяет настроить автоматические правила обработки задач при наступлении определенных условий (например, если исполнитель не выполнил задачу в срок или находится в отпуске). Разберем шаги настройки:

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

Исправление скриптов автозаполнения: Юридический адрес организации

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

Если нам нужно вытянуть адрес именно для Организации (нашей компании), код должен учитывать, что ссылка будет относиться к справочнику Организации, а не Контрагенты. Посмотрим на исправленный вариант скрипта:


// Получаем стороны документа
Стороны = Файл.ВладелецФайла.Стороны;
Компания = Неопределено;

// Ищем в списке сторон нашу организацию
Для каждого Стр Из Стороны Цикл  
    Если ТипЗнч(Стр.Сторона) = Тип("СправочникСсылка.Организации") Тогда   
        Компания = Стр.Сторона;     
        Прервать; 
    КонецЕсли;
КонецЦикла;

Если Компания <> Неопределено Тогда
    // Запрос к контактной информации организации
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОрганизацииКонтактнаяИнформация.Представление КАК ЮрАдрес
        | ИЗ
        |   Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
        | ГДЕ
        |   ОрганизацииКонтактнаяИнформация.Ссылка = &Компания
        |   И ОрганизацииКонтактнаяИнформация.Вид = &Вид";

    Запрос.УстановитьПараметр("Компания", Компания);
    // Важно: используем вид именно для организаций!
    Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);

    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Следующий() Тогда
        РезультатОбработки = Результат.ЮрАдрес;
    Иначе
        РезультатОбработки = "";
    КонецЕсли;
Иначе
    РезультатОбработки = "Организация не найдена в списке сторон";
КонецЕсли;

Важный момент: Обратите внимание на параметр Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации. Одна из самых распространенных ошибок — использование предопределенного элемента ЮрАдресКонтрагента при попытке получить данные организации. В базе 1С это разные элементы справочника ВидыКонтактнойИнформации, и запрос вернет пустой результат, если их перепутать.

Автозаполнение «Основания» (Устав, Доверенность)

Еще один частый вопрос — автоматическая подстановка фразы «на основании Устава» или данных доверенности. Рассмотрим логику, которую можно заложить в скрипт автозаполнения:

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

  1. Проанализируем должность подписанта. Если должность содержит «Генеральный директор», сразу возвращаем строку "Устава".
  2. Если это не директор, ищем в карточке сотрудника или в связанных документах действующую доверенность.
  3. Если данные не найдены, полезно возвращать значение по умолчанию, чтобы пользователь сразу видел, что поле требует ручного вмешательства.

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

РезультатОбработки = УправлениеКонтактнойИнформацией.ПредставлениеОбъекта(Компания, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);

Подведем итог: для успешной передачи дел на время отпуска используйте связку Отсутствие + Делегирование (или Замещение) + Эскалация. А при настройке шаблонов внимательно следите за типами объектов (Организация vs Контрагент) и используйте правильные ссылки на виды контактной информации. Это обеспечит бесперебойную работу бизнес-процессов в компании даже в период массовых отпусков.

← На главную