|
Ошибка блокировки объекта после использования метода ОткрытьФорму()
| ☑ |
0
ladalady21110
16.11.18
✎
14:45
|
Добрый день!
1С 8.3
Самопальный документ
Реквизит ИНН и установленная ему обработка выбора (по ИНН должен открываться список выбора контрагентов с таким ИНН)
&НаКлиенте
Процедура НСИКонтрагентыИННОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ПараметрыОтбора = Новый Структура("ИНН", ВыбранноеЗначение);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора);
ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("НСИКонтрагентыОписаниеОповещения", ЭтаФорма, Неопределено);
ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", ПараметрыФормы, ЭтаФорма, Истина, ВариантОткрытияОкна.ОтдельноеОкно,, ОписаниеОповещенияОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура НСИКонтрагентыОписаниеОповещения(РезультатЗакрытия, ДопПараметры) Экспорт
ТекущиеДанные = Элементы.НСИКонтрагенты.ТекущиеДанные;
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
Иначе
ТекущиеДанные.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийИзмененияНСИ.ИзменениеРеквизитовОбъекта");
ТекущиеДанные.СсылкаОснование = РезультатЗакрытия;
КонецЕсли;
КонецПроцедуры
Всё отрабатывает прекрасно.
Но есть одна провальная комбинация: Открыть(создать) документ -> тыкнуть в реквизит чтобы открылась форма выбора -> закрыть документ и открыть снова.
Всё, дальше документ записать нельзя и нельзя снова вызвать форму выбора.
Ошибка:
Как починить?(
|
|
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) ииииииии это неправильный ответ
|
|