Подбор сотрудников подчиненных подразделений по вышестоящему.
Добрый день, в зуп 3.1, нужно подбирать сотрудников в документы разовое начисление и в ведомость в кассу по подразделению, которое имеет 8 подчиненных подразделений. Но если выбрать его никто не подбирается, выбирать подчиненные подразделения - все попадают, но это придется 8 раз подбирать, это так и должно быть или можно как-то обойти?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) речь о 3.1.8 и новом механизме отбора по подразделениям для которого "понатыкали" поля в формы списков и формы выбора?
если да, то я раскопал в чем суть дела и "воткнул" в расширении то, что "забыли" разработчики.
подробности все лень жевать, покажу часть кода в расширении который одним махом решает
неполадки отбора в иерархии подразделений во всех типовых формах
по комментариям и поиску к типовых методах можно прийти к верным выводам и результатам, успехов
если да, то я раскопал в чем суть дела и "воткнул" в расширении то, что "забыли" разработчики.
подробности все лень жевать, покажу часть кода в расширении который одним махом решает
неполадки отбора в иерархии подразделений во всех типовых формах
....
Если мСтрокиКритерия.Количество() Тогда
СтрокаКритерия = мСтрокиКритерия[0]; // Это строка в памяти, т.е. все изменения значений в колонках попадут в реквизит формы (таблицу значений)
// Установка признака ИЕРАРХИИ это важнейший признак корректности отбора. По состоянию на версию ЗУП 3.1.8.185 он не
// задействован(всегда сброшен), хотя если его установить, то модификация запросов списков типовыми механизмами происходит логически верно.
// см. ЗарплатаКадрыРасширенный.ИзменитьЗапросПриОтбореПоПодразделению()
Если НЕ СтрокаКритерия.ПараметрыМодификации.Иерархия.Значение Тогда
СтрокаКритерия.ПараметрыМодификации.Иерархия.Значение = Истина; // Установим признак модификации запроса для отбора подразделений в иерархии (по умолчанию сброшен)
КонецЕсли;
Для каждого тКолонка Из тзПараметрыКритерияОтбора.Колонки Цикл
тКолонкаИмя = тКолонка.Имя;
СтруктураПараметрыКритерияОтбораПодразделение.Вставить(тКолонкаИмя, ОбщегоНазначенияКлиентСервер.СкопироватьРекурсивно(СтрокаКритерия[тКолонкаИмя]));
КонецЦикла;
КонецЕсли;
....
Показатьпо комментариям и поиску к типовых методах можно прийти к верным выводам и результатам, успехов
(4) Использовал кусок вашего кода, кажется, что общие модули переписали. Вроде, работает
&Вместо("ОписаниеИзмененияПараметраОтбораДинамическогоСписка")
Функция опдр_ОписаниеИзмененияПараметраОтбораДинамическогоСписка(Форма, ИмяЭлемента)
Описание = ОписаниеИзмененияПараметраОтбора();
Строки = Форма.ПараметрыКритерияОтбора.НайтиСтроки(Новый Структура("ИмяЭлементаФормыПараметра", ИмяЭлемента));
// ++ Азов
Если Строки.Количество() Тогда
СтрокаКритерия = Строки[0]; // Это строка в памяти, т.е. все изменения значений в колонках попадут в реквизит формы (таблицу значений)
// Установка признака ИЕРАРХИИ это важнейший признак корректности отбора. По состоянию на версию ЗУП 3.1.8.185 он не
// задействован(всегда сброшен), хотя если его установить, то модификация запросов списков типовыми механизмами происходит логически верно.
// см. ЗарплатаКадрыРасширенный.ИзменитьЗапросПриОтбореПоПодразделению()
Если НЕ СтрокаКритерия.ПараметрыМодификации.Иерархия.Значение Тогда
СтрокаКритерия.ПараметрыМодификации.Иерархия.Значение = Истина; // Установим признак модификации запроса для отбора подразделений в иерархии (по умолчанию сброшен)
КонецЕсли;
//Для каждого тКолонка Из Форма.ПараметрыКритерияОтбора.Колонки Цикл
// тКолонкаИмя = тКолонка.Имя;
// СтруктураПараметрыКритерияОтбораПодразделение.Вставить(тКолонкаИмя, ОбщегоНазначенияКлиентСервер.СкопироватьРекурсивно(СтрокаКритерия[тКолонкаИмя]));
//КонецЦикла;
КонецЕсли;
// --
&Вместо("ОписаниеИзмененияПараметраОтбораДинамическогоСписка")
Функция опдр_ОписаниеИзмененияПараметраОтбораДинамическогоСписка(Форма, ИмяЭлемента)
Описание = ОписаниеИзмененияПараметраОтбора();
Строки = Форма.ПараметрыКритерияОтбора.НайтиСтроки(Новый Структура("ИмяЭлементаФормыПараметра", ИмяЭлемента));
// ++ Азов
Если Строки.Количество() Тогда
СтрокаКритерия = Строки[0]; // Это строка в памяти, т.е. все изменения значений в колонках попадут в реквизит формы (таблицу значений)
// Установка признака ИЕРАРХИИ это важнейший признак корректности отбора. По состоянию на версию ЗУП 3.1.8.185 он не
// задействован(всегда сброшен), хотя если его установить, то модификация запросов списков типовыми механизмами происходит логически верно.
// см. ЗарплатаКадрыРасширенный.ИзменитьЗапросПриОтбореПоПодразделению()
Если НЕ СтрокаКритерия.ПараметрыМодификации.Иерархия.Значение Тогда
СтрокаКритерия.ПараметрыМодификации.Иерархия.Значение = Истина; // Установим признак модификации запроса для отбора подразделений в иерархии (по умолчанию сброшен)
КонецЕсли;
//Для каждого тКолонка Из Форма.ПараметрыКритерияОтбора.Колонки Цикл
// тКолонкаИмя = тКолонка.Имя;
// СтруктураПараметрыКритерияОтбораПодразделение.Вставить(тКолонкаИмя, ОбщегоНазначенияКлиентСервер.СкопироватьРекурсивно(СтрокаКритерия[тКолонкаИмя]));
//КонецЦикла;
КонецЕсли;
// --
Тоже самое случилось с нашей свежей базой (предприятие заработало в 2019 году).
Расчет в январе норм был, ну а с февраля началось... :)
Долго копали, но разобрались.
Включили константу "Выполнять расчет зарплаты без оптимизации"
По умолчанию он выключен.
Казалось бы причем тут расчет? Но факт в том что запросы выборки заработали.
Расчет в январе норм был, ну а с февраля началось... :)
Долго копали, но разобрались.
Включили константу "Выполнять расчет зарплаты без оптимизации"
По умолчанию он выключен.
Казалось бы причем тут расчет? Но факт в том что запросы выборки заработали.
(8) я думаю, что речь не о том, что не исправили, а о том, что установку универсального отбора часто просят клиенты и каждая просьба это барыш.
Оказалось, что универсальный отбор по подразделениям можно добавить для любой формы списка, включая списки справочников физ-лиц, сотр-ов и естественно с формы списков всех документов и журналов.
в расширении я так и сделал, не ожидая когда разработчики закроют эту кормушку для франчей.
Оказалось, что универсальный отбор по подразделениям можно добавить для любой формы списка, включая списки справочников физ-лиц, сотр-ов и естественно с формы списков всех документов и журналов.
в расширении я так и сделал, не ожидая когда разработчики закроют эту кормушку для франчей.
(3)Указано все, сотрудники приняты в подразделения, бригада 1, бригада 2 и тд ,так 8 штук. У всех этих бригад (подразделений) указано вышестоящее подразделение "рабочая группа" И если я выбираю подразделение рабочая группа ,то никто не подбирается, ничего не заполняется, а если раскрываю дерево и перехожу в подчиненное, например бригада 1, то все подбирается.
На дворе 2024 год, на экране ЗУП 3.1.30.57
История все та же, даже интереснее. Два пользователя с одинаковыми правами (полными). Один видит сотрудников по вышестоящему подразделению, другой только по участкам. И в справочнике Сотрудники, и в подборе во всяких-разных документах.
Причем у меня самой неделю-другую назад были видны в справочнике Сотрудники работники по вышестоящему подразделению, а сейчас - только по участку. Ничего в настройках вроде не меняла.
Может, кто-нибудь нашел решение этой задачки?
История все та же, даже интереснее. Два пользователя с одинаковыми правами (полными). Один видит сотрудников по вышестоящему подразделению, другой только по участкам. И в справочнике Сотрудники, и в подборе во всяких-разных документах.
Причем у меня самой неделю-другую назад были видны в справочнике Сотрудники работники по вышестоящему подразделению, а сейчас - только по участку. Ничего в настройках вроде не меняла.
Может, кто-нибудь нашел решение этой задачки?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот