v.7.7: Как получить вид справочника в запросе? #145666


#0 by PashaTP
v.7.7: Как получить вид справочника в запросе? Поле многострочной части документа вида Справочник неопределенного вида.
#1 by insider
Задачу чуть подробнее... т.е. для чего это, как будет использоваться
#2 by insider
+1 в общем случае так работать не будет, если под Вид имеется ввиду методе справочника Вид. можно так: делаем функцию модуля, например ПроверкаТМЦ и в ней пишем соотв. условия, далее в запрос вставляем условие, например такое "ПроверкаТМЦ(ТМЦ)=1" - ну чему равно уже сам как-нибудь, если нужа группировка... то имхо никак, только выгрузка в ТЗ и  перебирание этой ТЗ в цикле, хотя может быть кто-нибудь еще подскажет.
#3 by PashaTP
В оригинале было скрытое поле в ТЧ документа куда прописывался вид справичника ТМЦ использованного в конкретной строке, для экономии убрал поле, теперь не могу в запросе обойтись без него. А группировку циклами перебора результатов запроса реализовать можно?
#4 by PashaTP
1: Задача - Реестр документов прихода ТМЦ по Условию="конкретный вид ТМЦ"
#5 by insider
погоди, конкретный вид ТМЦ (перечисление, справочник или как там у тебя) или конкретный вид справочника (товары, материалы, топливо или опять же что-то еще)?
#6 by insider
+5 если в этом документе (по приходу) все-таки в строках элементы разных справочников... тогда скрытый реквизит и группировка по нему, иначе запрос выкидываем в ТЗ и перебором ТЗ добиавемся результата, имхо первое быстрее отработает
#7 by PashaTP
по рекомендации 2 переработал: ... ((сокращаю для экономии места)) |ВидТМЦ = ОпрВидТМЦ(Документ.ПриходТМЦ.ТМЦ); ... ******************* Ошибка: Запрос[8] : Неверно заданный путь 'ОпрВидТМЦ'
#8 by account77
Попробуй в этой процедуре использовать ЗначениеВСтрокуВнутр Там четвертый параметр вид
#9 by PashaTP
Видать прийдется все возвращать в исходную, т.е. .
#10 by PashaTP
Похоже что функция ОпрВидТМЦ вообще не может вызваться из запроса. Можеть ей Експорт поставить- ?
#11 by PashaTP
не подействовало :) а жаль.
#12 by insider
нет, так нельзя, можно функцию только в условие пихать, в виде переменной не выйдет
#13 by insider
т.е. ПеременнаяЗапроса=КакаяТоФункция - так нельзя, можно так: Условие (МояФункция(ПеременнаяЗапроса)=ЧтоТо)
#14 by PashaTP
Ок! Работает, спасибо!
#15 by insider
помогло? ну поздравляю :) правда не увлекайся такими фичами - могут тормозить запросы
#16 by PashaTP
А может в условие можно напрямую поставить определение вида справочника: ... Условие(ВидТМЦ.Вид = Вид_Док); ...
#17 by insider
а кто такое вид_док?
#18 by insider
+17 ну запихни это в функцию, не любит 1С многоэтажные условия
#19 by insider
ответь на один вопрос: тебе нужно отобрать ТМЦ только одного вида (т.е. из одного справочника) или сгруппировать по видам и вывести все? (первое легко, второе - проблема, все написано в )
#20 by PashaTP
Вид_Док - неудачное название переменной в которую в диалоге выбирается условие по какому конкретно ТМЦ строить Реест или по всем.
#21 by insider
угумс, значит по всем... плохо, дай подумаю
#22 by PashaTP
нет не работает.
#23 by PashaTP
да вообщем вариант заработал, там и условие по необходимости подставляется или нет - тогда по всем.
#24 by insider
16 и не должно работать
#25 by PashaTP
Всем спасибо! Тему можно закрывать. Пока.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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