Всем добрый день! 👋
Это моя первая статья на Инфостарте, поэтому сильно не пинайте — буду рад конструктивной критике.
📌 Предыстория
На днях прилетела задача по автоматическому сопоставлению номенклатуры. Было перебрано много вариантов, скопировано чужих идей, но всё работало очень долго. Я бы даже сказал — оооочень долго.
Тогда было решено оседлать тему векторного поиска и заодно потренироваться в Вайбкодинге, о котором сейчас шумят из каждого угла.
В приложенных обработках — рабочие заготовки для дальнейшего развития. Код не идеален, но задачу решает.
На чём тестировал
Сервер (домашний ПК, где происходит основная магия):
|
Компонент |
Значение |
|---|---|
|
ОС |
Windows 11 Pro |
|
Процессор |
AMD Ryzen 9 5950X |
|
ОЗУ |
2 × 16 ГБ |
|
Видеокарта |
NVIDIA GeForce RTX 5060 Ti 16 ГБ |
Клиент (ноутбук с файловой песочницей 1С):
- Справочник Номенклатура с полем Наименование (длина 150)
- Без группировок и сложных иерархий — чистый тест
🚀 Шаг 1. Установка LM Studio
- Скачиваем и устанавливаем LM Studio.
- Загружаем модель для эмбеддингов. В моём случае:
text-embedding-multilingual-e5-large.gguf💡 Если нет видеокарты NVIDIA — ставьте
multilingual-e5-small. Магия будет твориться на процессоре, правда, чуть дольше. - Перед запуском выставляем настройки:
- Порт:
1234(стандартный для LM Studio, можно менять) - Включаем обнаружение по локальной сети (Local Server)
- Порт:

🐳 Шаг 2. Установка Docker и запуск ChromaDB
- Устанавливаем Docker Desktop.
- Запускаем контейнер с 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. Сопоставление позиций
Запускаем обработку СопоставлениеНМ.
Две кнопки:
- «Загрузить из Excel» — импортируем наименования (в моём случае — сметные позиции), которые требуется сопоставить с номенклатурой.
Важно: если не хотите ковыряться в коде, в Excel должна быть колонка «Наименование ТМЦ» — именно оттуда берутся данные для сопоставления.
- «Сопоставить НМ» — запускаем поиск.
Все сопоставленные данные отображаются справа в дереве: строка сметы +процент сходства. → найденная номенклатура

Результат:
Сопоставление проходит примерно за 15–20 секунд.
🛠Что можно улучшить
Да, есть куда расти:
- Длительные методы нужно выносить в фоновое задание
- Код надо причесать по стандартам 1С
- Добавить логирование и обработку ошибок
- Хранение параметров через регистры\константы\пр но пока тока в коде :)
Но основная задача была понять:
- Насколько это муторно по настройке?
- Сколько времени занимает выгрузка и поиск?
- Работает ли вообще в связке 1С + Chroma + LM Studio?
Ответ: работает, и работает быстро. 🎉
🙏 Благодарности
Хотелось бы выразить благодарность коллегам, которые делились знаниями и вдохновением:
- Дмитрию Котову — за отличные выпуски про вайбкодинг ВКонтакте.
- Олегу Филиппову — за MCP-серверы для вайбкодинга и курсы по этой теме.
Без вашей помощи статья могла бы не состояться. Спасибо!
🙏 Вместо заключения
Всё было сделано посредством Вайбкодинга на модели Composer 2.0 — быстро и без причесывания.
Если где-то видно «руку робота» — не судите строго.
Надеюсь, вам было интересно это читать, а обработки будут полезны в работе!
Буду рад вопросам, идеям и критике в комментариях. 👇
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.194.18
Вступайте в нашу телеграмм-группу Инфостарт