![]() |
![]() |
![]() |
|
Ошибка блокировки объекта после использования метода ОткрытьФорму() | ☑ | ||
---|---|---|---|---|
0
ladalady21110
16.11.18
✎
14:45
|
Добрый день!
1С 8.3 Самопальный документ Реквизит ИНН и установленная ему обработка выбора (по ИНН должен открываться список выбора контрагентов с таким ИНН) &НаКлиенте Процедура НСИКонтрагентыИННОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) ПараметрыОтбора = Новый Структура("ИНН", ВыбранноеЗначение); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора); ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("НСИКонтрагентыОписаниеОповещения", ЭтаФорма, Неопределено); ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", ПараметрыФормы, ЭтаФорма, Истина, ВариантОткрытияОкна.ОтдельноеОкно,, ОписаниеОповещенияОЗакрытии); КонецПроцедуры &НаКлиенте Процедура НСИКонтрагентыОписаниеОповещения(РезультатЗакрытия, ДопПараметры) Экспорт ТекущиеДанные = Элементы.НСИКонтрагенты.ТекущиеДанные; Если РезультатЗакрытия = Неопределено Тогда Возврат; Иначе ТекущиеДанные.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийИзмененияНСИ.ИзменениеРеквизитовОбъекта"); ТекущиеДанные.СсылкаОснование = РезультатЗакрытия; КонецЕсли; КонецПроцедуры Всё отрабатывает прекрасно. Но есть одна провальная комбинация: Открыть(создать) документ -> тыкнуть в реквизит чтобы открылась форма выбора -> закрыть документ и открыть снова. Всё, дальше документ записать нельзя и нельзя снова вызвать форму выбора. Ошибка: https://yadi.sk/i/Aw_BomCWbXwb2Q Как починить?( |
|||
1
palsergeich
16.11.18
✎
14:46
|
(0) Почитай что такое Пессемистичная объектная блокировка - это оно
|
|||
2
Fragster
гуру
16.11.18
✎
15:42
|
у тебяв том документе, ОТКУДА открывается форма выбора есть где-то циклическая ссылка, которая не дает до конца форму закрыть
|
|||
3
DrWatson
16.11.18
✎
15:52
|
А когда документ закрывается, разве форма выбора справочника не должна сама закрыться? Вроде как владелец установлен.
Второй вариант - открывать с блокировкой владельца. |
|||
4
Fragster
гуру
16.11.18
✎
16:07
|
На самом деле тебе надо передавать в качестве владельца элемент формы, в вызываемой форме вызывать ОповеститьОВыборе и выкинуть описание оповещения о закрытии вообще
|
|||
5
Fragster
гуру
16.11.18
✎
16:09
|
ну и похоже, что на самом деле надо указать связь параметров выбора и все, никаких самопальных вызовов не нужно использовать.
|
|||
6
ladalady21110
16.11.18
✎
16:44
|
Итого проблема оказалась в ОписаниеОповещенияОЗакрытии.
В моем случае удалось перейти к виду: РезультатЗакрытия = ОткрытьФормуМодально("Справочник.Контрагенты.ФормаВыбора", ПараметрыФормы); |
|||
7
Fragster
гуру
16.11.18
✎
22:22
|
(6) ииииииии это неправильный ответ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |