v7: извлечь и типизировать вид справочника в прямом запросе #657061


#0 by Zakarum
База dbf. Использую подключение через объект OLEDB. Произвожу выборку некоторго справочника (например "контрагенты"). У него есть реквизит с типом "Справочник неопределенного вида" (например "ЮрФизЛицо") Возникла задача установить, какие были использованы виды справочников в этом реквизите. Типизация в прямом запросе по первым четырем символам почему-то не работает. Итоговый текст запроса такой SELECT    Спр.Code as Код,    Спр.Descr as Наименование, FROM Подскажите, пожалуйста, как исправить строку substr, чтобы она типизировала сам вид справочника, если это возможно.
#1 by Ёпрст
left($Спр.ЮрФизЛицо,4) as [Вид $ВидСправочника]
#2 by Zakarum
тоже не работает :( у меня такая строка: left($Спр.ЮрФизЛицо, 4) as [ВидСпрЮрФизЛицо $ВидСправочника] хотя предыдущая колонка с полной типизацией юрфизлица выдает непустой результат
#3 by Ёпрст
Ну, попробуй так что ли: ЗЫ: ну или тупо через icase
#4 by Zakarum
$ВидСправочникаПредставление тоже выдает пустоту. case не хотелось бы использовать, т.к. предполагаю делать выгрузку, в которой можно выбирать любой справочник и выгружать реквизиты его реквизитов, если эти реквизиты сами являются справочниками. Я так понимаю, $ВидСправочника и ВидСправочникаПредставление обязаны работать?
#5 by Ёпрст
для скуля - да, для оледб не гарантированно, скорее всего нет. Только сравнение через case будет работать, типизация врят ли. ЗЫ: можно и через 1sqlite написать запрос. Да и.. у тебя всего то там 2 вида справочника, тупо iif/icase и привет
#6 by Zakarum
печально. Видимо так и есть, в описании к OLEDB эти варианты типизации не приводятся. >>Да и.. у тебя всего то там 2 вида справочника, тупо iif/icase и привет для ЮрФизЛица в Справочнике Контрагенты -- да. Но этот вариант я взял для примера, а так-то мне надо написать выгрузку в некую внешнюю приблуду для любых справочников и их выбираемых реквизитов, а если этреквизиты справочники, то еще и выбирать реквизиты тех справочников. Ну то есть Контрагенты.ЮрфизЛицо.Адрес с 1sqlite не сложились у меня отношения.
#7 by Ёпрст
если выбирать реквизиты в рамках одного запроса - то это соединение.. опять же, вид не нужен будет - ручонками же юнион собирать будешь, из всевозможных видов справочников.
#8 by Ёпрст
В твоём случае, можно сделать так (как делают с перечислениями) - лепишь временную табличку, в которую заносишь Id вида справочника и его представление в текстовом виде. С ней и соединяешься в тексте запроса для получения представления.
#9 by Zakarum
гениально! так и сделаю, спасибо :) П.С. в рамках одного запроса нельзя. Надо выдать список реквизитов тех справочников с таблицу значений на форму, чтобы можно было выбрать нужные.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С