7.7 Поиск ИНН

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Peroman, 17 июн 2010.

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Как мне организовать поиск контрагентов с одинаковым ИНН.
    Что-то мне ума и фантазии не хватает, я делаю так:
    Код:
    Процедура Сформировать()
    
    СпрК = СоздатьОбъект("Справочник.Контрагенты");
    ТЗН  = СоздатьОбъект("ТаблицаЗначений");
    Таб  = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    ТЗН.НоваяКолонка("ИНН");
    ТЗН.НоваяКолонка("Контрагент");
    
    СпрК.ВыбратьЭлементы();
    Пока СпрК.ПолучитьЭлемент() =1 Цикл
    Если СпрК.ЭтоГруппа() = 0 Тогда
    ТЗН.НоваяСтрока();
    ТЗН.ИНН = СпрК.ЮрФизЛицо.ИНН;
    ТЗН.Контрагент = СпрК.ТекущийЭлемент();
    КонецЕсли;
    КонецЦикла;
    
    Таб.ВывестиСекцию("Заголовок");
    
    стр="";
    ИНН=""; 
    СпрК.ВыбратьЭлементы();
    Пока СпрК.ПолучитьЭлемент()=1 Цикл
    Если СпрК.ЭтоГруппа() = 0 Тогда 
    Если (ТЗН.НайтиЗначение(СпрК.ЮрФизЛицо.ИНН,стр,ИНН) = 1) и (СпрК.ТекущийЭлемент() <> ТЗН.Контрагент)  Тогда
    //Если СпрК.ТекущийЭлемент()   ТЗН.Контрагент Тогда
    Если СпрК.ПометкаУдаления() = 1 Тогда
    Пометка ="Помечен на удаление";
    Таб.ВывестиСекцию("Контрагент");
    Иначе
    Пометка = "";
    Таб.ВывестиСекцию("Контрагент");
    КонецЕсли;
    //КонецЕсли;
    
    Иначе Продолжить
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Таб.Показать();
    Таб.ТолькоПросмотр(1);
    КонецПроцедуры
    
    
    
    И выводится только первый результат, т.е. п оодному ИНН, хотя я точно знаю что в базе есть несколько контрагентов с одинаковым ИНН
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не так.
    Выгружаем все инн в ТЗ. Создаем еще одну колонку тип число значение 1. Используем метод сврнуть... Выборка по ТЗ покажет сколько дублей ИНН есть в справочнике (значение >1). Дальше дело техники
  3. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Делаю вот так:
    Код:
    Процедура Сформировать()
    
    СпрК = СоздатьОбъект("Справочник.Контрагенты");
    //ТЗН  = СоздатьОбъект("ТаблицаЗначений");
    ТЗН.НоваяКолонка("ИНН");
    //Таб  = СоздатьОбъект("Таблица");
    //Таб.ИсходнаяТаблица	("Таблица");
    
    
    
    СпрК.ВыбратьЭлементы();
    Пока СпрК.ПолучитьЭлемент() = 1 Цикл
    Если СпрК.ЭтоГруппа() = 0 Тогда
    Если СпрК.ПометкаУдаления() = 0 Тогда
    Если ПустоеЗначение(СпрК.ЮрФизЛицо.ИНН)= 0 Тогда
    ТЗН.НоваяСтрока();
    ТЗН.ИНН = СпрК.ЮрФизЛицо.ИНН;
    ТЗН.НоваяКолонка("Итог","Число");
    ТЗН.Свернуть("ИНН","Итог");
    ТЗН.Итог=ТЗН.Итог+1;
    КонецЕсли; 
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    
    Не находит, колонка итог получается 1, что не так?
  4. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Делаю вот так:
    Код:
    Процедура Сформировать()
    
    СпрК = СоздатьОбъект("Справочник.Контрагенты");
    //ТЗН  = СоздатьОбъект("ТаблицаЗначений");
    ТЗН.НоваяКолонка("ИНН");
    //Таб  = СоздатьОбъект("Таблица");
    //Таб.ИсходнаяТаблица	("Таблица");
    
    
    
    СпрК.ВыбратьЭлементы();
    Пока СпрК.ПолучитьЭлемент() = 1 Цикл
    Если СпрК.ЭтоГруппа() = 0 Тогда
    Если СпрК.ПометкаУдаления() = 0 Тогда
    Если ПустоеЗначение(СпрК.ЮрФизЛицо.ИНН)= 0 Тогда
    ТЗН.НоваяСтрока();
    ТЗН.ИНН = СпрК.ЮрФизЛицо.ИНН;
    ТЗН.НоваяКолонка("Итог","Число");
    ТЗН.Итог=1;
    ТЗН.Свернуть("ИНН","Итог");
    КонецЕсли; 
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    
    Не находит, колонка итог получается 1, что не так?
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Процедура Сформировать()        
    СпрК = СоздатьОбъект("Справочник.Контрагенты");    
    ТЗН  = СоздатьОбъект("ТаблицаЗначений");    
    ТЗН.НоваяКолонка("ИНН");    
    ТЗН.НоваяКолонка("Итог","Число",1,0);    
    СпрК.ВыбратьЭлементы();    
    Пока СпрК.ПолучитьЭлемент() = 1 Цикл        
    Если СпрК.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
    Если СпрК.ПометкаУдаления() = 1 Тогда Продолжить; КонецЕсли;
    Если ПустоеЗначение(СпрК.ЮрФизЛицо.ИНН)= 0 Тогда            
    ТЗН.НоваяСтрока();                    
    ТЗН.ИНН = СпрК.ЮрФизЛицо.ИНН;                    
    ТЗН.Итог=1;
    КонецЕсли;
    КонецЦикла;
    
    ТЗН.Свернуть("ИНН","Итог");
    //выбирай строки ТЗН - все что больше одного... ДУБЛЬ
    КонецПроцедуры
    
    
    

Поделиться этой страницей