Имя: Пароль:
1C
1С v8
Как из формы справочника получить заполненную форму РС
0 SMAlik
 
02.11.11
11:12
Не могу сделать на 8.2 подобно паспортных данных в 1С 8.1.

Т.е. имеем карточку ФЛ. Имеем поле пасп данных. Туда данные заносятся.
Добавил полю кнопку выбора, но при нажатии на неё получаю новую форму для заполнения РС, а как вывести заполненную сущ-ющими данными?


&НаКлиенте
Процедура УдостоверениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   Отбор = Новый Структура;
   Отбор.Вставить("ФизЛицо", Объект.Ссылка);
   Форма = ПолучитьФорму("РегистрСведений.ПаспортныеДанныеФизЛиц.ФормаЗаписи", Отбор, Элемент);
   Форма.Открыть();
   
КонецПроцедуры
1 Mort
 
02.11.11
11:14
Ты же сам написал "ФормаЗаписи".
2 jsmith82
 
02.11.11
11:15
неправильно делаешь
3 jsmith82
 
02.11.11
11:20
попробуй так

&НаСервере
Функция ПолучитьКлючЗаписи()

   Возврат РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьКлючЗаписи(Новый Структура("Физлицо", ОбъектФизлицо));

КонецФункции

&;НаКлиенте
Процедура УдостоверениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   ОткрытьФорму("РегистрСведений.ПаспортныеДанныеФизЛиц.Форма.ФормаЗаписи", Новый Структура("Ключ", ПолучитьКлючЗаписи()));
   
КонецПроцедуры
4 jsmith82
 
02.11.11
11:20
и скажи, что получилось. а то я давно этим не занимался
5 SMAlik
 
02.11.11
11:32
(4) пишет объект не найден
6 jsmith82
 
02.11.11
11:45
это хреново
7 SMAlik
 
02.11.11
11:48
(3) я видел подобное. Ошибок не выдабало, но и инфу тоже
&На Клиенте
Процедура СмотримРегСведений(Команда)

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

ОткрытьФорму("РегистрСведений.ИмяРегистра.ФормаСписка",СтрПараметры)


&НаСервере
Функция ВернутьКлюч(Ссылка)

  ЗначенияКлюча = Новый Структура(здесь надо ввести значение отбора рег свед)
  Возврат РегистрыСведений.ИмяРегистра.СоздатьКлючЗаписи(ЗначенияКлюча);

КонецФункции
8 SMAlik
 
02.11.11
11:50
по этому примеру сделал вот так, но всё равно пустое окно для создания


&НаКлиенте
Процедура УдостоверениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   Отбор = Новый Структура ("Отбор, НашКлюч");
   Отбор.Отбор = Новый Структура("ФизЛицо", Объект.Ссылка);

   Отбор.НашКлюч = ВернутьКлюч();
   ОткрытьФорму("РегистрСведений.ПаспортныеДанныеФизЛиц.Форма.ФормаЗаписи",Отбор);
       
КонецПроцедуры

&НаСервере
Функция ВернутьКлюч()

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

КонецФункции
9 jsmith82
 
02.11.11
12:01
вообще имхо для такой шляпы надо херомантить свою форму
10 SMAlik
 
02.11.11
12:03
(1) там всего 3 формы (не считая произвольных) из них 2 для списка и одна как раз для записи.
И опять же, если зайти в регистр и открыть запись - то всё заполнено, а используется одна и та же форма.
11 SMAlik
 
02.11.11
12:03
(9) блин - вот этого и не хотелось (((
12 jsmith82
 
02.11.11
12:46
(11) ну а чо, я захеромантил. для каждого регистра сведений своя форма "ФормаЗаписиВнешняя". создал общую универсальную процедуру. наслаждаюсь
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший