Как сформировать запрос к базе данных на основе распознанного текста?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как сформировать запрос к базе данных на основе распознанного текста?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33492
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        есть метод, который распознаёт речь. Как я могу сформировать запрос к базе данных на основе распознанного текста?

      • #33493
        bot_avaOdin — Одинэсник
        Участник

          Для формирования запроса к базе данных на основе распознанного текста в 1С:Предприятии необходимо выполнить следующие шаги:

          1. **Получение и обработка распознанного текста**
          После распознавания речи у вас есть строка с текстом, например:

            
             "Показать все документы продажи за август"  
             

          Важно выделить из этой строки ключевые параметры для запроса: тип объекта (документы продажи), период (август), и т.д.

          2. **Парсинг и анализ текста**
          Для выделения параметров можно использовать:
          — Простые методы поиска ключевых слов (например, `Найти(«продажа»)`, `Найти(«август»)`)
          — Регулярные выражения для более точного извлечения дат, чисел, имен и т.п.
          — Встроенные средства 1С для работы с датами и строками

          3. **Преобразование параметров в условия запроса**
          На основе выделенных параметров формируется текст запроса или объект запроса. Например:

          1C
             Запрос = Новый Запрос;
             Запрос.Текст = 
                 "ВЫБРАТЬ
                     ДокументПродажи.Ссылка,
                     ДокументПродажи.Дата,
                     ДокументПродажи.Сумма
                  ИЗ
                     Документ.Продажа КАК ДокументПродажи
                  ГДЕ
                     ДокументПродажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца";
             
             Запрос.УстановитьПараметр("ДатаНачала", НачалоАвгуста);
             Запрос.УстановитьПараметр("ДатаКонца", КонецАвгуста);
             

          Здесь `НачалоАвгуста` и `КонецАвгуста` — вычисленные даты на основе распознанного текста.

          4. **Выполнение запроса и обработка результата**

          1C
             Результат = Запрос.Выполнить();
             ТаблицаРезультатов = Результат.Выгрузить();
             // Далее вывод или обработка данных
             

          5. **Пример упрощённого алгоритма**

          1C
             ТекстРаспознанный = "Показать все документы продажи за август";
          
             Если Найти(ТекстРаспознанный, "продажа") > 0 Тогда
                 // Определяем период
                 Если Найти(ТекстРаспознанный, "август") > 0 Тогда
                     НачалоАвгуста = Дата(2025, 8, 1);
                     КонецАвгуста = КонецМесяца(НачалоАвгуста);
                 КонецЕсли;
          
                 // Формируем и выполняем запрос
                 Запрос = Новый Запрос;
                 Запрос.Текст = 
                     "ВЫБРАТЬ
                         ДокументПродажи.Ссылка,
                         ДокументПродажи.Дата,
                         ДокументПродажи.Сумма
                      ИЗ
                         Документ.Продажа КАК ДокументПродажи
                      ГДЕ
                         ДокументПродажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца";
                 Запрос.УстановитьПараметр("ДатаНачала", НачалоАвгуста);
                 Запрос.УстановитьПараметр("ДатаКонца", КонецАвгуста);
          
                 Результат = Запрос.Выполнить();
                 ТаблицаРезультатов = Результат.Выгрузить();
                 // Вывод результатов
             КонецЕсли;
             

          **Рекомендации:**
          — Для сложного анализа текста можно использовать внешние библиотеки NLP (например, Python + NLP), а в 1С передавать уже структурированные параметры.
          — В 1С можно использовать полнотекстовый поиск и операторы (И, ИЛИ, НЕ) для гибкого поиска по тексту.
          — Для распознавания дат и чисел удобно использовать функции 1С для работы с датами и регулярные выражения.

          Рекомендую посмотреть здесь:
          https://its.1c.ru/db/v8std#content:456:hdoc

          https://its.1c.ru/db/v8std#content:456:hdoc:search

          https://its.1c.ru/db/v8std#content:456:hdoc:query

          Оценка ответа: 9/10

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С