Всем привет! Вопрос к знатокам УФ и дебрям кода ЗУП 3.1
Есть такая крайне неприятная ошибка, исправлять которую кажется не торопятся:
Ошибка 00110944
Код ошибки: 00110944
Код(ы) обращения: SW1293406 SW1315699 SW1321407
Статус: Не указан Зарегистрирована: 03.07.2018
Описание:
Если открыто два документа-ведомости на выплату, то при заполнении одного из них непроизвольно может перезаполняться и второй другими данными.
Способ обхода:
Перед заполнением ведомости закрывать другие открытые ведомости.
Показать
Т.е., например у вас есть ведомость, в которую вы подбирали некоторый список сотрудников, штук 100, и есть вторая ведомость, где происходит выплата одному человеку. И в момент заполнения второй ведомости ею затирается первая О_О.
Конечно есть способ обхода, но периодически казусы все равно случаются, да и это не совсем удобно. Возникло желание исправить это самостоятельно, но нет никаких идей, почему это происходит - в коде в процедуре заполнения ведомости передается параметром форма и объект, как туда влезает "другая форма" и "другой объект"? :)
Процедура ВедомостьЗаполнитьНаСервере(Форма) Экспорт
ТекущийОбъект = Форма.РеквизитФормыВЗначение("Объект");
Если ТекущийОбъект.МожноЗаполнитьЗарплату() Тогда
ТекущийОбъект.ЗаполнитьЗарплату();
КонецЕсли;
Форма.ОбработатьСообщенияПользователю();
Форма.ЗначениеВРеквизитФормы(ТекущийОбъект, "Объект");
Форма.ПриПолученииДанныхНаСервере(ТекущийОбъект);
КонецПроцедуры
Показать
Причем как всегда не получается воспроизвести эту проблему "специально", что делает невозможным отладку :( Кто-нибудь с таким сталкивался и на что обратить внимание для поиска проблемы? Буду очень благодарен любым идеем, может натолкнет на верный путь :)
(7) Написал небольшое расширение для исправления, вроде работает..
исправлен ОМ ВедомостьНаВыплатуЗарплатыКлиентСерверРасширенный и ВедомостьНаВыплатуЗарплатыКлиентРасширенный
и исправлены обработки оповещения в форме ВедомостьНаВыплатуЗарплатыВБанк и ВедомостьНаВыплатуЗарплатыВКассу
В них везде ЭтотОбъект заменено на Источник, но не очень честно говоря мне нравится такой костыль..
Может есть у кого идеи, как сделать лучше?
(1) А вы без отладки смогли воспроизвести ошибку?
Видели своими глазами, как у пользователей возникала такая ошибка?
P.S. просто иногда пользователи могут творить такое, а потом говорят, я ничего не делал.
(2) Да, это происходило на моих глазах, причем несколько раз, я тогда знатно прифигел - что вообще произошло, а потом на багборде попалась эта ошибка на глаза
Про пользователей вкурсе да "мы ничего не делали, оно само", здесь к счастью с ЗУП работают ответственные и я бы даже сказал прошаренные
P/S Удалось воспроизвести ошибку, нужно выбрать ведомость на выплату зарплаты, ее открытой, затем открыть межрасчет, у меня конкретно была ведомость на выплату отпусков и заполнить всеми по вот этой гиперссылке http://prntscr.com/mrp7mt тогда первая ведомость затирается
(2) (4) Я нашел причину! Форма выбора вызывает метод оповестить,
&НаКлиенте
Процедура ВыбратьВыполнить(Команда)
ВыбранныеДокументы = Новый СписокЗначений;
Для Каждого ЭлементСпискаДокументов Из СписокДокументов Цикл
Если ЭлементСпискаДокументов.Пометка Тогда
ВыбранныеДокументы.Добавить(ЭлементСпискаДокументов.Значение);
КонецЕсли
КонецЦикла;
Оповестить(
ВедомостьНаВыплатуЗарплатыКлиентРасширенный.ИмяСобытияВыбораДокументовОснованийВедомости(),
ВыбранныеДокументы,
ЭтаФорма);
Закрыть();
КонецПроцедуры
Показать
и дальше в обработке оповещения в переменной "ЭтотОбъект"
передается не так ведомость, из которой мы нажали заполнить в форме подбора документов-отпусков, а та, которая была открыта в другой вкладке(хотя в переменной источник при этом содержится правильная ведомость), на скринах это ни в чем не виноватая ведомость в кассу. И дальше все манипуляции происходят с этой ведомостью в кассу
(7) Написал небольшое расширение для исправления, вроде работает..
исправлен ОМ ВедомостьНаВыплатуЗарплатыКлиентСерверРасширенный и ВедомостьНаВыплатуЗарплатыКлиентРасширенный
и исправлены обработки оповещения в форме ВедомостьНаВыплатуЗарплатыВБанк и ВедомостьНаВыплатуЗарплатыВКассу
В них везде ЭтотОбъект заменено на Источник, но не очень честно говоря мне нравится такой костыль..
Может есть у кого идеи, как сделать лучше?
Два года назад тоже с чем-то подобным сталкивались.... даже не помню вылечили ли..... рекомендовали закрывать ведомости... если вспомню что-нибудь - напишу...