Есть родительское окно и в нем WindowContainer. Окно которое подтягивается через WindowContainer имеет еще один WindowContainer. Т.о. есть три вложенных окна, как из главного окна обратиться к компоненту расположенному на третьем самом глубоком окне?
Предполагаю, что должно быть похоже на:

this.ComponentsByName('wnd_2').ComponentsByName('wnd_3').ComponentsByName('любой контрол')

Нравится

2 комментария

Self.myWndContainer1.Window.ComponentsByName('myWndContainer2').Window....

Показать все комментарии

Нужно было встроить в карточку редактирования проекта - карточку редактирования контрагента. Сделал я это через WindowContainer. Карточка редактирования контрагента отображается нормально, но она не активна. Как я понимаю из-за того, что датасет ds_Account не открыт. Как правильно его открыть, что бы карточка контрагента была редактируемая?

Нравится

9 комментариев

Как минимум, встроенному окну редактирования надо указать несколько атрибутов и вызвать метод Prepare:

  WindowContainer.Window.Attributes('имя') = 'значение';
  ...
  WindowContainer.Window.Prepare();

Какие именно атрибуты - смотрите в скрипте к wnd_AccountsGridArea
--------------------------------------------
Лабитек
Центр разработки приложений

Окно контейнера стало редактируемое, но появилась другая проблема. При открытии главного окна пишет, что контрагент удален. И у окна контейнера не активна кнопка "ОК".

А атрибуты окну назначили корректно? Как минимум надо указать правильный RecordID.
Также проверьте sq_Account - не включены ли у Вас там фильтры в Where (все фильтры должны быть выключены)
--------------------------------------------
Лабитек
Центр разработки приложений

Какие именно атрибуты нужны можно посмотреть в функции ShowEditWindowEx.

Столкнулся еще с такой проблемой, если нажать на окне, которое встроено с помощью WindowContainer на кнопку "ОК". окно исчезает и на форме просто остается пустое место. И даже при закрытии и открытии главного окна, встроенное не появляется, пока не перезапустишь террсофт. Есть ли способ сделать, что бы встроенное окно не исчезало?

Это надо модифицировать обработчик кнопки ОК.
По умолчанию в окне редактирование при нажатии этой кнопки запись сохраняется и окно закрывается.
--------------------------------------------
Лабитек
Центр разработки приложений

Как можно программно вызвать событие нажатия на кнопку "ОК" для окна вставленного с помощью WindowContainer.
Пытался так WindowContainer.Window.btnOnClick(Control) - не работает :(

Попробуйте так:

  WindowContainer.Window.ComponentsByName('btnOK').Click();

--------------------------------------------
Лабитек
Центр разработки приложений

Спасибо, то что нужно!

Показать все комментарии