Перейти к содержанию

Смарт-действия и скрипты — Решение проблем

Справочник по типовым проблемам смарт-действий, Lua-скриптов и HTTP-интеграций в 1Форме. Для линии поддержки: симптом → проверки → решение → когда эскалировать в 1Ф. Разделы: Lua API, не срабатывающие смарты, внешние сервисы, баги редактора AdminSPA.

1. Lua-скрипты

Секции организованы по типам проблем: Симптом, Что проверить, Решение, Когда обращаться в поддержку 1Ф. Самая частая тема обращений — Lua-скрипты.

1.1 Ошибка выполнения Lua-скрипта — 1.2 Как использовать метод HTTP:post_files в Lua

Симптом: «ошибка выполнения LUA», «исключение не перехватывается pcall()», «401 ошибка при работе в Lua».

Что проверить:

  • Текст ошибки — точная формулировка из лога
  • Контекст скрипта — какой метод вызывается
  • Версия системы — API Lua может отличаться между версиями
  • Авторизация — если Lua обращается к внешнему сервису, корректны ли реквизиты подключения

Когда обращаться в поддержку: если ошибка в самом API Lua (не в пользовательском коде) — обратиться в поддержку 1Ф.

Симптом: «нужен пример HTTP:post_files», «как отправить файл через Lua».

Решение: метод HTTP:post_files(url, files, headers) отправляет файлы через multipart/form-data. Файлы передаются как массив объектов с полями name, content, filename. Примеры — в документации Lua API.

1.3 CreateFileVersionCopy не работает из Lua — 1.5 Различное поведение SMART и Lua

Симптом: «не работает CreateFileVersionCopy через Lua».

Что проверить:

  • Параметры вызова — FileID, TaskID
  • Права — может ли пользователь создавать версии
  • Версия системы

Когда обращаться в поддержку: если параметры корректны — баг API.

Симптом: «как подписать задачу через Lua?»

Решение: используется метод Task:sign(signId, resolution, comment). Требует корректный ID подписи и права текущего пользователя.

Симптом: «смарт и Lua дают разный результат для одного и того же действия».

Что проверить:

  • Контекст выполнения — смарт выполняется в контексте системы, Lua — может выполняться в контексте пользователя
  • Порядок — смарт-действия выполняются последовательно, Lua может обходить очередь
  • Транзакции — смарт обёрнут в транзакцию, Lua может работать вне неё

Когда обращаться в поддержку: если поведение объективно разное — обратиться в поддержку 1Ф с точным описанием обоих сценариев.

1.6 Подключение библиотек Lua через include / репозиторий Lua

Симптом: «ошибка при подключении библиотеки Lua через include», «как использовать репозиторий Lua-скриптов?»

Что проверить:

  • Имя библиотеки — точное совпадение с именем скрипта в репозитории
  • Доступность репозитория Lua — настроен ли на площадке
  • Синтаксис include — require("имя") или include("имя") в зависимости от версии

Когда обращаться в поддержку: если include вызывает ошибку при выполнении при корректном имени — обратиться в поддержку 1Ф.

Симптом: «HTTP:send_http_request перестал работать», «Lua HTTP-запрос возвращает ошибку».

Что проверить:

  • Версия системы — метод мог измениться между версиями
  • Параметры вызова — URL, метод, заголовки, тело
  • Доступность внешнего сервиса с сервера 1Формы
  • Лог ошибок — точный текст исключения

Когда обращаться в поддержку: если параметры корректны, сервис доступен, но метод возвращает ошибку — обратиться в поддержку 1Ф.

Симптом: «SMART:execute_action('SetPriority') не принимает значение», «execute_action игнорирует параметр».

Что проверить:

  • Допустимые значения параметра — enum или числовой ID
  • Версия системы — набор допустимых значений может отличаться
  • Синтаксис вызова — формат передачи параметра

Когда обращаться в поддержку: если значение валидно по документации, но не принимается — возможная ошибка — обратиться в поддержку 1Ф.


2. Смарт-действия — не срабатывают

Частая тема обращений.

2.1 Смарт-действие не срабатывает — 2.2 Автоматизация не обновляет ДП Таблица

Симптом: «смарт-действие не выполняется», «автоматизация не работает».

Что проверить:

  • Событие-триггер — правильно ли выбрано событие (создание, изменение, переход)
  • Условия (фильтр) — выполняется ли условие для данной задачи
  • Активность — включено ли правило
  • Категория — привязано ли к нужной категории
  • Лог смарт-выполнения — есть ли записи

Симптом: «после отработки автоматизации ДП Таблица не обновляется».

Что проверить:

  • Тип действия — какое действие меняет таблицу
  • Денормализация — обновляется ли
  • Кеш — обновить страницу после выполнения

2.3 Подтверждение перехода игнорируется при автоматизации

Симптом: «настроено подтверждение перед переходом, но если переход делается автоматизацией — подтверждение не запрашивается».

Решение: ожидаемое поведение — автоматизация выполняется без участия интерфейса, поэтому подтверждения пропускаются. Если нужна проверка — использовать условие в смарт-правиле.

Симптом: «при смарт-отмене на комментарии не выводится сообщение об ошибке».

Что проверить:

  • Настройка текста ошибки в смарт-правиле
  • Контекст — отмена на комментарии vs на переходе (разные механизмы)

2.5 Смена текста в «Большом тексте с форматированием» автоматизацией

Симптом: «автоматизация меняет текст в БТсФ, но изменение видно только после перезагрузки страницы».

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

Симптом: «смарт-действия на переходе отработали, но задача осталась в старом состоянии», «переход не выполняется».

Что проверить:

  • Лог автоматизации — есть ли ошибка после выполнения действий
  • Условия перехода — все ли обязательные поля заполнены
  • Смарт-отмена — нет ли другого правила, отменяющего переход
  • Права — может ли исполнитель совершать этот переход

Когда обращаться в поддержку: если все условия выполнены, действия отработали, но переход не записался — обратиться в поддержку 1Ф.

2.7 Ошибка смарт-действия «Создать задачу»

Симптом: «ошибка при выполнении действия "Создать задачу"», «задача не создаётся автоматизацией».

Что проверить:

  • Обязательные ДП целевой категории — все ли заполнены в настройке действия
  • Права — может ли пользователь создавать задачи в целевой категории
  • Шаблон — корректен ли шаблон создания

Когда обращаться в поддержку: если настройка корректна — обратиться в поддержку 1Ф.

Симптом: «автоматизация срабатывает не в заданный интервал», «странное поведение настройки интервала».

Что проверить:

  • Формат интервала — корректны ли единицы (минуты, часы, дни)
  • Часовой пояс сервера vs пользователя
  • Нет ли нескольких правил с пересекающимися интервалами

2.9 Программное добавление орг. единицы в ДП «Выбор пользователей»

Симптом: «из смарта нельзя добавить орг. единицу в поле "Выбор пользователей"», «опция "Разрешить добавлять орг. единицы" не работает программно».

Что проверить:

  • Тип значения — передаётся ли ID орг. единицы в правильном формате
  • Настройка ДП — включена ли опция «Разрешить добавлять орг. единицы»

Когда обращаться в поддержку: если настройка включена, но через смарт не добавляется — возможное ограничение — обратиться в поддержку 1Ф.

Симптом: «как создать пользователя через смарт с ФИО на нескольких языках?»

Решение: при создании пользователя через смарт-действие локализованные поля (ФИО) задаются через параметры действия. Формат зависит от версии — уточнить в документации по действию «Создать пользователя».

2.11 Как остановить выполнение смарта — 2.12 Смарт-действие «Удалить исполнителей» по условию

Симптом: «как прервать работающий смарт?», «смарт зациклился, как остановить?»

Решение: остановка через AdminSPA: Автоматизация → найти правило → отключить. Для циклических смартов: отключить правило, дождаться завершения текущего цикла. Принудительная остановка — через перезапуск пула приложения (согласование с администратором).

Симптом: «как через смарт удалить исполнителей, которые в отпуске?», «автоматическое удаление исполнителей по условию».

Решение: комбинация смарт-фильтра (условие на статус пользователя / отпуск) + действие «Удалить исполнителя». Для массового удаления — Lua-скрипт с перебором исполнителей. Симптом: «в действии "Инициировать произвольное событие" нет контекста пользователя-инициатора», «хочу передать инициатора в произвольное событие».

Что проверить:

  • Версия системы — контекст инициатора может быть добавлен в новых версиях
  • Обходной путь — передать UserID через ДП

Когда обращаться в поддержку: запрос на доработку — обратиться в поддержку 1Ф.


3. HTTP-запросы и внешние сервисы

Частая тема обращений.

3.1 Таймаут HTTP-запроса из смарта — 3.2 Авторизация через WSDL / внешние сервисы

Симптом: «можно ли увеличить таймаут для смарт-действия "Отправить HTTP-запрос"?»

Решение: таймаут настраивается в параметрах действия. По умолчанию — 30 секунд. Для длительных операций рекомендуется асинхронная схема (отправка → ответный вызов сервера).

Симптом: «проблема с авторизацией через WSDL внешних сервисов к 1Форме», «401 ошибка».

Что проверить:

  • Настройки UniversalApi / публикации — корректны ли реквизиты подключения
  • Тип авторизации — Basic, Token, Certificate
  • Доступность адреса сервиса

Симптом: «как настроить приём файла от внешнего сервиса?»

Решение: через UniversalApi + очередь событий. Внешний сервис вызывает API 1Ф, файл сохраняется через Lua/смарт-действие «Скачать файл».

Симптом: «как безопасно хранить реквизиты подключения внешних сервисов в 1Ф?»

Решение: рекомендуется хранить в настройках приложения (AppSettings) или в зашифрованных ДП. Прямое хранение в БД без шифрования — не рекомендуется.


4. Прочие проблемы автоматизации

4.1 Некорректная работа todo list при заполнении автоматизацией — 4.3 Ошибка перехода в папку «Файлы автоматизации»

Симптом: «todo list работает некорректно, если заполняется смарт-действием».

Что проверить:

  • Тип действия — каким действием заполняется todo
  • Порядок — не конфликтуют ли несколько действий

Симптом: «не работает действие "Открыть ссылку"».

Что проверить:

  • Формат URL — абсолютный или относительный
  • Блокировщик всплывающих окон в браузере — может блокировать открытие
  • Контекст — действие работает только в пользовательском контексте (не из фоновых задач)

Симптом: «ошибка при переходе в Файлы автоматизации на Диске».

Что проверить:

  • Версия системы — известный баг в некоторых версиях
  • Права администратора

Симптом: «в виджете SmartHtml не видно название смарта», «SmartHtml отображается без заголовка».

Что проверить:

  • Настройка виджета — задано ли отображение названия
  • Версия системы — возможный баг рендеринга

5. Баги редактора смарт-правил (AdminSPA)

Проблемы интерфейса AdminSPA при настройке смарт-правил и смарт-выражений.

5.1 Дубли и ошибки в дереве смарт-выражений

Симптом: «"Текущий пользователь" отображается дважды в дереве», «ошибка при выборе сущности в смарт-выражении», «нет возможности провалиться в контекст при редактировании смарт-выражения».

Что проверить:

  • Версия AdminSPA — баг может быть исправлен в новой версии
  • Тип сущности — на каком элементе дерева возникает проблема
  • Браузер — воспроизводится ли в другом браузере

Когда обращаться в поддержку: ошибки интерфейса редактора — обратиться в поддержку 1Ф.

Симптом: «не работает поиск в редакторе smart автоматизации», «не могу найти правило по имени».

Что проверить:

  • Версия AdminSPA
  • Количество правил — при большом количестве поиск может тормозить
  • Фильтры — не установлены ли фильтры, скрывающие результат

Когда обращаться в поддержку: ошибка интерфейса — обратиться в поддержку 1Ф.

5.3 Некорректное отображение смарта в пакете действий

Симптом: «баг при отображении смарта в пакете действий при открытии из общего списка».

Что проверить:

  • Воспроизводится ли при открытии из контекста категории (не из общего списка)
  • Версия AdminSPA

Когда обращаться в поддержку: ошибка интерфейса — обратиться в поддержку 1Ф.

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

Что проверить:

  • Тип смарта — циклические смарты могут иметь ограничения тестирования
  • Версия системы
  • Есть ли данные для тестирования — задача, на которой запускается тест

Когда обращаться в поддержку: если ошибка воспроизводится стабильно — обратиться в поддержку 1Ф.

Симптом: «в таблице БИ в поле "Ссылка для кнопки Создать" можно задать смарт-выражение, отдающее строку вместо URL».

Что проверить:

  • Тип возвращаемого значения смарт-выражения
  • Ожидаемый формат — URL vs произвольная строка

Когда обращаться в поддержку: отсутствие валидации — обратиться в поддержку 1Ф.


Чеклист для первичной диагностики — Когда обращаться в поддержку 1Ф

Что уточнить по любой проблеме автоматизации:

  1. Тип проблемы — Lua, смарт-действие, HTTP/внешний сервис, прочее
  2. Версия системы
  3. Категория и подкатегория — к какой привязано правило
  4. Событие-триггер — на какое событие срабатывает
  5. Текст ошибки — из лога / экрана
  6. Лог смарт-выполнения — есть ли записи о попытке выполнения

Обратитесь в поддержку 1Ф в следующих случаях:

  • Ошибка в API Lua (не в пользовательском коде)
  • Смарт и Lua дают разный результат при одинаковых параметрах
  • HTTP-запрос требует таймаут > 30 сек (архитектурный вопрос)
  • Ошибки авторизации при вызове UniversalApi
  • pcall() не перехватывает исключение
  • CreateFileVersionCopy / другие API-методы не работают при корректных параметрах
  • Ошибки интерфейса редактора смарт-правил в AdminSPA (дубли, поиск, отображение)
  • execute_action не принимает документированное значение параметра
  • Действия на переходе выполняются, но переход не записывается
  • Ошибки сценариев тестирования смартов

Смежные разделы: