1с документооборот обработчик бизнес события пример

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

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

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

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

13 Бизнес события — отрывок из самоучителя 1С:Документооборот

Как добавить свою автоподстановку

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

Функция ПолучитьСписокДоступныхФункций ( ИменаПредметовДляФункций ) Экспорт
ДоступныеФункции = Новый СписокЗначений ;

ДоступныеФункции . Добавить ( «ШаблоныБизнесПроцессовПереопределяемый.НачальникСтройки(Объект)» , «Начальник стройки(автоподстановка)» ) ;

Возврат ДоступныеФункции ;
КонецФункции
Функция НачальникСтройки ( БизнесПроцессОбъект ) Экспорт
Рез = Справочники . Пользователи . ПустаяСсылка ( ) ;
Для Каждого СтрокаПредмета Из БизнесПроцессОбъект . Предметы Цикл
Если ЗначениеЗаполнено ( СтрокаПредмета . Предмет ) Тогда
Если ТипЗнч ( СтрокаПредмета . Предмет ) = Тип ( «СправочникСсылка.ВнутренниеДокументы» ) Тогда
//Из документа

ЗначениеРквизита = маг_ОбщегоНазначения . ЗначениеДопСвойство ( СтрокаПредмета . Предмет , «Начальник стройки» ) ;

//Из проекта
Если НЕ ЗначениеЗаполнено ( ЗначениеРквизита ) тогда

ЗначениеРквизита = маг_ОбщегоНазначения . ЗначениеДопСвойство ( СтрокаПредмета . Предмет . Проект , «Начальник стройки» ) ;

Если ЗначениеЗаполнено ( ЗначениеРквизита ) тогда
Рез = ЗначениеРквизита ;
КонецЦикла;
Возврат Рез ;
КонецФункции

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

Читайте также:  Разведение калифорнийских червей как бизнес

Почему я не вижу своей автоподстановки

Но вот мы добавили реализацию механизма автоподстанови. Однако в пользовательском режиме, открывая список для выбора автоподстановки мы не обнаруживаем там своих доработок. Например, при создании шаблона процесса Утверждения, мы хотим в поле «Кому» выбрать добавленную нами автоподстановку с именем «Начальник стройки(автоподстановка)». Открываем список выбора, находим ветку «Автоподстановка», но там нет ничего похожего на нашу автоподстановку:

Бизнес-события — Настройка и администрирование «1С:Документооборот» — 1С:Учебный центр №1

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

Источник: 1s-on.ru

Документооборот: дополнительные обработчики бизнес-событий

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

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

К примеру, мы недавно столкнулись с задачей, когда в процессе согласования первого документа по только что добавленному новому контрагенту, юридической службе необходимо убедиться, что данный контрагент является надёжным поставщиком, и с ним можно без рисков заключать договор, а когда в систему будет добавлен второй/третий/n-ный документ, данная задача в юридический отдел уже не поступала.

Читайте также:  Почему бизнесу нужен сайт

Обработчик автоматической регистрации документа 1С:Документооборот после утверждения и автозаполнения файла по шаблону

Профессиональное сообщество по автоматизации учета и управления (более 1 млн. участников)

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

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

// Регистрация Задача = Событие.Источник; Выполнять = Ложь; Если ТипЗнч(Задача.БизнесПроцесс) = Тип(«БизнесПроцессСсылка.Утверждение») Тогда Если Задача.БизнесПроцесс.РезультатУтверждения = Перечисления.РезультатыУтверждения.Утверждено Тогда Если Задача.Предмет <> Неопределено Тогда Объект = Задача.Предмет.ПолучитьОбъект(); Если ТипЗнч(Объект.Ссылка) = Тип(«СправочникСсылка.ВнутренниеДокументы») Тогда Если (СокрЛП(Объект.ВидДокумента) = «Служебная записка») ИЛИ (СокрЛП(Объект.ВидДокумента) = «Служебная записка на оплату») Тогда Нумератор = Нумерация.ПолучитьНумераторДокумента(Объект.ВидДокумента); Если Не ЗначениеЗаполнено(Объект.РегистрационныйНомер) Тогда Если ЗначениеЗаполнено(Нумератор) Тогда //Атоматическая регистрация возможна //еще не зарегистрирован Выполнять = Истина; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если Выполнять Тогда ТекущийПользователь = ОбщегоНазначения.ТекущийПользователь(); Объект.ДатаРегистрации = ТекущаяДатаСеанса(); // формируем числовой номер СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить(«ВидДокумента», Объект.ВидДокумента); СтруктураПараметров.Вставить(«Организация», Объект.Организация); СтруктураПараметров.Вставить(«ДатаРегистрации», Объект.ДатаРегистрации); СтруктураПараметров.Вставить(«Ссылка», Объект.Ссылка); Нумерация.СформироватьЧисловойНомерДокумента(СтруктураПараметров, Объект.ЧисловойНомер); // формируем строковый номер СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить(«ЧисловойНомер», Объект.ЧисловойНомер); СтруктураПараметров.Вставить(«ДатаРегистрации», Объект.ДатаРегистрации); СтруктураПараметров.Вставить(«ВидДокумента», Объект.ВидДокумента); СтруктураПараметров.Вставить(«Организация», Объект.Организация); СтруктураПараметров.Вставить(«НоменклатураДел», Объект.НоменклатураДел); СтруктураПараметров.Вставить(«ВопросДеятельности», Объект.ВопросДеятельности); СтруктураПараметров.Вставить(«Подразделение», Объект.Подразделение); СтруктураПараметров.Вставить(«Корреспондент», Объект.Корреспондент); СтруктураПараметров.Вставить(«Ссылка», Объект.Ссылка); ОписанияОшибок = Новый СписокЗначений; Нумерация.СформироватьСтроковыйНомерДокумента(СтруктураПараметров, Объект.РегистрационныйНомер, ОписанияОшибок); Для Каждого ОписаниеОшибки Из ОписанияОшибок Цикл ОбщегоНазначенияКлиентСервер.СообщитьПользователю( ОписаниеОшибки.Представление,, ОписаниеОшибки.Значение, «Объект»); КонецЦикла; Если ЗначениеЗаполнено(Объект.РегистрационныйНомер) Тогда // успешно сформирован номер Объект.Зарегистрировал = ТекущийПользователь; Иначе //Объект.ДатаРегистрации = ‘00010101’; КонецЕсли; Делопроизводство.ЗаписатьСостояниеДокумента(Задача.Предмет, ТекущаяДатаСеанса(), Перечисления.СостоянияДокументов.Зарегистрирован, ТекущийПользователь); Объект.Записать(); // автозаполнение файлов Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | Файлы.Ссылка |ИЗ | Справочник.Файлы КАК Файлы |ГДЕ | Файлы.ВладелецФайла = > ЗНАЧЕНИЕ(Справочник.Файлы.ПустаяСсылка) | И Файлы.Редактирует = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | И НЕ Файлы.ПометкаУдаления»; Запрос.УстановитьПараметр(«ВладелецФайла», Объект.Ссылка); Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца( Истина, Выборка.Ссылка, Истина); КонецЦикла; КонецЕсли; КонецЕсли;

Читайте также:  Кальянная как бизнес идея

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

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

Источник: tf21.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
Бизнес для женщин