Имя: Пароль:
1C
1С v8
КА. Не могу передать и сохранить в реквизит формы внешней обработки параметры формы.
,
0 LOLYBUF
 
29.06.21
13:00
Ситуация такая: есть внешняя обработка заполнения, которую нужно открывать из документа. При заполнении документа открывается форма внешней обработки в которую нужно передать параметры, но параметры то передаются, но когда я пытаюсь сохранить какое-либо значение в реквизит, они куда-то пропадают. Не сохраняются ни в какую. Кто знает, как решить?
1 apdate by
 
29.06.21
13:26
а где значение  должно сохраниться?
2 LOLYBUF
 
29.06.21
13:32
(1) В реквизите внешней формы
3 LOLYBUF
 
29.06.21
13:33
(2) В реквизите внешней обработки*
Усе путаться начал
4 apdate by
 
29.06.21
14:07
нууу. я не знал что можно хранить данные в реквизите обработки (

а что если данные формы в файл поместить а при открытии обработки поднимать из файла

но вот не знаю как идентифицировать то(

я вообще честно говоря не понял задачи толком
5 LOLYBUF
 
29.06.21
14:08
(4) Сейчас я попробую объяснить.
Есть документ через который должна открываться внешняя обработка заполнения, а точнее ее форма. Далее в форму нужно подтянуть ссылку на этот документ и после зполнения табличной части документа, по этой ссылке отредактировать документ.
6 Фрэнки
 
29.06.21
15:47
Лень чего-то придумывать...

Есть обработка заполнения, так? Которая сидит в внешних обработках. Ты с ней пытаешься чего-то делать.
Форму обработки открывает ВладелецФормы

ДанныеОбъекта = ВладелецФормы.Объект;

и дальше погнали обработку данных объекта.

Или на самом деле все нетиповое?
7 LOLYBUF
 
29.06.21
16:12
(6) Да, ты верно думаешь
8 apdate by
 
30.06.21
09:18
(5) теперь понял! думал Вы хотите куда то сохранить значение

В параметрах что то прилетает?

В форме документа что то типа

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


в форме обработки вешаете событие ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

далее читаете переменную Параметры.Ваш переданный документ (ссылка)

далее

в том методе в котором у Вас необходимо передать что либо из обработки в документ

пишите

ПараметрыТовара = Новый Структура;
    ПараметрыТовара.Вставить("Номенклатура", Номенклатура);        
    ПараметрыТовара.Вставить("КоличествоУпаковок", КоличествоУпаковок);    
    ПодобранныеТовары.Добавить(ПараметрыТовара);
    
    Результат = Новый Структура("ПодобранныеТовары", ПодобранныеТовары);

    Закрыть(Результат);

короче формируете стуктуру и передаете ее обработно в документ методом Закрыть()

далее в документе в методе

&НаСервере
Функция ДобавитьВПодбор(Результат, ДополнительныеПараметры)
    Если Результат <> Неопределено И СокрЛП(Результат) <> "Отмена" Тогда
        ДобавитьВПодбор(ДополнительныеПараметры.Номенклатура, Результат.ПодобранныеТовары[0].КоличествоУпаковок, ДополнительныеПараметры.Цена, ДополнительныеПараметры.Штрихкод, ДополнительныеПараметры.Остаток);
    КонецЕсли;
    ТекущийЭлемент = Элементы.СписокНоменклатура;
КонецФункции

читаете свой "Результат"
9 apdate by
 
30.06.21
09:19
за синтаксис не пинайте сильно. сам еще зеленый в 1С :-)
10 LOLYBUF
 
30.06.21
11:51
(8) Такое не сработает. Параметры формы после открытия самой формы внешней обработки проглатывает все что в них передали изначально, поэтому их там не получится поймать.
11 LOLYBUF
 
30.06.21
11:51
Но я нашел вот такой вариант: https://infostart.ru/1c/articles/825702/
12 apdate by
 
30.06.21
13:46
(10) У меня работает!
13 apdate by
 
30.06.21
13:47
(11) то же верное решение