Задача 102.126643

Задача :102.126643

Краткое описание :
При создании нового документа "акт на списание МЦ из производства" у пользователей выдается сообщение что у совершенного другого документа есть проводки
Описание :
Акт на списание сырья
Что измененно :

При создании нового документа "акт на списание МЦ из производства" у пользователей выдается сообщение что у совершенного другого документа есть проводки.

Проявляется это так:
- У пользователей в настройках задан запрет на модификацию документов при наличии проводок.
- Пользователь нажимает F7 на вкладке "Список" окна "акты на списание МЦ из производства" (504 тип докумета).
- При этом ему выдается предупреждение: Что у документа "№5/ТПР 2.1.8" есть проводки.

Следует отметить что документ "№5/ТПР 2.1.8" действительно существует по нему действительно есть проводки.
Но это документ совершенно друг ого типа 629 из модуля управление кап. строительством.
После этого сообщения интерфейс переключается на вкладку "Документ".
Долю времени (менее секунды) на вкладке "документ" отображаются реквизиты этой чужой накладной.
После чего вкладка очищается и поля становятся доступными для ввода новой накладной.

Суть заключается в том, что выдача этого сообщения при вводе нового документа само по себе является ошибкой, сбивает с толку пользователей.

Покопавшись в отладчике на тестовой БД заказчика, выяснил следующее (см. снимки с экрана во вложении):
1) Начальное состояние после клавиши F7 попали в событие cmEdit
В окне переменных виден Nrec и номер новой накладной `067'.
По ходу сбросили все ограничения на таблицу KatSopr - ResetBouns.
Дошли до вызова iHndView.DeafaultEditWindow.

2) На втором снимке перешли в метод объекта контейнера, который переключает активную вкладку SetFormat

3) на третьем снимке видно, что в момент переключения вкладки сработало событие cmSetCurTable.
И уже в этом событии, в окне переменных видно, что позиция в таблице KatSopr поменялась.
Виден номер и nrec совершенно другой накладной.

4) продвигаясь дальше по коду события cmSetCurTable, все действия выполняются над совершено другой неладной, случайно оказавшейся в выборке (т.к. ограничения ранее были сняты).
В какой-то момент времени доходим до доходим до вызова oSDfuncs.CanModifyDocument.
Который и выдает указанное сообщение.

На мой взгляд, это серьёзная прикладная ошибка, которая может привести к случайной порче данных. И случайной пропаже накладных.

Требуется реализовать надежный (и защищенный от случайных модификаций документов) алгоритм ввода и корректировки производственных накладных.
Как измененно :

Доработано.

Название продукта Название компонента Тип Последняя версия Дата выхода
M_UPM_UPRES9.1.012.0
M_UPM_UPRES9.1.12.0