Универсальные функции обработки строковых значений в нормоконтроле договорных документов

12 1

Предпосылки

При внедрении Directum RX Intelligence в договорной работе заказчики сталкиваются с проблемой нешаблонного формата договорных документов разных контрагентов. Зачастую договор заключается по типовому формату контрагента, что приводит к невозможности корректной работы распознавания и извлечения фактов для заполнения реквизитов.

Часть реквизитов может быть в табличной части, часть – отображена в неожиданном для системы формате (сумма не прописью).

Переразметка и дообучение системы занимает значительное количество времени и сил сотрудников.

Значительно ускорить процесс может применение ГенИИ. Однако, найденные ГенИИ значения того или иного реквизита невозможно сразу внести в карточку, т.к. выходной формат скрипта – строка.

Для нивелирования данной сложности разработана группа универсальных функций обработки строк.

Название функции

Описание

Контекст функции

Возвращаемый тип

Поиск записей справочника по вхождению имени

Возвращает коллекцию записей указанного справочника по признаку вхождения строки в отображаемое имя записи.

Справочник (Сведения о справочнике)

Коллекция [Справочник (Справочник)]

Поиск записей справочника по совпадению имени

Возвращает коллекцию записей указанного справочника по признаку полного совпадения строки с отображаемым именем записи.

Справочник (Сведения о справочнике)

Коллекция [Справочник (Справочник)]

Подстрока по разделителю

Возвращает первую подстроку, следующую до разделителя.

Строка

Строка

Подстрока по разделителю и ее порядковому номеру.

Возвращает подстроку по разделителю и ее порядковому номеру.

Строка

Строка

Преобразовать в вещественное число

Возвращает вещественное число, преобразованное из строки.

Строка

Вещественное число

Преобразовать в дату

Возвращает текущую дату, преобразованную из строки.

Строка

Дата

Преобразовать в логическое значение

Возвращает логическое значение, преобразованное из строки "Да", "Истина", "True" либо "Нет", "Ложь", "False" в логическое Истина либо Ложь соответственно.

Строка

Логическое

Преобразовать в целое число

Возвращает целое число, преобразованное из строки.

Строка

Целое число

 

Реализация

Функция «Преобразовать в целое».

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

Пример использования:

Промптом задаем обработку текста договора по блоку Условия оплаты, указываем в качестве возвращаемого вывода целое число количества дней отсрочки платежа. Функцией «Преобразовать в целое число» заполняем целочисленный параметр процесса и изменяем реквизит Дней отсрочки платежа в карточке договора.

Функция «Преобразовать в вещественное число».

В качестве входящего параметра получает строковое значение, преобразует строку в дробное число. Используется для заполнения реквизитов суммы, суммы НДС и аналогичных им.

Пример использования:

Промптом задаем обработку текста договора по блоку Условия оплаты, указываем в качестве возвращаемого вывода дробное число суммы НДС. Функцией «Преобразовать в вещественное число» заполняем вещественный параметр процесса и изменяем реквизит Сумма НДС в карточке договора.

Функция «Преобразовать в дату».

В качестве входящего параметра получает строковое значение в различных форматах: ДД.ММ.ГГ; ДД/ММ/ГГ; ДД/ММ/ГГГГ и т.п. Преобразует в дату в формате ДД.ММ.ГГГГ. Используется для заполнения реквизитов: Действует с, Действует по.

Пример использования:

Промптом задаем обработку текста договора по блоку Сроки действия договора, указываем в качестве возвращаемого вывода дату окончания действия в нужном формате написания. Функцией «Преобразовать в дату» заполняем параметр процесса и изменяем реквизит Действует по в карточке договора.

Функция «Преобразовать в логическое».

В качестве входящего параметра получает строковое значение Да/Нет и близкие ему по смыслу. Возвращает ИСТИНА/ЛОЖЬ. Используется для заполнения логических реквизитов.

Пример использования:

Промптом задаем обработку текста договора по блоку Сроки действия договора, указываем в качестве возвращаемого вывода «Да», если присутствуют формулировки об автоматической пролонгации договора. Функцией «Преобразовать в логическое» заполняем логический параметр процесса и изменяем реквизит Автоматическая пролонгация в карточке договора.

Функция «Подстрока по разделителю».

В качестве входящего параметра получает строковое значение и значение разделителя. Возвращает фрагмент входящей строки до разделителя. Используется вместо функции «Подстрока от начала» при отсутствии фиксированного значения требуемой подстроки.

Функция «Подстрока по разделителю и номеру».

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

Если в качестве промпта задать список условий/правил для договорного документа, указав в качестве выходного результата перечисление ответов в формате «Да»/«Нет» с разделителем, можно продолжить преобразование полученной «коллекции» подстрок в логические параметры, направляющие процесс по нужной ветке в зависимости от комбинации их значений.

 

Функция «Поиск по имени» и Функция «Поиск по вхождению в имя».

В качестве входящего параметра получает контекст используемого справочника и строковое значение полного или частичного значения имени записи справочника. Возвращает коллекцию объектов выбранного в качестве контекста справочника.

С помощью данной функции можно заполнить любое ссылочное значение карточки справочника.

Примеры использования:

Пример 1. Промптом задаем выделение категории договорного документа по тексту Предмета договора в тексте документа. В качестве вывода запрашиваем значение из конкретного списка с критериями выбора. Полученное значение категории используем для поиска по справочнику Категории договоров.

Из полученной коллекции забираем «первый элемент» в качестве параметра процесса и изменяем свойство Категория для обрабатываемого договора.

 

Пример 2. Промптом задаем выделение валюты оплаты договорного документа по тексту Условий договора в тексте документа. В качестве вывода запрашиваем значение из конкретного списка с критериями выбора. Полученное значение наименования валюты используем для поиска по справочнику Валюты.

Из полученной коллекции забираем «первый элемент» в качестве параметра процесса и изменяем свойство Валюта для обрабатываемого договора.

 

Результаты

Полученные параметры используем для заполнения карточки документа. 

Использование подборки универсальных функций обработки строковых значений позволяет сократить трудозатраты на дообучение моделей Ario и использовать интеллектуальные возможности для заполнения реквизитов, традиционно заполняемых сотрудниками, например: категория договора, статья затрат, подразделение.

Пакет разработки с универсальными функциями может быть предоставлен по запросу.

Илья Петухов

Это просто супер!
Я теперь ссылку на эту статью буду заказчикам отправлять)

Авторизуйтесь, чтобы написать комментарий