Вход | Регистрация

1С:Предприятие ::

Метки: 

Доступ к управляемой форме из обычной. Как получить ТЗ динамического списка?

Я
   totparen
 
25.09.17 - 20:31
Ребята, помогите разобраться.
Есть встроенная обработка с управляемой формой. На форме динамический список (запросом, без основной таблицы).

Открываю форму программно из обычной формы:

лФорма = Обработки.РабочееМестоДиспетчераАвтосервиса.ПолучитьФорму("Форма");
лФорма.Открыть();


В самой управляемой форме могу получить ТЗ через вызов серверной процедуры (Вызов из ПриОткрытии):

&НаСервере
Процедура ВызовНаСервере()

    Схема = Элементы.НеОбработанныеСобытия.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
    Настройки = Элементы.НеОбработанныеСобытия.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
 
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    
    ТЗ = Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТЗ); 
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    // ТЗ получено.

    
КонецПроцедуры

Но как то же самое сделать из вне?
 
 
   totparen
 
1 - 25.09.17 - 20:33
При попытке выполнить код

    лФорма = Обработки.РабочееМестоДиспетчераАвтосервиса.ПолучитьФорму("Форма");
    лФорма.Открыть();
    
    Схема = лФорма.Элементы.НеОбработанныеСобытия.ПолучитьИсполняемуюСхемуКомпоновкиДанных();


получаю ошибку:

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

(11) попробую.
   Fedor-1971
 
14 - 26.09.17 - 09:54
(9) Зачем что-то искать снаружи именно в форме? Есть Объект в БД - читаем что нужно из него, а связываться с не записанными данными себе дороже.
Логика заполнения вычисляемых полей (статусы, некие расчётные доп.данные) выносится, например, в модуль менеджера и получается по ссылке на Объект полностью однообразно из формы и откуда надо
   totparen
 
15 - 26.09.17 - 09:58
(14) Искать из вне для целей автоматизированного тестирования. Проверка поведения формы.
   Fedor-1971
 
16 - 26.09.17 - 10:06
(15) для этого, скорее всего, есть внешние инструменты.
Как я понимаю, должен быть некий пул нажатий кнопок пользователем с описанием ожидаемых эталонных результатов.
Слабо представляю как машина оценит корректность сортировки (особенно частые грабли сортировка по ссылке справочника, а не по наименованию)
   Fedor-1971
 
17 - 26.09.17 - 10:08
16+ пока нет конечной концепции форм, автоматизированное тестирование несколько затруднительно. Как пример: борьба с модальностью.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует