Имя: Пароль:
1C
1C 7.7
v7: Как средствами стандартной 1с найти элемент по полному наименованию.
0 Креатив
 
10.08.20
14:36
Желательно побыстрей.
1 Kongo2019
 
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с++ предлагаешь?
10 uno-group
 
10.08.20
15:06
Пройтись по базе узнать максимальную длину строки наименования потом перевести ее в фиксированную с нужной длинной строки.
11 Ёпрст
 
10.08.20
15:07
(10) ага, и непременно индекс на это поле повесить.
12 Ёпрст
 
10.08.20
15:07
то то будет весело, то-то хорошо
13 uno-group
 
10.08.20
15:07
(9) Компоненту в каталог БД кинуть и не забудут.
14 Ёпрст
 
10.08.20
15:08
(9) все вк можешь хоть в самой базе хранить и устанавливать в момент запуска 1с, если не установлены - установятся сами.
15 uno-group
 
10.08.20
15:15
(11) отличный план. Проиндексировать строку длинной 999 знаков в справочнике на несколько тысяч.
Жаль не получиться. Если не изменяет память то уже на строки длинной в 240 знаков ругается, что длинна индекса превысила максимально допустимую.
16 uno-group
 
10.08.20
15:23
Если уж очень не хочешь юзать ВК, то как вариант. Создать доп поле символов на 10-20 в него засунуть первые нацать символов наименования и дальше ВыбратьЭлементыПоРеквизиту (ОбрезанноеНаименование...) и уже потом проверять на совпадение с полным наименованием.
17 Злопчинский
 
10.08.20
16:12
Все - херня.
если требуеся РЕГУЛЯРНо искать по ПОЛНОМУ НАИМЕНОВАНИЮ то
1. а какие ваще гарантии что полное наименование совпадает? впихут зпт, длинный дефис, неразрывный пробел - итд - и все.
2. что-то в консерватории не так. в этом случае или ШК или чтото иное д.б. уникальное
18 Креатив
 
14.08.20
11:33
(17) Поиск по полному наименованию нужен только для того, чтобы не плодить номенклатуру в случае совпадения. А в остальном всё грузится из эксела один в один.
Кстати, перебор справочника не так уж сильно тормозит.