Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Предприятие 7.7]

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

rinaty17
читатель
офлайн
Дата регистрации: 14.09.2012
Сообщений: 27
Пост №1
 
29.10.2012 10:44

"Добрый день уважаемые форумчане. <br>Я в семерке плохо шарю, но некоторые моменты знаю. <br>к вам такая просьба. <br>мне нужно сделать отчет который выводит список контрагентов у которых одинаковый ИНН или не заполненный ИНН. <br>Вот мои наброски <br>+ Code<br>//__________________________________________________­___________________________<br> <br>Функция ПоискКонтрагента(пПоиск)<br> спрФиз = СоздатьОбъект("Справочник.ФизЛица");<br> спрЮр = СоздатьОбъект("Справочник.ЮрЛица");<br> спрСвои = СоздатьОбъект("Справочник.СвоиЮрЛица");<br> Если спрФиз.НайтиПоНаименованию(пПоиск,0,1)=1 Тогда<br> СпрЛица = спрФиз.ИНН;<br> Возврат СпрЛица;<br> ИначеЕсли спрЮр.НайтиПоНаименованию(пПоиск,0,1)=1 Тогда<br> СпрЛица = спрЮр.ИНН;<br> Возврат СпрЛица;<br> ИначеЕсли спрСвои.НайтиПоНаименованию(пПоиск,0,1)=1 Тогда<br> СпрЛица = спрСвои.ИНН;<br> Возврат СпрЛица;<br> Иначе<br> Возврат 0;<br> КонецЕсли;<br>КонецФункции //<br> <br><br>//*******************************************<br> <br>Процедура Сформировать() <br> Таб=СоздатьОбъект("Таблица");<br> Таб.ВывестиСекцию("Шапка");<br> Таб.ТолькоПросмотр(1);<br> Спр1 = СоздатьОбъект("Справочник.Контрагенты");<br> Спр1.ВыбратьЭлементы();<br> Пока Спр1.ПолучитьЭлемент() = 1 Цикл<br> Если (Спр1.ЭтоГруппа() = 0) и (Спр1.ПометкаУдаления() = 0) Тогда <br> Спр2 = СоздатьОбъект("Справочник.Контрагенты");<br> Спр2.ВыбратьЭлементы();<br> СпрЛица1 = ПоискКонтрагента(Спр1.ЮрФизЛицо);<br> Если СпрЛица1 = """" Тогда<br> Таб.ВывестиСекцию("Строка");<br> Иначе<br> Пока Спр2.ПолучитьЭлемент() = 1 Цикл <br> <br> Если (Спр2.ЭтоГруппа() = 0) и (Спр2.ПометкаУдаления() = 0) Тогда <br> <br> СпрЛица2 = ПоискКонтрагента(Спр2.ЮрФизЛицо);<br> Если СпрЛица1=СпрЛица2 Тогда<br> Таб.ВывестиСекцию("Строка");<br> КонецЕсли;<br> <br> <br> КонецЕсли;<br> КонецЦикла;<br> КонецЕсли;<br> КонецЕсли;<br> КонецЦикла;<br> Таб.Показать();<br>КонецПроцедуры<br><br>как можно упрастить данный модуль? может как нибудь через запрос можно сделать? в 8ке я бы без проблем решил бы эту задачу..."

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №2
 
29.10.2012 11:07

А как бы решили этот вопрос в 8-ке?

ValeraH
читатель
офлайн
Дата регистрации: 31.03.2004
Сообщений: 264
Пост №3
 
29.10.2012 13:33

Цикл в цикле это не очень хорошо.<br>Лучше использовать ТаблицуЗначений. Один раз перебрать Контрагентов, заполнить столбец Контрагент и столбец ИНН.<br>Отсортировать Таблицу по ИНН. В процедуре печати сделать цикл по строкам ТаблицыЗначений (начиная со 2-й), если текущий ИНН равен предыдущему, то печатаем текущего Контрагента (не забыть при первом совпадении напечатать и предыдущего).

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №4
 
29.10.2012 13:55

> Цикл в цикле это не очень хорошо.<br> <br>А сами не цикл предлагаете? :)

ValeraH
читатель
офлайн
Дата регистрации: 31.03.2004
Сообщений: 264
Пост №5
 
29.10.2012 14:08

Я не советую то, как написано, а написано ЦИКЛ В ЦИКЛЕ, n * n повторений.<br>Я же предлагаю 2 цикла - 2n повторений, при большом массиве разница существенная.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация