Automation: различия между версиями
Kovalskiy (обсуждение | вклад) Нет описания правки |
Lukash (обсуждение | вклад) Нет описания правки Метка: визуальный редактор отключён |
||
(не показано 29 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
__NOTITLE__ | |||
__NOTOC__ | |||
= Автоматизация = | |||
'''Актуально для версии > 2.0.8.10.''' | '''Актуально для версии > 2.0.8.10.''' | ||
Строка 5: | Строка 8: | ||
Откроется окно списка автоматизаций. | Откроется окно списка автоматизаций. | ||
[[Файл:Auto main.png|слева|мини|1033x1033пкс]] | [[Файл:Auto main.png|слева|мини|1033x1033пкс]] | ||
Строка 46: | Строка 46: | ||
'''Дополнительные параметры''' - таблица значение пары Ключ + Значение (можно получать в коде при срабатывании автоматизации); | '''Дополнительные параметры''' - таблица значение пары Ключ + Значение (можно получать в коде при срабатывании автоматизации); | ||
== Пример автоматизации по триггеру | == Пример автоматизации по триггеру == | ||
[[Файл:АвтоматизацияПоРасписанию .png|мини|237x237px|Пример по расписанию]] | |||
В "Объект" указываем справочник "ЕУЗ" (Номенклатура). | В "Объект" указываем справочник "ЕУЗ" (Номенклатура). | ||
Строка 52: | Строка 53: | ||
В "Реквизит" указываем реквизит отслеживания "Класс". | В "Реквизит" указываем реквизит отслеживания "Класс". | ||
Установим флаг "Отслеживать точное значение". | Установим флаг "Отслеживать точное значение". | ||
Строка 60: | Строка 61: | ||
Если условия соответствуют автоматизации, в журнале "Задания для робота" (Администрирование - Задания для робота) создастся задание. | Если условия соответствуют автоматизации, в журнале "Задания для робота" (Администрирование - Задания для робота) создастся задание. | ||
[[Файл:ПримерЗаданияДляРобота.png| | [[Файл:ПримерЗаданияДляРобота.png|мини|Пример строки задания|600x600пкс]] | ||
После, выполнится регламентное задание для этой сроки. | |||
== Описание кода обработки == | == Описание кода обработки == | ||
Строка 77: | Строка 75: | ||
Через "''<code>ДополнительныеПараметры.ДополнительныеПараметрыЗапуска</code>''" можно получить передаваемые параметры из внешней обработке. | Через "''<code>ДополнительныеПараметры.ДополнительныеПараметрыЗапуска</code>''" можно получить передаваемые параметры из внешней обработке. | ||
Дополнительные параметры доступны только при указании параметра <code>ПараметрыРегистрации.ВерсияБСП = "1.2.1.4"</code> или больше. | |||
'''Важно: чтобы отслеживать объекты, необходимо включить "Версионирование" для этого объекта". Подсистема "Версионирование" (доступна с ролью "Полные права").''' | |||
Если тип автоматизации "по триггеру" будет доступна ссылка на объект, для которого сработал триггер ''ДополнительныеПараметры.ДополнительныеПараметрыЗапуска.ОбъектСсылка.'' | Если тип автоматизации "по триггеру", будет доступна ссылка на объект, для которого сработал триггер ''ДополнительныеПараметры.ДополнительныеПараметрыЗапуска.ОбъектСсылка.'' | ||
Строка 94: | Строка 95: | ||
Если указать ''<code>ВыполнитьПослеОшибкиПовторно = Истина</code>,'' задание повториться и будет произведена еще одна попытка выполнить его. | Если указать ''<code>ВыполнитьПослеОшибкиПовторно = Истина</code>,'' задание повториться и будет произведена еще одна попытка выполнить его. | ||
Для удаления задания, достаточно указать ''<code>ДополнительныеПараметры.РезультатВыполнения.Вставить("УдалитьЗадание", Истина);</code>'' | |||
Таким образом можно отрабатывать все исключения и ошибки и в зависимости от типа такой ошибки прерывать задачу. | Таким образом можно отрабатывать все исключения и ошибки и в зависимости от типа такой ошибки прерывать задачу. | ||
[[Файл: | [[Файл:E code.png|слева|мини|1077x1077пкс]] | ||
Строка 127: | Строка 143: | ||
Пример кода | |||
<code>Функция СведенияОВнешнейОбработке() Экспорт</code> | <code>Функция СведенияОВнешнейОбработке() Экспорт</code> | ||
Строка 179: | Строка 196: | ||
<code>Процедура ВыполнитьЗадание(ДополнительныеПараметры)</code> | <code>Процедура ВыполнитьЗадание(ДополнительныеПараметры)</code> | ||
<code> | <code>Автоматизация = ДополнительныеПараметры.ДополнительныеПараметрыЗапуска.АвтоматизацияСсылка;</code> | ||
<code>Если | <code>Если Автоматизация.ТипАвтоматизации = 1 Тогда</code> | ||
<code>ЗаписьЖурналаРегистрации("Выполнена атоматизация по расписанию.", УровеньЖурналаРегистрации.Предупреждение);</code> | <code>ЗаписьЖурналаРегистрации("Выполнена атоматизация по расписанию.", УровеньЖурналаРегистрации.Предупреждение);</code> |
Текущая версия от 07:25, 23 марта 2023
Автоматизация
Актуально для версии > 2.0.8.10.
Для настройки автоматизации необходимо перейти в "Администрирование" -> "Автоматизация.
Откроется окно списка автоматизаций.
Структура элементов
Состояние - включает/выключает автоматизацию.
Склад - дополнительный параметр (фильтр) с ссылкой на справочник "Склады";
Контрагент - дополнительный параметр (фильтр) с ссылкой на справочник "Контрагент ";
Обработка - внешняя обработка справочника "Дополнительные отчеты и обработки";
Команда - список зарегистрированных команд в обработке;
Тип автоматизации - логика работы автоматизации;
Комментарий - дополнительное инфо поле;
Объект - объект отслеживания (документ, справочник и т.д.);
Отслеживать - что отслеживаем: реквизит или ТЧ;
Реквизит - реквизит отслеживания;
Значение - значение реквизита;
Дополнительные параметры - таблица значение пары Ключ + Значение (можно получать в коде при срабатывании автоматизации);
Пример автоматизации по триггеру
В "Объект" указываем справочник "ЕУЗ" (Номенклатура).
В "Контрагент" указываем "Йолка".
В "Реквизит" указываем реквизит отслеживания "Класс".
Установим флаг "Отслеживать точное значение".
В "Значение" установим элемент справочника "Класс".
Теперь, при записи элемента справочника "ЕУЗ" будет проверяться владелец (Контрагент = Йолка), измялось ли значение реквизита "Класс" на "Класс А".
Если условия соответствуют автоматизации, в журнале "Задания для робота" (Администрирование - Задания для робота) создастся задание.
После, выполнится регламентное задание для этой сроки.
Описание кода обработки
Функции "СведенияОВнешнейОбработке
" и "ВыполнитьКоманду
" являются стандартными из БСП.
В процедуре "ВыполнитьЗадание
" описаны 2 варианта: для автоматизации по расписанию и по триггеру.
Через "ДополнительныеПараметры.ДополнительныеПараметрыЗапуска
" можно получить передаваемые параметры из внешней обработке.
Дополнительные параметры доступны только при указании параметра ПараметрыРегистрации.ВерсияБСП = "1.2.1.4"
или больше.
Важно: чтобы отслеживать объекты, необходимо включить "Версионирование" для этого объекта". Подсистема "Версионирование" (доступна с ролью "Полные права").
Если тип автоматизации "по триггеру", будет доступна ссылка на объект, для которого сработал триггер ДополнительныеПараметры.ДополнительныеПараметрыЗапуска.ОбъектСсылка.
Важно: задания по триггеру выполняются через регистр сведений "Задания для робота".
Если выполняется задача по триггеру, важно вернуть результат выполнения процедуры.
ДополнительныеПараметры.РезультатВыполнения.Вставить("Обработан", Истина);
ДополнительныеПараметры.РезультатВыполнения.Вставить("Ошибка", Ложь);
ДополнительныеПараметры.РезультатВыполнения.Вставить("ВыполнитьПослеОшибкиПовторно", Ложь);
ДополнительныеПараметры.РезультатВыполнения.Вставить("Комментарий", "Автоматизация по триггеру успешно завершила работу.");
Если указать ВыполнитьПослеОшибкиПовторно = Истина
, задание повториться и будет произведена еще одна попытка выполнить его.
Для удаления задания, достаточно указать ДополнительныеПараметры.РезультатВыполнения.Вставить("УдалитьЗадание", Истина);
Таким образом можно отрабатывать все исключения и ошибки и в зависимости от типа такой ошибки прерывать задачу.
Пример кода
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "Пример использования автоматизации";
ПараметрыРегистрации.Информация = "Пример использования автоматизации";
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.ВерсияБСП = "1.2.1.4";
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Выполнить задание по триггеру'");
Команда.Идентификатор = "Триггер";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Выполнить задание по расписанию'");
Команда.Идентификатор = "ПоРасписанию";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции
Функция ВыполнитьКоманду(ИдентификаторКоманды, ДополнительныеПараметры) Экспорт
Если ИдентификаторКоманды = "Триггер" Тогда
ВыполнитьЗадание(ДополнительныеПараметры);
ИначеЕсли ИдентификаторКоманды = "ПоРасписанию" Тогда
ВыполнитьЗадание(ДополнительныеПараметры);
КонецЕсли;
КонецФункции
Процедура ВыполнитьЗадание(ДополнительныеПараметры)
Автоматизация = ДополнительныеПараметры.ДополнительныеПараметрыЗапуска.АвтоматизацияСсылка;
Если Автоматизация.ТипАвтоматизации = 1 Тогда
ЗаписьЖурналаРегистрации("Выполнена атоматизация по расписанию.", УровеньЖурналаРегистрации.Предупреждение);
Иначе
ОбъектСсылка = ДополнительныеПараметры.ДополнительныеПараметрыЗапуска.ОбъектСсылка;
ДополнительныеПараметры.РезультатВыполнения.Вставить("Обработан", Истина);
ДополнительныеПараметры.РезультатВыполнения.Вставить("Ошибка", Ложь);
ДополнительныеПараметры.РезультатВыполнения.Вставить("ВыполнитьПослеОшибкиПовторно", Ложь);
ДополнительныеПараметры.РезультатВыполнения.Вставить("Комментарий", "Автоматизация по триггеру успешно завершила работу.");
ЗаписьЖурналаРегистрации("Выполнена атоматизация по триггеру для " + Строка(ОбъектСсылка), УровеньЖурналаРегистрации.Предупреждение, ОбъектСсылка);
КонецЕсли;
КонецПроцедуры