8.х Чтение из реквизита

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем SimPx, 11 сен 2008.

  1. TopicStarter Overlay
    SimPx
    Offline

    SimPx

    Регистрация:
    9 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Платформа 8.1

    Имеется Справочник Водители, так же есть Форма, не связанная с этим справочником. В справочнике есть реквизиты, в которые записывются значения реквизитов из Формы. Данная Форма открывается при нажатии кнопки выбора из ФормаЭлемента справочника Водители в модальном режиме и при закрытии возвращает значение в ФормуЭлемента. Значение Формируется из 3 ех реквизитов.

    Открытие Формы из ФормыЭлемента Справочника Водители в модальном режиме.
    Код:
    Процедура ПолеВодитУдостНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    Форма = Справочники.Водители.ПолучитьФорму("Форма",ЭтаФорма);
    
    ВодительскоеУдостоверение = Форма.ОткрытьМодально();
    
    КонецПроцедуры  
    
    
    Код:
    Процедура ЗаписатьНажатие(Элемент)
    //Запись реквизитов формы в реквизиты Справочника Водители
    Серия = Серия1;
    Номер = Номер1;
    ДанныеУдостоверения = ДанныеУдостоверения1;
    //Формирование значение параметра передаваемого в ФормуЭлемента справочника
    ВодительскоеУдостоверение = Серия1 + " , " + Номер1 + " , " + "  " + ДанныеУдостоверения1;
    Закрыть(ВодительскоеУдостоверение);
    
    КонецПроцедуры
    
    
    Задача такая, из ФормыЭлемента справочника водители, по нажатию на кнопку выбора должна открываться новая Форма в модальном режиме(открывается), в этой форме есть три реквизита. По нажатии на кнопку запись в Форме, данные должны передаваться в Форму элемента в виде одной строки.(Передаются) При повторном нажатии на выбор данные должны оставаться в полях реквизитов Новой Формы, в этом и заключается трабл. Не могу обратится к реквизитам элемента Справочника Водители, куда я записываю реквизиты Формы, чтобы потом при повторном открытии Нофой формы в модальном режиме они считались и записались обратно в поля реквизитов. Пробовал по разному это реализовать, не получлось. Как этом можно сделать?
  2. EvgDol
    Offline

    EvgDol

    Регистрация:
    3 сен 2008
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Создайте реквизиты открываемой формы и перед открытием формы записывайте данные в эти реквизиты.
    Т.е. не надо пытаться получить данные из источника при открытии формы, их надо передать в форму.
    Форма = Справочники.Водители.ПолучитьФорму("Форма",ЭтаФорма);
    Форма.Серия1=Серия;
    Форма.Номер1=Номер;
    Форма.ДанныеУдостоверения1=ДанныеУдостоверения;
    ВодительскоеУдостоверение = Форма.ОткрытьМодально();
  3. TopicStarter Overlay
    SimPx
    Offline

    SimPx

    Регистрация:
    9 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Где создавать реквизиты открываемой формы? В Справочнике Водители добавить реквизиты которые есть в этой форме? Добавил, записываю туда. Далее делаю как вы посоветовали.

    в модуле ФормаЭлемента

    Код:
    Процедура ПолеВодитУдостНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    Форма = Справочники.Водители.ПолучитьФорму("Форма",ЭтаФорма);
    Форма.Серия1 = Серия;
    Форма.Номер1 = Номер;
    Форма.ДанныеУдостоверения1 = ДанныеУдостоверения;
    ВодительскоеУдостоверение = Форма.ОткрытьМодально();
    
    КонецПроцедуры  
    
    
    В модуле открываемой Формы
    Код:
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    ЭтаФорма.Серия1 = Серия1;
    ЭтаФорма.Номер1 = Номер1;
    ЭтаФорма.ДанныеУдостоверения1 = ДанныеУдостоверения1;
    
    КонецПроцедуры
    
    
    
    Процедура ЗаписатьНажатие(Элемент)
    
    Серия = Серия1;
    Номер = Номер1;
    ДанныеУдостоверения = ДанныеУдостоверения1;
    
    ВодительскоеУдостоверение = Серия1 + " , " + Номер1 + " , " + "  " + ДанныеУдостоверения1;
    Закрыть(ВодительскоеУдостоверение);
    
    
    КонецПроцедуры
    
    
    
    Данные в открываемой форме все равно не прописываются, что сделал не так?
  4. TopicStarter Overlay
    SimPx
    Offline

    SimPx

    Регистрация:
    9 сен 2008
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Уфф, наконец то сделал. Спасибо EvgDol, натолкнул на мысль. Вот что получилось:

    В модуле ЭлементФормы:
    Код:
    Процедура ПолеВодитУдостНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    Форма = Справочники.Водители.ПолучитьФорму("Форма",ЭтаФорма);
    Форма.Серия1 = Серия;
    Форма.Номер1 = Номер;
    Форма.ДанныеУдостоверения1 = ДанныеУдостоверения;
    МассивПараметр = Форма.ОткрытьМодально();
    Серия = МассивПараметр.Получить(0);
    Номер = МассивПараметр.Получить(1);
    ДанныеУдостоверения = МассивПараметр.Получить(2);
    ВодительскоеУдостоверение = МассивПараметр.Получить(3);
    
    КонецПроцедуры  
    
    
    
    В модуле открываемой формы:
    Код:
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    ЭтаФорма.Серия1 = Серия1;
    ЭтаФорма.Номер1 = Номер1;
    ЭтаФорма.ДанныеУдостоверения1 = ДанныеУдостоверения1;
    
    КонецПроцедуры
    
    
    
    Процедура ЗаписатьНажатие(Элемент)
    
    ВодительскоеУдостоверение = Серия1 + " , " + Номер1 + " , " + "  " + ДанныеУдостоверения1;
    МассивПараметр = Новый Массив();
    МассивПараметр.Добавить(Серия1);
    МассивПараметр.Добавить(Номер1);
    МассивПараметр.Добавить(ДанныеУдостоверения1);
    МассивПараметр.Добавить(ВодительскоеУдостоверение);
    Закрыть(МассивПараметр);
    
    КонецПроцедуры
    
    

Поделиться этой страницей