Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Открытие формы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
mrTompson
Есть Обработка ВыборТеста на форму добавлен реквизит Тесты (тип Динамический список, основная таблица регистр сведений), также есть обработка Тестирование в которой есть реквизит Тест. Нужно сделать так чтобы если тестов несколько открывалась форма обработки ВыборТеста выбирался тест и открывалась обработка Тестирование с заполненным тестом, а если тест один то сразу открывалась обработка Тестирование с этим тестом.

Цитата(mrTompson @ 21.03.11, 12:42) необходимо зарегистрироваться для просмотра ссылки
Есть Обработка ВыборТеста на форму добавлен реквизит Тесты (тип Динамический список, основная таблица регистр сведений), также есть обработка Тестирование в которой есть реквизит Тест. Нужно сделать так чтобы если тестов несколько открывалась форма обработки ВыборТеста выбирался тест и открывалась обработка Тестирование с заполненным тестом, а если тест один то сразу открывалась обработка Тестирование с этим тестом.

При выборе всё работает
ПараметрыТестов = Новый Структура("Тест",Элементы.Тесты.ТекущиеДанные.Тест);
        
ОткрытьФорму("Обработка.Тестирование.Форма", ПараметрыТестов);

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

Заранее, Спасибо!

Чего делаю не так?(
Vofka
Мне кажется, что при открытии нету ещё ничего в Элементы.Тесты.ТекущиеДанные.тест
mrTompson
09000000.gif

тогда как из одной обработки передать данные в другую обработку 1с 8.2
DartRomanius
Цитата(mrTompson @ 21.03.11, 17:14) необходимо зарегистрироваться для просмотра ссылки
тогда как из одной обработки передать данные в другую обработку 1с 8.2


Путем передачи структуры с параметрами.

*
Это если одна обработка вызывает другую.

Есть еще вариант с оповещением и обработкой оповещения.
Но это совсем "изврат" будет. 44000000.gif
mrTompson
У меня в общем модуле так и есть с обработкой оповещения. Я открываю обработку и выбираю тест открывается вторая обработка тест заполнен. Но мне надо сделать чтобы если он один открывалась вторая обработка сразу с заполненным тестом по нажатию на сообщение

&НаКлиенте
Процедура ПроверитьНаличиеТестов() Экспорт
    
     РезультатПроверки = ПланТестированияСервер.ПроверкаПланаТестирования();
    
     Если Не РезультатПроверки.Количество() = 0 Тогда
        
         ПоказатьОповещениеПользователя("Не пройден(ы) " + " тесты",
         "e1cib/app/Обработка.ВыборТеста",РезультатПроверки, БиблиотекаКартинок.Обработка);
     КонецЕсли;

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


Тогда вопрос как добавить в общем модуле???
logist
Цитата(mrTompson @ 21.03.11, 12:59) необходимо зарегистрироваться для просмотра ссылки
тогда как из одной обработки передать данные в другую обработку 1с 8.2

Можно еще использовать Хранилище
mrTompson
Цитата(logist @ 21.03.11, 17:27) необходимо зарегистрироваться для просмотра ссылки
Можно еще использовать Хранилище

Можно пожалуйста ссылочку на хороший пример.

Цитата(DartRomanius @ 21.03.11, 17:17) необходимо зарегистрироваться для просмотра ссылки
Путем передачи структуры с параметрами.

В событии Выбор всё работает.
Нужен пример кода ПриОткрытии как это сделать. 64000000.gif.

Вопрос решен всем спасибо

ПараметрыТестов = Новый Структура("ТекущийТест",СписокТестов[0].Значение);
ФормаТеста = ПолучитьФорму("Обработка.Тестирование.Форма", ПараметрыТестов);
ФормаТеста.Открыть();
Отказ = Истина;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.