Форма документа "Ведомость в банк" - в чем может быть причина зловредной ошибки

1. Туки Туки 52 01.03.19 03:45 Сейчас в теме
Всем привет! Вопрос к знатокам УФ и дебрям кода ЗУП 3.1
Есть такая крайне неприятная ошибка, исправлять которую кажется не торопятся:

Ошибка 00110944

Код ошибки: 00110944
Код(ы) обращения: SW1293406 SW1315699 SW1321407
Статус: Не указан Зарегистрирована: 03.07.2018
Описание:

Если открыто два документа-ведомости на выплату, то при заполнении одного из них непроизвольно может перезаполняться и второй другими данными.

Способ обхода:

Перед заполнением ведомости закрывать другие открытые ведомости.
Показать


Т.е., например у вас есть ведомость, в которую вы подбирали некоторый список сотрудников, штук 100, и есть вторая ведомость, где происходит выплата одному человеку. И в момент заполнения второй ведомости ею затирается первая О_О.
Конечно есть способ обхода, но периодически казусы все равно случаются, да и это не совсем удобно. Возникло желание исправить это самостоятельно, но нет никаких идей, почему это происходит - в коде в процедуре заполнения ведомости передается параметром форма и объект, как туда влезает "другая форма" и "другой объект"? :)

Процедура ВедомостьЗаполнитьНаСервере(Форма) Экспорт
	
	ТекущийОбъект = Форма.РеквизитФормыВЗначение("Объект");
	
	Если ТекущийОбъект.МожноЗаполнитьЗарплату() Тогда
		ТекущийОбъект.ЗаполнитьЗарплату();
	КонецЕсли;	
	
	Форма.ОбработатьСообщенияПользователю();
	
	Форма.ЗначениеВРеквизитФормы(ТекущийОбъект, "Объект");
	
	Форма.ПриПолученииДанныхНаСервере(ТекущийОбъект);	
	
КонецПроцедуры
Показать


Причем как всегда не получается воспроизвести эту проблему "специально", что делает невозможным отладку :( Кто-нибудь с таким сталкивался и на что обратить внимание для поиска проблемы? Буду очень благодарен любым идеем, может натолкнет на верный путь :)
Найденные решения
9. Туки Туки 52 11.03.19 06:31 Сейчас в теме
(7) Написал небольшое расширение для исправления, вроде работает..
исправлен ОМ ВедомостьНаВыплатуЗарплатыКлиентСерверРасширенный и ВедомостьНаВыплатуЗарплатыКлиентРасширенный
и исправлены обработки оповещения в форме ВедомостьНаВыплатуЗарплатыВБанк и ВедомостьНаВыплатуЗарплатыВКассу

В них везде ЭтотОбъект заменено на Источник, но не очень честно говоря мне нравится такой костыль..
Может есть у кого идеи, как сделать лучше?
Прикрепленные файлы:
Испр00110944.cfe
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. oleg-x 22 01.03.19 09:26 Сейчас в теме
(1) А вы без отладки смогли воспроизвести ошибку?
Видели своими глазами, как у пользователей возникала такая ошибка?
P.S. просто иногда пользователи могут творить такое, а потом говорят, я ничего не делал.
3. Туки Туки 52 01.03.19 10:52 Сейчас в теме
(2) Да, это происходило на моих глазах, причем несколько раз, я тогда знатно прифигел - что вообще произошло, а потом на багборде попалась эта ошибка на глаза
Про пользователей вкурсе да "мы ничего не делали, оно само", здесь к счастью с ЗУП работают ответственные и я бы даже сказал прошаренные
P/S Удалось воспроизвести ошибку, нужно выбрать ведомость на выплату зарплаты, ее открытой, затем открыть межрасчет, у меня конкретно была ведомость на выплату отпусков и заполнить всеми по вот этой гиперссылке http://prntscr.com/mrp7mt тогда первая ведомость затирается
6. Туки Туки 52 05.03.19 12:23 Сейчас в теме
(2) (4) Я нашел причину! Форма выбора вызывает метод оповестить,
&НаКлиенте
Процедура ВыбратьВыполнить(Команда)
	
	ВыбранныеДокументы = Новый СписокЗначений;
	Для Каждого ЭлементСпискаДокументов Из СписокДокументов Цикл
		Если ЭлементСпискаДокументов.Пометка Тогда
			ВыбранныеДокументы.Добавить(ЭлементСпискаДокументов.Значение);
		КонецЕсли	
	КонецЦикла;	
	
	Оповестить(
		ВедомостьНаВыплатуЗарплатыКлиентРасширенный.ИмяСобытияВыбораДокументовОснованийВедомости(), 
		ВыбранныеДокументы, 
		ЭтаФорма);
	
	Закрыть();
	
КонецПроцедуры
Показать

и дальше в обработке оповещения в переменной "ЭтотОбъект"
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	ВедомостьНаВыплатуЗарплатыКлиентРасширенный.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецПроцедуры

передается не так ведомость, из которой мы нажали заполнить в форме подбора документов-отпусков, а та, которая была открыта в другой вкладке(хотя в переменной источник при этом содержится правильная ведомость), на скринах это ни в чем не виноватая ведомость в кассу. И дальше все манипуляции происходят с этой ведомостью в кассу
Прикрепленные файлы:
7. user_2010 965 05.03.19 12:25 Сейчас в теме
(6) а исправить это получилось?
8. Туки Туки 52 05.03.19 15:22 Сейчас в теме
(7) нет, пока что раздумываю как исправить так, чтобы еще больше не накосячить чем они
9. Туки Туки 52 11.03.19 06:31 Сейчас в теме
(7) Написал небольшое расширение для исправления, вроде работает..
исправлен ОМ ВедомостьНаВыплатуЗарплатыКлиентСерверРасширенный и ВедомостьНаВыплатуЗарплатыКлиентРасширенный
и исправлены обработки оповещения в форме ВедомостьНаВыплатуЗарплатыВБанк и ВедомостьНаВыплатуЗарплатыВКассу

В них везде ЭтотОбъект заменено на Источник, но не очень честно говоря мне нравится такой костыль..
Может есть у кого идеи, как сделать лучше?
Прикрепленные файлы:
Испр00110944.cfe
10. user_2010 965 11.03.19 19:26 Сейчас в теме
4. user_2010 965 01.03.19 21:47 Сейчас в теме
Два года назад тоже с чем-то подобным сталкивались.... даже не помню вылечили ли..... рекомендовали закрывать ведомости... если вспомню что-нибудь - напишу...
Туки Туки; +1 Ответить
5. Туки Туки 52 05.03.19 03:02 Сейчас в теме
Кажется что-то не так с обработкой оповещения, такое ощущение что оно вызывается повторно для другого открытого документа.. Буду искать дальше
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот