Имя: Пароль:
1C
1С v8
Заполнение документа из справочника
0 nlv-lara
 
27.11.15
14:56
Платформа 8.3 (управляемое приложение)
Как заполнить документ данными из справочника при выборе (изменении) объекта на форме документа?
Есть код, который использовали в 8.2 - в 8.3 не работает, ругается:
{Документ.Заказ.Форма.ФормаДокумента.Форма(21)}: Ошибка при вызове метода контекста (ПолучитьДанныеКлиента)
    Парам = НаСервере.ПолучитьДанныеКлиента(Объект.Клиент);
по причине:
Ошибка при вызове серверного метода.
........
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'РезультатЗапроса'

Подскажите, как правильно?
1 PR третий
 
27.11.15
14:57
(0) Правильно не передавать результат запроса
2 nlv-lara
 
27.11.15
14:59
в 8.2 работало так:
общий модуль НаСервере
Функция ПолучитьДанныеКлиента(Клиент) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Партнеры.Сайт,
    |    Партнеры.Адрес,
    |    Партнеры.КонтактнаяИнформация.АдресЭП КАК АдресЭП,
    |    Партнеры.КонтактнаяИнформация.НомерТелефона КАК НомерТелефона
    |ИЗ
    |    Справочник.Партнеры КАК Партнеры
    |ГДЕ
    |    Партнеры.КонтактнаяИнформация.Ссылка = &Клиент
    |    И Партнеры.Ссылка = &Клиент";
    
    Запрос.УстановитьПараметр("Клиент", Клиент);
    
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать();
    
    СписокДанных = Новый Структура;
    СписокДанных.Вставить("Сайт");
    СписокДанных.Вставить("Адрес");
    СписокДанных.Вставить("Телефон");
    СписокДанных.Вставить("EMail");
    
    Если Выборка.Количество() = 0 Тогда
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Данные по клиенту отсутствуют";
        Сообщение.Сообщить();
    
    Иначе
        Пока Выборка.Следующий() Цикл
             СписокДанных.Сайт = Выборка.Сайт;
             СписокДанных.Адрес = Выборка.Адрес;
             СписокДанных.Телефон = Выборка.НомерТелефона;
             СписокДанных.EMail = Выборка.АдресЭП;
        КонецЦикла;    
    КонецЕсли;    
    
    Возврат СписокДанных;
КонецФункции
3 nlv-lara
 
27.11.15
15:00
ну и модуль в форме документа:
&НаКлиенте
Процедура КлиентПриИзменении(Элемент)
    Парам = НаСервереИГ.ПолучитьДанныеКлиента(Объект.Клиент);
    
    Объект.Сайт = Парам.Сайт;
    Объект.Адрес = Парам.Адрес;
    Объект.Телефон = Парам.Телефон;
    Объект.EMail = Парам.EMail;
КонецПроцедуры
4 nlv-lara
 
27.11.15
15:02
(1) Как правильно передать?
5 VikingKosmo
 
27.11.15
15:08
(4) почитать что книгу Радченко и сделать правильно
6 Сергиус
 
28.11.15
03:22
(0)У общего модуля НаСервере какие галки стоят? Если есть Клиент, убери его.
7 hhhh
 
28.11.15
05:22
(6)+ и Вызов сервера нужно
8 nlv-lara
 
28.11.15
09:04
(6) Галки стоят: сервер и вызов сервера.
(5) Читала, есть разбор, как заполнять ТЧ. Мне надо заполнить шапку данными клиента при выборе (изменении) клиента.
9 hhhh
 
28.11.15
10:55
(8) ну так

&НаКлиенте
Процедура КлиентПриИзменении(Элемент)
    КлиентПриИзмененииНаСервере();
КонецПроцедуры
  
&НаСервере
Процедура КлиентПриИзмененииНаСервере()  

    Объект.Сайт = Объект.Клиент.Сайт;
    Объект.Адрес = Объект.Клиент.Адрес;
    Объект.Телефон = Объект.Клиент.Телефон;
    Объект.EMail = Объект.Клиент.EMail;

КонецПроцедуры
10 Горогуля
 
28.11.15
10:56
а сразу оно не покажется? зачем все эти буквы?
11 Cyberhawk
 
28.11.15
14:31
(3) "Парам = НаСервереИГ.ПолучитьДанныеКлиента(Объект.Клиент)"
На сервере ИГИЛ?
12 FIXXXL
 
28.11.15
20:44
Сунь результат запроса в структуру и передавай
13 Сергиус
 
29.11.15
00:15
(8)Скинь конфу на какой-ть файлообменник, посмотрим.
14 nlv-lara
 
30.11.15
11:37
(9) Первая часть кода замечательно работает, спасибо.
Объект.Сайт = Объект.Клиент.Сайт;
Объект.Адрес = Объект.Клиент.Адрес;

Вторая часть в справочнике (Телефон и EMail) находится в ТЧ.
Вот тут пробовала так:
Объект.Телефон = Объект.Клиент.КонтактнаяИнформация.Телефон;
Объект.EMail = Объект.Клиент.КонтактнаяИнформация.EMail;
не работает.
Как вытащить из ТЧ справочника на форму документа? В документе это не ТЧ...
15 nlv-lara
 
03.12.15
11:27
Задача решена. Вопрос закрыт!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший