|
Запрос по табличной части | ☑ | ||
---|---|---|---|---|
0
KuJIT
25.10.14
✎
11:21
|
День добрый.
Есть ФизЛицо, для него собираю всякую информацию из различных объектов конфигурации. У справочника ФизЛицо есть табличная часть с различной информацией (ФЛ.ТЧ1.Строка1.Реквизит1, ФЛ.ТЧ1.Строка2.Рекизит1). Каким образам можно (и можно ли) сделать так, чтобы в результате выборки (Выборка = Запрос.Выполнить().Выбрать();)Я смог получить: Выборка.Сотрудник.Реквизит1 Выборка.ФЛ.Ссылка Выборка.ФЛ.ТЧ1.Строка1.Реквизит1 Выборка.ФЛ.ТЧ1.Строка2.Реквизит1 При этом: ЛЕВОЕ СОЕДИНЕНИЕ ФЛ ПО Сотрудник.ФЛ = ФЛ.ССылка (ФЛ1.ТЧ1.Реквизит2 = Параметр1 ИЛИ ФЛ1.ТЧ1.Реквизит2 = Параметр2) Сотрудник.Ссылка В &СписокСотрудников Как-то так. Надеюсь, понятно выразился. |
|||
1
KuJIT
25.10.14
✎
12:14
|
Нашел одно из решений, но, мне кажется, есть и получше.
В Запрос добавляем: ФЛ.ТЧ1.Реквизит1 ФЛ.ТЧ1.Реквизит2 В результате выборки получаем: Выборка.ФЛ.ТЧ1 как результат запроса. Делаем Выборка2 = Выборка.ФЛ.ТЧ1.Выбрать(); А дальше по Выборке2 ищем подходящие Реквизит1 по Нужному РЕквизит2. |
|||
2
palpetrovich
25.10.14
✎
12:18
|
(0) не, непонятно :)
покажи что уже делал, не надо абстракций в субботу ;) |
|||
3
barrgand
25.10.14
✎
12:29
|
(0) Сразу запросом не получится, обрабатывай выборку, составляй свою таблицу.
|
|||
4
Chameleon1980
25.10.14
✎
13:12
|
(Выборка = Запрос.Выполнить().Выбрать();)Я смог получить:
итоги, группировка и метод обхода? |
|||
5
KuJIT
26.10.14
✎
09:31
|
СписокЗначенийСотрудники = Новый СписокЗначений;
Для Каждого СтрокаСЗаявкой ИЗ Заявки Цикл Если НЕ СтрокаСЗаявкой.Выгрузить ТОгда Продолжить; КонецЕсли; СписокЗначенийСотрудники.Добавить(СтрокаСЗаявкой); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ФИОФизическихЛицСрезПоследних.Фамилия, | ФИОФизическихЛицСрезПоследних.Имя, | ФИОФизическихЛицСрезПоследних.Отчество, | ""21"" КАК ДокументВид, | ДокументыФизическихЛицСрезПоследних.Серия КАК ДокументСерия, | ДокументыФизическихЛицСрезПоследних.Номер КАК ДокументНомер, | ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДокументДатаВыдачи, | ДокументыФизическихЛицСрезПоследних.КемВыдан КАК ДокументКемВыдан, | ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения, | ПлановыеНачисленияСрезПоследних.Размер КАК Оклад, | ФизическиеЛица.ИНН КАК ИНН, | ФизическиеЛица.ДатаРождения КАК ДатаРождения, | ФизическиеЛица.МестоРождения КАК МестоРождения, | СостоянияВБракеФизическихЛицСрезПоследних.СостояниеВБраке КАК СемейноеПоложение, | ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК Должность, | Сотрудники.Ссылка КАК Ключ, | ФизическиеЛица.КонтактнаяИнформация.( | Ссылка, | НомерСтроки, | Тип, | Вид, | Представление, | ЗначенияПолей, | Страна, | Регион, | Город, | АдресЭП, | ДоменноеИмяСервера, | НомерТелефона, | НомерТелефонаБезКодов | ) |ИЗ | Справочник.Сотрудники КАК Сотрудники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц.СрезПоследних КАК ФИОФизическихЛицСрезПоследних | ПО Сотрудники.ФизическоеЛицо = ФИОФизическихЛицСрезПоследних.ФизическоеЛицо | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО Сотрудники.ФизическоеЛицо = ФизическиеЛица.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних | ПО Сотрудники.ФизическоеЛицо = ДокументыФизическихЛицСрезПоследних.Физлицо | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияВБракеФизическихЛиц.СрезПоследних КАК СостоянияВБракеФизическихЛицСрезПоследних | ПО Сотрудники.ФизическоеЛицо = СостоянияВБракеФизическихЛицСрезПоследних.ФизическоеЛицо | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников | ПО Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник | И Сотрудники.ФизическоеЛицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо | И Сотрудники.ГоловнаяОрганизация = ТекущиеКадровыеДанныеСотрудников.ГоловнаяОрганизация | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисления.СрезПоследних КАК ПлановыеНачисленияСрезПоследних | ПО Сотрудники.Ссылка = ПлановыеНачисленияСрезПоследних.Сотрудник | И Сотрудники.ФизическоеЛицо = ПлановыеНачисленияСрезПоследних.ФизическоеЛицо |ГДЕ | Сотрудники.Ссылка В(&Сотрудники) | И (ДокументыФизическихЛицСрезПоследних.ВидДокумента = &ВидДокумента1 | ИЛИ ДокументыФизическихЛицСрезПоследних.ВидДокумента = &ВидДокумента2)" ; Запрос.УстановитьПараметр("Сотрудники", СписокЗначенийСотрудники); Запрос.УстановитьПараметр("ВидДокумента1", Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ); Запрос.УстановитьПараметр("ВидДокумента2", Справочники.ВидыДокументовФизическихЛиц.ПаспортСССР); Выборка = Запрос.Выполнить().Выбрать(); СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Ключ", ""); СтруктураПоискаАдресПрописки = Новый Структура; СтруктураПоискаСотовыйТелефон = Новый Структура; СтруктураПоискаДомашнийТелефон = Новый Структура; СтруктураПоискаАдресПрописки.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес); СтруктураПоискаАдресПрописки.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица); СтруктураПоискаДомашнийТелефон.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон); СтруктураПоискаДомашнийТелефон.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.ТелефонДомашнийФизическиеЛица); СтруктураПоискаСотовыйТелефон.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон); СтруктураПоискаСотовыйТелефон.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица); Для Каждого Сотрудник ИЗ СписокЗначенийСотрудники Цикл СтруктураПоиска["Ключ"] = Сотрудник.Значение[1]; Если Выборка.НайтиСледующий(СтруктураПоиска) Тогда КонтИнформация = Выборка.КонтактнаяИнформация.Выбрать(); Если КонтИнформация.НайтиСледующий(СтруктураПоискаАдресПрописки) Тогда Область.Параметры.АдресПрописки = КонтИнформация.Представление; КонтИнформация.Сбросить(); КонецЕсли; Если КонтИнформация.НайтиСледующий(СтруктураПоискаДомашнийТелефон) Тогда Область.Параметры.ДомашнийТелефон = КонтИнформация.Представление; КонтИнформация.Сбросить(); КонецЕсли; Если КонтИнформация.НайтиСледующий(СтруктураПоискаСотовыйТелефон) Тогда Область.Параметры.СотовыйТелефон = КонтИнформация.Представление; КонтИнформация.Сбросить(); КонецЕсли; Область.Параметры.Заполнить(Выборка); Область.Параметры.ЭмбоссированныйТекст1 = ТрЛит(Выборка.Фамилия); Область.Параметры.ЭмбоссированныйТекст2 = ТрЛит(Выборка.Имя); Выборка.Сбросить(); ТабДокумент.Вывести(Область); КонецЕсли; Как-то так получилось. ЗУП 3.0. |
|||
6
Chameleon1980
26.10.14
✎
13:05
|
может метод "выбрать" посмотреть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |