Имя: Пароль:
1C
1С v8
FindText в табличном документе через OLE
0 kubik_live
 
13.11.16
15:55
Всем доброго дня. Помогите: не получается найти текст в OLE-табличном документе.

Значение Стр="Польша". В табличном документе в области поиска (ОбластьНаименованиеКраткое) значение есть: "ПОЛЬША".

         ТекущаяОбласть=ТабличныйДокумент.FindText(ВРег(Стр),,ОбластьНаименованиеКраткое,Ложь,Истина,Истина,Истина);

всегда возвращает: Неопределено.

Что я не так делаю?


Полный текст кода:


Функция НайтиСоздатьСтрануПроисхождения(Стр)
    
    УдСпрКлассификаторСтранМира = Уд.Справочники.КлассификаторСтранМира;
    УдСтранаПроисхождения=Неопределено;
    УдСтранаПроисхождения=УдСпрКлассификаторСтранМира.НайтиПоНаименованию(ВРег(Стр),Истина);
    Если СокрЛП(УдСтранаПроисхождения.Наименование)<>"" Тогда
        //нашли Страну происхождения        
        //Сообщить("Нашли Страну происхождения: "+Стр);
    Иначе
        
        
        
        //надо создать Страну происхождения
         ТабличныйДокумент=УдСпрКлассификаторСтранМира.ПолучитьМакет("КлассификаторСтранМира");
        
         ОбластьКодЧисловой         = ТабличныйДокумент.Areas.КодЧисловой;
         ОбластьНаименованиеКраткое = ТабличныйДокумент.Areas.НаименованиеКраткое;
         ОбластьНаименованиеПолное  = ТабличныйДокумент.Areas.НаименованиеПолное;
         ОбластьКодАльфа2           = ТабличныйДокумент.Areas.КодАльфа2;
        
         ТекущаяОбласть=ТабличныйДокумент.FindText(ВРег(Стр),,ОбластьНаименованиеКраткое,Ложь,Истина,Истина,Истина);
        
         Если НЕ ТекущаяОбласть=Неопределено Тогда
            
             КодЧисловой         = ТабличныйДокумент.Area(ТекущаяОбласть.Верх, ОбластьКодЧисловой.        Лево, ТекущаяОбласть.Низ, ОбластьКодЧисловой.        Право).Текст;
             НаименованиеКраткое = СокрЛП(ТабличныйДокумент.Area(ТекущаяОбласть.Верх, ОбластьНаименованиеКраткое.Лево, ТекущаяОбласть.Низ, ОбластьНаименованиеКраткое.Право).Текст);
             НаименованиеПолное  = СокрЛП(ТабличныйДокумент.Area(ТекущаяОбласть.Верх, ОбластьНаименованиеПолное. Лево, ТекущаяОбласть.Низ, ОбластьНаименованиеПолное. Право).Текст);
             КодАльфа2           = ТабличныйДокумент.Area(ТекущаяОбласть.Верх, ОбластьКодАльфа2.          Лево, ТекущаяОбласть.Низ, ОбластьКодАльфа2.          Право).Текст;
            
             УдСтранаПроисхождения=УдСпрКлассификаторСтранМира.СоздатьЭлемент();
             УдСтранаПроисхождения.Код=КодЧисловой;
             УдСтранаПроисхождения.Наименование=НаименованиеКраткое;
             УдСтранаПроисхождения.НаименованиеПолное=НаименованиеПолное;
             УдСтранаПроисхождения.КодАльфа2=КодАльфа2;
            
             Попытка
                 УдСтранаПроисхождения.Записать();
                 УдСтранаПроисхождения=УдСпрКлассификаторСтранМира.НайтиПоНаименованию(ВРег(Стр),Истина);
                 Сообщить("СОЗДАНА СТРАНА ПРОИСХОЖДЕНИЯ: "+Стр);
             Исключение
                 Сообщить("НЕУДАЧА СОЗДАНИЯ СТРАНЫ ПРОИСХОЖДЕНИЯ: "+Стр+"!",СтатусСообщения.Важное);
             КонецПопытки;
            
         КонецЕсли;
     КонецЕсли;
    
    Возврат УдСтранаПроисхождения;
    
КонецФункции
1 Рэйв
 
13.11.16
16:03
значит хреново передаешь адрес
А FindText - это чего? Есть же русский аналог.
2 Рэйв
 
13.11.16
16:04
или очередной упертый дельфист, осчастлиыивший нас свом присутствием?:-))
3 kubik_live
 
13.11.16
16:05
(1) Пробовал сначала: НайтиТекст - теже коки.
4 kubik_live
 
13.11.16
16:06
(2) К дельфи не имею отношения :))
5 Рэйв
 
13.11.16
16:06
(3)значит плохо параметры задаешь
6 kubik_live
 
13.11.16
16:09
(5) Ткни, где неправильно в коде, пожалуйста.
7 Рэйв
 
13.11.16
16:14
(6)Тут без отладчика - никак
8 kubik_live
 
13.11.16
16:18
УРА!!! Заработало!

Фишка была в 5 параметре (Ячейка целиком):

Было:
        
ТекущаяОбласть=ТабличныйДокумент.FindText(ВРег(Стр),,ОбластьНаименованиеКраткое,Ложь,ИСТИНА,Истина,Истина);

А НАДО ТАК:

         ТекущаяОбласть=ТабличныйДокумент.FindText(ВРег(Стр),,ОбластьНаименованиеКраткое,Ложь,ЛОЖЬ,Истина,Истина);

(7) Спасибо, что ткнул в проверку параметров