Имя: Пароль:
1C
 
Проверка на несколько карточек физических лиц
0 LivingStar
 
01.11.19
06:51
Задача вроде бы простая. Но как то не могу сообладать с правильным решением.
Нужно сделать проверку на несколько карточек физических лиц.
Есть таблица физических лиц.
Делать это перебором этой таблицы, и в цикле делать запрос по справочнику физические лица?
Смотреть если в выборке больше одной запись, то выводить ???
В принципе все сработает, напрягает что запрос будет в цикле. Но можно же так?
1 shadow_sw
 
01.11.19
06:52
Нужно больше тем :))) еще 10 открой
2 shadow_sw
 
01.11.19
06:53
выбрать 1 не умеешь в запросе?
3 LivingStar
 
01.11.19
06:55
(2) Что выбрать????? Мне нужно вывести коды дублей физических лиц. Я написал как хочу это сделать в (0).
А вы что предлагаете???????? Как делать вашим методом? Покажете?
4 LivingStar
 
01.11.19
06:58
(2) нет таких идей
5 Paint_NET
 
01.11.19
06:59
Какой ещё цикл?
Выбери все значения, сгруппированные по ФИО или другому уникальному реквизиту, где количество > 1
6 Sergz66
 
01.11.19
07:00
......
Сгруппировать
......
Имеющие
......
7 LivingStar
 
01.11.19
07:00
(5) Что такое количество > 1 ?
8 Paint_NET
 
01.11.19
07:02
ВЫБРАТЬ
    Пользователи.ФизическоеЛицо.Наименование КАК ФизическоеЛицоНаименование,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Пользователи.Ссылка) КАК Ссылка
ИЗ
    Справочник.Пользователи КАК Пользователи

СГРУППИРОВАТЬ ПО
    Пользователи.ФизическоеЛицо.Наименование

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Пользователи.Ссылка) > 1

Как-то так.
9 LivingStar
 
01.11.19
07:05
(8) Что за пользователи не понятно.

ВЫБРАТЬ
    ФизическиеЛица.Код КАК Код,
    ФизическиеЛица.Ссылка КАК Ссылка,
    ФизическиеЛица.ФИО КАК ФИО,
    ФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица

Хотелось бы найти дубли по СНИЛС или ФИО .
10 catena
 
01.11.19
07:06
(9)переделай запрос из (8) под себя
11 LivingStar
 
01.11.19
07:09
Так верно?

ВЫБРАТЬ
    ФизическиеЛица.ФИО КАК ФИО,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК Ссылка    
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
    
СГРУППИРОВАТЬ ПО
    ФизическиеЛица.ФИО
    
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) > 1
12 Paint_NET
 
01.11.19
07:10
(11) Да, так ты получишь список всех дублей ФИО. Теперь если хочешь получить ссылку, можешь к этому запросу левым соединением прикрутить справочник физлиц с выводом ссылок.
13 Йохохо
 
01.11.19
07:11
(12) максимум
14 LivingStar
 
01.11.19
07:12
(12) Так правильно?

ВЫБРАТЬ
    ФизическиеЛица.ФИО КАК ФИО,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК Ссылка,
    ФизическиеЛица1.Ссылка КАК Ссылка1
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица1
        ПО ФизическиеЛица.Ссылка = ФизическиеЛица1.Ссылка

СГРУППИРОВАТЬ ПО
    ФизическиеЛица.ФИО,
    ФизическиеЛица1.Ссылка

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) > 1
15 catena
 
01.11.19
07:13
(14)нет, группировка по ссылка даст количество(ссылка) всегда равным 1
16 LivingStar
 
01.11.19
07:13
Что то (14) не работает
17 LivingStar
 
01.11.19
07:14
как правильно сделать?
18 Paint_NET
 
01.11.19
07:15
(13) Да, точно, без левого соединения же можно :)
19 Paint_NET
 
01.11.19
07:15
+(18) Хотя не, оно же только одну ссылку выведет. А нужно все дубли, как правило.
20 Paint_NET
 
01.11.19
07:16
(17) Ссылку выкинь.
21 Sergz66
 
01.11.19
07:23
(0)Лучше закрыть конфигуратор... Открыть в пользовательском режиме обработку Поиск и удаление дублей. Есть вроде во всех типовых.
22 LivingStar
 
01.11.19
07:28
тут все верно?

ВЫБРАТЬ
    ФизическиеЛица.ФИО КАК ФИО,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК КоличествоДублей
ПОМЕСТИТЬ ВТ_Дубли
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица

СГРУППИРОВАТЬ ПО
    ФизическиеЛица.ФИО

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) > 1
;

/////////////////////////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ    
    ФизическиеЛица.ФИО КАК ФИО,
    ФизическиеЛица.Ссылка
ИЗ
    ВТ_Дубли КАК ВТ_Дубли
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица    
        ПО ВТ_Дубли.ФИО = ФизическиеЛица.ФИО

СГРУППИРОВАТЬ ПО
    ФизическиеЛица.Ссылка,
    ФизическиеЛица.ФИО
    
УПОРЯДОЧИТЬ ПО
    ФизическиеЛица.ФИО
23 LivingStar
 
01.11.19
07:31
А если мне нужно искать по переданной параметром таблицей значений?
То есть по ФИО ил этой таблицы, дубли в справочнике ФизическиеЛица. Как её встроить в запрос?
24 Paint_NET
 
01.11.19
07:36
25 Paint_NET
 
01.11.19
07:37
(22) Во втором пакете группировка не нужна. Хотя работать будет и с ней.
26 ads55
 
01.11.19
07:41
(0) а для чего лисапед?
в ЗУПе же есть "Обработки.ОбъединениеКарточекСЛичнымиДанными".

Или учебная задача?
27 shadow_sw
 
01.11.19
07:44
28 ads55
 
01.11.19
07:50
(27) а понял, спс. Пошел работать дальше.
29 hhhh
 
01.11.19
07:55
(23) Тебе же вчера уже объяснили, как встроить таблицу значений в запрос. И ты уже встроил. Вспоминай уже.
30 LivingStar
 
01.11.19
07:57
почему так не выбирает? Я передаю список ФИО, среди которого хочу искать дубли

ВЫБРАТЬ
    ФизическиеЛица.ФИО КАК ФИО,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК КоличествоДублей
ПОМЕСТИТЬ ВТ_Дубли
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
    ФизическиеЛица.Ссылка В(&СписокФизЛиц)

СГРУППИРОВАТЬ ПО
    ФизическиеЛица.ФИО

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) > 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ФизическиеЛица.ФИО КАК ФИО,
    ФизическиеЛица.Ссылка КАК Ссылка
ИЗ
    ВТ_Дубли КАК ВТ_Дубли
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
        ПО ВТ_Дубли.ФИО = ФизическиеЛица.ФИО

СГРУППИРОВАТЬ ПО
    ФизическиеЛица.Ссылка,
    ФизическиеЛица.ФИО

УПОРЯДОЧИТЬ ПО
    ФизическиеЛица.ФИО
31 Paint_NET
 
01.11.19
08:23
(30) Потому что &СписокФизЛиц - это не список, а ТЗ, в нём нет никаких ссылок, есть только ФИО, и не надо в первом пакете лезть в справочник, обращайся напрямую к ТЗ.
32 LivingStar
 
01.11.19
08:38
(31) Как не список, когда я в консоле запросов создал список значений.
33 LivingStar
 
01.11.19
08:38
(31) Как обращаться на прямую в ТЗ?
В список я вроде как ссылки на физ лица и добавляю, все должно быть в порядке. А не работает (
34 catena
 
01.11.19
08:50
"вроде как" и "не работает" - не слишком точное описание. Показывай скрины, что в списке, что в результате. Ты обе дублирующие ссылки в список добавил или только одну и ждешь, что найдет вторую?
35 ice777
 
01.11.19
09:13
что за конфиг я не знаю, но идентифицировать физлиц по ФИО это что-то. У меня фио- в регистре сведений.
Ибо вчера тетка Петрова, а завтра- Сидорова.
36 LivingStar
 
01.11.19
09:55
(35) Похоже вы кстати правы.
Есть регистр сведений ФИОФизическихЛиц, тогда извлекать нужно из него?
А не из справочника.
37 LivingStar
 
01.11.19
13:26
Подскажите пожалуйста по запросу. А то вечер, плохо соображается. Этот запрос выбирает не корректные данные.
Почему???? ФИО, не соответствует выбранным.

    Запрос.Текст = "ВЫБРАТЬ
                   |    Таблица.Колонка1 КАК ФИОФизЛица,
                   |    Таблица.Колонка2 КАК Рост,
                   |    Таблица.Колонка3 КАК РазмерОдежды,
                   |    Таблица.Колонка4 КАК РазмерОбуви,
                   |    Таблица.Колонка5 КАК РазмерГоловногоУбора,
                   |    Таблица.Колонка6 КАК РазмерПротивогаза,
                   |    Таблица.Колонка7 КАК РазмерРеспиратора,
                   |    Таблица.Колонка8 КАК РазмерПерчаток,
                   |    Таблица.Колонка9 КАК РазмерРукавиц,
                   |    Таблица.Колонка10 КАК СНИЛС
                   |ПОМЕСТИТЬ ВТ_АнтропометрическиеСведения
                   |ИЗ
                   |    &Таблица КАК Таблица
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ФизическиеЛица.Ссылка КАК ФизическоеЛицоСсылка,
                   |    ФизическиеЛица.Фамилия КАК Фамилия,
                   |    ФизическиеЛица.Имя КАК Имя,
                   |    ФизическиеЛица.Отчество КАК Отчество,
                   |    ФизическиеЛица.ФИО КАК ФИО,
                   |    ФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР,
                   |    ВТ_АнтропометрическиеСведения.ФИОФизЛица КАК ФИОФизЛица,
                   |    ВТ_АнтропометрическиеСведения.Рост КАК Рост,
                   |    ВТ_АнтропометрическиеСведения.РазмерОдежды КАК РазмерОдежды,
                   |    ВТ_АнтропометрическиеСведения.РазмерОбуви КАК РазмерОбуви,
                   |    ВТ_АнтропометрическиеСведения.РазмерГоловногоУбора КАК РазмерГоловногоУбора,
                   |    ВТ_АнтропометрическиеСведения.РазмерПротивогаза КАК РазмерПротивогаза,
                   |    ВТ_АнтропометрическиеСведения.РазмерРеспиратора КАК РазмерРеспиратора,
                   |    ВТ_АнтропометрическиеСведения.РазмерПерчаток КАК РазмерПерчаток,
                   |    ВТ_АнтропометрическиеСведения.РазмерРукавиц КАК РазмерРукавиц,
                   |    ВТ_АнтропометрическиеСведения.СНИЛС КАК СНИЛС
                   |ИЗ
                   |    ВТ_АнтропометрическиеСведения КАК ВТ_АнтропометрическиеСведения
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                   |        ПО (ФизическиеЛица.СтраховойНомерПФР = ВТ_АнтропометрическиеСведения.СНИЛС
                   |                ИЛИ ВТ_АнтропометрическиеСведения.ФИОФизЛица = ФизическиеЛица.ФИО)";
    Запрос.УстановитьПараметр("Таблица", ТаблицаРезультат);
38 hhhh
 
01.11.19
13:38
(37) что значит "некорректные"?
39 LivingStar
 
01.11.19
13:48
(38) Ну вот например, Это же не правильно !

http://joxi.ru/1A5MePyuDjDe9A
40 hhhh
 
01.11.19
13:55
(39) ну может снилс совпадает. У тебя же условие ИЛИ.
41 LivingStar
 
01.11.19
14:18
снилс там нет вообще в справочнике для этой строки, а вы видите произошла связка соединения, почему???????
Я это и хочу понять и выявить как это исправить что бы выбиралось нормально.
42 LivingStar
 
04.11.19
08:01
(37) Это решено, в первом пакете там нужно если нет СНИЛС ставить "-".
Тогда во втором нормально идет выборка.

Подскажите ещё пожалуйста по выборке дублирующихся записей справочника физические лица.
43 Мимохожий Однако
 
04.11.19
08:11
(0) Есть типовая обработка Поиск и замена дублей справочника. Выбираешь справочник Физические лица и вперед
44 LivingStar
 
04.11.19
10:23
(31) То есть всего будет три пакета? В случае передачи таблицы значения параметром ?