![]() |
|
Быстродействие запроса в 1С ЗУП 2.5 | ☑ | ||
---|---|---|---|---|
0
inkvizitr
08.10.18
✎
17:00
|
Задача стоит в том, чтобы вывести поля по физическим лицам, само физ. лицо, паспортные данные и контактную информацию, отчет формируется очень долго, как его можно оптимизировать, чтобы он работал быстрее?
ВЫБРАТЬ ФизическиеЛица.Ссылка КАК ФИО, ФизическиеЛица.ДатаРождения, ФизическиеЛица.МестоРождения, ФизическиеЛица.ИНН, ФизическиеЛица.СтраховойНомерПФР ПОМЕСТИТЬ ВТ_ОбщееФизЛица ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица ГДЕ ФизическиеЛица.Родитель = &Родитель И ФизическиеЛица.ПометкаУдаления = ЛОЖЬ И ФизическиеЛица.ЭтоГруппа = ЛОЖЬ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид, ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия КАК СерияПаспорта, ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер КАК НомерПаспорта, ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи КАК ДатаВыдачи, ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК КемВыдан, ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения КАК КодПодразделения, ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства ПОМЕСТИТЬ ВТ_ОбщееПаспортныеДанные ИЗ ВТ_ОбщееФизЛица КАК ВТ_ОбщееФизЛица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних( , ФизЛицо В (ВЫБРАТЬ ВТ_ОбщееФизЛица.ФИО ИЗ ВТ_ОбщееФизЛица КАК ВТ_ОбщееФизЛица)) КАК ПаспортныеДанныеФизЛицСрезПоследних ПО ВТ_ОбщееФизЛица.ФИО = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КонтактнаяИнформация.Вид КАК АресИлиТелефон, МАКСИМУМ(ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 200)) КАК Представление ПОМЕСТИТЬ ВТ_КонтактнаяИнформация ИЗ ВТ_ОбщееФизЛица КАК ВТ_ОбщееФизЛица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО ВТ_ОбщееФизЛица.ФИО = КонтактнаяИнформация.Объект И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) И (КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресФизЛица)) СГРУППИРОВАТЬ ПО КонтактнаяИнформация.Вид ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КонтактнаяИнформация.Вид, МАКСИМУМ(ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 200)) ИЗ ВТ_ОбщееФизЛица КАК ВТ_ОбщееФизЛица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО ВТ_ОбщееФизЛица.ФИО = КонтактнаяИнформация.Объект И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) И (КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонФизЛица)) СГРУППИРОВАТЬ ПО КонтактнаяИнформация.Вид ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОбщееФизЛица.ФИО, ВТ_ОбщееФизЛица.ДатаРождения, ВТ_ОбщееФизЛица.МестоРождения, ВТ_ОбщееФизЛица.ИНН, ВТ_ОбщееФизЛица.СтраховойНомерПФР, ВТ_ОбщееПаспортныеДанные.ФизЛицо, ВТ_ОбщееПаспортныеДанные.ДокументВид, ВТ_ОбщееПаспортныеДанные.СерияПаспорта, ВТ_ОбщееПаспортныеДанные.НомерПаспорта, ВТ_ОбщееПаспортныеДанные.ДатаВыдачи, ВТ_ОбщееПаспортныеДанные.КемВыдан, ВТ_ОбщееПаспортныеДанные.КодПодразделения, ВТ_ОбщееПаспортныеДанные.ДатаРегистрацииПоМестуЖительства, ВТ_КонтактнаяИнформация.АресИлиТелефон, ВТ_КонтактнаяИнформация.Представление, СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение ИЗ ВТ_ОбщееФизЛица КАК ВТ_ОбщееФизЛица, РегистрСведений.СемейноеПоложениеФизЛиц.СрезПоследних( , ФизЛицо В (ВЫБРАТЬ ВТ_ОбщееФизЛица.ФИО ИЗ ВТ_ОбщееФизЛица КАК ВТ_ОбщееФизЛица)) КАК СемейноеПоложениеФизЛицСрезПоследних, ВТ_ОбщееПаспортныеДанные КАК ВТ_ОбщееПаспортныеДанные, ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация |
|||
1
Amra
08.10.18
✎
17:03
|
Зачем тебе данные по физикам, которые никогда не работали у вас, или которые были уволены при царе горохе?
|
|||
2
ILM
гуру
08.10.18
✎
17:05
|
Делай внутреннее соединение физлиц и регистров, нефиг в реестр передавать кучу физлиц.
|
|||
3
timurhv
08.10.18
✎
17:06
|
(0) Последний пакет - ад
|
|||
4
lodger
08.10.18
✎
17:07
|
(0) у вас последний пакет недописан.
|
|||
5
lodger
08.10.18
✎
17:07
|
(0) выбирать все по всем - признак хренового тз.
|
|||
6
inkvizitr
08.10.18
✎
17:09
|
(1) задача стоит пройтись по всем реквизитам физ лиц и проверить заполнены ли реквизиты, вот думаю как реализовать, да последний пакет действительно не дописан. извеняюсь
|
|||
7
lodger
08.10.18
✎
17:11
|
(6) у вас возможны ситуации, когда по физлицу данные на дату А заполнены, а на дату Б спустя N-времени уже не заполнены?
|
|||
8
lodger
08.10.18
✎
17:12
|
(7) если нет, тогда зачем по ним искать информацию каждый раз так, чтобы было важно быстродействие?
|
|||
9
dka80
08.10.18
✎
17:14
|
Выполнил твой запрос (кроме последнего недописанного) в базе из 1500 человек. Время выполнения - сотые секунды. Может проблема не запросе?
|
|||
10
lodger
08.10.18
✎
17:16
|
(0) самый скучный для субд запрос в этом пакете это контактная информация.
он сперва присоединит ко ВСЕМ ссылкам на физлица адреса, потом сгруппирует вокруг ссылки и сделает максимум, потом присоединит ко ВСЕМ ссылкам на физлица телефоны, потом потом сгруппирует вокруг ссылки и сделает максимум, потом объединит эти два колхоза. вот его точно можно оптимизировать. |
|||
11
inkvizitr
08.10.18
✎
17:17
|
(8) если вы про регистр сведений срез последних, то в моем случаи, если человек меняет фамилию, чтобы проверял по актуальной фамилии на последнею дату
|
|||
12
inkvizitr
08.10.18
✎
17:17
|
(9) Родителя указывал
|
|||
13
inkvizitr
08.10.18
✎
17:17
|
у тебя в родителе, 1500 человек
|
|||
14
youalex
08.10.18
✎
17:18
|
(3) +1
фулл джойн четырех таблиц. можно представить, что с базой происходит, если физиков порядочно. |
|||
15
dka80
08.10.18
✎
17:20
|
(9) не указывал. Убрал это условие
|
|||
16
dka80
08.10.18
✎
17:21
|
+15 а сейчас указал. Монописуально запрос выполняется мнгновенно
|
|||
17
inkvizitr
08.10.18
✎
17:22
|
(16) Действительно, убрал контактную информацию, стал работать на ура, буду думать, че делать с контактной информацией
|
|||
18
inkvizitr
08.10.18
✎
17:22
|
и переписал последний пакет
|
|||
19
youalex
08.10.18
✎
17:38
|
(17) в КИ группировка не нужна, т.к. ты цепляешь по ключу Объект/Вид/Тип
И объединение не нужно, просто в результирующем запросе этот РС левосоединяешь два раза (по тел. и адресу) и все. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |