|
Странное поведение управляемой формы |
☑ |
0
SFilchakov
22.02.16
✎
23:52
|
В УФ заказ покупателя (УНФ) добавил кнопку, по которой открывается внешняя обработка:
Попытка
СтруктураПараметровВозврат = ОткрытьФорму("ВнешняяОбработка.КомплектацияЗаказа.Форма.Форма",СтруктураПараметров,ЭтаФорма);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
///
Но что странно. Когда только запустил клиентское приложение и нажимаю кнопку, выдает такое сообщение:
Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(4942)}: Ошибка при вызове метода контекста (ОткрытьФорму): Неизвестное имя формы. Имя: "ВнешняяОбработка.КомплектацияЗаказа.Форма.Форма"
Но тут же открываю эту внешнюю обработку через файл-Открыть она открывается. И после этого открывается и по кнопке из форма заказа.
Что за ...? Подскажите.
|
|
1
Drac0
22.02.16
✎
23:54
|
(0) пока ты не загрузил файл внешней обработки, как 1С тебе найдет ее сама?
|
|
2
SFilchakov
22.02.16
✎
23:57
|
Файл загружен в справочник внешних обработок, в том то и дело. Кроме того я так сделал, что кнопка не появится, если нет нужной обработки в справочнике внешних.
Но работать начинает после открытия внешней обработки через открыть.
|
|
3
Drac0
23.02.16
✎
00:01
|
(2) в справочнике лежит ссылка на хранилище значений, а когда ты открываешь ее, то создается объект ВнешняяОбьработка, с которым и работает уже система.
|
|
4
SFilchakov
23.02.16
✎
00:06
|
(3) Эту обработку предварительно нужно как то открыть?
|
|
5
Drac0
23.02.16
✎
00:08
|
(4) Типо того. Как именно - хз, а лезть в конфигуратор и выяснять сейчас точно не по лезу.
|
|
6
H A D G E H O G s
23.02.16
✎
00:08
|
(4) подключить.
ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)
Подключить (Connect)
Синтаксис:
Подключить(<Путь>, <Имя>, <БезопасныйРежим>)
Параметры:
<Путь> (обязательный)
|
|
7
SFilchakov
23.02.16
✎
00:19
|
(6) Спасибо! Понял, пробую...
|
|
8
SFilchakov
23.02.16
✎
00:38
|
Всё получилось спасибо!
Процедура ПодключитьВнешнююОбоработку();
ВнешняяОбработка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Комплектация заказа покупателя",Истина);
ВнешняяОбработкаОбъект = ВнешняяОбработка.ПолучитьОбъект();
ДвоичныеДанныеОбработки = ВнешняяОбработкаОбъект.ХранилищеОбработки.Получить();
АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанныеОбработки);
ИмяОбработки = Строка(ВнешняяОбработкаОбъект.Ссылка.УникальныйИдентификатор());
ВнешниеОбработки.Подключить(АдресХранилища, ВнешняяОбработка.ИмяОбъекта , Ложь);
КонецПроцедуры
|
|
9
SFilchakov
23.02.16
✎
00:39
|
//Лишнее
ИмяОбработки = Строка(ВнешняяОбработкаОбъект.Ссылка.УникальныйИдентификатор());
|
|
10
zak555
23.02.16
✎
00:55
|
разве обработку заполнения без рисовая кнопок не добавить ?
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший