-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathПроцедура ПолнотекстовыйПоиск.txt
56 lines (56 loc) · 2.4 KB
/
Процедура ПолнотекстовыйПоиск.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//******************************************************************************
Процедура ПолнотекстовыйПоиск()
СписокНайденных=СоздатьОбъект("СписокЗначений");
СписокНайденных.УдалитьВсе();
Если СтрПоиск="" Тогда
ИерархическийСписок(1);
ИспользоватьСписокЭлементов();
Возврат;
КонецЕсли;
Если ФС.СуществуетФайл(КаталогИБ()+"search.exe")=1 Тогда
//Сообщить("copy """+КаталогИБ()+"sc156.dbf"" """+КаталогИБ()+"sc156temp.dbf""");
//КомандаСистемы("copy """+КаталогИБ()+"sc156.dbf"" """+КаталогИБ()+"sc156temp.dbf""");
//Сообщить(КаталогИБ()+"search.exe """+КаталогИБ()+"sc156temp.dbf"" """+ДобавитьСлеши(СтрПоиск)+""" """+КаталогИБ()+"resultsc156.txt""");
КомандаСистемы(КаталогИБ()+"search.exe """+КаталогИБ()+"sc156.dbf"" """+глДобавитьСлеши(СтрПоиск)+""" """+КаталогИБ()+"resultsc156.txt""");
//КомандаСистемы(КаталогИБ()+"search.exe """+КаталогИБ()+"sc156temp.dbf"" """+ДобавитьСлеши(СтрПоиск)+""" """+КаталогИБ()+"resultsc156.txt""");
//Сообщить("del """+КаталогИБ()+"sc156temp.dbf""");
//КомандаСистемы("del """+КаталогИБ()+"sc156temp.dbf""");
//Сообщить(ФС.СуществуетФайл(КаталогИБ()+"resultsc156.txt"));
СпрТовары2=СоздатьОбъект("Справочник.Номенклатура");
Если ФС.СуществуетФайл(КаталогИБ()+"resultsc156.txt")=1 Тогда
Т=СоздатьОбъект("Текст");
Т.Открыть(КаталогИБ()+"resultsc156.txt");
//Сообщить();
Для н=1 По Т.КоличествоСтрок() Цикл
Стр=СокрЛП(Т.ПолучитьСтроку(н));
//Сообщить(Стр);
Если Найти(Стр, "<code>")>0 Тогда
Код=СтрЗаменить(СтрЗаменить(Стр, "</code>", ""), "<code>", "");
//Сообщить(Код);
Если (СписокНайденных.НайтиЗначение(Код))=0 Тогда
Если СпрТовары2.НайтиПоКоду(Код, 0)=1 Тогда
Если СпрТовары2.ЭтоГруппа()=0 Тогда
СписокНайденных.ДобавитьЗначение(СпрТовары2.ТекущийЭлемент());
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если СписокНайденных.РазмерСписка()>0 Тогда
ИерархическийСписок(0);
ИспользоватьСписокЭлементов(СписокНайденных);
Иначе
ИерархическийСписок(1);
ИспользоватьСписокЭлементов();
Предупреждение("Ничего не найдено!", 2);
КонецЕсли;
//Для н=1 По СписокНайденных.РазмерСписка() Цикл
// Сообщить("№ "+Строка(н)+" - "+ЗначениеВСтроку(СписокНайденных.ПолучитьЗначение(н)));
//КонецЦикла;
Иначе
ИерархическийСписок(1);
ИспользоватьСписокЭлементов();
Предупреждение("Ничего не найдено!", 2);
КонецЕсли;
КонецЕсли;
КонецПроцедуры