Если Не спУслуг.Количество() = 0 Тогда ЭтаФорма.Элементы.РасходыНоменклатура.РежимВыбораИзСписка = Истина; ЭтаФорма.Элементы.РасходыНоменклатура.СписокВыбора.ЗагрузитьЗначения(спУслуг.ВыгрузитьЗначения()); Иначе ЭтаФорма.Элементы.РасходыНоменклатура.РежимВыбораИзСписка = Ложь; КонецЕсли;
andytg @ Сегодня, 15:28
, Свой список, но чтобы остались стандартные функции
andytg @ Сегодня, 15:28
, а как можно почистить историю?
мне нужно стобы когда пользователь вводит начальные буквы наименования ноенклатуры список выбора заполнялся по условия. Вот меня интересует в какой процедуре сделать заполнение этого списка?
[необходимо зарегистрироваться для просмотра ссылки] вот пример
мне нужно стобы когда пользователь вводит начальные буквы наименования ноенклатуры список выбора заполнялся по условия. Вот меня интересует в какой процедуре сделать заполнение этого списка?
это так работает быстрый поиск (полнотекстовый поиск данных), когда индексы ППД поломаны -- там ничего не ищется или ищется, но не все
как почистить/отключить -- вот [необходимо зарегистрироваться для просмотра ссылки]
Посмотрите на событие "Автоподбор" элемента. Вот как можно выполнять поиск по любой части строки (не только по первым символам). Придумано не мной, где-то нашел
Пока СтрНайти(ТекстПоиска, " ") > 0 Цикл ТекстПоиска = СтрЗаменить(ТекстПоиска, " ", " "); КонецЦикла;
ТекстПоиска = СокрЛП(ТекстПоиска);
ДлинаТекста = СтрДлина(ТекстПоиска); Если ДлинаТекста = 0 Тогда Возврат КонецЕсли;
СтандартнаяОбработка = Ложь;
Шрифт = Новый Шрифт(,,Истина); Цвет = WebЦвета.Зеленый;
ДанныеВыбора = Новый СписокЗначений;
МассивПодстрок = СтрРазделить(ТекстПоиска, " ");
Для Каждого Стр Из Элемент.СписокВыбора Цикл
Строка = Стр.Значение; СтрокаВРег = ВРег(Строка);
ВхожденияНайдены = Истина;
Для Каждого Подстрока Из МассивПодстрок Цикл Если Найти(СтрокаВРег, Подстрока) = 0 Тогда ВхожденияНайдены = Ложь; Прервать; КонецЕсли; КонецЦикла;
Если Не ВхожденияНайдены Тогда Продолжить КонецЕсли;
ДлинаСтроки = СтрДлина(Строка); Массив = Новый Массив(ДлинаСтроки);
Для Каждого Подстрока Из МассивПодстрок Цикл ДлинаПодстроки = СтрДлина(Подстрока); НачалоПоиска = 1; Пока Истина Цикл ПозицияПодстроки = СтрНайти(СтрокаВРег, Подстрока, , НачалоПоиска); Если ПозицияПодстроки = 0 Тогда Прервать; КонецЕсли;
НачалоПоиска = ПозицияПодстроки + ДлинаПодстроки;
Для Сч = ПозицияПодстроки По НачалоПоиска - 1 Цикл Массив[Сч - 1] = Истина; КонецЦикла;
Если НачалоПоиска > ДлинаСтроки Тогда Прервать; КонецЕсли;
КонецЦикла; КонецЦикла;
МассивСтрок = Новый Массив; Для Сч = 0 По Массив.ВГраница() Цикл Символ = Сред(Строка, Сч + 1, 1); Если Массив[Сч] = Неопределено Тогда МассивСтрок.Добавить(Символ); Иначе МассивСтрок.Добавить(Новый ФорматированнаяСтрока(Символ, Шрифт, Цвет)); КонецЕсли; КонецЦикла;
ДанныеВыбора.Добавить(Строка, Новый ФорматированнаяСтрока(МассивСтрок));
Если ДанныеВыбора.Количество() = 50 Тогда Прервать КонецЕсли;
Почти ветеран
Группа: Местный
Сообщений: 522
Спасибо сказали: 136 раз
Рейтинг: 137.4
Цитата(kostya77 @ 29.05.25, 14:37)
Свой список, но чтобы остались стандартные функции
?????????????????????????????
Либо стандартные - либо свои
З.Ы, Для стандартных Справочник Номенклатура Закладка - Поле ввода Параметы: - Ввод по строке - Наименование, Код.... (индексируемые) - Способ поиска - По началу или Любая часть (нюанс - любая часть но с начала после пробела) - История выбора при вводе
Сообщение отредактировал AnryMc - 29.05.25, 15:40
Я можу зробити цю роботу: - Швидко - Якісно - Дешево
Вот как можно выполнять поиск по любой части строки (не только по первым символам). Придумано не мной, где-то нашел
в свое время (20 лет назад) делал такое на 1С++ в комплексной для Украины 7.7, точнее, переделывал, т.к. мой предшественник сделал такое на рэйнбоу, но оно тормозило от больших объемов данных, в номенклатурном справочнике где-то более 150 тыс. наименований (это всего, не все они живые, но что есть то есть) отдельная форма подбора, в ней запросами с использованием шаблонов "%" и "_" (и автозамен типа "*" -> "%") формируется строка поиска и далее запускается прямой запрос, который выгружает все в таблицу значений (со всевозможными там пересчетами и т.д.), откуда манагер уже выбирает нужные позиции, при переносе в документ автоматически заполняются все другие параметры (цены, количества, партии и т.д.) потом было перенесено в УНФ и переписано на 8.3, не меняя самого принципа работы (и уже без 1с++, естественно ) работает практически с абсолютно любыми количествами элементов в выборке, скорость поиска -- пару секунд
Результат = Результат + "<tr><td><button id=" + ЗначениеВСтрокуВнутр(Выборка.Ссылка) + ">...</button> "; Результат = Результат + Цел(Выборка.Ранг); Результат = Результат + "</td><td>"; Результат = Результат + НайденнаяСтрока; Результат = Результат + "</td></tr>";
КонецЦикла;
Результат = Результат + "</table></body></html>";
Я можу зробити цю роботу: - Швидко - Якісно - Дешево
у меня сделано через ПОДОБНО, но основной выбор идет исключительно из справочника номенклатуры, без обработки остатков (просто показываем, что есть в справочнике по заданному шаблону, минимальная длина шаблона ограничена тремя символами, чтоб они случайно в результирующую таблицу не вывалили весь справочник ) а потом при перемещении курсора по отбору в активной строке обрабатывается событие ПриАктивизацииСтроки -- и тогда манагеру (через обработчик ожидания) показыватюся фактические остатки по данной позиции в разрезе складов\партий и т.д., откуда он уже может либо выбрать товар клиенту из фактического наличия или оформить заказ поставщику из того, что было когда-то, но сейчас нет в наличии
на прямых запросах и t-sql в клюшках вообще летало, на восьмерке скорость где-то такая же, пару секунд (зависит от размера выборки, конечно, но манагеры обычно не ищут абы что, а по конкретным шаблонам, как на скрине, получается практически моментально
изначально концепция родилась из того, что в оригинальном варианте на клюшках подбор шел не только из номенклатурного справочника, а еще одновременно и из справочника прайсов внешних поставщиков, которых еще не было в справочнике номенклатуры, тогда в случае выбора элемента, отсутствующего в номенклатурном справочнике (но имеющемся в справочнике прайсов сторонних поставщиков), при выборе элемент сперва добавлялся в справочник товаров, а потом уже выбирался, а в восьмерке я просто разрешил им создавать новые элементы самостоятельно, опять же по шаблону и с проверками на возможные дубли
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!