Добрый день! Столкнулись с проблемой - в документе "Начисление зарплаты сотрудникам организаций", когда выбираешь сотрудника подбором, заполняешь автоматически или делаешь расчет зарплаты, в коде создается проверочный набор записей для регистра расчета "Основные начисления сотрудников организаций", который записывается в него, а потом удаляется. Так вот когда происходит запись - платформа висит буквально минут по 5, а то и больше. И не важно по одному человеку делается расчет или по 100. Не ужели это баг платформы? Может кто сталкивался и посоветует решение?
Платформа 8.3.5 1088 Конфигурация УПП 1.3.54.2, клиент-серверный варинт. Сервер базы на Postgres.
Пример кода на участке которого платформа зависает на несколько минут:
Платформа 8.3.5 1088 Конфигурация УПП 1.3.54.2, клиент-серверный варинт. Сервер базы на Postgres.
Пример кода на участке которого платформа зависает на несколько минут:
Если ВидОперации <> Перечисления.ВидыОперацийНачислениеЗарплатыРаботникамОрганизаций.РасчетНДФЛ Тогда
НачатьТранзакцию();
НаборЗаписейДляПроверки.ОбменДанными.Загрузка = Истина;
// !!! ТУТ НЕ ОЧЕНЬ ДЛИТЕЛЬНОЕ ЗАВИСАНИЕ !!!
НаборЗаписейДляПроверки.Записать(Истина, Ложь, Истина, Ложь);
ЗапросПроверки = Новый Запрос(
"ВЫБРАТЬ
| Начисления.Сотрудник,
| Начисления.ВидРасчета,
| Начисления.ДатаНачала,
| Начисления.ДатаОкончания,
| Начисления.НомерСтроки
|ПОМЕСТИТЬ ВТНачисления
|ИЗ &парамНачисления КАК Начисления
|ИНДЕКСИРОВАТЬ ПО Сотрудник, ВидРасчета;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Начисления.НомерСтроки КАК НомерСтроки
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизации
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(Регистратор = &парамСсылка) КАК ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия
| ПО ОсновныеНачисленияРаботниковОрганизации.НомерСтроки = ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия.НомерСтроки
| И ОсновныеНачисленияРаботниковОрганизации.Регистратор = ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия.Регистратор
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНачисления КАК Начисления
| ПО (Начисления.Сотрудник = ОсновныеНачисленияРаботниковОрганизации.Сотрудник)
| И (Начисления.ВидРасчета = ОсновныеНачисленияРаботниковОрганизации.ВидРасчета)
| И (Начисления.ДатаНачала = ОсновныеНачисленияРаботниковОрганизации.ПериодДействияНачало)
| И (КОНЕЦПЕРИОДА(Начисления.ДатаОкончания, День) = КОНЕЦПЕРИОДА(ОсновныеНачисленияРаботниковОрганизации.ПериодДействияКонец, День))
|ГДЕ
| ОсновныеНачисленияРаботниковОрганизации.Регистратор = &парамСсылка
| И ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия.Регистратор ЕСТЬ NULL
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки УБЫВ");
ЗапросПроверки.УстановитьПараметр("парамСсылка", СcылкаОбъекта);
ЗапросПроверки.УстановитьПараметр("парамНачисления", Начисления.Выгрузить());
СтрокиКУдалению = ЗапросПроверки.Выполнить().Выгрузить();
// удалим проверочный набор записей
НаборЗаписейДляПроверки.Очистить();
// !!! ТУТ ДЛИТЕЛЬНОЕ ЗАВИСАНИЕ !!!
НаборЗаписейДляПроверки.Записать(Истина, Ложь, Истина, Ложь);
ЗафиксироватьТранзакцию();
Для Каждого СтрокаТЗ Из СтрокиКУдалению Цикл
Начисления.Удалить(СтрокаТЗ.НомерСтроки - 1);
КонецЦикла;
КонецЕсли;
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) sidsukana, если платформа виснет есть простое решение. Перед тем как нажать кнопку по которой все виснет в конфигураторе нажми замер производительности. А теперь жми кнопку зависания 1С и когда надоесть ждать в конфигураторе отожми кнопку замер производительности. Там будет ясно почему 1С зависает, удачи.
(5) sidsukana, возможно это баг, возможно это глюк ПО на котором стоит. Отладчик это такая штука как ставить точку останова и когда происходит эжто событие включается особый режим Отладка. В котором проверяются функции, процедуры и прочее. Если это баг проверь баг трекер 1С.
Была такая проблема с postgre на линуксе + сервер 1с на линуксе. Версия платформы была 8.3.6.
Поставили 8.3.8, стало работать быстрее.
Проблема проявлялась при подборе сотрудника в документ начисление зарплаты. При этом был пересчет начислений и долго висело именно на той строчке, что озвучена в этой теме.
Поставили 8.3.8, стало работать быстрее.
Проблема проявлялась при подборе сотрудника в документ начисление зарплаты. При этом был пересчет начислений и долго висело именно на той строчке, что озвучена в этой теме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот