Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 00:26

"Триггеры" на прием и увольнение сотрудника

Автор taurus, 05 окт 2016, 20:02

0 Пользователей и 1 гость просматривают эту тему.

taurus

Коллеги добрый день!

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

Подскажите, где найти место в конфигурации, на которую повесить обработчик такого события?
Есть в 1Ске какие-то может быть триггеры, аналогично триггерам в СУБД?



LexaK

Для тех кого принимают на работу
документ: ПриемНаРаботу, в модуле есть процедура: ОбработкаПроведения 
Для тех кого увольняют
документ: Увольнение, в модуле есть процедура: ОбработкаПроведения 

в эти процедуры добавьте ваш код по созданию и удалению корпоративных ящиков.
+ несколько проверок, на уникальность, уже заведенность и т.д.

если помогло нажмите: Спасибо!

ilyay

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

cska-fanat-kz

отловить УСПЕШНОЕ проведение документа Прием или Увольнение - не такая уж и простая задача...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ilyay

Если произойдет отмена транзакции, то и задача не будет создана, т.к. она в той же транзакции создается.

cska-fanat-kz

Цитата: ilyay от 07 окт 2016, 14:35
Если произойдет отмена транзакции, то и задача не будет создана, т.к. она в той же транзакции создается.

тогда другая задача возникает - отловить создание новой задачи.
причем не в тот же момент, а чуток подождать, вдруг откат транзакции будет...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ilyay

Читайте в транзакции и не переживайте.

cska-fanat-kz

Цитата: ilyay от 10 окт 2016, 16:26
Читайте в транзакции и не переживайте.

транзакция - не панацея.
1) проводится Прием, началась транзакция
2) в конце проведения создалась задача
3) при создании задачи 1Ска "послала весточку" внешней системе
4) тут при записи движений произошел отказ
5) 1Ска делает откат транзакции, задача благополучно удалилась, на стороне 1С все ровно
6) а внешняя система как должна узнать, что оповещение в п.3 было фиктивным?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ilyay

Цитата: cska-fanat-kz от 11 окт 2016, 06:27
Цитата: ilyay от 10 окт 2016, 16:26
Читайте в транзакции и не переживайте.

транзакция - не панацея.
1) проводится Прием, началась транзакция
2) в конце проведения создалась задача
3) при создании задачи 1Ска "послала весточку" внешней системе
4) тут при записи движений произошел отказ
5) 1Ска делает откат транзакции, задача благополучно удалилась, на стороне 1С все ровно
6) а внешняя система как должна узнать, что оповещение в п.3 было фиктивным?

Я предлагал вариант, когда задача создается в обработчике ПриЗаписи. В этот момент транзакция продолжается. Если она отменится, тогда создание задачи тоже отменится. Обработка задач производится другим процессом, например регламентным.

В такой ситуации пункт 3 может быть выполнен только после завершения транзакции. Не хорошо обращаться к внешней системе в транзакции, потому что обмен долгий, а транзакция удерживает блокировки. И в моем подходе нет обращения к внешней системе из транзакции записи объекта.

cska-fanat-kz

Цитата: ilyay от 11 окт 2016, 10:47В такой ситуации пункт 3 может быть выполнен только после завершения транзакции

ну а я о чем. ради чего всё изначально.
по ходу окромя регламентного задания вариантов нет?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск