Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 08:04
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как вывести всех контрагентов у которых одинаковые имена в 1С 8.2  (Прочитано 1610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Batmand6

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-08-24
  • Сайт: 
  • Профессия: Программист 8.1
Подскажите пожалуйста, Как вывести всех контрагентов у которых одинаковые имена в 1С 8.2
Или через конфигуратор или через предприятие. Заранее благодарен!
Ребят, у меня 17.000 коyтрагентов, я пробовал делать по такому коду, но это слишком долго он их обрабатывает( работал 36ч, так и не загрузил данные),
Процедура КнопкаСформироватьНажатие(Кнопка)
    // Вставить содержимое обработчика.
ТаблицаЗначений = Новый ТаблицаЗначений;

// Создаем нужные колонки
ТаблицаЗначений.Колонки.Добавить("Наименование");
ТаблицаЗначений.Колонки.Добавить("Код");
ТаблицаЗначений.Колонки.Добавить("ИНН");
ТаблицаЗначений.Колонки.Добавить("Родитель");
Сообщить(ТаблицаЗначений);
    Справ=Справочники.Контрагенты.Выбрать();
    Пока Справ.Следующий() Цикл
        Если Справ.ЭтоГруппа Тогда
            Продолжить;   
        КонецЕсли;
       
        Справ1=Справочники.Контрагенты.Выбрать();
       
        Пока Справ1.Следующий() Цикл
            Если Справ1.ЭтоГруппа Тогда
                Продолжить;
            КонецЕсли;
            Если Справ.Код=Справ1.Код Тогда
                Продолжить;
            КонецЕсли;
            Если СтрЗаменить(СокрЛП(Врег(Справ.Наименование)),"  "," ")=СтрЗаменить(СокрЛП(Врег(Справ1.Наименование)),"  "," ") Тогда
                А=1;
               
            КонецЕсли;
           
           
        КонецЦикла;
       
    КонецЦикла;
   
   
КонецПроцедуры

Как сделать через таблицу значений, что бы он не 17000 раз прогонял каждого контра агнета, мне говорили, как то можно и в три действия обойтись. Кто подскажет как?


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Запрос можно написать:

ВЫБРАТЬ
Контрагенты.Ссылка,
Контрагенты.Наименование КАК Наименование
ИЗ
Справочник.Контрагенты КАК Контрагенты
ИТОГИ ПО
Наименование

Оффлайн Batmand6

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-08-24
  • Сайт: 
  • Профессия: Программист 8.1
Может кому пригодиться Готовый Отчет
Процедура КнопкаСформироватьНажатие(Кнопка)
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("ИНН");
ТЗ.Колонки.Добавить("Код");
ТЗ.Колонки.Добавить("Родитель");
ТЗ.Колонки.Добавить("Пров");
ТЗ.Колонки.Добавить("Флаг");
ТЗ.Колонки.Добавить("Ссылка");

Справ=Справочники.Контрагенты.Выбрать();
Пока Справ.Следующий() Цикл
Стр = ТЗ.Добавить();
Стр.Наименование=СтрЗаменить(СокрЛП(Врег(Справ.Наименование)),"  "," ");
Стр.Инн=Справ.ИНН;
Стр.Код=Справ.Код;
Стр.Родитель=Справ.Родитель;
Стр.Пров=Справ.Наименование;
Стр.Флаг=Ложь;
Стр.Ссылка=Справ.Ссылка;

КонецЦикла;
ТЗ.Сортировать("Наименование Возр, Код Возр");

Для П=0 По ТЗ.Количество()-2 Цикл
Если ТЗ[П].Наименование=ТЗ[П+1].Наименование Тогда
ТЗ[П].Флаг=Истина;
ТЗ[П+1].Флаг=Истина;
КонецЕсли;


КонецЦикла;
Табдок=Новый ТабличныйДокумент;
Макет=ЭтотОбъект.ПолучитьМакет("Вывод");
ОбластьШапки=Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьШапки);
Для Каждого ТЗМ из ТЗ Цикл
Если ТЗМ.флаг Тогда
ОбластьДанные=Макет.ПолучитьОбласть("Данные");
ОбластьДанные.Параметры.Наименование=ТЗМ.Пров;
ОбластьДанные.Параметры.Код=ТЗМ.Код;
ОбластьДанные.Параметры.ИНН=ТЗМ.ИНН;
ОбластьДанные.Параметры.Родитель=ТЗМ.Родитель;
СписокСсылок = Новый Массив;
СписокСсылок.Добавить(ТЗМ.ССылка);
ТабСсылок=НайтиПоСсылкам(СписокСсылок);
ОбластьДанные.Параметры.Ссылка=ТабССылок.Количество();
// Табдок.Параметры.Ссылок=ТабССылок.Количество();
Табдок.Вывести(ОбластьДанные);
КонецЕсли;
КонецЦикла;

//А=ТЗ.ВыбратьСтроку();
ТабДок.Показать("Таблиц");

КонецПроцедуры


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
BuhRust
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 156
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal