Имя: Пароль:
1C
1С v8
Помочь с кодом.
🠗 (Волшебник 19.10.2020 11:36)
0 undertale
 
19.10.20
10:48
Задание: Создать внешнюю обработку для получения данных в макете.
Я создал, написал код, но у меня вылазит ошибка. Я что-то уже свехнулся и не понимаю, что я должен еще дописать.  
Ошибка https://ibb.co/H7GF4Bk

Код:
https://ibb.co/pfLhFpY  
https://ibb.co/gwRLq1c

Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабДок = ПолучитьСогласиеНаОбработкуПерсональныхДанных();
ТабДок.Показать();
КонецПроцедуры


Функция ПолучитьСогласиеНаОбработкуПерсональныхДанных()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПаспортныеДанныеФизЛиц.ДокументСерия,
    |    ПаспортныеДанныеФизЛиц.ДокументНомер,
    |    ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи,
    |    ПаспортныеДанныеФизЛиц.ДокументКемВыдан,
    |    ПаспортныеДанныеФизЛиц.ДатаРегистрацииПоМестуЖительства,
    |    КонтактнаяИнформация.Представление
    |ИЗ
    |    РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц,
    |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |    ПаспортныеДанныеФизЛиц.ФизЛицо = &ФизЛицоСотрудника
    |    И КонтактнаяИнформация.Объект = &Организации ";
    
    Запрос.УстановитьПараметр("ФизЛицоСотрудника", Сотрудник.Физлицо);
    Запрос.УстановитьПараметр("Организации", Сотрудник.Организация);
    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    РезультатЗапроса.Следующий();
    
    
    ТабДок=Новый табличныйДокумент;
    Макет=ПолучитьМакет("Макет");
    Область = Макет.ПолучитьОбласть("Область");
    Область.Параметры.ФИО =  Сотрудник.Наименование;
    Область.Параметры.СерияПаспорт = РезультатЗапроса.ДокументСерия;
    Область.Параметры.НомерПаспорт = РезультатЗапроса.ДокументНомер;
    Область.Параметры.ДатаВыдачи57 =  Формат(РезультатЗапроса.ДокументДатаВыдачи,"ДЛФ=Д");
    Область.Параметры.ВыданКем = РезультатЗапроса.ДокументКемВыдан;
    Область.Параметры.КандидатАдрес = РезультатЗапроса.ДатаРегистрацииПоМестуЖительства;
    Область.Параметры.ОрганизацияНаименование = Сотрудник.Организация.Наименование;
    Область.Параметры.ОрганизацияОГРН = Сотрудник.Организация.ОГРН;
    Область.Параметры.ОрганизацияИНН = Сотрудник.Организация.ИНН;
    Область.Параметры.Дата = Формат(ТекущаяДата(),"ДЛФ=Д");
    Область.Параметры.АдресОрганизации = ПолучитьАдресОрганизации(Сотрудник.Организация);

    ТабДок.Вывести(Область);
    
    ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    ТабДок.АвтоМасштаб=Истина;
    ТабДок.ТолькоПросмотр=Истина;
    ТабДок.ОтображатьСетку=Ложь;
    
    Возврат ТабДок;
    
КонецФункции

Функция  ПолучитьАдресОрганизации(мОрганизация);
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтактнаяИнформация.Представление
    |ИЗ
    |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |    КонтактнаяИнформация.Объект = &Объект
    |    И КонтактнаяИнформация.Вид = &Вид";
    
    Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
    Запрос.УстановитьПараметр("Объект",Справочники.Организации.НаименованиеПолное);
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    Если РезультатЗапроса.Количество() <> 0 Тогда
        Для каждого элемент из РезультатЗапроса Цикл
            мОрганизацияАдрес = элемент.ОрганизацияАдрес;
        КонецЦикла;
    Иначе
        мОрганизацияАдрес = "";
    КонецЕсли;
    
    Возврат мОрганизацияАдрес;

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

я только новичок, не ругайтесь.
1 undertale
 
19.10.20
10:50
Не ругайтесь сильно , если не правильно мысль донёс до вас.
Я только начинаю и многого еще не понимаю.
2 Metman
 
19.10.20
10:54
В макете в поле "Область" есть параметр "АдресОрганизации? Может поле называется "Шапка"?
3 Metman
 
19.10.20
10:54
Скрин макета сделай
4 undertale
 
19.10.20
11:02
5 undertale
 
19.10.20
11:06
(2) Я если что поменял "АдресОрганизации" на "ОрганизацияАдрес"
6 undertale
 
19.10.20
11:10
Теперь вот такая ошибка уже https://ibb.co/BLdH1jH
Пипец, я совсем запутался...
7 Волшебник
 
19.10.20
11:11
Выборка = РезультатЗапроса.Выбрать()

Пока Выборка.Следующий Цикл
...
8 Доминошник
 
19.10.20
12:11
(6)  мОрганизацияАдрес = элемент.КонтактнаяИнформация;
9 Borometr
 
19.10.20
12:51
(6) в конструкторе запроса на закладке Объединения/Псевдонимы посмотри имя поля, его и впиши вместо ОрганизацияАдрес
10 undertale
 
20.10.20
07:51
В итоге, я просто нечаянно удалил в запросе
КонтактнаяИнформация.Представление КАК КонтактнаяИнформация
Сорян, всё работает)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn