Обновить данные адресной книги 1с документооборот

Обновлено: 04.07.2024

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

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

Я задачу дефрагментировал на части:

1) Настройка демо базы ДО КОРП. (в базе должен быть нужный нам вид внутреннего документа, работающий шаблон комплексного БП, роли исполнителей которые нужны для работы с документом )

К статье приложены

1) архив демо базы с настройкой.

2) обработка для программного управления БП с реализованным интерактивным отчетом отражающим текущее место нашей Заявки на Страхование в схеме БП (в пищевой цепочке).

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

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

В данном случае я создаю внутренний документ - Предмет , по Предмету создаю БП , далее я модифицирую реквизиты в предмете что влияет на логику переходов схемы и толкаю незавершенный БП на следующий шаг. Документооборот согласно состоянию Предмета в зависимости от того где он находится сейчас генерирует очередную задачу согласно логике схемы. Это автоматическая маршрутизация.

Заложена ли возможность директивной маршрутизации на произвольную точку схемы БП в типовую модель Документооборота - я пока не разобрался (тот случай, когда новую задачу по БП или подчиненный БП создаешь сам и желательно на произвольную точку БП)

Вопросы и комментарии категорически приветствуются.

Тестировалось на Документооборот 8 КОРП, редакция 2.1 (2.1.12.2) и 1С:Предприятие 8.3 (8.3.12.1529)

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


После обновления появятся автоподстановки для ролей, которые используются с объектами адресации:


Допустим у нас есть роль "_Тест":


Исполняет данную роль пользователь "Администратор" по организации "ООО Управляющая компания" и по подразделению "Администрация":


Автоподставнока "_Тест (Роль)" со скришота выше сможет автоматически определить объекты адресации по предмету для роли "_Тест".

В расширении изменения объекта проверяются другим способом. Если хотя бы один реквизит из документа изменен, тогда файлы, которые не заняты на редактирование, созданы по шаблону, не помечены на удаление обновляются данными документа.

Настройка данной функции выполняется в виде внутреннего/исходящего документа.

Данная функция работает только при создании процесса по шаблону. В шаблоне процесса добавлен реквизит "Создавать задачу ознакомления":


В данном реквизите настраивается вариант создания задачи ознакомления.

Для заполнения реквизита "Создавать задачу ознакомления" после обновления расширения запустите обработку "Перенос значения реквизита не создавать задачу ознакомления".

Запрет повторного запуска комплексного процесса по предмету.

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

Настройки расширения находятся в отдельной подсистеме "Дополнительные функции":


Динамические роли включены по умолчанию без возможности отключения.

Пользовательские автоподстановки.

Добавлена новая функция "Пользовательские автоподстановки". С помощью данной функции можно добавлять собственные автоподстановки для шаблонов бизнес-процессов в режиме предприятия. Пользовательские автоподстановки находятся в подсистеме "Дополнительные функции":




На закладке "Тестирование" можно проверить автоподстановку с нужными параметрами (если они требуются), результат работы кода автоподстановки выводится в список значений:


Технически пользовательские автоподстановки реализованы следующим образом:

- В функции"ПолучитьСписокДоступныхФункций" общего модуля "ШаблоныБизнесПроцессов" добавляются автоподстановки из справочника.

К имени функции автоподстановки добавляется префикс "ПользовательскаяАвтоподстановка_" для поиска элемента справочника с программным кодом при получении значения автоподстановки.

- В функцию "ПолучитьЗначениеАвтоподстановки" общего модуля "ШаблоныБизнесПроцессов" добавлена дополнительная проверка. В функции автоподстановки выполняется поиск префикса "ПользовательскаяАвтоподстановка_", если данный префикс найден, тогда выполняется поиск элемента справочника пользовательской автоподстановки по наименованию. Далее выполняется программный код элемента справочника. Запись пользовательских автоподстановок с одинаковым наименованием запрещена, поэтому при поиске элемента по наименованию будет найдено не более 1 автоподстановки.

Указание минут и секунд в правилах эскалации задач.

В правила эскалации задач добавлена возможность указания минут и секунд:


Автоматическое расширение рабочей группы связанных документов.

В справочник "Типы связей" добавлен реквизит "Автоматически вести состав участников рабочей группы":


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

При установке связи "Договор" из документа "Закупка дисков для СХД" участники рабочей группы документа "Закупка дисков для СХД" будут автоматически перенесены в связанный договор:



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

Автоматическое создание делегирования прав заместителям при создании отсутствия.

При создании документа "Отсутствие" автоматически создаются делегирования прав доступа заместителям. Данная функция работает только для новых документов отсутствия.

Алгоритмы обработки задач и бизнес-процессов.

В шаблоны бизнес-процессов добавлены закладки "Назначения алгоритмов обработки задач", "Назначения алгоритмов обработки процессов":


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

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


Для переноса настроенных алгоритмов из старой версии (до 2.1.27.1) расширения запустите обарботку "Перенос алгоритмов в новые объекты" из подсистемы "Дополнительные функции". В обработке нажмите кнопку "Запустить перенос".

Для переноса алгоритмов в единый справочник из старой версии (до 2.1.18.12) запустите обработку "Перенос алгоритмов в новый справочник, изменение назначений алгоритмов обработки". В обработке нажмите кнопку "Запустить перенос".

Отображение связей предметов на формах выполнения задач.

Добавлено отображение связанных документов, файлов связанных документов на формах выполнения задач, на форме "Задачи мне":



Отображение листа согласования на форме выполнения бизнес-процесса "Утверждение/Подписание".

Добавлено отображение листа согласования на форму выполнения утверждения/подписания:


Перенос файлов из задачи в предметы процесса.

Настройка переноса файлов из задачи в предметы процесса настраивается в шаблоне процесса:


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

Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа.

Добавлена функция "Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа" для внутренних, входящих, исходящих документов.

Настройка выполняется в виде документа:


Запрет интерактивного создания документов.

Добавлена функция "Запрет интерактивного создания документов" для внутренних, входящих, исходящих документов.

Настройка выполняется в виде документа:


- Добавлен механизм пользовательских автоподстановок

- Добавлена возможность отключения создания задачи ознакомления для регистрации и утверждения/подписания. Функция работает также как и отключение создания задачи ознакомления для согласования.

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


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

- Поднят режим совместимости расширения до версии 8.3.14.

- Функции расширения переведены на новую версию конфигурации.

- В правила эскалации задач добавлена возможность указания минут и секунд

- Автоматическое расширение рабочей группы связанных документов

- Автоматическое создание делегирования прав заместителям при создании отсутствия

- Выполнение произвольного алгоритма перед записью задачи

- Отображение связей предметов в формах выполнения задач

- Отображение листа согласования в форме выполнения бизнес-процесса "Утверждение/Подписание"

- В пользовательские автоподстановки добавлен реквизит "ЗависитОтПредмета" для разделения автоподстановок, которые зависят от предмета процесса

- Выполнение произвольного алгоритма перед записью бизнес-процесса

- Удалены условия на пустую ссылку и состояние бизнес-процесса в произвольных алгоритмах перед записью задачи и перед записью бизнес-процесса

- Изменена логика работы алгоритмов перед записью задач и процессов

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

- Добавлена функция "Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа" для внутренних, входящих, исходящих документов

- Добавлена функция "Запрет интерактивного создания документов"

- Алгоритмы обработки задач и бизнес-процессов перенесены в единый справочник

- Настройка функции "Автоматическое обновление файлов данными владельца" перенесена в вид внутреннего/исходящего документа

- Исправлена ошибка записи документа при автоматическом расширении рабочей группы документов

- Исправлена ошибка при открытии формы "Задачи мне"

- Реквизиты с префиксом "Удалить" убраны с форм "Назначения алгоритмов обработки задач", "Назначения алгоритмов обработки процессов"

Данное расширение тестировалось на версии 2.1.28.14 1С:Документооборот КОРП.

В программе 1С Документооборот встроено достаточно большое количество типовых автоподстановок.

Автоподстановки в программе 1С Документооборот

Автоподстановки в программе 1С Документооборот

Но на этапе доработок иногда возникает необходимость добавить свои "автоподстановки". Например, в процессе согласования должен участвовать еще какой-нибудь сотрудник. В данной статье будет подробно описано, как решить эту задачу в конфигурации 1С:Документооборот.

1. Постановка проблемы

У предприятия сложная структура подчинения и для эффективности процесса согласования необходимо, чтобы тот или иной документ согласовывал не только руководитель подразделения, но и руководитель направления. Для этого у "Внутреннего документа" добавили дополнительный реквизит документа – Руководитель направления. Но также необходимо добавить и автоподстановку "Руководитель направления". Значение этой "автоподстановки" должны получаться из дополнительного реквизита документа "Руководитель направления".

расширения в 1С 8 Документооборот

Добавление дополнительного реквизита документа

2. Решение задачи в 1С:Документооборот

Для разработки в программной части 1С:Документооборот и добавления этой автоподстановки мы создадим расширение "ДополнительныеАвтоподстановки".

Создание расширения в 1С 8 Документооборот

Создание расширения в 1С 8 Документооборот

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

// Получает руководителя направления из дополнительного значения дополнительного реквизита "Руководитель направления".

// СправочникОбъект.ИсходящийДокумент - создаваемый документ.

Функция ДАП_РуководительНаправления(ДокументОбъект) Экспорт

Если ДокументОбъект.Предметы.Количество()> 0 тогда

Предмет = ДокументОбъект.Предметы[0]. Предмет;

Если ТипЗнч(Предмет) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда

Запрос = Новый Запрос;

| ВнутренниеДокументыДополнительныеРеквизиты.Значение КАК Значение

| Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты

| И ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Наименование = ""Руководитель направления""";

Если ВыборкаДетальныеЗаписи.Следующий() Тогда

Вызов новой автоподстановки также прописываем в общем модуле "ШаблоныБизнесПроцессовПереопределяемый". Для этого в 1С 8.3 Документооборот аннотацией "Вместо" перехватываем функцию "ПолучитьСписокДоступныхФункций".

ДоступныеФункции.Добавить("ШаблоныБизнесПроцессовПереопределяемый.ДАП_РуководительНаправления(Объект)", НСтр("ru = 'Руководитель направления'"));

С программной частью все готово!

Теперь необходимо зайти в пользовательском режиме работы в 1С:Документооборот.

Открываем выбор автоподстановок и видим, что добавленная автоподстановка в списке не появилась.

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

В программе 1С Документооборот встроено достаточно большое количество типовых автоподстановок.

Автоподстановки в программе 1С Документооборот

Автоподстановки в программе 1С Документооборот

Но на этапе доработок иногда возникает необходимость добавить свои "автоподстановки". Например, в процессе согласования должен участвовать еще какой-нибудь сотрудник. В данной статье будет подробно описано, как решить эту задачу в конфигурации 1С:Документооборот.

1. Постановка проблемы

У предприятия сложная структура подчинения и для эффективности процесса согласования необходимо, чтобы тот или иной документ согласовывал не только руководитель подразделения, но и руководитель направления. Для этого у "Внутреннего документа" добавили дополнительный реквизит документа – Руководитель направления. Но также необходимо добавить и автоподстановку "Руководитель направления". Значение этой "автоподстановки" должны получаться из дополнительного реквизита документа "Руководитель направления".

расширения в 1С 8 Документооборот

Добавление дополнительного реквизита документа

2. Решение задачи в 1С:Документооборот

Для разработки в программной части 1С:Документооборот и добавления этой автоподстановки мы создадим расширение "ДополнительныеАвтоподстановки".

Создание расширения в 1С 8 Документооборот

Создание расширения в 1С 8 Документооборот

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

// Получает руководителя направления из дополнительного значения дополнительного реквизита "Руководитель направления".

// СправочникОбъект.ИсходящийДокумент - создаваемый документ.

Функция ДАП_РуководительНаправления(ДокументОбъект) Экспорт

Если ДокументОбъект.Предметы.Количество()> 0 тогда

Предмет = ДокументОбъект.Предметы[0]. Предмет;

Если ТипЗнч(Предмет) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда

Запрос = Новый Запрос;

| ВнутренниеДокументыДополнительныеРеквизиты.Значение КАК Значение

| Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты

| И ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Наименование = ""Руководитель направления""";

Если ВыборкаДетальныеЗаписи.Следующий() Тогда

Вызов новой автоподстановки также прописываем в общем модуле "ШаблоныБизнесПроцессовПереопределяемый". Для этого в 1С 8.3 Документооборот аннотацией "Вместо" перехватываем функцию "ПолучитьСписокДоступныхФункций".

ДоступныеФункции.Добавить("ШаблоныБизнесПроцессовПереопределяемый.ДАП_РуководительНаправления(Объект)", НСтр("ru = 'Руководитель направления'"));

С программной частью все готово!

Теперь необходимо зайти в пользовательском режиме работы в 1С:Документооборот.

Открываем выбор автоподстановок и видим, что добавленная автоподстановка в списке не появилась.

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

Читайте также: