Имя: Пароль:
1C
1С v8
как получить табличную часть справочника в запросе?
0 st10000
 
28.11.22
16:09
Привет специалистам
8.3 Розница

Вот начало запроса для печатной формы

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

и т.д. до вывода формы.
Моя загвоздка в Клиенте. Клиент это справочник ссылка на справочник ФизическиеЛица.
У него есть Табличная часть, называется КонтактнаяИнформация в ней поле НомерТелефона.

пробовал так-     |    Документ.Клиент.КонтактнаяИнформация.НомерТелефона КАК НомерТелефона,

и так-     |    Документ.Клиент.КонтактнаяИнформация.(НомерТелефона КАК НомерТелефона) КАК КонтактнаяИнформация,

и так тоже пробовал:
    |    Документ.Клиент.КонтактнаяИнформация.(
    |        НомерТелефона КАК НомерТелефона
    |    ) КАК КонтактнаяИнформация,

каждый раз примерно такая ошибка- Нельзя обращаться к вложенной таблице через поле составного типа "Документ.Клиент.КонтактнаяИнформация.НомерТелефона"

как правильно написать запрос?
1 Смотрящий
 
28.11.22
16:13
ВЫБОР
...
КлиентКонтактнаяИнформация.НомерТелефона КАК НомерТелефона,
....
ИЗ
Документ.ор_Заказ КАК Документ

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Клиент.КонтактнаяИнформация КАК КлиентКонтактнаяИнформация
ПО Документ.Клиент = КлиентКонтактнаяИнформация.Ссылка
2 Смотрящий
 
28.11.22
16:14
Справочник.ФизическиеЛица.КонтактнаяИнформация
3 st10000
 
28.11.22
16:47
нет
если Выбор должен быть Когда
4 Галахад
 
гуру
28.11.22
17:13
(3) А зачем? Чем (1) не подходит?
5 Garykom
 
гуру
28.11.22
17:21
(0) ТЧ это другая таблица связанная с таблицей справочника или документа
так что отдельный запрос и соединяешь
6 st10000
 
02.12.22
17:11
вернулся, спасибо, разобрался, но есть но
вот так выглядит код

Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    Документ.Ссылка КАК Ссылка,
|    Документ.Номер КАК Номер,
|    Документ.Дата КАК Дата,
|    Документ.Клиент КАК Заказчик,
|    Документ.Клиент.ДатаРождения КАК ДатаРождения,
|    Документ.Магазин КАК Магазин,
|    Документ.БанковскийСчетОрганизации КАК БанковскийСчет,
|    КлиентКонтактнаяИнформация.НомерТелефона КАК НомерТелефона
|ИЗ
|    Документ.ор_Заказ КАК Документ
|    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК КлиентКонтактнаяИнформация
|    ПО Документ.Клиент = КлиентКонтактнаяИнформация.Ссылка
|ГДЕ
........

НомерТелефона в печати есть. Если в карточке клиента просто еще заполняю поле email то НомерТелефона не выводится.
Данные сохраняются, но в отчет НомерТелефона уже не попадает.
Как такое может быть?
7 vicof
 
02.12.22
17:21
Нужно еще в условиях соединения задавать вид и тип
8 ass1c
 
02.12.22
17:31
(6)
                   |        ПО Документ.Клиент = КлиентКонтактнаяИнформация.Ссылка
                   |            И (КлиентКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
                   |            И (КлиентКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонДомашнийФизическиеЛица))";

И бери не реквизит "номер телефона", а "представление", хотя там тоже для телефона он записан
Ну и тип и вид под свои значения приведи...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.