Одинаковые ИНН

rinaty17

Участник
Добрый день уважаемые форумчане.
Я в семерке плохо шарю, но некоторые моменты знаю.
к вам такая просьба.
мне нужно сделать отчет который выводит список контрагентов у которых одинаковый ИНН или не заполненный ИНН.
Вот мои наброски
//_____________________________________________________________________________

Функция ПоискКонтрагента(пПоиск)
спрФиз = СоздатьОбъект("Справочник.ФизЛица");
спрЮр = СоздатьОбъект("Справочник.ЮрЛица");
спрСвои = СоздатьОбъект("Справочник.СвоиЮрЛица");
Если спрФиз.НайтиПоНаименованию(пПоиск,0,1)=1 Тогда
СпрЛица = спрФиз.ИНН;
Возврат СпрЛица;
ИначеЕсли спрЮр.НайтиПоНаименованию(пПоиск,0,1)=1 Тогда
СпрЛица = спрЮр.ИНН;
Возврат СпрЛица;
ИначеЕсли спрСвои.НайтиПоНаименованию(пПоиск,0,1)=1 Тогда
СпрЛица = спрСвои.ИНН;
Возврат СпрЛица;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции //

//*******************************************

Процедура Сформировать()
Таб=СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Шапка");
Таб.ТолькоПросмотр(1);
Спр1 = СоздатьОбъект("Справочник.Контрагенты");
Спр1.ВыбратьЭлементы();
Пока Спр1.ПолучитьЭлемент() = 1 Цикл
Если (Спр1.ЭтоГруппа() = 0) и (Спр1.ПометкаУдаления() = 0) Тогда
Спр2 = СоздатьОбъект("Справочник.Контрагенты");
Спр2.ВыбратьЭлементы();
СпрЛица1 = ПоискКонтрагента(Спр1.ЮрФизЛицо);
Если СпрЛица1 = "" Тогда
Таб.ВывестиСекцию("Строка");
Иначе
Пока Спр2.ПолучитьЭлемент() = 1 Цикл

Если (Спр2.ЭтоГруппа() = 0) и (Спр2.ПометкаУдаления() = 0) Тогда

СпрЛица2 = ПоискКонтрагента(Спр2.ЮрФизЛицо);
Если СпрЛица1=СпрЛица2 Тогда
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Таб.Показать();
КонецПроцедуры

как можно упрастить данный модуль? может как нибудь через запрос можно сделать? в 8ке я бы без проблем решил бы эту задачу...
 
Верх