Имя: Пароль:
1C
1C 7.7
v7: Поиск по справочнику
0 alexei366
 
23.04.12
20:13
Необходимо получить некие реквизиты контрагентов, поиск производиться по наименованию (вроде как должно быть уникальным). Но бывают случаи когда есть 2 объекта с одинаковым наименованием, один из которых помечен на удаление. Также хотелось узнавать количество найденных (хотя бы что>1 не помеченного на удаления). Мой запрос вообще не находит по наименованию, а функция НайтиПоНаименованию не возвращает множество (я так думаю), да и ПорядокРеквизита("ПометкаУдаления") не пашет. Помогите разобраться.

ТекстЗапроса =
                   "
                   |Наименование = Справочник.Контрагенты.Наименование;
                   |НомерДоговора = Справочник.Контрагенты.НомерДоговора;
                   |ДатаДоговора = Справочник.Контрагенты.ДатаДоговора;
                   |ИНН = Справочник.Контрагенты.ИНН;
                   |ОГРН = Справочник.Контрагенты.ОГРН;
                   |ТекущийЭл = Справочник.Контрагенты.ТекущийЭлемент;
                   |Группировка  ТекущийЭл Упорядочить по ТекущийЭл.Наименование;
                   |Условие ((ТекущийЭл.ПометкаУдаления() = 0) И (Наименование = '"+RecordSet.Fields(4).Value+"'));
                   |";
1 andrewks
 
23.04.12
20:25
И (Наименование = """+RecordSet.Fields(4).Value+"""));
+, возможно, следует применять СокрЛП()
2 alexei366
 
23.04.12
20:27
да не там норм все я через отладчик ТекстЗапроса смотрел
3 alexei366
 
23.04.12
20:27
и кавычки разные пробывал, всё без разницы
4 Zypse
 
23.04.12
20:55
А если так:
СтрокаПоиска = СокрЛП(RecordSet.Fields(4).Value);

ТекстЗапроса =
                   "
                   |Обрабатывать НеПомеченныеНаУдаление;
                   |Наименование = Справочник.Контрагенты.Наименование;
                   |НомерДоговора = Справочник.Контрагенты.НомерДоговора;
                   |ДатаДоговора = Справочник.Контрагенты.ДатаДоговора;
                   |ИНН = Справочник.Контрагенты.ИНН;
                   |ОГРН = Справочник.Контрагенты.ОГРН;
                   |ТекущийЭл = Справочник.Контрагенты.ТекущийЭлемент;
                   |Группировка  ТекущийЭл Упорядочить по ТекущийЭл.Наименование;
                   |Условие (Наименование = СтрокаПоиска);
                   |";
5 alexei366
 
23.04.12
22:01
Я ща проверить не могу, но  : Условие (Наименование = СтрокаПоиска), это точно не то.Он же не поймет что СтрокаПоиска переменная. Я бы хотел все же какнибудь через функцию НайтиПоНаименованию сделать, я то через запрос очень долго
Независимо от того, куда вы едете — это в гору и против ветра!