Подскажите, почему каждое физлицо по 3 раза выходит в запросе? Поставить галку "без повторяющихся" не даёт, т.к. есть поле неограниченной длины в одном из ресурсов регистра. Конфигурация "Зарплата и кадры бюджетного учреждения 1.0"
ВЫБРАТЬ
ФИОФизЛицСрезПоследних.Фамилия,
ФИОФизЛицСрезПоследних.Имя,
ФИОФизЛицСрезПоследних.Отчество,
КонтактнаяИнформация.Поле1 КАК Индекс,
КонтактнаяИнформация.Поле2 КАК Регион,
КонтактнаяИнформация.Поле3 КАК Район,
КонтактнаяИнформация.Поле4 КАК Город,
КонтактнаяИнформация.Поле5 КАК НасПункт,
КонтактнаяИнформация.Поле6 КАК Улица,
КонтактнаяИнформация.Поле7 КАК НомерДОма,
КонтактнаяИнформация.Поле8 КАК Корпус,
КонтактнаяИнформация.Поле9 КАК Квартира,
СотрудникиОрганизаций.Физлицо.Пол,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан,
ГражданствоФизЛицСрезПоследних.Страна
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформация.Объект
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних КАК ГражданствоФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ГражданствоФизЛицСрезПоследних.ФизЛицо
ГДЕ
СотрудникиОрганизаций.ЭтоГруппа = ЛОЖЬ
И СотрудникиОрганизаций.Актуальность = ИСТИНА
И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
УПОРЯДОЧИТЬ ПО
СотрудникиОрганизаций.Наименование
ПоказатьПо теме из базы знаний
- Выборка в запросе из периодического регистра сведений данных на дату из строки запроса
- Запросы к регистрам сведений с реквизитом "ПериодЗавершения"
- Регистры сведений 1С. Как это устроено.
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
- Как спроектировать структуру регистра сведений
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Каждое физлицо по 3 раза выходит в запросе из за 'левое соединение', т. е. в соединенных регистрах(или в одном регистре) физлицо записан 3 раза (если в измерении регистра ни только физлицо).
Решение:
1)Надо взять не только СрезПоследних, а отбор и по всем другим измерениям.
ИЛИ
2) Использовать "без повторяющихся", а поле "неограниченной длины" взять с использованием функции ПОДСТРАКА
Решение:
1)Надо взять не только СрезПоследних, а отбор и по всем другим измерениям.
ИЛИ
2) Использовать "без повторяющихся", а поле "неограниченной длины" взять с использованием функции ПОДСТРАКА
(2) Сделал вторым способом, обрезал неограниченную строку до 200 символов, но теперь сотрудники у которых введено несколько адресов и телефон все равно двоятся - троятся, как сделать отбор в в регистре "контактная информация" чтобы он только адреса выдавал и выходила одна строка?
Главная ошибка - "Левое соединение". Соединение должно быть ВНУТРЕННЕЕ. Т.е. ты выбираешь справочник сотрудники и вне зависомости есть ли данные в контактной информации или в паспорте сотрудника выводишь. Тогда он не будет повторяться трижды.
ВЫБРАТЬ РАЗЛИЧНЫЕ
ФИОФизЛицСрезПоследних.Фамилия,
ФИОФизЛицСрезПоследних.Имя,
ФИОФизЛицСрезПоследних.Отчество,
КонтактнаяИнформация.Поле1 КАК Индекс,
КонтактнаяИнформация.Поле2 КАК Регион,
КонтактнаяИнформация.Поле3 КАК Район,
КонтактнаяИнформация.Поле4 КАК Город,
КонтактнаяИнформация.Поле5 КАК НасПункт,
КонтактнаяИнформация.Поле6 КАК Улица,
КонтактнаяИнформация.Поле7 КАК НомерДОма,
КонтактнаяИнформация.Поле8 КАК Корпус,
КонтактнаяИнформация.Поле9 КАК Квартира,
СотрудникиОрганизаций.Физлицо.Пол КАК Пол,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
ПОДСТРОКА(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан, 0, 200) КАК ДокументКемВыдан,
ГражданствоФизЛицСрезПоследних.Страна,
СотрудникиОрганизаций.Наименование,
СотрудникиОрганизаций.Физлицо.ДатаРождения,
СотрудникиОрганизаций.Физлицо.МестоРождения
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформация.Объект
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних КАК ГражданствоФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ГражданствоФизЛицСрезПоследних.ФизЛицо
ГДЕ
СотрудникиОрганизаций.ЭтоГруппа = ЛОЖЬ
И СотрудникиОрганизаций.Актуальность = ИСТИНА
И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
УПОРЯДОЧИТЬ ПО
СотрудникиОрганизаций.Наименование
Показать
Вроде так сработало как нужно:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ФИОФизЛицСрезПоследних.Фамилия,
ФИОФизЛицСрезПоследних.Имя,
ФИОФизЛицСрезПоследних.Отчество,
КонтактнаяИнформация.Поле1 КАК Индекс,
КонтактнаяИнформация.Поле2 КАК Регион,
КонтактнаяИнформация.Поле3 КАК Район,
КонтактнаяИнформация.Поле4 КАК Город,
КонтактнаяИнформация.Поле5 КАК НасПункт,
КонтактнаяИнформация.Поле6 КАК Улица,
КонтактнаяИнформация.Поле7 КАК НомерДОма,
КонтактнаяИнформация.Поле8 КАК Корпус,
КонтактнаяИнформация.Поле9 КАК Квартира,
СотрудникиОрганизаций.Физлицо.Пол КАК Пол,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
ПОДСТРОКА(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан, 0, 200) КАК ДокументКемВыдан,
ГражданствоФизЛицСрезПоследних.Страна,
СотрудникиОрганизаций.Наименование,
СотрудникиОрганизаций.Физлицо.ДатаРождения,
СотрудникиОрганизаций.Физлицо.МестоРождения
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформация.Объект
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних КАК ГражданствоФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ГражданствоФизЛицСрезПоследних.ФизЛицо
ГДЕ
СотрудникиОрганизаций.ЭтоГруппа = ЛОЖЬ
И СотрудникиОрганизаций.Актуальность = ИСТИНА
И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица)
УПОРЯДОЧИТЬ ПО
СотрудникиОрганизаций.Наименование
Показать
(7) Это и есть решение 1, ведь ты сделал отбор по другим измерением ("КонтактнаяИнформация.Вид"), но лучше было это сделать не в "Где", а в связи, вот так:
Так будет работать бистрее :)
ВЫБРАТЬ РАЗЛИЧНЫЕ
ФИОФизЛицСрезПоследних.Фамилия,
ФИОФизЛицСрезПоследних.Имя,
ФИОФизЛицСрезПоследних.Отчество,
КонтактнаяИнформация.Поле1 КАК Индекс,
КонтактнаяИнформация.Поле2 КАК Регион,
КонтактнаяИнформация.Поле3 КАК Район,
КонтактнаяИнформация.Поле4 КАК Город,
КонтактнаяИнформация.Поле5 КАК НасПункт,
КонтактнаяИнформация.Поле6 КАК Улица,
КонтактнаяИнформация.Поле7 КАК НомерДОма,
КонтактнаяИнформация.Поле8 КАК Корпус,
КонтактнаяИнформация.Поле9 КАК Квартира,
СотрудникиОрганизаций.Физлицо.Пол КАК Пол,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
ПОДСТРОКА(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан, 0, 200) КАК ДокументКемВыдан,
ГражданствоФизЛицСрезПоследних.Страна,
СотрудникиОрганизаций.Наименование,
СотрудникиОрганизаций.Физлицо.ДатаРождения,
СотрудникиОрганизаций.Физлицо.МестоРождения
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформация.Объект
И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК
ПаспортныеДанныеФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних КАК ГражданствоФизЛицСрезПоследних
ПО СотрудникиОрганизаций.Физлицо = ГражданствоФизЛицСрезПоследних.ФизЛицо
ГДЕ
СотрудникиОрганизаций.ЭтоГруппа = ЛОЖЬ
И СотрудникиОрганизаций.Актуальность = ИСТИНА
И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
УПОРЯДОЧИТЬ ПО
СотрудникиОрганизаций.Наименование
ПоказатьТак будет работать бистрее :)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот