Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
1

1С ЗУП 3.1 Внешняя обработка с макетом как получить адрес сотрудника по прописке из запроса

22.03.2018, 14:09. Просмотров 877. Ответов 16
Метки нет (Все метки)

Добрый день! Помогите пожалуйста. Кто-то уже разобрался в вопросе как в 1С ЗУП 3.1 во внешней обработке нужно получить адрес сотрудника по прописке в запросе и вывести в поле макета.

Привожу функцию с запросом.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Функция ПечатьВнешнейПечатнойФормы(МассивОбъектов, ОбъектыПечати, ПараметрыПечати) Экспорт
 
    ТабДок = новый ТабличныйДокумент;
    Макет = ПолучитьМакет("ПФ_MXL_Т5");
    НастройкиПечатныхФорм = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм();
    
    ДокументРезультат = Новый ТабличныйДокумент;
    ДокументРезультат.КлючПараметровПечати = "ПараметрыПечати_Т5";
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    
    Запрос.Текст =
        "ВЫБРАТЬ
        |   КадровыйПеревод.Организация КАК Организация,
        |   КадровыйПеревод.Сотрудник КАК Сотрудник,
        |   КадровыйПеревод.Подразделение КАК Подразделение,
        |   КадровыйПеревод.Должность КАК Должность,
        |   КадровыйПеревод.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
        |   КадровыйПеревод.ГрафикРаботы КАК ГрафикРаботы,
        |   КадровыйПеревод.Номер КАК Номер,
        |   КадровыйПеревод.Дата КАК Дата,
        |   КадровыйПеревод.Организация.НаименованиеПолное КАК ОрганизацияНаименованиеПолное,
        |   КадровыйПеревод.ИзменитьПодразделениеИДолжность КАК ИзменитьПодразделениеИДолжность,
        |   ОсновныеДанныеКонтрактаДоговораСотрудника.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
        |   ОсновныеДанныеКонтрактаДоговораСотрудника.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
        |   ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник КАК Сотрудник1,
        |   КадровыйПеревод.Руководитель КАК Руководитель,
        |   КадровыйПеревод.ДолжностьРуководителя КАК ДолжностьРуководителя,
        |   КадровыйПеревод.ФизическоеЛицо.ДатаРождения КАК ФизическоеЛицоДатаРождения,
        |   КадровыйПеревод.ФизическоеЛицо.ИНН КАК ФизическоеЛицоИНН,
        |   КадровыйПеревод.ФизическоеЛицо.СтраховойНомерПФР КАК ФизическоеЛицоСтраховойНомерПФР,
        |   КадровыйПеревод.ФизическоеЛицо.Фамилия КАК ФизическоеЛицоФамилия,
        |   КадровыйПеревод.ФизическоеЛицо.ИнициалыИмени КАК ФизическоеЛицоИнициалыИмени,
        |   КадровыйПеревод.ФизическоеЛицо.Код КАК ФизическоеЛицоКод,
        |   КадровыйПеревод.ФизическоеЛицо.Наименование КАК ФизическоеЛицоНаименование,
        |   КадровыйПеревод.Руководитель.Фамилия КАК РуководительФамилия,
        |   КадровыйПеревод.Руководитель.ИнициалыИмени КАК РуководительИнициалыИмени,
        |   КадровыйПеревод.Руководитель.Отчество КАК РуководительОтчество,
        |   КадровыйПеревод.ФизическоеЛицо.Отчество КАК ФизическоеЛицоОтчество,
        |   КадровыйПеревод.Организация.ИНН КАК ОрганизацияИНН,
        |   ДокументыФизическихЛиц.Серия КАК Серия,
        |   ДокументыФизическихЛиц.Номер КАК Номер1,
        |   ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
        |   ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
        |   ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
        |   ДокументыФизическихЛиц.Представление КАК Представление,
        |   ДокументыФизическихЛиц.Физлицо КАК Физлицо,
        |   ДокументыФизическихЛиц.Физлицо.КонтактнаяИнформация.(
        |       Представление КАК ФизлицоПредставление
        |   ) КАК Физлицо1
        |ИЗ
        |   РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника КАК ОсновныеДанныеКонтрактаДоговораСотрудника
        |       ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод КАК КадровыйПеревод
        |           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц
        |           ПО КадровыйПеревод.ФизическоеЛицо = ДокументыФизическихЛиц.Физлицо
        |       ПО ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник = КадровыйПеревод.Сотрудник
        |ГДЕ
        |   КадровыйПеревод.Ссылка В(&МассивОбъектов)";
        
        Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
        ОбщаяВыборка = Запрос.Выполнить().Выгрузить();
 
 
    
        ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
        ОбластьРаботник = Макет.ПолучитьОбласть("Работник");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    
 
    Для Каждого Стр из ОбщаяВыборка Цикл
 
            ОбластьШапка.Параметры.НомерДок = Стр.Номер;
            ОбластьШапка.Параметры.НазваниеОрганизации = Стр.ОрганизацияНаименованиеПолное;
            ОбластьШапка.Параметры.ДатаДок = Стр.Дата;
            ОбластьРаботник.Параметры.Работник = Стр.Сотрудник;
            ОбластьПодвал.Параметры.Работник = Стр.Сотрудник;
            ОбластьПодвал.Параметры.НазваниеОрганизации = Стр.ОрганизацияНаименованиеПолное;
            ОбластьПодвал.Параметры.ДолжностьРуководителя = Стр.ДолжностьРуководителя;
            ОбластьШапка.Параметры.ДолжностьРуководителя=Стр.ДолжностьРуководителя;
            ОбластьШапка.Параметры.Руководитель=Стр.Руководитель;
            ОбластьПодвал.Параметры.РуководительФамилия = Стр.РуководительФамилия;
            ОбластьПодвал.Параметры.РуководительИнициалыИмени = Стр.РуководительИнициалыИмени;
            ОбластьПодвал.Параметры.РуководительОтчество = Лев(Стр.РуководительОтчество,1);
            ОбластьПодвал.Параметры.ФизическоеЛицоДатаРождения=Стр.ФизическоеЛицоДатаРождения;
            ОбластьПодвал.Параметры.ФизическоеЛицоИНН = Стр.ФизическоеЛицоИНН;
            ОбластьПодвал.Параметры.ФизическоеЛицоСтраховойНомерПФР = Стр.ФизическоеЛицоСтраховойНомерПФР;
            ОбластьПодвал.Параметры.ФизическоеЛицоФамилия = Стр.ФизическоеЛицоФамилия;
            ОбластьПодвал.Параметры.ФизическоеЛицоИнициалыИмени = Стр.ФизическоеЛицоИнициалыИмени;
            ОбластьПодвал.Параметры.ФизическоеЛицоОтчество = Лев(Стр.ФизическоеЛицоОтчество,1);
            ОбластьПодвал.Параметры.ОрганизацияИНН = Стр.ОрганизацияИНН;
            Если СтрНайти(Стр.ОрганизацияНаименованиеПолное, "КМК",,,) = "КМК" Тогда
                ОбластьПодвал.Параметры.РасчСч = "40702810" ;
            Иначе
                ОбластьПодвал.Параметры.РасчСч = "40702810";
            КонецЕсли;
            ОбластьПодвал.Параметры.Паспорт = Стр.Представление;
    
    КонецЦикла;
 
    ДокументРезультат.Вывести(ОбластьШапка);
    ДокументРезультат.Вывести(ОбластьРаботник);
    ДокументРезультат.Вывести(ОбластьПодвал);
Возврат ДокументРезультат;
    
КонецФункции

Дело в том, что параметр Физлицо1 выводится пустым в макете. Проверяя запрос в консоли Запросов данные в параметре Физлицо1 есть.
Приведу результат запроса:

Пожалуйста подскажите кто разобрался как сделать.
0
Миниатюры
1С ЗУП 3.1 Внешняя обработка с макетом как получить адрес сотрудника по прописке из запроса  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2018, 14:09
Ответы с готовыми решениями:

ЗУП 3.1. Как получить данные графика работы сотрудника?
Здравствуйте. ЗУП 3.1. Как получить данные графика работы сотрудника? А именно...

ЗУП 3.1 Как получить оклад/тарифную ставки и дополнительные начисления сотрудника?
Здравствуйте. ЗУП 3.1 Как получить оклад/тарифную ставки и дополнительные...

Поиск сотрудника, ЗУП
Доброе время суток. Нужна помощь с загадкой в коде 8.2 ЗУП,Зарплата и...

Не могу получить ссылку на форму, с которой вызывается внешняя обработка
Добрый день! Создал дополнительную внешнюю обработку, прикрепил ее к документу...

На одном из компьютеров адрес dhcp-сервера сменился на адрес компьютера другого сотрудника
Здравствуйте! Столкнулся с такой проблемой: на одном из компьютеров...

16
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 14:12 2
khenata, здравствуйте. Что-то я не увидела, где у вас в коде выводится поле Физлицо1 в параметрах макета?
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 14:24  [ТС] 3
Справедливое замечание, не уточнила.
При попытке вывести В Цикле Для Каждого ругается что не нет поля ФизЛицо1.

Если использовать цикл этот, то пустое сообщение выходит.

1C
1
2
3
Пока Выборка.Следующий() Цикл
      Сообщить(Выборка.ФизЛицо1);
КонеЦикла
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 14:58 4
khenata, надо делать соединение с табличной частью КонтактнаяИнформация и отбором по типу и виду информации(адрес) или при обходе выборки дополнительно прописывать Выбрать()
Например, попробуйте:
1C
1
2
3
4
5
6
Пока Выборка.Следующий() Цикл
 ВыборкаДетальная = Выборка.Выбрать();
 Пока ВыборкаДетальная.Следующий() Цикл
   Сообщить(ВыборкаДетальная.ФизлицоПредставление);
 КонецЦикла;
КонеЦикла
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 15:35  [ТС] 5
попробовала предложенный вариант. вот что получилось:

1C
1
2
3
4
5
6
7
8
9
10
11
Пока Выборка.Следующий() Цикл
            Сообщить(Выборка.ФизЛицо);
            Сообщить(Выборка.Номер);
 
             ВыборкаДетальная = Выборка.Выбрать();
             Сообщить(ВыборкаДетальная);
             Пока ВыборкаДетальная.Следующий() Цикл
                 
                Сообщить(ВыборкаДетальная.ФизлицоПредставление);
            КонецЦикла;
        КонецЦикла;
и когда добавила Сообщить(ВыборкаДетальная);
стало выдавать ошибку:"Несоответствие типов(параметр номер '1'
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 15:38 6
khenata,
1C
1
2
3
4
5
6
7
8
Пока Выборка.Следующий() Цикл
            Сообщить(Выборка.ФизЛицо);
            Сообщить(Выборка.Номер);
             ВыборкаДетальная = Выборка.Выбрать();
             Пока ВыборкаДетальная.Следующий() Цикл
                  Сообщить(ВыборкаДетальная.ФизлицоПредставление);
            КонецЦикла;
        КонецЦикла;
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 15:43  [ТС] 7
А это Сообщить(ВыборкаДетальная.ФизлицоПредставление); не выводится никак, похоже в цикл не заходит. даже любое другое сообщение текстовое не выводится в цикле ВыборкаДетальная.
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 15:55 8
khenata, так а у этого ФизЛица прописан адрес вообще? Покажите ваш рабочий код, без Сообщить(), где вы пытаетесь вывести контактную информацию.
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 16:06  [ТС] 9
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Пока Выборка.Следующий() Цикл
            Сообщить(Выборка.ФизЛицо);
            Сообщить(Выборка.Номер);
            ОбластьШапка.Параметры.НомерДок = Выборка.Номер;
            ОбластьШапка.Параметры.НазваниеОрганизации = Выборка.ОрганизацияНаименованиеПолное;
            ОбластьШапка.Параметры.ДатаДок = Выборка.Дата;
            ОбластьРаботник.Параметры.Работник = Выборка.Сотрудник;
            ОбластьПодвал.Параметры.Работник = Выборка.Сотрудник;
            ОбластьПодвал.Параметры.НазваниеОрганизации = Выборка.ОрганизацияНаименованиеПолное;
            ОбластьПодвал.Параметры.ДолжностьРуководителя = Выборка.ДолжностьРуководителя;
            ОбластьШапка.Параметры.ДолжностьРуководителя=Выборка.ДолжностьРуководителя;
            ОбластьШапка.Параметры.Руководитель=Выборка.Руководитель;
            ОбластьПодвал.Параметры.РуководительФамилия = Выборка.РуководительФамилия;
            ОбластьПодвал.Параметры.РуководительИнициалыИмени = Выборка.РуководительИнициалыИмени;
            ОбластьПодвал.Параметры.РуководительОтчество = Лев(Выборка.РуководительОтчество,1);
            ОбластьПодвал.Параметры.ФизическоеЛицоДатаРождения=Выборка.ФизическоеЛицоДатаРождения;
            ОбластьПодвал.Параметры.ФизическоеЛицоИНН = Выборка.ФизическоеЛицоИНН;
            ОбластьПодвал.Параметры.ФизическоеЛицоСтраховойНомерПФР = Выборка.ФизическоеЛицоСтраховойНомерПФР;
            ОбластьПодвал.Параметры.ФизическоеЛицоФамилия = Выборка.ФизическоеЛицоФамилия;
            ОбластьПодвал.Параметры.ФизическоеЛицоИнициалыИмени = Выборка.ФизическоеЛицоИнициалыИмени;
            ОбластьПодвал.Параметры.ФизическоеЛицоОтчество = Лев(Выборка.ФизическоеЛицоОтчество,1);
            ОбластьПодвал.Параметры.ОрганизацияИНН = Выборка.ОрганизацияИНН;
            Если СтрНайти(Выборка.ОрганизацияНаименованиеПолное, "КМК",,,) = "КМК" Тогда
                ОбластьПодвал.Параметры.РасчСч = "40702810438000007999" ;
            Иначе
                ОбластьПодвал.Параметры.РасчСч = "40702810538180008909";
            КонецЕсли;
            ОбластьПодвал.Параметры.Паспорт = Выборка.Представление;
    
 
             ВыборкаДетальная = Выборка.Выбрать();
             
             Пока ВыборкаДетальная.Следующий() Цикл
                
                Сообщить(ВыборкаДетальная.ФизлицоПредставление);
                ОбластьПодвал.Параметры.Адрес = ВыборкаДетальная.ФизлицоПредставление;
            КонецЦикла;
        КонецЦикла;
не выводится в макет. с помощью Сообщить() проверяю. если данные выведутся, то и в макет попадают.

Добавлено через 1 минуту
то, что относится к Выборка - все в макете выводится.
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 16:07 10
khenata, покажите ваш запрос и посмотрите в базе есть ли контактная информация для данного физ.лица.
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 16:11  [ТС] 11
да есть, потому что результат запроса дает эту информацию. я подкрепляла файл с результатом - там видно все, если не трудно гляньте пж-ста. отлаживаю на документе кадровое перемещение - там одно физ.лицо.
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 16:24 12
Лучший ответ Сообщение было отмечено GreenkA как решение

Решение

khenata, измените код:
1C
1
2
3
4
5
6
ВыборкаДетальная = Выборка.ФизЛицо1.Выбрать();
 
Пока ВыборкаДетальная.Следующий() Цикл
    Сообщить(ВыборкаДетальная.ФизлицоПредставление);
    ОбластьПодвал.Параметры.Адрес = ВыборкаДетальная.ФизлицоПредставление;
КонецЦикла;
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 16:31  [ТС] 13
Вот это я не догадалась так выбрать..... мне наука.
Все получилось!!!
ВЫ СУПЕР! СУПЕР! СУПЕР!
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
22.03.2018, 16:32 14
Цитата Сообщение от khenata Посмотреть сообщение
ВЫ СУПЕР! СУПЕР! СУПЕР!
а вы сделали мой день
Обращайтесь
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
22.03.2018, 16:34  [ТС] 15
СПАСИБО, буду.
0
khenata
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 17
07.06.2018, 16:45  [ТС] 16
GreenkA,

Здравствуйте!
Подскажите пожалуйста как с помощью цикла сравнить каждую запись из первого запроса и второго запроса. Какие способы нужно использовать. Цикл в цикле неправильно получается.
0
GreenkA
Модератор
Эксперт 1С
2266 / 1658 / 498
Регистрация: 25.06.2009
Сообщений: 6,088
08.06.2018, 11:25 17
Цитата Сообщение от khenata Посмотреть сообщение
Подскажите пожалуйста как с помощью цикла сравнить каждую запись из первого запроса и второго запроса
может создадите новую тему и выложите эти два запроса?) два месяца прошло...
как вариант: сделать из двух запросов - один. а как - надо смотреть.
0
08.06.2018, 11:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2018, 11:25

1с ЗУП. Счета учета зарплаты сотрудника
Добрый день. Делаю обработку в ЗУП. Требуется: найти счет, на котором будут...

Внешняя печатная форма ЗУП 8.2
Здравствуйте, помогите разобраться, создал внешнюю печатную форму, на основе...

Внешняя печатная форма в ЗУП 3.0
Здравствуйте. Помогите пожалуйста. Задача: на основании документа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru