Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 22:40

Получить значение ссылки ComConnector

Автор Sinsinmin, 20 апр 2011, 08:39

0 Пользователей и 1 гость просматривают эту тему.

Sinsinmin

Подключаюсь к другой базе с помощью метода ComConnector.
Делаю запрос. В запросе есть поле Пол, которое является Перечислением.ПолФизическихЛиц. Каким образом получить значение этого поля?
В запросе поле = Документ.ФизЛица.Пол
Данные документа Пол = Перечисление.ПолФизическихЛиц.Мужской
А ComЗапросе поле Выборка.Пол = ComObject
Методом тыка делал Выборка.Пол.Значение, Выборка.Пол.ПолучитьОбъект, Выборка.Пол.ПолучитьСсылку, но ничего не получилось.

cska-fanat-kz

Получается в ИБ_Получателе нет такого перечисления?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sinsinmin

Такое перечисление есть в обоих базах. Полностью идентичное. Перечисления.ПолФизическихЛиц со значениями Мужской и Женский. Просто я получаю ComObject. Ссылку на него. А значение вытащить не могу

cska-fanat-kz

У вас запрос на какой стороне формируется?
Источника или Получателя?

И если можно текст запроса...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sinsinmin

Запрос формируется на стороне получателя.


V8Com = Новый ComObject("V81.ComConnector");
ZUPconnect = V8Com.Connect("File=""D:\1c8Base\ZUP\"";Usr=""system"";");
Запрос= ZUPconnect.NewObject("Запрос");

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


Sinsinmin

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

Sinsinmin

ПриемНаРаботуВОрганизацию.ФизЛицо.Пол.Ссылка КАК Пол это поле было равно ПриемНаРаботуВОрганизацию.ФизЛицо.Пол
Ссылку я ставил чтобы попытаться чтото вытащить

cska-fanat-kz

Надо же! Сам тоже занимаюсь сейчас внешним соединением.
И тоже столкнулся с получением ссылки.
Но применительно к перечислению... заменил его значения на числа с помощью оператора запроса ВЫБОР.
То есть получилось так...

Запрос= ИБ_Источник.NewObject("Запрос");

Запрос.Текст = "ВЫБРАТЬ
| СоставПодписки.Владелец.ЮрФизЛицоКонтрагента.Наименование КАК КонтрагентНаименование,
| СоставПодписки.Владелец.ЮрФизЛицоКонтрагента.ИНН КАК ИНН,
| СоставПодписки.Владелец.ГодНачалаСопровождения КАК ГодНачалаСопровождения,
| ВЫБОР
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Январь)
| ТОГДА 1
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Февраль)
| ТОГДА 2
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Март)
| ТОГДА 3
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Апрель)
| ТОГДА 4
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Май)
| ТОГДА 5
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Июнь)
| ТОГДА 6
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Июль)
| ТОГДА 7
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Август)
| ТОГДА 8
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Сентябрь)
| ТОГДА 9
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Октябрь)
| ТОГДА 10
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Ноябрь)
| ТОГДА 11
| КОГДА СоставПодписки.Владелец.МесяцНачалаСопровождения = ЗНАЧЕНИЕ(Перечисление.НазванияМесяцев.Декабрь)
| ТОГДА 12
| КОНЕЦ КАК МесяцНачалаСопровождения,
| СоставПодписки.Владелец.СрокСопровождения КАК СрокСопровождения,
| СоставПодписки.Дистрибутив.Наименование КАК РегНомер,
| СоставПодписки.Дистрибутив.ПрограммныйПродукт.НаименованиеПолное КАК ПП,
| СоставПодписки.КодПодписки.КодПодписки КАК КодПодписки,
| СоставПодписки.КодПодписки.Наименование КАК НаименованиеПодписки
|ИЗ
| Справочник.СоставПодписки КАК СоставПодписки
|ГДЕ
| СоставПодписки.Владелец.ЮрФизЛицоКонтрагента.ИНН <> """"

|УПОРЯДОЧИТЬ ПО
| КонтрагентНаименование,
| МесяцНачалаСопровождения,
| ГодНачалаСопровождения";
Выборка = Запрос.Выполнить().Выбрать();

ТЗПодписки.Очистить();

Пока Выборка.Следующий() Цикл
//НоваяСтрока = ТЗПодписки.Добавить();
КонецЦикла;



ЗЫ Спасибо за пример запроса к ИБ-источнику ;))
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск