T
Tiolan
Не могу разобраться как организовать следующее: нахожу в справочнике значение по фамилии и первому инициалу - и далее по порядку ищу соответствие по второму.
по ВыбратьЭлементы и ПолучитьЭлемент - слишком долго получается, справочник на 70000 записей. да и тупо как-то.
ПолучитьЭлемент после поиска не выходит не пойму почему...
Вот код - имеется ввиду, что хотелось бы ( ) чтоб НайтиПоНаименованию(шук1,0,0) искало каждый раз не сначала, а следующего.
Может есть решение проблемы попроще? или лыжи не едут?
Помогите решить задачку. Очень прошу.
по ВыбратьЭлементы и ПолучитьЭлемент - слишком долго получается, справочник на 70000 записей. да и тупо как-то.
ПолучитьЭлемент после поиска не выходит не пойму почему...
Вот код - имеется ввиду, что хотелось бы ( ) чтоб НайтиПоНаименованию(шук1,0,0) искало каждый раз не сначала, а следующего.
Код:
Процедура ЗПИ()
Если КоличествоСтрок() > 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 Тогда
Контрагент = Спр.ТекущийЭлемент();
перейти ~єакт
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Может есть решение проблемы попроще? или лыжи не едут?
Помогите решить задачку. Очень прошу.