Зависает при вводе сотрудника в документах 3.1.5 и выше

1. lulufa 15.04.18 12:00 Сейчас в теме
В релизе 3.1.5.171 ЗКГУ (платформа 8.3.10.2639) при вводе ФИО сотрудника в строку, например, в документе "Совмещение должностей" на первой букве зависает на приличное время. Также в других документах. Это у всех так? Пробовали новые платформы,чистку кэша,тестирование и исправление. Ничего ситуацию не меняет. В 3.1.6.6 такая же история. Замер произв-ти при набирании фио сотрудника в файле "Замер производительности" (прикреплен).
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lulufa 15.04.18 12:55 Сейчас в теме
Пока заменили ОбработкаПолученияПредставленияСотрудника на старую (немного побыстрее стало):

Процедура ОбработкаПолученияПредставленияСотрудника(Данные, Представление, СтандартнаяОбработка) Экспорт

ПравилоФормированияПредставления = ПараметрыСеанса.ПравилоФормированияПредставленияЭлементовСправочникаСотрудни­ки;
Если ЗначениеЗаполнено(ПравилоФормированияПредставления)
И ПравилоФормированияПредставления <> Перечисления.ВариантыПравилФормированияПредставленияЭлементовСправочникаС­отрудники.ФамилияИмяОтчествоДополнение Тогда

УстановитьПривилегированныйРежим(Истина);

ДанныеДляФормированияПредставления = Новый Структура;
ДанныеДляФормированияПредставления.Вставить("ПравилоФормированияПредставления", ПравилоФормированияПредставления);

Если ЗначениеЗаполнено(Данные.ФизическоеЛицо)
И ПравилоФормированияПредставления = Перечисления.ВариантыПравилФормированияПредставленияЭлементовСправочникаС­отрудники.ФамилияИОДополнение Тогда

ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Данные.ФизическоеЛицо, "ФИО,Фамилия,Имя,Отчество,УточнениеНаименования");
ФИО = Новый Структура("Фамилия,Имя,Отчество");
ЗаполнитьЗначенияСвойств(ФИО, ЗначенияРеквизитов);

ДанныеДляФормированияПредставления.Вставить("ФИО", ФИО);
ДанныеДляФормированияПредставления.Вставить("ФИОПолные", ЗначенияРеквизитов.ФИО);
ДанныеДляФормированияПредставления.Вставить("УточнениеНаименованияФизическогоЛица", ЗначенияРеквизитов.УточнениеНаименования);
ДанныеДляФормированияПредставления.Вставить("УточнениеНаименованияСотрудника", Данные.УточнениеНаименования);

Представление = КадровыйУчетВнутреннийКлиентСервер.ПредставлениеЭлементаСправочникаСотрудники(ДанныеДляФормированияПредставления);

Иначе

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Сотрудник", Данные.Ссылка);
Запрос.УстановитьПараметр("ФизическоеЛицо", Данные.ФизическоеЛицо);

Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК Справочник.ФизическиеЛица).ФИО КАК ФИОПолные,
| ВЫРАЗИТЬ(ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК Справочник.ФизическиеЛица).Фамилия КАК Фамилия,
| ВЫРАЗИТЬ(ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК Справочник.ФизическиеЛица).Имя КАК Имя,
| ВЫРАЗИТЬ(ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК Справочник.ФизическиеЛица).Отчество КАК Отчество,
| ВЫРАЗИТЬ(ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК Справочник.ФизическиеЛица).УточнениеНаименования КАК УточнениеНаименования,
| ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения,
| ТекущиеКадровыеДанныеСотрудников.ТекущийВидЗанятости КАК ВидЗанятости,
| ТекущиеКадровыеДанныеСотрудников.ТекущаяОрганизация КАК Организация
|ИЗ
| РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
|ГДЕ
| ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо = &ФизическоеЛицо
| И ТекущиеКадровыеДанныеСотрудников.Сотрудник = &Сотрудник";

Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();

ФИО = Новый Структура("Фамилия,Имя,Отчество");
ЗаполнитьЗначенияСвойств(ФИО, Выборка);

ДанныеДляФормированияПредставления.Вставить("ФИО", ФИО);
ДанныеДляФормированияПредставления.Вставить("ФИОПолные", ?(ЗначениеЗаполнено(Выборка.ФИОПолные), Выборка.ФИОПолные, Данные.Наименование));
ДанныеДляФормированияПредставления.Вставить("УточнениеНаименованияФизическогоЛица", Выборка.УточнениеНаименования);
ДанныеДляФормированияПредставления.Вставить("УточнениеНаименованияСотрудника", Данные.УточнениеНаименования);
ДанныеДляФормированияПредставления.Вставить("Организация", Выборка.Организация);
ДанныеДляФормированияПредставления.Вставить("ВидЗанятости", Выборка.ВидЗанятости);
ДанныеДляФормированияПредставления.Вставить("ДатаУвольнения", Выборка.ДатаУвольнения);

Представление = КадровыйУчетВнутреннийКлиентСервер.ПредставлениеЭлементаСправочникаСотрудники(ДанныеДляФормированияПредставления);

КонецЕсли;

Если Не ЗначениеЗаполнено(Представление) Тогда
Представление = Данные.Наименование;
КонецЕсли;

СтандартнаяОбработка = Ложь;

КонецЕсли;

КонецПроцедуры
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот