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


1С:Предприятие ::

Метки: 

Эталоны дубли запросом

Я
   skupidom
 
04.08.18 - 19:23
У элементов справочника контрагенты есть реквизиты: вес=количество заполненных реквизитов,вид базы - откуда этот контрагент пришел в базу 1С:
CRM,БП,Торговля.
У элемента контрагенты есть 4 УИД по видам базы.
Элемент контрагента с заполненным УИД бухгалтерии также заполнен 1 из остальных УИД: CRM,Торговля..
Среди контрагентов есть дубли с одинаковым наименованием.
Нужно определить элементы контрагентов эталон он или дубль.
Нужно написать 1 запрос по алгоритму:
Если есть 2 элемента CRM и только 1 соответствующий ему элемент с УИД Бухгалтерия, то он эталонный.
Если 2 элемента CRM и обеим есть соответствие с УИД Бухгалтерия,то эталонный тот, который встречается в максимальном количестве видов баз. Если максимальное количество баз одинаково,эталонный тот, который с максимальным весом заполненности реквизитов.
 
 
   Лефмихалыч
 
1 - 04.08.18 - 20:50
А зачем эта заморочка с эталонами? Почему просто не объединить все данные, какие есть?
   Cyberhawk
 
2 - 04.08.18 - 23:32
(1) При объединениее (замене ссылок) всегда есть как минимум два кандидата:
- кандидат в УИДы
- кандидат в данные
Т.е. УИД берем от одного объекта, а данные - от какого-то другого ("эталона", как ТС называет)
   skupidom
 
3 - 04.08.18 - 23:56
а можно пример запроса,с условием что может быть > 2 дублей
   Cyberhawk
 
4 - 04.08.18 - 23:57
Какого запроса?
   tesseract
 
5 - 05.08.18 - 10:54
(3) Висячие строки это называется. Опять собеседование?
   Chameleon1980
 
6 - 05.08.18 - 10:57
имеющие количество (наименование)>1
   Лефмихалыч
 
7 - 05.08.18 - 10:57
(2) если речь про замену ссылок, то эталонность объекта зависит только от количества ссылок на него, а не от данных. В этом случае тем более надо данные мерджить все,что есть, а ссылки заменять те, которых меньше.
   Лефмихалыч
 
8 - 05.08.18 - 10:59
(3) ВЫБРАТЬ ИНН
ПОМЕСТИТЬ ВТ
Из Справочник.Контрагенты
СГРУППИРОВАТЬ ПО ИНН ИМЕЮЩИЕ КОЛИЧЕСТВО(Ссылка)>1;
ВЫБРАТЬ
 ИНН, Ссылка
ИЗ ВТ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КОнтрагенты как Спр
ПО Спр.ИНН = ВТ.ИНН
Итоги КОЛИЧЕСТВО(Ссылка) ПО ИНН
   Лефмихалыч
 
9 - 05.08.18 - 11:00
точнее >2, а не >1, но - не суть
   skupidom
 
10 - 05.08.18 - 11:54
это самописный справочник и контрагенты - физики,дубли определяются по = полного наименования
 
 
   skupidom
 
11 - 07.08.18 - 13:24
сделал такой запрос:
//Запрос = Новый Запрос;

    //Запрос.Текст =

    //"ВЫБРАТЬ

    //|    Контрагенты.Ссылка КАК Ссылка,

    //|    Контрагенты1.Ссылка КАК Дубль

    //|ПОМЕСТИТЬ ВТДубли

    //|ИЗ

    //|    Справочник.Контрагенты КАК Контрагенты

    //|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты1

    //|        ПО Контрагенты.НаименованиеПолное = Контрагенты1.НаименованиеПолное

    //|            И Контрагенты.Ссылка <> Контрагенты1.Ссылка

    //|ГДЕ

    //|    Контрагенты.ВидБазы = &ВидБазы

    //|    И Контрагенты1.ВидБазы = &ВидБазы

    //|    И НЕ Контрагенты.ЮридическоеФизическоеЛицо = &ЮЛ

    //|    И НЕ Контрагенты1.ЮридическоеФизическоеЛицо = &ЮЛ

    //|;

    //|

    //|////////////////////////////////////////////////////////////////////////////////

    //|ВЫБРАТЬ

    //|    Контрагенты.GUID_1Строка КАК GUID_1Строка,

    //|    Контрагенты.GUID_3Строка КАК GUID_3Строка,

    //|    ВТДубли.Ссылка КАК Ссылка,

    //|    ВТДубли.Дубль КАК Дубль,

    //|    Контрагенты1.GUID_1Строка КАК GUID_1СтрокаДубль,

    //|    Контрагенты1.GUID_3Строка КАК GUID_3СтрокаДубль

    //|ИЗ

    //|    ВТДубли КАК ВТДубли

    //|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты

    //|        ПО ВТДубли.Ссылка.GUID_3Строка = Контрагенты.GUID_3Строка

    //|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты1

    //|        ПО ВТДубли.Дубль.GUID_3Строка = Контрагенты1.GUID_3Строка

    //|ГДЕ

    //|    (Контрагенты.GUID_1Строка <> &Пусто

    //|            ИЛИ Контрагенты1.GUID_1Строка <> &Пусто)

    //|    И Контрагенты.ВидБазы = &БП

    //|    И Контрагенты1.ВидБазы = &БП";

    //Запрос.УстановитьПараметр("ВидБазы",1);

    //Запрос.УстановитьПараметр("ЮЛ","Юридическое лицо");

    //Запрос.УстановитьПараметр("Пусто","");

    //Запрос.УстановитьПараметр("БП",2);

    //Выборка = Запрос.Выполнить().Выбрать();
   skupidom
 
12 - 07.08.18 - 13:34
но по нему выводятся только эталон и дубль, нужно так расширить запрос,чтобы попадали позиции,у которых нет дублей и дублей > 2, коллеги, жизненно необходимо решить
   МихаилМ
 
13 - 07.08.18 - 13:36
так Вы женщина или мужчина ?
   skupidom
 
14 - 07.08.18 - 14:14
женщина
   skupidom
 
15 - 07.08.18 - 14:18
так как с запросом?
   DrShad
 
16 - 07.08.18 - 14:22
вот это поворот
пошел за попкорном
   Доминошник
 
17 - 07.08.18 - 14:50
(12) вроде бы так выбор того, у чего нет дублей
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Контрагенты.НаименованиеПолное
ПОМЕСТИТЬ ВТВсе
ИЗ
   Справочник.Контрагенты КАК Контрагенты
ГДЕ
   Контрагенты.ВидБазы = &ВидБазы
   И НЕ Контрагенты.ЮридическоеФизическоеЛицо = &ЮЛ
;
///////////////////////

ВЫБРАТЬ
   Контрагенты.НаименованиеПолное КАК НаименованиеПолное,
   Контрагенты.Ссылка КАК Ссылка,
   Контрагенты1.Ссылка КАК Дубль
ПОМЕСТИТЬ ВТДубли
ИЗ
   Справочник.Контрагенты КАК Контрагенты
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты1
      ПО Контрагенты.НаименованиеПолное = Контрагенты1.НаименованиеПолное
      И Контрагенты.Ссылка <> Контрагенты1.Ссылка
ГДЕ
   Контрагенты.ВидБазы = &ВидБазы
   И Контрагенты1.ВидБазы = &ВидБазы
   И НЕ Контрагенты.ЮридическоеФизическоеЛицо = &ЮЛ
   И НЕ Контрагенты1.ЮридическоеФизическоеЛицо = &ЮЛ
;
///////////////////////

ВЫБРАТЬ
   ВТВсе.НаименованиеПолное
ПОМЕСТИТЬ ВТУникальные
ИЗ
   ВТВсе 
ГДЕ НЕ ВТВсе.НаименованиеПолное В 
   (ВТДубли.НаименованиеПолное ИЗ ВТДубли КАК ВТДубли)
   1Сергей
 
18 - 07.08.18 - 14:52
Есть готовые инструменты по исправлению дублей
   skupidom
 
19 - 07.08.18 - 14:59
эти справочники самописные
   Cyberhawk
 
20 - 07.08.18 - 17:32
(7) Ошибаешься
   DTX 4th
 
21 - 07.08.18 - 17:38
Слишком сложно. Нужны примеры.



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует