Добрый день! Столкнулись с проблемой - в документе "Начисление зарплаты сотрудникам организаций", когда выбираешь сотрудника подбором, заполняешь автоматически или делаешь расчет зарплаты, в коде создается проверочный набор записей для регистра расчета "Основные начисления сотрудников организаций", который записывается в него, а потом удаляется. Так вот когда происходит запись - платформа висит буквально минут по 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С.
Ну так я и скинул скриншот с режима отладки :) В том то и дело что ничего нет, единственый пост от 2004 года нашел.
Была такая проблема с postgre на линуксе + сервер 1с на линуксе. Версия платформы была 8.3.6.
Поставили 8.3.8, стало работать быстрее.
Проблема проявлялась при подборе сотрудника в документ начисление зарплаты. При этом был пересчет начислений и долго висело именно на той строчке, что озвучена в этой теме.
Поставили 8.3.8, стало работать быстрее.
Проблема проявлялась при подборе сотрудника в документ начисление зарплаты. При этом был пересчет начислений и долго висело именно на той строчке, что озвучена в этой теме.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот