Обратите внимание! Данная статья предназначена для технических специалистов. Разработчики MiDays UNO не несут ответственности за неверно составленные и применённые скрипты
Данная возможность появилась с версии 2024.12.26.
Для чего?
Скрипты можно использовать для изменения информации в базе данных.
Например, можно изменить группу НДС для товаров, но сделать это нужно с определённой даты.
Например, можно изменить группу НДС для товаров, но сделать это нужно с определённой даты.
Как создать?
В папке с параметрами программы найдите папку UserScripts (C:\ProgramData\MiDays\MiDaysCommerce\UserScripts), если папки нет - создайте её.
В этой папке необходимо создать файл определённого формата. Расширение файла должно быть json (Например, MyScript.json)
В этой папке необходимо создать файл определённого формата. Расширение файла должно быть json (Например, MyScript.json)
{
"Name": "Название скрипта",
"Start": "Дата",
"Query": "Скрипт",
"IsRecurring": true
}
Объяснение:
- "Name": Название скрипта.
- "Start": Дата и время запуска в формате ISO 8601.
- "Query": Пример SQL-запроса.
- "IsRecurring": Логическое значение, указывающее, является ли скрипт повторяющимся.
Start может принимать значения даты в форматах:
- Дата-время yyyy-MM-ddTHH:mm:ss. Если необходимо указать время, после которого будет выполнен скрипт.
- Дата yyyy-MM-dd. Если достаточно указать дату, после которой будет выполнен скрипт.
IsRecurring может принимать значения:
- true - указывает, что скрипт будет повторяться.
- false - указывает, что скрипт будет выполнен один раз.
Как работает?
При запуске программы будет выполнена проверка, есть ли файлы в папке со скриптами.
Если файлы найдены, для каждого из них будет предпринята попытка открыть и десериализовать текст файла.
После успешной десериализации пройдёт проверка даты, если дата/время на момент запуска программы будет больше, чем указанная дата в файле - произойдёт выполнение SQL скрипта.
Обратите внимание, выполнение скрипта происходит ДО авторизации пользователя, поэтому, если Ваш скрипт выполняется долго, то это может внести замедление в запуск программы.
Если файлы найдены, для каждого из них будет предпринята попытка открыть и десериализовать текст файла.
После успешной десериализации пройдёт проверка даты, если дата/время на момент запуска программы будет больше, чем указанная дата в файле - произойдёт выполнение SQL скрипта.
Обратите внимание, выполнение скрипта происходит ДО авторизации пользователя, поэтому, если Ваш скрипт выполняется долго, то это может внести замедление в запуск программы.
Примеры
На момент написания статьи актуален скрипт для изменения группы НДС, в связи с вводом новых групп НДС с 1 января 2025.
1. Изменение группы НДС на организацию.
{
"Name": "Изменение НДС организации",
"Start": "2025-01-01",
"Query": "UPDATE Organizations SET VatGroupID = XX WHERE ID = YY",
"IsRecurring": false
}
- XX - ID новой группы НДС.
- YY - ID организации, для которой должен быть применён скрипт.
- IsRecurring = false, т.к. достаточно этот скрипт выполнить один раз.
2. Изменений группы НДС на некоторые группы товаров.
{
"Name": "Изменение НДС некоторых групп товаров",
"Start": "2025-01-01",
"Query": "UPDATE Goods SET VatGroupID = XX WHERE GroupID in (YY, ZZ, ...)",
"IsRecurring": false
}
- XX - ID новой группы НДС.
- YY, ZZ - ID групп товаров, для который должен быть применён скрипт (указать через запятую все необходимые группы товаров
- IsRecurring = false, т.к. достаточно этот скрипт выполнить один раз.
Логирование.
При выполнении скриптов ведётся подробное логирование выполняемых действий.
- Скрипт найден в папке (указываются имя скрипта и путь до файла). Данная запись будет отображена в лог-файле программы.
- Начато выполнение скрипта (указываются имя скрипта и путь до файла). Данная запись будет отображена в лог-файле программы.
- Скрипт пропущен из-за не наступившей даты (указываются имя скрипта, дата в скрипте, текущая дата). Данная запись будет отображена в лог-файле программы.
- Скрипт выполнен (указываются имя скрипта и путь до файла). Данная запись будет отображена в лог-файле программы и записана в базу данных.
- SQL запрос скрипта. Данная запись будет отображена только в лог-файле программы.