|
Доступ к управляемой форме из обычной. Как получить ТЗ динамического списка? | ☑ | ||
---|---|---|---|---|
0
totparen
25.09.17
✎
20:31
|
Ребята, помогите разобраться.
Есть встроенная обработка с управляемой формой. На форме динамический список (запросом, без основной таблицы). Открываю форму программно из обычной формы: лФорма = Обработки.РабочееМестоДиспетчераАвтосервиса.ПолучитьФорму("Форма"); лФорма.Открыть(); В самой управляемой форме могу получить ТЗ через вызов серверной процедуры (Вызов из ПриОткрытии): &НаСервере Процедура ВызовНаСервере() Схема = Элементы.НеОбработанныеСобытия.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); Настройки = Элементы.НеОбработанныеСобытия.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных(); МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(ПроцессорКомпоновки); // ТЗ получено. КонецПроцедуры Но как то же самое сделать из вне? |
|||
1
totparen
25.09.17
✎
20:33
|
При попытке выполнить код
лФорма = Обработки.РабочееМестоДиспетчераАвтосервиса.ПолучитьФорму("Форма"); лФорма.Открыть(); Схема = лФорма.Элементы.НеОбработанныеСобытия.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); получаю ошибку: Ошибка при вызове метода контекста (ПолучитьИсполняемуюСхемуКомпоновкиДанных) Схема = лФорма.Элементы.НеОбработанныеСобытия.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); по причине: Метод недоступен на клиенте |
|||
2
PiotrLoginov
25.09.17
✎
20:55
|
Вообще, в ОФ тоже есть возможность разделить выполнение на серверное и клиентское. Я бы в этом направлении порылся. Еще можно начать с внимательного прочтения описания ПолучитьИсполняемуюСхемуКомпоновкиДанных()
|
|||
3
totparen
25.09.17
✎
22:14
|
Ещё есть идеи?
|
|||
4
totparen
26.09.17
✎
08:23
|
Кроме как выносить код в отдельный модуль с свойством СЕРВЕР, возможно ли ещё как-то выполнять код обработки на сервере?
|
|||
5
toypaul
гуру
26.09.17
✎
09:08
|
если надо получить только ТЗ, то сохранить ее во врем хранилище
|
|||
6
Рэйв
26.09.17
✎
09:11
|
(0)А взять текст запроса из ДС, выполнить и выгрузить результат в ТЗ никак?
|
|||
7
DrShad
26.09.17
✎
09:13
|
(6) он так и хочет, но уже с установленными отборами
|
|||
8
Fedor-1971
26.09.17
✎
09:29
|
(2) ПолучитьИсполняемуюСхемуКомпоновкиДанных() - доступна в контексте НаСервере, текст запроса, то же.
Открыть() - работает в контексте НаКлиенте, т.е. пробуй создать в полученной форме обработки экспортную функцию с контекстом НаКлиенте, которая ломанётся на сервер и достанет тебе схему компоновки. Как вариант: положить инициализацию ДС в модуль менеджера обработки и тогда до инициализации "по умолчанию" достучишься без проблем |
|||
9
totparen
26.09.17
✎
09:29
|
По правде говоря, цель не сама ТЗ, а возможность проверять состояние/содержание элементов на управляемой форме.
|
|||
10
totparen
26.09.17
✎
09:30
|
Деллая эту проверку не вторгаясь в код управляемой формы.
|
|||
11
PiterPrg
26.09.17
✎
09:33
|
Можно попробывать на управляемой форме сделать Экспортную Клиентскую процедуру (Из которой уже сможешь вызывать серверную). И из неуправляемой формы вызывать именно клиентскую процедуру.
(Надеюсь, понятно написал :-) ) |
|||
12
Рэйв
26.09.17
✎
09:44
|
(7)Ну заполнил бы параметры как нужно и были бы ему отборы.
|
|||
13
totparen
26.09.17
✎
09:54
|
(12) -> (9)(10)
(11) попробую. |
|||
14
Fedor-1971
26.09.17
✎
09:54
|
(9) Зачем что-то искать снаружи именно в форме? Есть Объект в БД - читаем что нужно из него, а связываться с не записанными данными себе дороже.
Логика заполнения вычисляемых полей (статусы, некие расчётные доп.данные) выносится, например, в модуль менеджера и получается по ссылке на Объект полностью однообразно из формы и откуда надо |
|||
15
totparen
26.09.17
✎
09:58
|
(14) Искать из вне для целей автоматизированного тестирования. Проверка поведения формы.
|
|||
16
Fedor-1971
26.09.17
✎
10:06
|
(15) для этого, скорее всего, есть внешние инструменты.
Как я понимаю, должен быть некий пул нажатий кнопок пользователем с описанием ожидаемых эталонных результатов. Слабо представляю как машина оценит корректность сортировки (особенно частые грабли сортировка по ссылке справочника, а не по наименованию) |
|||
17
Fedor-1971
26.09.17
✎
10:08
|
16+ пока нет конечной концепции форм, автоматизированное тестирование несколько затруднительно. Как пример: борьба с модальностью.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |