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