Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как средствами стандартной 1с найти элемент по полному наименованию.

v7: Как средствами стандартной 1с найти элемент по полному наименованию.
Я
   Креатив
 
10.08.20 - 14:36
Желательно побыстрей.
   Kongo2019
 
1 - 10.08.20 - 14:38
(0)
ИмяРекв = “Год”;//у реквизита должен быть установлен флажок Сортировка в Конфигураторе

ФлагГлобПоиска = 1;// 1- искать во всем справочнике, 0 – искать в пределах подчинения

Если СпрСотр.НайтиПоРеквизиту(ИмяРекв,1980,ФлагГлобПоиска)=1 Тогда
  НайденныйЭлемент = СпрСотр.ТекущийЭлемент();
КонецЕсли;
   Злопчинский
 
2 - 10.08.20 - 14:40
(0) перебором. иначе никак. ПолНаименование - если про типовые конфиги - строка неограниченной длины.
если фиксированной - тогда (1)
   Креатив
 
3 - 10.08.20 - 14:41
(2)Неограниченной. Если поменять на фиксированную слетят данные?
   Злопчинский
 
4 - 10.08.20 - 14:44
(3) если вбито было в поле больше чем длина фиксированная - то обрежется.
тупо сделай выгрузку "код-побазе - текущее знаеение нужного поля", как бэкап.
и тренерни. или на бэкапе
   Ёпрст
 
5 - 10.08.20 - 14:44
(0) прямой запрос жешь
   Креатив
 
6 - 10.08.20 - 14:46
(5)Так прикручивать компоненту придётся, да и как с неограниченной длиной быть?
   Ёпрст
 
7 - 10.08.20 - 14:48
(6) а че с ней ?
   Ёпрст
 
8 - 10.08.20 - 14:48
И.. если напягает лишняя строчка в коде с ЗагрузитьВнешнююКомоненту() то се ля ви
   Креатив
 
9 - 10.08.20 - 15:06
(8) Компы поменяют, компоненту забудут. Скажут, что не работает.
1с++ предлагаешь?
   uno-group
 
10 - 10.08.20 - 15:06
Пройтись по базе узнать максимальную длину строки наименования потом перевести ее в фиксированную с нужной длинной строки.
   Ёпрст
 
11 - 10.08.20 - 15:07
(10) ага, и непременно индекс на это поле повесить.
   Ёпрст
 
12 - 10.08.20 - 15:07
то то будет весело, то-то хорошо
   uno-group
 
13 - 10.08.20 - 15:07
(9) Компоненту в каталог БД кинуть и не забудут.
   Ёпрст
 
14 - 10.08.20 - 15:08
(9) все вк можешь хоть в самой базе хранить и устанавливать в момент запуска 1с, если не установлены - установятся сами.
   uno-group
 
15 - 10.08.20 - 15:15
(11) отличный план. Проиндексировать строку длинной 999 знаков в справочнике на несколько тысяч.
Жаль не получиться. Если не изменяет память то уже на строки длинной в 240 знаков ругается, что длинна индекса превысила максимально допустимую.
   uno-group
 
16 - 10.08.20 - 15:23
Если уж очень не хочешь юзать ВК, то как вариант. Создать доп поле символов на 10-20 в него засунуть первые нацать символов наименования и дальше ВыбратьЭлементыПоРеквизиту (ОбрезанноеНаименование...) и уже потом проверять на совпадение с полным наименованием.
   Злопчинский
 
17 - 10.08.20 - 16:12
Все - херня.
если требуеся РЕГУЛЯРНо искать по ПОЛНОМУ НАИМЕНОВАНИЮ то
1. а какие ваще гарантии что полное наименование совпадает? впихут зпт, длинный дефис, неразрывный пробел - итд - и все.
2. что-то в консерватории не так. в этом случае или ШК или чтото иное д.б. уникальное
   Креатив
 
18 - 14.08.20 - 11:33
(17) Поиск по полному наименованию нужен только для того, чтобы не плодить номенклатуру в случае совпадения. А в остальном всё грузится из эксела один в один.
Кстати, перебор справочника не так уж сильно тормозит.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.