Строка поиска по справочникам "Номенклатура" и "Контрагенты"

20.02.12

Задачи пользователя - Поиск данных

Поиск элемента справочника набором фрагментов искомых слов в произвольном порядке.

Скачать файл

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

Наименование По подписке [?] Купить один файл
СтрокаПоиска_v8.2.epf
.epf 8,99Kb
112
112 Скачать (1 SM) Купить за 1 850 руб.

Здравствуйте, друзья!

При работе с номенклатурой порой тяжело вспомнить точное название нужного элемента. Сижу, смотрю в экран, в голове что-то похожее мелькает, а ухватить мысль не сразу получается. И требуется то вспомнить именно самое начало, потому что встроенный поиск так устроен. Нет начала - нет и элемента. Делать нечего, мысль не пришла. Начинаю раскрывать папку за папкой в дереве справочника, опускаясь в самый нижний слой, а вот он, голубчик!

Если организовать поиск, набирая слова или отрывки слов в произвольном порядке, которые помнишь – вот это другое дело. Для этого мы построим запрос по каждому запрашиваемому фрагменту. Фрагменты искомого названия при подборе будем разделять пробелом.

Для дополнительного удобства сделаем транслитерацию латинского алфавита русским. Это позволит не переключаться между раскладкой клавиатуры и всё писать по-русски. Например, вместо буквы "g" будем смело писать "ж" или "г", кто как эту букву слышит. Когда в строке поиска будет более одной буквы, внизу откроется список, в который попадут первые 10 элементов справочника, названия которых (полное или короткое) полностью включают все набранные фрагменты. Если набор будет уникальным, то значение выберется автоматически.

Есть один нюанс с выпадающим списком поля ввода. Этот список ни сам не раскрывается, ни программных средств его открыть не существует. И когда набираешь искомые слова, не видишь подсказки. Для этого мы сделаем маленькую хитрость: под поле ввода и место выпадения списка выбора подложим таблицу, содержание которой будет повторять содержание списка выбора. И затем будем управлять видимостью этой таблицы: есть выбор - видна, нет выбора - нет таблицы. В таблице первый элемент будет всегда пустым, поэтому это место должно находиться под строкой ввода, с небольшим смещением вниз.

Перем ТаблицаРезультата;

//Каждый набранный символ будет вызывать здесь событие
Процедура СтрокаПоискаАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
   
ТекстПоиска = СокрЛП(Текст);
   
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(255, 255, 255);
   
//Менее двух символов за запрос не считаем
   
Если СтрДлина(ТекстПоиска) < 2 Тогда
       
ОчиститьСписки();
        Возврат;
    КонецЕсли;
   
//Составим список из набранных фрагментов
   
СписокФрагментов = Новый СписокЗначений;
   
МестоПробела = 1;
    Пока
МестоПробела > 0 Цикл
       
МестоПробела = Найти(ТекстПоиска, " ");
        Если
МестоПробела > 0 Тогда
           
СписокФрагментов.Добавить(Лев(ТекстПоиска, МестоПробела - 1));
           
ТекстПоиска = СокрЛП(Прав(ТекстПоиска, СтрДлина(ТекстПоиска) - МестоПробела));
        Иначе
           
СписокФрагментов.Добавить(СокрЛП(ТекстПоиска));
        КонецЕсли;
    КонецЦикла;
   
СделатьВыбор(СписокФрагментов);
КонецПроцедуры

//Делаем выбор из выпадающего списка с клавиатуры (стрелки вверх, вниз и enter)
Процедура СтрокаПоискаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   
текИндексСпискаВыбора = Элемент.СписокВыбора.Индекс(Элемент.СписокВыбора.НайтиПоЗначению(ВыбранноеЗначение));
   
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(240, 255, 240);
   
ОчиститьСписки();
   
ПолучитьИнформацию(ТаблицаРезультата[текИндексСпискаВыбора].Ссылка);
КонецПроцедуры

//Кнопка очистки ещё подчистит все списки
Процедура СтрокаПоискаОчистка(Элемент, СтандартнаяОбработка)
   
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(255, 255, 255);
   
ОчиститьСписки();
КонецПроцедуры

//Делаем выбор из таблицы выбора (при помощи мыши)
Процедура ТаблицаВыбораПриАктивизацииСтроки(Элемент)
    Если НЕ
ЭлементыФормы.ТаблицаВыбора.Видимость Тогда Возврат КонецЕсли;
   
текИндексТаблицыВыбора = ТаблицаВыбора.Индекс(Элемент.ТекущаяСтрока);
    Если
текИндексТаблицыВыбора = 0 Тогда Возврат КонецЕсли;
   
ЭлементыФормы.СтрокаПоиска.Значение = ЭлементыФормы.СтрокаПоиска.СписокВыбора[текИндексТаблицыВыбора - 1];
   
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(240, 255, 240);
   
ОчиститьСписки();
   
ПолучитьИнформацию(ТаблицаРезультата[текИндексТаблицыВыбора - 1].Ссылка);
КонецПроцедуры

//По результатам запроса при необходимости заполняем список выбора, таблицу выбора
Процедура СделатьВыбор(СписокФрагментов)
   
//Получаем таблицу с найденными элементами
   
ТаблицаРезультата = ЗапросПоиска(СписокФрагментов);
   
ОчиститьСписки();
   
//Имеем три варианта:
    //Элементы не найдены
   
Если ТаблицаРезультата.Количество() = 0 Тогда
       
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(255, 216, 128);
   
//Найден один элемент, что и требовалось. Теперь уходим отсюда.
   
ИначеЕсли ТаблицаРезультата.Количество() = 1 Тогда
       
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(240, 255, 240);
       
ЭлементыФормы.СтрокаПоиска.Значение = ТаблицаРезультата[0].Наименование;
       
ПолучитьИнформацию(ТаблицаРезультата[0].Ссылка);
   
//Найдено много элементов
   
Иначе
       
ЭлементыФормы.СтрокаПоиска.ЦветФонаПоля = Новый Цвет(255, 255, 255);
       
КоличествоНайденныхЭлементов = ТаблицаРезультата.Количество();
        Для
текСтрока = 1 По КоличествоНайденныхЭлементов Цикл
           
ТаблицаВыбора.Добавить();
        КонецЦикла;
       
ТаблицаВыбора.ЗагрузитьКолонку(ТаблицаРезультата.ВыгрузитьКолонку("Наименование"), "Наименование");
       
ТаблицаВыбора.Вставить(0);
       
ЭлементыФормы.СтрокаПоиска.СписокВыбора.ЗагрузитьЗначения(ТаблицаРезультата.ВыгрузитьКолонку("Наименование"));
       
ЭлементыФормы.ТаблицаВыбора.ТекущаяСтрока = ТаблицаВыбора[0];
       
ЭлементыФормы.ТаблицаВыбора.Высота = (КоличествоНайденныхЭлементов + 1) * 19 + 2 ;
       
ЭлементыФормы.СтрокаПоиска.КнопкаСпискаВыбора = Истина;
       
ЭлементыФормы.ТаблицаВыбора.Видимость = Истина;
    КонецЕсли;
КонецПроцедуры

//Сам запрос
Функция ЗапросПоиска(СписокФрагментов)
   
текЗапрос = Новый Запрос;
   
ТекстФрагментов = "";
    Для Каждого
текСтрока Из СписокФрагментов Цикл
       
текНомерСтроки = СписокФрагментов.Индекс(текСтрока);
       
текФрагмент = текСтрока.Значение;
       
//Для каждого искомого фрагмента создадим фильтр в запросе,
        //Ищем в наименовании, полном наименовании с транслитом и без
       
ТекстФрагментов = ТекстФрагментов + "
            |   "
+ ?(текНомерСтроки > 0, "И ", "") + "(Наименование ПОДОБНО ""%"" + &ФрагментКириллица" + текНомерСтроки + " + ""%""
            |   ИЛИ НаименованиеПолное ПОДОБНО ""%"" + &ФрагментКириллица"
+ текНомерСтроки + " + ""%""
            |   ИЛИ Наименование ПОДОБНО ""%"" + &Фрагмент1Транслит"
+ текНомерСтроки + " + ""%""
            |   ИЛИ НаименованиеПолное ПОДОБНО ""%"" + &Фрагмент1Транслит"
+ текНомерСтроки + " + ""%""
            |   ИЛИ Наименование ПОДОБНО ""%"" + &Фрагмент2Транслит"
+ текНомерСтроки + " + ""%""
            |   ИЛИ НаименованиеПолное ПОДОБНО ""%"" + &Фрагмент2Транслит"
+ текНомерСтроки + " + ""%"")";
       
//и установим параметры
       
текЗапрос.УстановитьПараметр("ФрагментКириллица" + текНомерСтроки, текФрагмент);
       
СписокТранслита = Транслит(текФрагмент);
       
текЗапрос.УстановитьПараметр("Фрагмент1Транслит" + текНомерСтроки, СписокТранслита[0].Значение);
       
текЗапрос.УстановитьПараметр("Фрагмент2Транслит" + текНомерСтроки, СписокТранслита[1].Значение);
    КонецЦикла;
   
текЗапрос.Текст = "
        |   ВЫБРАТЬ ПЕРВЫЕ 10
        |       Ссылка,
        |       Наименование
        |   ИЗ
        |       (ВЫБРАТЬ
        |           Ссылка,
        |           Наименование,
        |           ВЫРАЗИТЬ(НаименованиеПолное КАК СТРОКА(200)) КАК НаименованиеПолное
        |       ИЗ Справочник.Контрагенты ГДЕ НЕ Ссылка.ЭтоГруппа
        |       ОБЪЕДИНИТЬ
        |       ВЫБРАТЬ
        |           Ссылка,
        |           Наименование,
        |           ВЫРАЗИТЬ(НаименованиеПолное КАК СТРОКА(200)) КАК НаименованиеПолное
        |       ИЗ Справочник.Номенклатура ГДЕ НЕ Ссылка.ЭтоГруппа
        |       ) КАК Вложение
        |   ГДЕ
        |       "
+ ТекстФрагментов + "";
    Возврат
текЗапрос.Выполнить().Выгрузить();
КонецФункции

//Параллельно кириллице будем искать фрагменты на латинице,
//в двух вариантах из-за различия транслитирации некоторых букв
Функция Транслит(Фрагмент)
   
СписокТранслита = Новый СписокЗначений;
   
Кириллица = "абвгдежзийклмнопрстуфхц";
   
Латиница1 = "abvgdegzijklmnoprstufhc";
   
Латиница2 = "abwgdejzijqlmnoprstufhc";
   
КириллицаДиграф = "ч ш ";
   
ЛатиницаДиграф = "chsh";
   
Транслит1 = "";
   
Транслит2 = "";
    Для
позиция = 1 По СтрДлина(Фрагмент) Цикл
       
текБуква = Сред(Фрагмент, позиция, 1);
       
вШаблоне = Найти(Кириллица, текБуква);
        Если
вШаблоне > 0 Тогда
           
Транслит1 = Транслит1 + Сред(Латиница1, вШаблоне, 1);
           
Транслит2 = Транслит2 + Сред(Латиница2, вШаблоне, 1);
            Продолжить;
        КонецЕсли;
       
вШаблоне = Найти(КириллицаДиграф, текБуква);
        Если
вШаблоне > 0 Тогда
           
Транслит1 = Транслит1 + Сред(ЛатиницаДиграф, вШаблоне, 2);
           
Транслит2 = Транслит2 + Сред(ЛатиницаДиграф, вШаблоне, 2);
            Продолжить;
        КонецЕсли;
       
Транслит1 = Транслит1 + текБуква;
       
Транслит2 = Транслит2 + текБуква;
    КонецЦикла;
   
СписокТранслита.Добавить(Транслит1);
   
СписокТранслита.Добавить(Транслит2);
    Возврат
СписокТранслита;
КонецФункции

//Очистка списка выбора и таблицы выбора
Процедура ОчиститьСписки()
   
ЭлементыФормы.ТаблицаВыбора.Видимость = Ложь;
   
ТаблицаВыбора.Очистить();
   
ЭлементыФормы.СтрокаПоиска.СписокВыбора.Очистить();
   
ЭлементыФормы.СтрокаПоиска.КнопкаСпискаВыбора = Ложь;
КонецПроцедуры

//Здесь будет любая наша обработка результата поиска
Процедура ПолучитьИнформацию(текОбъект)
    Если
ТипЗнч(текОбъект) = Тип("СправочникСсылка.Контрагенты") Тогда
       
//Это контрагент
   
Иначе
       
//Это номенклатура
   
КонецЕсли;
   
//Например
   
текОбъект.ПолучитьФорму().Открыть();
КонецПроцедуры

В результате мы получили строку поиска, по своим удобствам похожую на строку поисковых сайтов. Справочники Номенклатура и Контрагенты здесь объединены в качестве примера. Можно искать как в справочнике, так и в документах, слегка подправив запрос.

Также обнаружены некоторые ограничения при использовании:

-При быстром удалении слов из строки клавиатурой событие в процедуре СтрокаПоискаАвтоПодборТекста не вызывается, и таблица выбора остаётся открытой.

-В транслитерации есть три буквы, которые имеют два значения в латинице (в - v, w; ж - g, j; к - k, q). Если их использовать перекрёстно, то в первом варианте, то во втором, тогда такое слово не найдётся.

В будущем, надеюсь, решения для снятия этих ограничений будут найдены.

С уважением, Лёлёсь

См. также

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

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

28500 руб.

21.04.2017    95377    126    40    

213

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    194127    148    242    

279

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13502    13    48    

25

Управление взаимоотношениями с клиентами (CRM) Управление маркетингом (EMM) Пользователь Платформа 1С v8.3 Управленческий учет Платные (руб)

Решение 1С:CRM 3.0 предназначено для компаний с потребностью совместной работы более 5 пользователей в единой информационной базе. Решение позволяет автоматизировать все бизнес-процессы компании в соответствии с концепцией CRM, включая закупки, продажи, маркетинг, сервисное обслуживание и пр.

9700 руб.

10.11.2015    43013    28    1    

17

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

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

60000 руб.

09.06.2020    37804    35    59    

63

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

35000 руб.

24.03.2015    124910    300    114    

135

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

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

11100 руб.

29.10.2014    215946    649    526    

456
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ninch 51 20.02.12 12:12 Сейчас в теме
Молодец! Хорошая задумка и реализация. Чувствуется где-то была задача поставлена под эту разработку. Так то наврядли кто бы стал такое чудо делать:)
2. leles 67 20.02.12 13:36 Сейчас в теме
(1) Спасибо, друг!
Делал для себя, теперь и для Вас!
3. cool.vlad4 2 20.02.12 13:49 Сейчас в теме
вот , как мне кажется, более навороченная и универсальная - http://infostart.ru/public/89892/
4. leles 67 20.02.12 14:20 Сейчас в теме
(3) Да, спасибо за ссылку, обязательно изучу
10. ms200999 22.02.12 16:19 Сейчас в теме
(3) Согласен. У себя сделал поиск на основе именно той публикации, добавил поддержку транслита и учел ошибку выбора раскладки. При вводе подстроки "дел" ищем "дел", "del" и "ltk". Здорово помогает как тем, кто забывает переключать язык ввода, так и тем, кто не помнит, какими символами - кириллицей и латиницей - записана исклмая строка.
5. Smaylukk 186 21.02.12 00:14 Сейчас в теме
Тоже присоединяюсь - хорошее решение. Правда когда реализовывал у себя подобное - делал еще дополнительные возможности, которые здесь тоже не помешают.
1. Передавал в процедуру поиска имя справочника, по которому искать;
2. Передавал в процедуру поиска набор полей в виде массива, по которым нужно производить поиск;
И еще по поводу раскрытия списка выбора - пробуйте подергать методы ВыбратьИзСписка() или ВыбратьИзМеню() - если получится прикрутить - будет отлично, а то таблицу неудобно наверное встраивать в табчасть документа, когда нужно будет привязать к полю в ней этот чуджо-поиск :)
7. leles 67 21.02.12 01:06 Сейчас в теме
(5) Да, да точно! ВыбратьИзСписка() я пробовал приладить как и таблицу, но тогда никак не мог придумать, как только при помощи стрелки "вниз" перейти со строки поиска в этот список(таблицу). Чтобы всё делать с клавиатуры, без мыши. Решение нашёл что по стрелке "вниз" мы передвигаемся не в таблицу, а в выпадающий список, который выпадает над как раз над таблицей и полностью её повторяет так, что создаётся впечатление что мы спускаемся в таблицу.
Ну и конечно, успешно забыл про ВыбратьИзСписка(). А ведь можно всё организовать лучше! Спасибо! Буду переделывать.
По поводу расширения универсальности и новых возможностей - это здорово. Надо подумать.

(6) Чудаковато? - Согласен! Мы здесь немного все чудаки. Время ночь, а все у экрана и улучшать, улучшать :)
8. leles 67 21.02.12 01:30 Сейчас в теме
(5) А нет, не получиться. После появления списка из ВыбратьИзСписка() фокус переходит на этот список и следующую букву уже не набрать. А жаль.
9. Smaylukk 186 21.02.12 10:13 Сейчас в теме
(8) Можно попробовать завязаться на другое событие - ОкончаниеВводаТекста(), правда здесь пока пользователь не введет нужный текст и не нажмет Enter, список или подсказка не появится.
P.S. Я реализовывал как раз так :)
13. leles 67 24.02.12 19:13 Сейчас в теме
(9) Да, как вариант. Только хотелось как в поисковике: набрал пару букв - раз, подсказки.
Добрал ещё - более нужные подсказки, и выбрал из предложенного.

(10) Ошибка выбора раскладки это плюс! Если можно приведите Ваш кусок кода с транслитом и ошибкой.

(11) Спасибо, усовершенствовать обязательно буду. На мой взгляд, такой поиск наиболее необходим при подборе товара в документ. Только не знаю, возможно ли создать такую обработку, чтобы она была универсальной для любой конфигурации. Да и решение об изменении конфигурации это дело каждого. Так что пока набираю информацию.

(12) Да уж, и ведь это только ассортимент нашего ларька на Апрашке:)
17. mentozavr 71 13.03.13 09:30 Сейчас в теме
(5) Smaylukk, Сэр а как вы это сделали может кодом поделитесь. Заранее благодарю.
6. Rembi_999 21.02.12 00:35 Сейчас в теме
11. mkostya 30 22.02.12 20:41 Сейчас в теме
хорошее решение, очень понравилось.

(6) Чудаковато? Вполне сойдет за решение??

Не собираетесь и дальше её усовершенствовать???
12. Damian 909 22.02.12 21:03 Сейчас в теме
Особенно порадовал справочник "Номенклатура" на скринах. Сразу видно - серьезный бизнес :)
itsnowbars; Pawlick; fomix; +3 Ответить
14. anig99 2850 20.03.12 09:12 Сейчас в теме
А не лучше ли искать последовательно? Т.е. разбить строку поиска на подстроки и в цикле через временные таблицы ограничивать конечный список. Примерно так.

нап вент bo 112

Сначала делается запрос к справочнику номенклатура по подобию "нап". Сохраняется во временной таблице в запросе. Потом вторым запросом и последующими отрезаем лишнее от этой временной таблицы по подобно по 1 слову. Алгоритм будет не такой громоздкий. Да и по скорости может быть выигрыш.
15. Vladimir87 228 11.09.12 07:41 Сейчас в теме
Извиняюсь если был такой вопрос, но все же, в УТ 10.3 будет работать?
16. mentozavr 71 11.03.13 19:47 Сейчас в теме
а у меня как раз задача похожая стоит
18. Andromix 16.01.15 13:27 Сейчас в теме
Отличная обработка, теперь думаю как её прикрутить в форму номенклатуры, что бы при создании показывала похожие элементы
Оставьте свое сообщение