Выкладываю эту обработку с тем поводом, чтобы мне подсказали как оптимизировать запрос к регСвед.КонтактнаяИнформация, который используется в данной обработке.
Проблема в том, что львиная доля времени (около 85%) используется при обращении к этому регСвед.КонтактнаяИнформация и получении сведений об адресеЮридическом (прописки) и адресеФактическом (проживании). Все мои попытки объединять, вкладывать и др. действия с запросом и запросами ни к чему не привели и с т.з. оптимизации оставляли желать лучшего. Подскажите.
Воо-о-оот…
Спасибо «СергейКа» за советы.
Вторая версия программы работает на порядок быстрее.
Третья версия программы работает по скорости аналогично второй версии, но всё в одном запросе.
Куда ещё проще то 🙂
(1) Проще некуда… согласен… но слишком долго и львиная доля уходит на получение адресов… вот и хочется узнать это я такой «тупой» или рег.Свед.КонтактнаяИнформация такой «долгий»…
воооот…
Мда, не удивительно что долго…
Запросы в циклах, да еще неоднократно…
Гм, а то что выборка из сотрудников организаций по физлицу — вообще ни в какие ворота … У нас по одному физлицу может быть до 5-6 сотрудников и(изредка больше). Представь себе, что эта выборка выведет?
А вообще, всю таблицу заполнить одним запросом — без особых проблем. Тебе его выложить?
(4) Спасибо! Буду рад помощи, особенно в части «заполнить одним запросом»… все мои попытки не увенчались успехом…
воот…
Куда? В комментарий многовато кажется будет 🙂
(6) почта: a-l-e-x-1964@yandex.ru
Уточни плиз, — в адресе убрать или адрес полностью такой? 🙂
(8) a-l-e-x-1964@yandex.ru
как есть вместе с «-»
воот…
Короче отправил и так и так :)))
В письме файл типовой консоли запросов Выплаты.sel.
Несколько малозначащих полей я не стал добавлять (типа код родителя группы), но их не сложно и добавить, заодно разберешься с запросом.
В запрос передается только массив документов выплат. Выходная таблица практически идентична твоей.
(10) Спасибо огромное… Получил…
(11)Хорошо.
На самом деле и этот запрос можно еще оптимизировать хорошо подумав 🙂
Предлагаю сделать это указав на следующие моменты:
1. Массив документов используется в отборах несколько раз. В итоге идет многократное обращение ко всем объектам конфигурации (док выплат). Что несколько замедляет запрос.
2. Несколько раз используется ЛЕВОЕ соединение к РаботникиОрганизаций.Сотрудники.ФизЛицо . Это тоже не есть гуд, хотя работает.
Удачи в оптимизации.
(10) Спасибо ещё раз… восхищён…
далее:
1. проблема: есть док.ЗПкВыплатеОрг в табличной части есть ФизЛицо. если в спр.Сотрудники есть несколько таких (а у нас встречается и до 5-7) то и запрос выводит столько же… …и у меня такое же было и я не смог от этого избавиться… ( это как раз к (4) сообщению)…
2. … и самое главное… это я «тупой! и мне надо тренироваться с запросами…
воо-о-оот…
(13) Бр-р-р…
1) В присланном мной запросе этой проблемы нет. Если внимательно всмотреться, то выборка идет из рег Работники организаций, где выбирается ОДНА запись по физлицу с максимальной датой на дату периода регистрации документа. Таблица «МаксДаты». Кстати, правильнее будет поправить условие связи в данной таблице с
РаботникиОрганизаций.Период <= ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата
на
КОНЕЦПЕРИОДА(РаботникиОрганизаций.Период, МЕСЯЦ) <= ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата
2) А кто сказал что ты «тупой»??? К такому построению запросов я пришел только через несколько месяцев практики и всяких сверок производительности. Зато теперь могу строить их за несколько минут 🙂
(13) и на будущее: получать должности и подразделения из справочника Сотрудники нельзя. Только из регистра.
(14) (15) Спасибо… учтём и будем тренироваться…
к 14 поправочка, правильно :
РаботникиОрганизаций.Период <= КОНЕЦПЕРИОДА(ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.ПериодРегистрации, МЕСЯЦ)
Вторая версия работает на порядок быстрее — спасибо «СергейКа»…
хотя и дальше можно оптимизировать… но ни как не удаётся избавиться от проблемы на ФизЛицо. если в спр.Сотрудники есть несколько таких (а у нас встречается и до 5-7) то и запрос выводит столько же… ( это как раз к (4) сообщению)…
но уже хорошо … воо-о-ооот…
А файл при вложении не перепутал? Почти полностью идентичен первому варианту кроме названия.
Не пойму как ты умудрился сделать «проблемы на ФизЛицо. если в спр.Сотрудники есть несколько таких».
(19) нет не перепутал…
…у меня и работает гОООраздо быстрее и это меня радует…
а, все твои советы обязательно учту…
… по поводу нескольких строк по спр.Сотруднику не знаю… так получается… и в твоём запросе то же… либо у меня что-то не так…
вооот….
Огромное спасибо за пример!!!!
А как есчо добавить строчку с номером лицевого счета сотрудника? кто может полсказать?
(22) под рукой нет ЗП или УПП если для вас ЭТО принципиально напишите мне в аську… номер аськи в «личныхданных»…
удачиВооот…