Смарт-действия и скрипты — Решение проблем¶
Аудитория: ТП 1-й линии (без доступа к БД)
Как пользоваться этим документом¶
Секции организованы по типам проблем. Для каждой: 1. Симптом — что описывает клиент 2. Что проверить — шаги диагностики 3. Решение — что сделать 4. Эскалация — когда передавать на 2-ю линию
1. Lua-скрипты¶
~35% обращений по теме. Самая частая тема.
1.1 Ошибка выполнения Lua-скрипта¶
Симптом: «ошибка выполнения LUA», «исключение не перехватывается pcall()», «401 ошибка при работе в Lua».
Что проверить: - Текст ошибки — точная формулировка из лога - Контекст скрипта — какой метод вызывается - Версия системы — API Lua может отличаться между версиями - Авторизация — если Lua обращается к внешнему сервису, корректны ли credentials
Эскалация: если ошибка в самом API Lua (не в пользовательском коде) — передать на 2-ю линию.
1.2 Как использовать метод HTTP:post_files в Lua¶
Симптом: «нужен пример HTTP:post_files», «как отправить файл через Lua».
Решение: метод HTTP:post_files(url, files, headers) отправляет файлы через multipart/form-data. Файлы передаются как массив объектов с полями name, content, filename. Примеры — в документации Lua API. [2L]
1.3 CreateFileVersionCopy не работает из Lua¶
Симптом: «не работает CreateFileVersionCopy через Lua».
Что проверить: - Параметры вызова — FileID, TaskID - Права — может ли пользователь создавать версии - Версия системы
Эскалация: если параметры корректны — баг API.
1.4 Подписание задачи через Lua¶
Симптом: «как подписать задачу через Lua?»
Решение: используется метод Task:sign(signId, resolution, comment). Требует корректный ID подписи и права текущего пользователя. [2L]
1.5 Различное поведение SMART и Lua¶
Симптом: «смарт и Lua дают разный результат для одного и того же действия».
Что проверить: - Контекст выполнения — смарт выполняется в контексте системы, Lua — может выполняться в контексте пользователя - Порядок — смарт-действия выполняются последовательно, Lua может обходить очередь - Транзакции — смарт обёрнут в транзакцию, Lua может работать вне неё
Эскалация: если поведение объективно разное — передать на 2-ю линию с точным описанием обоих сценариев.
1.6 Подключение библиотек Lua через include / репозиторий Lua¶
Симптом: «ошибка при подключении библиотеки Lua через include», «как использовать репозиторий Lua-скриптов?»
Что проверить:
- Имя библиотеки — точное совпадение с именем скрипта в репозитории
- Доступность репозитория Lua — настроен ли на площадке
- Синтаксис include — require("имя") или include("имя") в зависимости от версии
Эскалация: если include вызывает runtime-ошибку при корректном имени — 2-я линия.
1.7 HTTP:send_http_request не работает в Lua¶
Симптом: «HTTP:send_http_request перестал работать», «Lua HTTP-запрос возвращает ошибку».
Что проверить: - Версия системы — метод мог измениться между версиями - Параметры вызова — URL, метод, заголовки, тело - Доступность внешнего сервиса с сервера 1Формы - Лог ошибок — точный текст исключения
Эскалация: если параметры корректны, сервис доступен, но метод возвращает ошибку — 2-я линия.
1.8 SMART:execute_action — некорректная работа с параметрами¶
Симптом: «SMART:execute_action('SetPriority') не принимает значение», «execute_action игнорирует параметр».
Что проверить: - Допустимые значения параметра — enum или числовой ID - Версия системы — набор допустимых значений может отличаться - Синтаксис вызова — формат передачи параметра
Эскалация: если значение валидно по документации, но не принимается — баг API, 2-я линия.
2. Смарт-действия — не срабатывают¶
~25% обращений.
2.1 Смарт-действие не срабатывает¶
Симптом: «смарт-действие не выполняется», «автоматизация не работает».
Что проверить: - Событие-триггер — правильно ли выбрано событие (создание, изменение, переход) - Условия (фильтр) — выполняется ли условие для данной задачи - Активность — включено ли правило - Категория — привязано ли к нужной категории - Лог смарт-выполнения — есть ли записи
2.2 Автоматизация не обновляет ДП Таблица¶
Симптом: «после отработки автоматизации ДП Таблица не обновляется».
Что проверить: - Тип действия — какое действие меняет таблицу - Денормализация — обновляется ли - Кеш — обновить страницу после выполнения
2.3 Подтверждение перехода игнорируется при автоматизации¶
Симптом: «настроено подтверждение перед переходом, но если переход делается автоматизацией — подтверждение не запрашивается».
Решение: ожидаемое поведение — автоматизация выполняется без UI, поэтому подтверждения пропускаются. Если нужна проверка — использовать условие в смарт-правиле.
2.4 Смарт-отмена не показывает сообщение об ошибке¶
Симптом: «при смарт-отмене на комментарии не выводится сообщение об ошибке».
Что проверить: - Настройка текста ошибки в смарт-правиле - Контекст — отмена на комментарии vs на переходе (разные механизмы)
2.5 Смена текста в «Большом тексте с форматированием» автоматизацией¶
Симптом: «автоматизация меняет текст в БТсФ, но изменение видно только после перезагрузки страницы».
Решение: после изменения ДП смартом Angular-компонент может не обновиться автоматически. Это ограничение — изменение применяется в БД, но фронтенд не получает сигнал об обновлении конкретного ДП.
2.6 Действия на переходе выполняются, но сам переход не происходит¶
Симптом: «смарт-действия на переходе отработали, но задача осталась в старом состоянии», «переход не выполняется».
Что проверить: - Лог автоматизации — есть ли ошибка после выполнения действий - Условия перехода — все ли обязательные поля заполнены - Смарт-отмена — нет ли другого правила, отменяющего переход - Права — может ли исполнитель совершать этот переход
Эскалация: если все условия выполнены, действия отработали, но переход не записался — 2-я линия.
2.7 Ошибка смарт-действия «Создать задачу»¶
Симптом: «ошибка при выполнении действия "Создать задачу"», «задача не создаётся автоматизацией».
Что проверить: - Обязательные ДП целевой категории — все ли заполнены в настройке действия - Права — может ли пользователь создавать задачи в целевой категории - Шаблон — корректен ли шаблон создания
Эскалация: если настройка корректна — 2-я линия.
2.8 Настройка интервала автоматизации — неожиданное поведение¶
Симптом: «автоматизация срабатывает не в заданный интервал», «странное поведение настройки интервала».
Что проверить: - Формат интервала — корректны ли единицы (минуты, часы, дни) - Часовой пояс сервера vs пользователя - Нет ли нескольких правил с пересекающимися интервалами
2.9 Программное добавление орг. единицы в ДП «Выбор пользователей»¶
Симптом: «из смарта нельзя добавить орг. единицу в поле "Выбор пользователей"», «опция "Разрешить добавлять орг. единицы" не работает программно».
Что проверить: - Тип значения — передаётся ли ID орг. единицы в правильном формате - Настройка ДП — включена ли опция «Разрешить добавлять орг. единицы»
Эскалация: если настройка включена, но через смарт не добавляется — ограничение API, 2-я линия.
2.10 Создание пользователя через смарт с локализованными данными¶
Симптом: «как создать пользователя через смарт с ФИО на нескольких языках?»
Решение: при создании пользователя через смарт-действие локализованные поля (ФИО) задаются через параметры действия. Формат зависит от версии — уточнить в документации по действию «Создать пользователя». [2L]
2.11 Как остановить выполнение смарта¶
Симптом: «как прервать работающий смарт?», «смарт зациклился, как остановить?»
Решение: остановка через AdminSPA: Автоматизация → найти правило → отключить. Для циклических смартов: отключить правило, дождаться завершения текущего цикла. Принудительная остановка — через перезапуск пула приложения (согласование с администратором). [2L]
2.12 Смарт-действие «Удалить исполнителей» по условию¶
Симптом: «как через смарт удалить исполнителей, которые в отпуске?», «автоматическое удаление исполнителей по условию».
Решение: комбинация смарт-фильтра (условие на статус пользователя / отпуск) + действие «Удалить исполнителя». Для массового удаления — Lua-скрипт с перебором исполнителей. [2L]
2.13 Событие «Инициировать произвольное событие» — контекст пользователя¶
Симптом: «в действии "Инициировать произвольное событие" нет контекста пользователя-инициатора», «хочу передать инициатора в произвольное событие».
Что проверить: - Версия системы — контекст инициатора может быть добавлен в новых версиях - Обходной путь — передать UserID через ДП
Эскалация: запрос на доработку — 2-я линия.
3. HTTP-запросы и внешние сервисы¶
~15% обращений.
3.1 Таймаут HTTP-запроса из смарта¶
Симптом: «можно ли увеличить таймаут для смарт-действия "Отправить HTTP-запрос"?»
Решение: таймаут настраивается в параметрах действия. По умолчанию — 30 секунд. Для длительных операций рекомендуется асинхронная схема (отправка → callback). [2L]
3.2 Авторизация через WSDL / внешние сервисы¶
Симптом: «проблема с авторизацией через WSDL внешних сервисов к 1Форме», «401 ошибка».
Что проверить: - Настройки UniversalApi / публикации — корректны ли credentials - Тип авторизации — Basic, Token, Certificate - Доступность endpoint'а
3.3 Настройка публикации для получения файла от внешнего сервиса¶
Симптом: «как настроить приём файла от внешнего сервиса?»
Решение: через UniversalApi + очередь событий. Внешний сервис вызывает API 1Ф, файл сохраняется через Lua/смарт-действие «Скачать файл». [2L]
3.4 Хранение реквизитов подключения к внешним сервисам¶
Симптом: «как безопасно хранить credentials внешних сервисов в 1Ф?»
Решение: рекомендуется хранить в настройках приложения (AppSettings) или в зашифрованных ДП. Прямое хранение в БД без шифрования — не рекомендуется. [2L]
4. Прочие проблемы автоматизации¶
4.1 Некорректная работа todo list при заполнении автоматизацией¶
Симптом: «todo list работает некорректно, если заполняется смарт-действием».
Что проверить: - Тип действия — каким действием заполняется todo - Порядок — не конфликтуют ли несколько действий
4.2 Смарт-действие «Открыть ссылку» — не открывается¶
Симптом: «не работает действие "Открыть ссылку"».
Что проверить: - Формат URL — абсолютный или относительный - Попап-блокировщик браузера — может блокировать открытие - Контекст — действие работает только в пользовательском контексте (не из фоновых задач)
4.3 Ошибка перехода в папку «Файлы автоматизации»¶
Симптом: «ошибка при переходе в Файлы автоматизации на Диске».
Что проверить: - Версия системы — известный баг в некоторых версиях - Права администратора
4.4 Виджет SmartHtml — не отображается название смарта¶
Симптом: «в виджете SmartHtml не видно название смарта», «SmartHtml отображается без заголовка».
Что проверить: - Настройка виджета — задано ли отображение названия - Версия системы — возможный баг рендеринга
5. Баги редактора смарт-правил (AdminSPA)¶
~18% обращений за февраль-март 2026. Проблемы интерфейса AdminSPA при настройке смарт-правил и смарт-выражений.
5.1 Дубли и ошибки в дереве смарт-выражений¶
Симптом: «"Текущий пользователь" отображается дважды в дереве», «ошибка при выборе сущности в смарт-выражении», «нет возможности провалиться в контекст при редактировании смарт-выражения».
Что проверить: - Версия AdminSPA — баг может быть исправлен в новой версии - Тип сущности — на каком элементе дерева возникает проблема - Браузер — воспроизводится ли в другом браузере
Эскалация: баги UI редактора — 2-я линия (фронтенд).
5.2 Поиск в редакторе автоматизации не работает¶
Симптом: «не работает поиск в редакторе smart автоматизации», «не могу найти правило по имени».
Что проверить: - Версия AdminSPA - Количество правил — при большом количестве поиск может тормозить - Фильтры — не установлены ли фильтры, скрывающие результат
Эскалация: баг UI — 2-я линия.
5.3 Некорректное отображение смарта в пакете действий¶
Симптом: «баг при отображении смарта в пакете действий при открытии из общего списка».
Что проверить: - Воспроизводится ли при открытии из контекста категории (не из общего списка) - Версия AdminSPA
Эскалация: баг UI — 2-я линия.
5.4 Ошибка при создании сценария тестирования смарта¶
Симптом: «при попытке создать сценарий тестирования для смарта падает ошибка», «ошибка при тестировании циклического смарта».
Что проверить: - Тип смарта — циклические смарты могут иметь ограничения тестирования - Версия системы - Есть ли данные для тестирования — задача, на которой запускается тест
Эскалация: если ошибка воспроизводится стабильно — 2-я линия.
5.5 Некорректная валидация смарт-выражений в БИ¶
Симптом: «в таблице БИ в поле "Ссылка для кнопки Создать" можно задать смарт-выражение, отдающее строку вместо URL».
Что проверить: - Тип возвращаемого значения смарт-выражения - Ожидаемый формат — URL vs произвольная строка
Эскалация: отсутствие валидации — 2-я линия (фронтенд).
Чеклист для первичной диагностики¶
- Тип проблемы — Lua, смарт-действие, HTTP/внешний сервис, прочее
- Версия системы
- Категория и подкатегория — к какой привязано правило
- Событие-триггер — на какое событие срабатывает
- Текст ошибки — из лога / экрана
- Лог смарт-выполнения — есть ли записи о попытке выполнения
Когда эскалировать¶
- Ошибка в API Lua (не в пользовательском коде)
- Смарт и Lua дают разный результат при одинаковых параметрах
- HTTP-запрос требует таймаут > 30 сек (архитектурный вопрос)
- Ошибки авторизации при вызове UniversalApi
- pcall() не перехватывает исключение (баг runtime)
- CreateFileVersionCopy / другие API-методы не работают при корректных параметрах
- Баги UI редактора смарт-правил в AdminSPA (дубли, поиск, отображение)
- execute_action не принимает документированное значение параметра
- Действия на переходе выполняются, но переход не записывается
- Ошибки сценариев тестирования смартов
Связанные документы¶
- business.md — бизнес-логика смарт-действий
- actions-reference.md — справочник всех смарт-действий (53 KB)
../smart-filters/admin.md— общее описание smart-логикиadmin.md— список действий../smart-filters/admin.md— список событийadmin.md— примеры настройкиadmin.md— HTTP-ботыdocs/domains/smart-filters/— смарт-фильтры (условия)