Вход | Регистрация


1С:Предприятие ::

Метки:

Как отыскать все эл. справочника по нач буквам улицы, дому и корпусу?

Я
   romix
 
16.03.04 - 13:53
В SQL это это делается элементарно. А я вот все парюсь как это сделать в 1С 7.7?
 
 
   Рупор абсурда
 
1 - 16.03.04 - 13:58
Враги растащили элементы справочника на дискетках и попрятали в различных частях города?
   skunk
 
2 - 16.03.04 - 14:01
в большинстве стандартных конфигураций, адрес представлен строкой формата Индекс<Разделитель>Регион<Разделитель>....<Разделитель>Корпус<Разделитель>Квартира<Разделитель> в таком случае боюсь только перебором
   skunk
 
3 - 16.03.04 - 14:03
(1)LOL... чуть не умер...
   romix
 
4 - 16.03.04 - 14:03
Нет, у меня своя конфа - но юзеры хотят быстро находиь
адреса домов по первым буквам улицы, дому и корпусу.
А как это сделать, я что-то не въезжаю... Запросом что ли? А как?
   romix
 
5 - 16.03.04 - 14:05
Может я ЖКК давно не читал - тогда сорри.
   skunk
 
6 - 16.03.04 - 14:11
|Элемент = НужныйСправочник.ТекущийЭлемент();
|Улица = Элемент.Улица;
|Дом = Элемент.Дом;
|Корпус = Элемент.Корпус;


потом результат запроса выгрузаешь в тз, и там пускай искают по буковкам
   Рупор абсурда
 
7 - 16.03.04 - 14:13
(5) Я б ответил: "Запросом", но не знаю, что есть "Улица" и т.п. в твоём справочнике ...
   romix
 
8 - 16.03.04 - 14:13
Дык мне нужно (см (0)) ПО ПЕРВЫМ БУКВАМ УЛИЦЫ
   Рупор абсурда
 
9 - 16.03.04 - 14:16
(8) Да хоть по пятым! Какая запросу разница?
   skunk
 
10 - 16.03.04 - 14:34
(8)тоды греби перебором... пока получить() больше нуля и т.д..
 
 
   romix
 
11 - 16.03.04 - 14:54
(10) Не хочу я перебором :-) Там надо мгновенную реакцию. :-)

(9) Этот код срабатывает только если я полностью укажу улицу, дом и корпус. А если только часть (или не все), то ничего не находит.

    "//{{ЗАПРОС(Сформировать)

    |Обрабатывать НеПомеченныеНаУдаление;
    |ТекущийЭлемент = Справочник.Адреса.ТекущийЭлемент;
    |Улица = Справочник.Адреса.Улица;
    |Дом = Справочник.Адреса.Дом;
    |Корпус = Справочник.Адреса.Корпус;
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.Улица, ТекущийЭлемент.Дом, ТекущийЭлемент.Корпус;
    |Условие(Улица = ВыбУлица);
    |Условие(Дом = ВыбДом);
    |Условие(Корпус = ВыбКорпус);
    |//}}ЗАПРОС

    ;

Может надо операцию "в" как-то поюзать... Может кто сталкивался?
   romix
 
12 - 16.03.04 - 15:02
Для сравнения в SQL:
Select * form Addr where Street="Ленинс%";
   Рупор абсурда
 
13 - 16.03.04 - 15:04
|Условие(""Ленинс"" в Улица);
   skunk
 
14 - 16.03.04 - 15:08
вариант 1 (изврат)

Справочник Улица
Группа1 - А
  Группа2 - АБ
    Группа3 - АБВ
      Группа4 - АБВГ
     ....
     Элемент Улица Абвгдейка

Далее в справочнике реквизитом указываешь не строку а справочник.улица

тогда Условие в НужнойГруппе канает

НужнуюГруппу находишь по буковкам.
   skunk
 
15 - 16.03.04 - 15:09
(13)а разве так прокатит по части строки
   Рупор абсурда
 
16 - 16.03.04 - 15:11
(15) Прокатит, если улица - строка ...
   romix
 
17 - 16.03.04 - 15:17
(13) Ура, заработало, спасибо! Тока буквы в разном регистре не находит...

    "//{{ЗАПРОС(Сформировать)

    |Обрабатывать НеПомеченныеНаУдаление;
    |ТекущийЭлемент = Справочник.Адреса.ТекущийЭлемент;
    |Улица = Справочник.Адреса.Улица;
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.Улица, ТекущийЭлемент.Дом, ТекущийЭлемент.Корпус;
    |Условие(СокрЛП(ВыбУлица) в Улица);
    |//}}ЗАПРОС
   SnarkHunter
 
18 - 16.03.04 - 15:22
ВРег, НРег...
   romix
 
19 - 16.03.04 - 15:24
(+17) С регистром вот так наверное:

    ул=Врег(СокрЛП(ВыбУлица));
...
    |Условие(ул в Врег(Улица));

Теперь другая подстава: я задаю в окне ввода букву "н".
Находит "Ленинский проспект". Как мне сделать чтобы только по ПЕРВЫМ БУКВАМ шел запрос? Лев() что ли...
   Рупор абсурда
 
20 - 16.03.04 - 15:26
|Условие(ул = Лев(Улица,СтрДлина(ул)));
   romix
 
21 - 16.03.04 - 15:28
Я въехал, всем спасибо!

   ул=Врег(СокрЛП(ВыбУлица));
   дл=СтрДлина(ул);
    ...
    |Условие(Врег(Лев(Улица,дл))=ул);

(20) Я для скорости вынес образец сравнения и длину строки в переменные.
   Рупор абсурда
 
22 - 16.03.04 - 16:21
(21) И каков прирост скорости?
Сколько до 0.00000000000001% недотягивает?
   romix
 
23 - 16.03.04 - 16:29
(22) Да х.з. - вроде полагается так - хотя 1С может и сама правильно такие вещи разруливать.
   Рупор абсурда
 
24 - 16.03.04 - 16:41
(23) Просто методы эти летают, по сравнению со всем остальным ... :))



Список тем форума
Рекламное место пустует  
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует