Знатокам запросов

  1. 4 г. назад

    Есть динамический список - таблица порядка 10 млн строк. Одно из полей - Наименование длина 100.
    Есть список комбинаций слов порядка 4 тысяч.
    При накладывании на динсписок условий
    Наименование Содержит "****"
    ИЛИ Наименование Содержит "11111"
    ...
    ИЛИ Наименование Содержит "4010"
    Валится ошибка.
    Есть какие то предложения?

  2. Какая ошибка-то?

    Ответы: (3)
  3. мо подобно %% заюзать?

  4. (1)
    Ошибка при выполнении запроса.
    по причине:
    Невозможно применить элемент отбора в наборе данных "((Наименование Содержит "***"- и тут все 4 тысяч "или"

  5. https://forum.infostart.ru/forum9/topic191375/ - это смотрел уже?

    А вообще, вводные какие-то адовые, м.б. имеет смысл перепроектировать?

    Ответы: (5)
  6. Причем на паре десятков комбинаций все ок. Но тут неожиданно для меня оказалось что их порядка 4 тысяч.
    (4) есть прайсы поставщиков - нужно сопоставить автоматически только те позиции которые имеют ключевые комбинации. Я уже думал сделать отдельный регистр в него загонять Наименование Ключевое сочетание, а потом через внутренние накладывать ограничение.

    Ответы: (8)
  7. Прекратить перечислять их через или и делать inner join.

  8. 13.05.2019 11:00:32 отредактировано sda553

    Но у 1с вроде нюанс был - там нельзя было использовать подобно в критерии join. Но точно не уверен, плохо уже помню нюансы 1с

  9. 13.05.2019 11:02:34 отредактировано sda553

    Fynjy Я уже думал сделать отдельный регистр в него загонять

    А временные таблицы? С отдельным регистром придется прорабатывать сессионность, чтоб два пользователя не перетирали регист друг друга, и очистку, чтобы отвалившиеся юзера не засрали регистр

    Ответы: (9)
  10. (8) динамический список не поддерживает временные

  11. И сдается мне, что тут архитектор с аналитиком что то накосячили. Ни в одной разумной бизнес задаче я не могу придумать необходимости сверки с 4 тыс строковыми подобиями.

    Ответы: (12) (13)
  12. Поддерживает: https://its.1c.ru/db/v8std#content:732:hdoc
    Однако есть нюанс.

    5.3.1. Временные таблицы в динамических списках рекомендуется использовать только тогда, когда они содержат заведомо небольшое количество записей. Иначе их использование неэффективно, т.к. значения временных таблиц в динамическом списке НЕ кешируются, а формируется при каждом считывании данных для заполнения списка.

  13. Согласен с (10). Нужно перепроектировать исходную задачу.

  14. (10) Задача проста
    Есть прайсы поставщиков порядка 10 млн строк
    Причем наименование может быть, как "ткань красная" так и "красная ткань", "кр. ткань" и так далее.
    Весь ассортимент в 10 млн не нужен.
    Нужно позиции которыми мы торгуем по ключевым словами. "ткань" "рубашка" и так далее.
    И нужно его сопоставить где то вручную, где то автоматически. Что бы потом юзать в заказах по минимальной цене.

    Ответы: (19)
  15. В итоге из 10 млн остается порядка 50-60 тысяч.

  16. Мало того, есть записи на английском и немецком )))

  17. Первый же вопрос назревает - на кой ляд для этой задачи динамический список?

    Ответы: (17)
  18. (16) обработка прайсов поставщиков - нужно отобрать нужные позиции и не сопоставленные с их справочником номенклатуры.
    Плюс гаврики в УТ 11 работают и очень полюбили поиски в динсписках.

    Ответы: (21)
  19. Не сколько менеджеров у каждого своя группа закупки. И удобно "кр" и "руб" и работаем со списком небольшим

  20. (13) здесь предлагаю подключить библиотеки NER. Например стэнфордскую
    https://nlp.stanford.edu/software/CRF-NER.html
    Или open nlp.
    В использовании они просты как пять копеек и очень эффективны

  21. Кратко их использование - подсовываешь модулю обучения примеры:
    "ткань красная" так и "красная ткань", "кр. ткань" и так далее
    Чем больше тем лучше. Потом модуль обучения создает файл словаря. Его подсовываешь модулю распознавания и наслаждаешься тому, как он коуто все находит. Пользакам нравится, работает на многих языках, знает падежи и словоформы

  22. Fynjy Плюс гаврики в УТ 11 работают и очень полюбили поиски в динсписках.

    Гаврикам тогда надо заявить предварительный отбор данных, выполняемый не на лету, а загодя регламентным заданием в отдельный регистр.
    Внешними библиотеками или средствами 1С - не принципиально.

или зарегистрируйтесь чтобы ответить!