Имя: Пароль:
1C
 
Интересный вопрос по управляемым формам
0 Пип Пибип
 
18.06.15
17:30
Вечер добрый, господа


Вводная:
Есть 1С 8.3.5. Есть база БП 3.0
Есть внешняя обработка, которая открываться в данной базе. У данной внешней обработки есть основная форма обработки - "основная" форма.
Так же, у данной внешней обработки есть еще одна форма - "дополнительная"


Ситуация:
По нажатию на кнопку (кнопка связана с командой) в "основной" форме обработки -  вызывается и открывается "дополнительная" форма. Далее "дополнительная" форма закрывается.
Все. Обработчики "основной" формы более не работают. Вместо них выводится ошибка вида "Неизвестный идентификатор формы".


Нюанс:
И "основная" и "дополнительная" формы в своей работе делают серверные вызовы. Плюс, "основная" форма (перед вызовом "дополнительной") использует методы РеквизитФормыВЗначение, ЗначениеВРеквизитФормы


Внимание, вопрос:
Как обойти данную ошибку вида "Неизвестный идентификатор формы"? Необходимо оставить "основную" форму обработки работоспособной, после вывода "дополнительной" формы
1 Casey1984
 
18.06.15
17:34
Покажи как "вызывается и открывается "дополнительная" форма. Далее "дополнительная" форма закрывается."
2 KrabCore
 
18.06.15
17:34
Попробуй при вызове доп формы указать ей уникальный идентификатор и режим "Блокировать окно владельца".
у меня аналогичная ситуация в УНФ отрабатывает на отлично.
3 Господин ПЖ
 
18.06.15
17:34
телепаты в отпуске что там за г.внокод
4 fisher
 
18.06.15
17:59
Думаю, дополнительная форма у тебя тоже с установленным основным реквизитом и ты их умудрился как-то поссорить. Ну, типа как попытка редактирования одного и того же объекта из двух форм одновременно. Только не могу сообразить, как это у тебя получилось. Показывай, как открываешь дополнительную форму.
5 Пип Пибип
 
19.06.15
13:44
В общем, вопрос описан здесь:
http://downloads.v8.1c.ru/content/Trade/11_1_7_56/ErrTrade_11_1_7_56.htm пункт СППР00009413
http://forum.infostart.ru/forum26/topic82467/message871874/#message871874

Пример решения:
http://forum.infostart.ru/forum26/topic61324/message1118460/#message1118460


Как это сделал я:


//Было:
//ВнешняяОбработка = ВнешниеОбработки.Создать(ИспользуемоеИмяФайла);
//РегистрационныеДанные = ВнешняяОбработка.СведенияОВнешнейОбработке();
//ВидОбработки = РегистрационныеДанные.Вид;
//БезопасныйРежим = РегистрационныеДанные.БезопасныйРежим;

//Стало:
ИмяПодключенногоОбъекта = ВнешниеОбработки.Подключить(АдресХранилища, "ПодключенныйОбъект");
ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяПодключенногоОбъекта);
РегистрационныеДанные = ВнешняяОбработка.СведенияОВнешнейОбработке();
ВидОбработки = РегистрационныеДанные.Вид;
БезопасныйРежим = РегистрационныеДанные.БезопасныйРежим;


Господа, спасибо