Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
04 дек 2025, 11:41

реквизит формы в значение

Автор sali, 02 дек 2025, 09:23

0 Пользователей и 1 гость просматривают эту тему.

sali

есть справочник ТО, сделал на форме кнопку по которой открывается форма создания нового элемента другого справочника, обратно получаю ссылку созданного элемента (заполненную тч)
данные с Нового элемента заполняют реквизит формы спр ТО - Маршруты (таблица значений) . как теперь записать получившееся в реквизит спр ТО?

antoneus

Из таблицы значений в табличную часть нового элемента, ссылка на который у нас есть? Это сильное колдунство.

sali

antoneus, из таблицы значений или массива или списка значений, там массив данных получаем, в хранилище значений
делаю так

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

маршрутто = новый массив;
Для каждого структурамаршрута из этотобъект.Маршруты ЦИКЛ 
маршрутто.добавить(новый структура(
"гуид, склад, агент, дни",
структурамаршрута.Значение.ГУИДМаршрута,
структурамаршрута.Значение.СкладКонтрагента,
структурамаршрута.Значение.Контрагент,
структурамаршрута.Значение.ДниПрохода));
конеццикла;
Настройки = ПоместитьВоВременноеХранилище(маршрутто, Новый УникальныйИдентификатор());
ТекущийОбъект.ГУИДыМаршрутов = Новый ХранилищеЗначения(Настройки);

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


&НаКлиенте
Процедура Маршруты(Команда)   
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Наименование",  Объект.Наименование);   
ПараметрыФормы.Вставить("ИдентификаторТО", Объект.ГУИДИсточника);
ПараметрыФормы.Вставить("АдресНастроекМаршрутов", АдресНастроекМаршрутов);

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

&НаКлиенте
Процедура ДополнитьСтруктуруТОЗавершение(Результат, ДополнительныеПараметры) Экспорт     

Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;   

маршруты = новый списокзначений;
Для Каждого ЭлементМаршрут Из Результат.Маршруты Цикл
Маршруты.Добавить(Новый  Структура(
"ГУИДМаршрута, СкладКонтрагента, Контрагент, ДниПрохода",
XMLСтрока(Результат.УникальныйИдентификатор()),
ЭлементМаршрут.СкладыКонтрагентов,
ЭлементМаршрут.Контрагенты,
ЭлементМаршрут.ДниПрохода));
КонецЦикла;         

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

////////////////////////////////////////////////////////////////

другой спр Маршруты, где заполняются данные и потом возвращается ссылка

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

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

Параметры.Свойство("Наименование", Объект.Наименование);
Параметры.Свойство("ИдентификаторТО", Объект.ВладелецМаршрута);       

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


antoneus

Ну, адрес настроек в форму передал, доставай оттуда таблицу или массив или что там и пиши.
Только зачем такой огород городить? Список значений на форме, в котором ссылки, пихать в массив структур, который пихать в хранилище значения >_<
Чисто показать мастерство?

sali

antoneus, нет. либо запутался, либо по-другому не пойму как и делаю на примере ранее написанного кода
но и адрес настроек по примеру делаю , там все идет при создании формы/ при чтении переходит в процедуру там определяется адрес, структура и идет дальше
у меня так не получается

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск