Имя: Пароль:
1C
1С v8
Передать параметр при открытии формы
,
0 Nzzzz
 
02.02.21
09:24
Всем привет!)
Такой вопрос у меня. При открытии формы передаю в параметры нужное мне значение("ДатаОкончания"). Дальше открывается форма, делает некие действия. Потом в определенный момент заходит в процедуру формы "ПриАктивизацииСтроки". Из этой процедуры код идет через 3 процедуры и попадает в четвертую, в которой мне нужен этот параметр передаваемый мною при открытии формы. Но в четвертой процедуре в параметрах не те параметры, которые были переданы при открытии формы..Вопрос, как мне передать нужный мне параметр при открытии и чтобы он попал в процедуру "ПриАктивизацииСтроки"?
1 craxx
 
02.02.21
09:27
(0) параметры доступны только в ПриСозданииНаСервере, если только ты их не укажешь как ключевые
2 Nzzzz
 
02.02.21
09:29
(1) Как быть тогда?
3 zuza
 
02.02.21
09:32
Реквизит формы сделай и ПриСозданииНаСервере его заполни нужным тебе параметром
4 Nzzzz
 
02.02.21
09:35
(3) А без этого никак? Просто кодом не получится так понимаю?
5 vicof
 
02.02.21
09:36
(4) Реквизит формы можно кодом создавать
6 Nzzzz
 
02.02.21
09:41
(5) Лучше уж тогда добавить в форму, чем так))
7 Nzzzz
 
02.02.21
09:42
Ладно ,всем спасибо, сейчас попробую на форму добавить
8 Гений 1С
 
гуру
02.02.21
09:52
я сделал через оповещения
9 Гений 1С
 
гуру
02.02.21
09:54
мне нужно было повторно форму вызывать (форма - как корзина выбранных позиций товаров).

Было так:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ДобавитьТоварыНаСервере();
КонецПроцедуры

&НаСервере
Процедура ДобавитьТоварыНаСервере()
    //Добавялем пока просто товары, для теста
    Если Параметры.Свойство("Товары") Тогда
        Для Каждого ТекТовар ИЗ Параметры.Товары Цикл
            НСтр = Объект.Товары.Добавить();
            НСтр.Номенклатура = ТекТовар;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПриПовторномОткрытии()
    ДобавитьТоварыНаСервере();
КонецПроцедуры



&НаКлиенте
Процедура дор_дор_ВАналогиПосле(Команда)
    //Открываем обработку
    ТекТовары = Новый Массив();
    Для Каждого ВыделеннаяСтрока Из Элементы.СписокРасширенныйПоискНоменклатура.ВыделенныеСтроки Цикл
        ДанныеСтроки = Элементы.СписокРасширенныйПоискНоменклатура.ДанныеСтроки(ВыделеннаяСтрока);
        ТекТовары.Добавить(ДанныеСтроки.Ссылка);
    КонецЦикла;
    Если ТекТовары.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;
    СтруктураПараметров = Новый Структура("Товары", ТекТовары);
    ОткрытьФорму("Обработка.дор_ВводАналогов.Форма.Форма", СтруктураПараметров);
КонецПроцедуры








Стало так:





&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КонецПроцедуры

&НаСервере
Процедура ДобавитьТоварыНаСервере(СтруктураПараметров)
    //Добавялем пока просто товары, для теста
    
    Для Каждого ТекТовар ИЗ СтруктураПараметров.Товары Цикл
        //Проверяем наличие
        Если Объект.Товары.НайтиСтроки(Новый Структура("Номенклатура", ТекТовар)).Количество() > 0 Тогда
            Продолжить;
        КонецЕсли;
        НСтр = Объект.Товары.Добавить();
        НСтр.Номенклатура = ТекТовар;
    КонецЦикла;
    
КонецПроцедуры

&НаКлиенте
Процедура ПриПовторномОткрытии()
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "дор_ВводАналогов.Товары" Тогда
        ДобавитьТоварыНаСервере(Параметр); //Вставить содержимое обработчика
    КонецЕсли;
КонецПроцедуры




Процедура дор_дор_ВАналогиПосле(Команда)
    //Открываем обработку
    ТекТовары = Новый Массив();
    Для Каждого ВыделеннаяСтрока Из Элементы.СписокРасширенныйПоискНоменклатура.ВыделенныеСтроки Цикл
        ДанныеСтроки = Элементы.СписокРасширенныйПоискНоменклатура.ДанныеСтроки(ВыделеннаяСтрока);
        ТекТовары.Добавить(ДанныеСтроки.Ссылка);
    КонецЦикла;
    Если ТекТовары.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;
    СтруктураПараметров = Новый Структура("Товары", ТекТовары);
    ОткрытьФорму("Обработка.дор_ВводАналогов.Форма.Форма");
    Оповестить("дор_ВводАналогов.Товары", СтруктураПараметров);
КонецПроцедуры
10 mikecool
 
02.02.21
10:07
(9) ты веткой не ошибся?
11 Галахад
 
гуру
02.02.21
10:30
(9) Это чего? Символы ПС украли?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн