Медленная запись в регистр расчета

1. sidsukana 18.09.14 12:04 Сейчас в теме
Добрый день! Столкнулись с проблемой - в документе "Начисление зарплаты сотрудникам организаций", когда выбираешь сотрудника подбором, заполняешь автоматически или делаешь расчет зарплаты, в коде создается проверочный набор записей для регистра расчета "Основные начисления сотрудников организаций", который записывается в него, а потом удаляется. Так вот когда происходит запись - платформа висит буквально минут по 5, а то и больше. И не важно по одному человеку делается расчет или по 100. Не ужели это баг платформы? Может кто сталкивался и посоветует решение?

Платформа 8.3.5 1088 Конфигурация УПП 1.3.54.2, клиент-серверный варинт. Сервер базы на Postgres.

Пример кода на участке которого платформа зависает на несколько минут:
Если ВидОперации <> Перечисления.ВидыОперацийНачислениеЗарплатыРаботникамОрганизаций.РасчетНДФЛ Тогда
			
			НачатьТранзакцию();
			
			НаборЗаписейДляПроверки.ОбменДанными.Загрузка = Истина;
// !!! ТУТ НЕ ОЧЕНЬ ДЛИТЕЛЬНОЕ ЗАВИСАНИЕ !!!
			НаборЗаписейДляПроверки.Записать(Истина, Ложь, Истина, Ложь);
			
			ЗапросПроверки = Новый Запрос(
			"ВЫБРАТЬ 
			|	Начисления.Сотрудник,
			|	Начисления.ВидРасчета,
			|	Начисления.ДатаНачала,
			|	Начисления.ДатаОкончания,
			|	Начисления.НомерСтроки
			|ПОМЕСТИТЬ ВТНачисления
			|ИЗ &парамНачисления КАК Начисления
			|ИНДЕКСИРОВАТЬ ПО Сотрудник, ВидРасчета;
			|
			|ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	Начисления.НомерСтроки КАК НомерСтроки
			|ИЗ
			|	РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизации
			|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(Регистратор = &парамСсылка) КАК ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДейс­твия
			|		ПО ОсновныеНачисленияРаботниковОрганизации.НомерСтроки = ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДейс­твия.НомерСтроки
			|			И ОсновныеНачисленияРаботниковОрганизации.Регистратор = ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДейс­твия.Регистратор
			|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНачисления КАК Начисления
			|		ПО 	(Начисления.Сотрудник = ОсновныеНачисленияРаботниковОрганизации.Сотрудник)
			|			И (Начисления.ВидРасчета = ОсновныеНачисленияРаботниковОрганизации.ВидРасчета)
			|			И (Начисления.ДатаНачала = ОсновныеНачисленияРаботниковОрганизации.ПериодДействияНачало)
			|			И (КОНЕЦПЕРИОДА(Начисления.ДатаОкончания, День) = КОНЕЦПЕРИОДА(ОсновныеНачисленияРаботниковОрганизации.ПериодДействияКонец, День))
			|ГДЕ
			|	ОсновныеНачисленияРаботниковОрганизации.Регистратор = &парамСсылка
			|	И ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДейс­твия.Регистратор ЕСТЬ NULL 
			|
			|УПОРЯДОЧИТЬ ПО
			|	НомерСтроки УБЫВ");

			
			ЗапросПроверки.УстановитьПараметр("парамСсылка", СcылкаОбъекта);
			ЗапросПроверки.УстановитьПараметр("парамНачисления", Начисления.Выгрузить());
			СтрокиКУдалению = ЗапросПроверки.Выполнить().Выгрузить();
			// удалим проверочный набор записей
			НаборЗаписейДляПроверки.Очистить();
// !!! ТУТ ДЛИТЕЛЬНОЕ ЗАВИСАНИЕ !!!
			НаборЗаписейДляПроверки.Записать(Истина, Ложь, Истина, Ложь);
			
			ЗафиксироватьТранзакцию();
			
			Для Каждого СтрокаТЗ Из СтрокиКУдалению Цикл
				Начисления.Удалить(СтрокаТЗ.НомерСтроки - 1);
			КонецЦикла;
			
		КонецЕсли;
Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1474 18.09.14 12:46 Сейчас в теме
(1) sidsukana, если платформа виснет есть простое решение. Перед тем как нажать кнопку по которой все виснет в конфигураторе нажми замер производительности. А теперь жми кнопку зависания 1С и когда надоесть ждать в конфигураторе отожми кнопку замер производительности. Там будет ясно почему 1С зависает, удачи.
3. sidsukana 18.09.14 12:56 Сейчас в теме
4. Xershi 1474 18.09.14 13:24 Сейчас в теме
(3) sidsukana, теперь лезь в отладчик и смотри что не так с этой строкой.
5. sidsukana 18.09.14 13:28 Сейчас в теме
Что значит заходи в отладчик? Это функция платформы. Я в нее провалиться не могу. Может я чего-то не знаю о том как просмотреть что происходит внутри системных функций?
6. Xershi 1474 18.09.14 13:33 Сейчас в теме
(5) sidsukana, возможно это баг, возможно это глюк ПО на котором стоит. Отладчик это такая штука как ставить точку останова и когда происходит эжто событие включается особый режим Отладка. В котором проверяются функции, процедуры и прочее. Если это баг проверь баг трекер 1С.
7. sidsukana 18.09.14 13:51 Сейчас в теме
Ну так я и скинул скриншот с режима отладки :) В том то и дело что ничего нет, единственый пост от 2004 года нашел.
8. Xershi 1474 18.09.14 13:53 Сейчас в теме
(7) sidsukana, так это понятно, вопрос теперь что на входе, так что если гугл ничего не дал а баг трекер 1С пуст копать конфу на ошибку через анализ данных.
9. sidsukana 18.09.14 13:56 Сейчас в теме
Посоветовали Postgre обновить. Отпишусь если поможет.
10. Evilgrym 191 09.12.15 22:25 Сейчас в теме
не отписался...

Имею ту же проблему и отсутствие решения...
11. WellMaster 104 04.08.16 09:25 Сейчас в теме
Была такая проблема с postgre на линуксе + сервер 1с на линуксе. Версия платформы была 8.3.6.

Поставили 8.3.8, стало работать быстрее.

Проблема проявлялась при подборе сотрудника в документ начисление зарплаты. При этом был пересчет начислений и долго висело именно на той строчке, что озвучена в этой теме.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)