Перебор єлементов в справочнике

Тема в разделе "1C и всё что с ней связано", создана пользователем Tiolan, 20 июл 2007.

Статус темы:
Закрыта.
  1. Tiolan

    Tiolan Гость

    Не могу разобраться как организовать следующее: нахожу в справочнике значение по фамилии и первому инициалу - и далее по порядку ищу соответствие по второму.

    по ВыбратьЭлементы и ПолучитьЭлемент - слишком долго получается, справочник на 70000 записей. да и тупо как-то.

    ПолучитьЭлемент после поиска не выходит не пойму почему...

    Вот код - имеется ввиду, что хотелось бы ( :) ) чтоб НайтиПоНаименованию(шук1,0,0) искало каждый раз не сначала, а следующего.

    Код (Text):
    Процедура ЗПИ()

    Если КоличествоСтрок() > 0 Тогда
    Рез = Вопрос("Заповнити пусті значення згідно ініціалів?","Да+Нет");
    Если Рез = "Нет" Тогда
    Возврат;
    КонецЕсли;
    КонецЕсли;

    ВыбратьСтроки();
    ~єакт: 
    Пока ПолучитьСтроку() = 1 Цикл

    Если ПустоеЗначение(Контрагент) = 0 Тогда   
    перейти ~єакт   
    КонецЕсли;      
    сообщить("Шукаю: "+ПІБ);       

    шук1 = Лев(ПІБ, (Найти(ПІБ, " ")+1));                 
    шук2 = Сред (ПІБ, (Найти(ПІБ, " ")+3),1);
    сообщить ("шук2 = "+шук2);
    Спр = СоздатьОбъект("Справочник.Контрагенты");      
    Спр.ВыбратьЭлементы ();                            

    ~ще:     
    Пока Спр.НайтиПоНаименованию(шук1,0,0) = 1 Цикл
    там1 = Лев(спр.ПолнНаименование, (Найти(спр.ПолнНаименование, " ")+1));
    Если там1 <> шук1 Тогда
    перейти ~єакт
    КонецЕсли;  

    там2 = СокрЛП(Прав(спр.ПолнНаименование, (СтрДлина(спр.ПолнНаименование)-(Найти(спр.ПолнНаименование, " ")+1))));   
    там2 = Сред(там2, (Найти(там2, " ")+1),1);
    сообщить ("там2 = "+там2);

    Если шук2 = там2 Тогда
    Контрагент = Спр.ТекущийЭлемент();
    перейти ~єакт
    КонецЕсли;              
    КонецЦикла;

    КонецЦикла;        
    КонецПроцедуры
    Может есть решение проблемы попроще? или лыжи не едут?
    Помогите решить задачку. Очень прошу.
     
  2. Golod

    Golod Гость

    Используй запрос.
     
  3. b00tch

    b00tch Гость

    ТОЛЬКО запрос...

    плюс, непл0хо было бы знать операторы Прервать и Продолжить... с ними кодЪ красивше и л0гичней получаецц0...
     
  4. Tiolan

    Tiolan Гость

    Прервать и Продолжить - неудобны при вложенных циклах (ИМХО) а с Перейти все просто )

    Спасибо Golod. Буду запрашивать)
     
Загрузка...
Похожие Темы - Перебор єлементов справочнике
  1. 123456789igor
    Ответов:
    1
    Просмотров:
    1.570
  2. sima12
    Ответов:
    4
    Просмотров:
    1.773
  3. iivvnn
    Ответов:
    4
    Просмотров:
    1.859
  4. Altaya
    Ответов:
    10
    Просмотров:
    2.811
  5. MMN
    Ответов:
    28
    Просмотров:
    7.634
Статус темы:
Закрыта.

Поделиться этой страницей