Имя: Пароль:
1C
1С v8
Как правильно написать процедуру?
0 leo58
 
22.01.12
16:09
Есть процедура ПриИзменении в поле ФИО:
Процедура АрендаторыФИОПриИзменении(Элемент)

   стрЗапрос="
   |ВЫБРАТЬ
   |    Клиенты.Серия_и_номер_паспорта,
   |    Клиенты.Адрес_проживания
   |ИЗ
   |    Справочник.Клиенты КАК Клиенты
   |ГДЕ
   |    Клиенты.Наименование=&ФИО";
   
   обЗапрос=Новый Запрос(стрЗапрос);

обЗапрос.УстановитьПараметр("ФИО",ЭтаФорма.ЭлементыФормы.Арендаторы.Колонки.ФИО.ЭлементУправления.Значение);

резЗапроса= обЗапрос.Выполнить();
     Выборка=резЗапроса.Выбрать();
   ЭтаФорма.ЭлементыФормы.Арендаторы.Колонки.Адрес_проживания.ЭлементУправления.Значение=Выборка.Адрес_проживания;
   ЭтаФорма.ЭлементыФормы.Арендаторы.Колонки.Серия_и_номер_паспорта.ЭлементУправления.Значение=Выборка.Серия_и_номер_паспорта.Значение;
       
   КонецПроцедуры

Мне надо чтобы в табличной части документа, при выборе ФИО клиента, обновлялись поля с серией паспорта и адресом из справочника Клиенты, с отбором по ФИО.Что неправильно в процедуре подскажите?
1 VasjaIvanov
 
22.01.12
16:17
обЗапрос.УстановитьПараметр("ФИО",ФИО);
ФИО = ЭлементыФормы.Арендаторы.Текущиеданные.ФИО;
2 VasjaIvanov
 
22.01.12
16:18
ЭтаФорма.ЭлементыФормы.Арендаторы.Колонки.Адрес_проживания = Выборка.Адрес_проживания
3 Rie
 
22.01.12
16:19
(0) Что-то не понятно... ФИО - это реквизит табличной части? Адрес_проживания и Серия_и_номер_паспорта - видимо, тоже?
Во-первых, что ты будешь делать с однофамильцами? Зачем тебе ФИО - реквизитом, не лучше ли сразу сделать реквизит Клиент типа СправочникСсылка.Клиенты?
Во-вторых, в какой строке тебе надо изменять? В той самой, где ФИО находится? Тогда используй ТекущиеДанные.
4 VasjaIvanov
 
22.01.12
16:19
как то так)) мож где ошибка, надо отладчиком пройтись и пост=мотреть что в выборке выходит
5 leo58
 
22.01.12
16:20
VasjaIvanov, так переменая не определена, ФИО в табличной части находится в колонке
6 Дикообразко
 
22.01.12
16:20
нужно работать с источником табличного поля,
на край с текущей строкой
7 VasjaIvanov
 
22.01.12
16:21
(5)выбираешь в табличной части, что то я не понял?
8 VasjaIvanov
 
22.01.12
16:21
при выборе ФИО клиента???
9 VasjaIvanov
 
22.01.12
16:21
нде выбор осуществляешь?
10 leo58
 
22.01.12
16:21
Rie, у меня справочник ссылка Клиенты в ФИО,а как сделать чтобы адрес заполнялся с номером паспорта после выбора из справочника клиента, всё в табличной части
11 leo58
 
22.01.12
16:22
VasjaIvanov, выбираешь в табличной
12 VasjaIvanov
 
22.01.12
16:23
ФИО = ЭлементыФормы.Арендаторы.Текущиеданные.ФИО //ФИО - название колонки
13 VasjaIvanov
 
22.01.12
16:24
\\арендаторы - нащвание ТЧ , я так все понял
14 leo58
 
22.01.12
16:25
{Документ.Договор_аренды.Форма.ФормаДокумента(15,35)}: Переменная не определена (ФИО)
обЗапрос.УстановитьПараметр("ФИО",<<?>>ФИО);

переменая не определена
15 leo58
 
22.01.12
16:25
да так
16 Rie
 
22.01.12
16:25
(10) Поздравляю. А тогда зачем что-то искать?

ТекДанные = ЭлементыФормы.Арендаторы.ТекущиеДанные;
ТекДанные.Адрес_проживания = ТекДанные.ФИО.Адрес_проживания;
17 Rie
 
22.01.12
16:26
+(16) А запрос - выкинь. Напрочь.
18 VasjaIvanov
 
22.01.12
16:27
(16) можно так есл без запроса
19 Rie
 
22.01.12
16:27
+(16) И вообще - а зачем тебе реквизиты Адрес_проживания и Серия_и_номер_паспорта в табличной части?
20 leo58
 
22.01.12
16:27
Rie, тут ТекДанные.ФИО.Адрес_проживания; ФИО это что?
21 leo58
 
22.01.12
16:28
Rie, просто может быть несколько человек
22 leo58
 
22.01.12
16:31
работает,всем огромное спасибо!!!
23 VasjaIvanov
 
22.01.12
16:31
(21)ФИО тут это ссылкана клиента, потом по ссылке получаешь все что хочешь
24 leo58
 
22.01.12
16:33
VasjaIvanov, ясно,спасибо,буду знать,а я зачем то запрос начал делать))
25 Rie
 
22.01.12
16:36
(24) Запрос - это не так уж и плохо (обращение к ФИО.Адрес_проживания система сама развернёт запрос). Но вот запрос у тебя тоже неправильно написан был: если ФИО - это СправочникСсылка, то почему ж ты её сравниваешь с наименованием - которое строка?
26 leo58
 
22.01.12
16:45
Rie, да вот чо то не сообразил, так вроде примерно знаю чо как, а вот из-за вот этих мелочей не получается)))
27 Rie
 
22.01.12
16:50
(26) А если знаешь, что как, - перед тем, как бежать за помощью на форум, попробуй применить это знание, сам проверь свой код. Пользы будет куда больше, чем если по каждому чиху на форум бегать будешь.