Автоматическое сопоставление номенклатуры в 1С с помощью векторного поиска

24.03.26

Учетные задачи - Логистика, склад и ТМЦ

Практический опыт внедрения векторного поиска для сопоставления номенклатуры в 1С. Используем ChromaDB и LM Studio: выгрузка 5000+ позиций за 3-4 минуты, поиск за 15-20 секунд. Пошаговая инструкция с готовыми обработками.

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Выгрузка номенклатуры
.epf 11,50Kb
46 Скачать бесплатно
Автоматическое сопоставление номенклатуры в 1С с помощью векторного поиска
.epf 15,39Kb
47 Скачать бесплатно

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Всем добрый день! 👋

Это моя первая статья на Инфостарте, поэтому сильно не пинайте — буду рад конструктивной критике.
 

📌 Предыстория

На днях прилетела задача по автоматическому сопоставлению номенклатуры. Было перебрано много вариантов, скопировано чужих идей, но всё работало очень долго. Я бы даже сказал — оооочень долго.

Тогда было решено оседлать тему векторного поиска и заодно потренироваться в Вайбкодинге, о котором сейчас шумят из каждого угла.

В приложенных обработках — рабочие заготовки для дальнейшего развития. Код не идеален, но задачу решает.
 

На чём тестировал

Сервер (домашний ПК, где происходит основная магия):

Компонент

Значение

ОС

Windows 11 Pro

Процессор

AMD Ryzen 9 5950X

ОЗУ

2 × 16 ГБ

Видеокарта

NVIDIA GeForce RTX 5060 Ti 16 ГБ

Клиент (ноутбук с файловой песочницей 1С):

  • Справочник Номенклатура с полем Наименование (длина 150)
  • Без группировок и сложных иерархий — чистый тест

 

🚀 Шаг 1. Установка LM Studio

  1. Скачиваем и устанавливаем LM Studio.
  2. Загружаем модель для эмбеддингов. В моём случае:
    text-embedding-multilingual-e5-large.gguf

    💡 Если нет видеокарты NVIDIA — ставьте multilingual-e5-small. Магия будет твориться на процессоре, правда, чуть дольше.

  3. Перед запуском выставляем настройки:
    • Порт: 1234 (стандартный для LM Studio, можно менять)
    • Включаем обнаружение по локальной сети (Local Server)

 

 

 

🐳 Шаг 2. Установка Docker и запуск ChromaDB

  1. Устанавливаем Docker Desktop.
  2. Запускаем контейнер с ChromaDB через PowerShell:
docker run -d -p 8020:8000 `
  -v D:\Cursor\NomenDB:/data `
  -e IS_PERSISTENT=TRUE `
  -e PERSIST_DIRECTORY=/data `
  --restart always `
  --name chroma_server `
  chromadb/chroma

 

Что здесь важно:

  • D:\Cursor\NomenDB — папка на хосте, где будут храниться данные Chroma(создать до запуска контейнера)
  • 8020 — порт, который слушает контейнер снаружи (к нему обращается 1С)
  • 8000 — порт внутри контейнера (стандартный для Chroma)

После запуска в Docker Desktop вы увидите работающий контейнер:

 

 

🔥 Шаг 3. Открываем порты в брандмауэре

Чтобы можно было обращаться с других компьютеров в локальной сети (в моём случае — с ноутбука), выполняем в PowerShell от имени администратора:

New-NetFirewallRule -DisplayName "LM Studio API" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 1234
New-NetFirewallRule -DisplayName "Chroma DB API" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8020

 

📦 Шаг 4. Выгрузка номенклатуры в Chroma

Запускаем обработку ВыгрузитьНМ.

По сути, в ней одна кнопка — «Выгрузить НМ».

Какая номенклатура будет выгружена, определяется в процедуре:
ВыгрузитьНоменклатуруВChroma()

В тестовом варианте у меня всё просто: Не Группа И Не ПометкаУдаления.

Результат:

5 000+ строк выгружаются в Chroma примерно за 3–4 минуты.


 

🔍 Шаг 5. Сопоставление позиций

Запускаем обработку СопоставлениеНМ.

Две кнопки:

  1. «Загрузить из Excel» — импортируем наименования (в моём случае — сметные позиции), которые требуется сопоставить с номенклатурой.

    Важно: если не хотите ковыряться в коде, в Excel должна быть колонка «Наименование ТМЦ» — именно оттуда берутся данные для сопоставления.

  2. «Сопоставить НМ» — запускаем поиск.

Все сопоставленные данные отображаются справа в дереве: строка сметы +процент сходства.  → найденная номенклатура

 

 

Результат:

Сопоставление проходит примерно за 15–20 секунд.

 

🛠Что можно улучшить

Да, есть куда расти:

  •  Длительные методы нужно выносить в фоновое задание
  •  Код надо причесать по стандартам 1С
  •  Добавить логирование и обработку ошибок
  •  Хранение параметров через регистры\константы\пр но пока тока в коде :)

Но основная задача была понять:

  1. Насколько это муторно по настройке?
  2. Сколько времени занимает выгрузка и поиск?
  3. Работает ли вообще в связке 1С + Chroma + LM Studio?

Ответ: работает, и работает быстро. 🎉

 

🙏 Благодарности

Хотелось бы выразить благодарность коллегам, которые делились знаниями и вдохновением:

Без вашей помощи статья могла бы не состояться. Спасибо!

 

🙏 Вместо заключения

Всё было сделано посредством Вайбкодинга на модели Composer 2.0 — быстро и без причесывания.

Если где-то видно «руку робота» — не судите строго.

Надеюсь, вам было интересно это читать, а обработки будут полезны в работе!

Буду рад вопросам, идеям и критике в комментариях. 👇

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.194.18

Вступайте в нашу телеграмм-группу Инфостарт

Сопоставление номенклатура

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    52590    106    29    

117

Логистика, склад и ТМЦ 1С:Предприятие 8 Россия Платные (руб)

Подсистема автоматизированного управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления, хранения и учета на адресном складе. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

50000 руб.

26.07.2023    11049    61    0    

11

Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Модуль ответственное хранения в 1С 8.3 для складов и фулфилмент-операторов: учет чужого товара, приемка на хранение, передача, возвраты, акты, адресный склад и работа с товарами поклажедателей.

89900 руб.

09.06.2020    56058    43    60    

78

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    231917    747    532    

495

Обмен с ГосИС Логистика, склад и ТМЦ Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Внешняя обработка для инвентаризации кодов маркировки в системе "Честный знак". Позволяет быстро определить и списать коды маркировки проданного, испорченного, утраченного (полный перечень причин списания указан ниже)  товара, которые всё ещё числятся за организацией. Привести в соответствие остатки маркированного товара программы 1С и системы "Честного знака".

6649 руб.

09.01.2024    16291    165    30    

156
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Snitkovski 88 26.03.26 20:15 Сейчас в теме
Однозначно - ЛАЙК!
А если оно ещё и заработает - вернусь ещё поЛАЙКать ! 8-)
2. user640814_valery.trofimenko 27.03.26 00:59 Сейчас в теме
Не взлетело
сделал все по инструкции
lmstudio работает, docker с chroma работает, порты открыты
все компоненты на одном компе локально.
обработка выдает ошибку:

Выгрузка номенклатуры в Chroma: ошибка за 21508 мс (21,508 с): {ВнешняяОбработка.ВыгрузитьНМ.МодульОбъекта(374)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка работы с Интернет: Превышен таймаут
что проверять?
вопрос снят - адреса были забиты в обработке, поменял на свои.
база сформировалась минуты за 2-3 на i7 c 8 ядрами 64гб оперативки и без gpu - 6400 позиций наменклатуры
3. user640814_valery.trofimenko 27.03.26 10:01 Сейчас в теме
(2) В продолжение:
text-embedding-multilingual-e5-large модель на этом железе
отработала за 6 минут, что для начального построения векторной базы приемлемо, потому что поиск и сопоставление 60 входящих позиций отработал приблизительно одинаково - секунды.
Какой минус заметен сразу для моей номенклатуры с кучей похожих по наименованию позиций - необходима предварительная очистка и подготовка данных передаваемых для векторизации.
Спасибо автору за идею и готовый пример.
4. EgorDo 8 27.03.26 14:36 Сейчас в теме
(3) если гпу нет лучше смал взять. она на проце по шустрее будет
ну у нас тоже однотипного песка и гвоздей много
минимальный процент "похожести" задается пока в коде 0.7 что ли
обработку сопоставления я специально сделал чтобы из хромы получались несколько значений
а там уже решаем. берем самый лучший "вектор" или же несколько и решаем какой из них нам подходит больше всего
с настройками. да в данных обработках "хардкод"
счас реализую в виде расширения где реализация будет более толковая.
+ возможность работы ОпенРоутером
Для отправки сообщения требуется регистрация/авторизация