Имя: Пароль:
1C
1С v8
Один из ПараметровФормы не передается открываемой форме в ее поле
0 Iten
 
21.09.22
18:26
Доброго времени суток.
У меня возникла проблема при создании расширения в УТ 11.4 на базе 1с 8.3.
Мне нужно в расширяемой форме документа Приобретение товаров и услуг передать ее параметры в ПараметрахФормы в другую форму РегистраСведений.НапоминанияПользователям.ФормаЗаписи в процедуре после записи с помощью ОткрытьФорму("РегистрСведений.НапоминанияПользователя.ФормаЗаписи", ПараметрыФормы);

Я передал нужные мне параметры кроме одного с чем возникла проблема - ссылки на объект (сам документ приобретения).
В параметрах формы он есть (посмотрел отладчиком) - его тип данных ДокументСсылка.ПриобретениеТоваровУслуг.

Поле (реквизит объекта/формы) принимающий проблемный параметр называется Источник и его тип данных ОпределяемыйТип.ПредметНапоминания (он добавлен в расширение и в нем есть ДокументСсылка.ПриобретениеТоваровУслуг).
Также я пытался принимать ДокументСсылку новым созданным полем с точно заданным типом данных ДокументСсылка.ПриобретениеТоваровУслуг - в него тоже не пришла ссылка на документ.

Параметры формы пытаюсь передать кодом

&НаКлиенте
&После("ПослеЗаписи")
Процедура pavel_ПослеЗаписи(ПараметрыЗаписи)
    ИсточникНужногоНапоминания = Объект.Ссылка;
    ПараметрыФормы = Новый Структура("Пользователь",НайтиПользователя());
    ПараметрыФормы.Вставить("Источник",ИсточникНужногоНапоминания);
    ОткрытьФорму("РегистрСведений.НапоминанияПользователя.ФормаЗаписи", ПараметрыФормы);
КонецПроцедуры

Пожалуйста, помогите понять, почему в реквизит формы не поступает нужный параметр (ДокументСсылка) и как сделать так, чтобы он туда поступал.
1 asady
 
21.09.22
21:01
(0) попробуй через ЗначенияЗаполнения
ЗначенияЗаполнения = Новый Структура("Пользователь,Источник",НайтиПользователя(),ИсточникНужногоНапоминания);
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения);
2 Жан Пердежон
 
22.09.22
13:26
Реквизиты формы из параметров автоматически не заполняются, это делают программно в ПриСозданииНаСервере()
3 Iten
 
29.09.22
10:03
Спасибо за помощь в этом вопросе - мне удалось отразить нужные параметры в открываемой форме!

В форме документа приобретения товаров услуг такой код у меня получился:

&НаКлиенте
&После("ПослеЗаписи")
Процедура pavel_ПослеЗаписи(ПараметрыЗаписи)
    ИсточникНужногоНапоминания = Объект.Ссылка;
    ВродеБыСтрока = Строка(Объект.Ссылка);
    НомерПроводимогоДокумента = Объект.Номер;
    ДатаПроводимогоДокумента = Формат(Объект.Дата,"ДФ=dd.MM.yyyy");
    ОписаниеНапоминания = НомерПроводимогоДокумента + " " + ДатаПроводимогоДокумента + " " + ВродеБыСтрока;
    ЗначенияЗаполнения = Новый Структура("Пользователь,Источник,Описание",НайтиПользователя(),ИсточникНужногоНапоминания, ОписаниеНапоминания);
    ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения);    
    ОткрытьФорму("РегистрСведений.НапоминанияПользователя.ФормаЗаписи", ПараметрыФормы);
КонецПроцедуры

В форме записи регистра сведений Напоминания пользователям такой "принимающий код":

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЗакрыватьПриЗакрытииВладельца = Ложь;
    Если Параметры.Свойство("ЗначенияЗаполнения") Тогда
        Запись.Описание = "У вас новый документ: " + Запись.Источник;
        Запись.ИнтервалВремениНапоминания = 10;
    КонецЕсли;
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший