Отчет на СКД, установка параметра в запрос #663747


#0 by Валидатор
Пишу отчет на скд, вот запрос: Данные запрос выбирает соответствующие данные по документам, и выводит их на макет. Но появляется вопрос: мне на вывод макета нужно добавить еще 2 колонки: регион поставки, а именно его код и наименование, они хранятся в созданном РС Регион Поставки, у которого есть Измерение- Подразделение с типом СправочникСсылка.Подразделения и 2 Ресурса - КОД ОКАТО и Наименование(оба строковые типы). Вот мне нужно на макет выносить эти код окато и наименования. Проблема возникает, когда я пытаюсь выбрать эти данные из РС Регионы поставки. регион поставки формируется исходя из подразделений, причем головного подразделения, то есть: -Головное -Побочно1 -Побочное2 -Побочное3 -Головное2  -Побочное4  -Побоычное5 Если я выбираю в документ, к примеру Подразделение - Побоычное5, то в макет мне должны попадать КОД Окато и Наименование Головное2(этого подразделения), если я выбираю в документ подразделение Побочное2 - то в макет мне должны выводитсья данные по подразделению - Головное. Когда делал ПФ, там было просто, добавлял условие, которое использовал потом в качестве параметра для запроса, вот условие: ПолучениеКода = СтрЗаменить(СсылкаНаОбъект.Подразделение.ПолныйКод, "/", Символы.ПС); СсылкаНаОбъект - был созданыые реквизит для внешней ПФ. и потом в запрос: ВЫБРАТЬ      ПланЗакупокСоставПлана.Номенклатура.Артикул КАК НоменклатураАртикул,      ПланЗакупокСоставПлана.Номенклатура КАК Номенклатура, ИЗ      Документ.ПланЗакупок.СоставПлана КАК ПланЗакупокСоставПлана Запрос.УстановитьПараметр("Параметр", НаименованиеПодразделения); - тут подставлял параметр для запроса, и на основании полученного результата выполнялся запрос, и мне на ПФ выводились данные головных подразделений, но в СКД так не сделать, может кто помочь?)
#1 by tushich
что не получается то? Родителя найти?
#2 by Валидатор
ну типа того, результат не выводится( ищу родителя так: ИЗ
#3 by tushich
конец запроса м.б. так: З.Ы. Какой тег для кода?
#4 by Валидатор
ПО ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель = ттРегионПоставки.Подразделение вот так сейчас, отчет формируется, но данные по головным подразделениям не выводятся(
#5 by tushich
При таком соединении дубли могут полезть из-за РС.
#6 by Валидатор
как то сделал так, что выводились все подразделение, какие только есть, но это не совсем надо(
#7 by tushich
м.б. у подразделения нет родителя?(корневое подразделение) или нет данных в РС?)
#8 by Валидатор
данные выводятся сейчас по всем документам, и у некоторых должны быть записи, по крайней мере в РС так, просто дело в чем: Если в документе стоит Подразделение, у которого есть головное, то данные должны выводится именно головного, а не того подразделения, которое указано в документе, в этом то и ступор, что я не понимаю как это сделать
#9 by Валидатор
да даже если выбрать подразделение, данные которого есть в РС, то они все равно не выводятся
#10 by tushich
поробуй сделай простой запрос где из РС выбираются записи у которых подразделение = родителю параметра передаваемого в запрос, а параметр будет твоё дочернее подразделение.
#11 by tushich
м.б. типы не совпадают? У сравниваемых полей
#12 by Валидатор
ВЫБРАТЬ    ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель ИЗ        ПО ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель = ттРегионПоставки.Подразделение вот какой запрос, типы смотрел, у обоих СправочникСсылка.Подразделения
#13 by tushich
в табличной части вообще есть что-нить?
#14 by Валидатор
документов, по которым формируем отчет?
#15 by Валидатор
вот данные выводятся из документов, по которым делаем отчет, но не выводится последняя колонка с данными подразделений из РС: (последние 2 колонки)
#16 by Валидатор
какие еще могут быть варианты?
#17 by tushich
ДТ большая будет? Если дашь могу посмотреть.
#18 by Валидатор
дтшник да, огромен, могу скинуть сам отчет, он по функционалу как в УПП обычном, из запроса уберешь там только два реквизита, которых нет в стандартном упп, и будет аналог, куда залить отчет?
#19 by Валидатор
вот отчет а еще РС не будет в типовой УПП, но там 1 измерение с типом - справочникСсылка.подразделения и 2 ресурса: Код и наименование строковых типов
#20 by tushich
Вот такое в консоли сделай и пришли скрин ВЫБРАТЬ    ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель КАК РодительДокумента,    ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель.Код КАК КодРодительДокумента, ИЗ
#21 by Валидатор
вариант с родителем кстати мало подходит, потому что он идет до первого головного подразделения в иерархии, а может быть так: СамоеГлавное1 -Побочное1 -Побочное2 -Побочное3 --Побочнопобочное1 ----побочнопобочноПобочное1 И если мы выбираем побочнопобочноПобочное1, то данные мы получим по Побочнопобочное1, а нам нужно по подразделению - СамоеГлавное1
#22 by Валидатор
#23 by Валидатор
В системе есть 2 самых головных подразделения, у которых потом побочные подразделения есть, у которых в свою очередь есть еще побочные и т.д. То есть при любом раскладе, подразделение, которое ставится в документ будет принадлежать или одному самому головному подразделению или другому, так вот, коды этих 2х самых головных подразделений я знаю, может сделать что-нибудь типа, если код у подразделения = "00001" тогда выводить данные из РС 1 головного подразделения, если же код у подразделения = "000002", то выводить данные второго головного подразделения, но здесь так же нужно подниматься по иерархии вверх, пока не получим первый или второй код( шняга какая то сложная(
#24 by Валидатор
ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель.Родитель.Код вот такая строка дает код, который является самым типа верхним в иерархии
#25 by Валидатор
во, почти получилось, только теперь если у меня в иерархии стоит головное подразделение, и выше нет, то не берется опять никаких данных по подразделению, так как выше нет ничего, как еще вот это исправить?
#26 by ABCD
В СКД эту задачу можно решить через ВнешниеНаборыДанных. Создаешь таблицу значений (заполняя ее запросом и до-заполняя найденное подразделение самого верхнего уровня по алгоритму). Заполненную ТЗ передаешь ПроцессорКомпоновкиДанных.Инициализировать ... И всё!
#27 by Валидатор
почти решилась проблема с поиском подразделений: вот тут если подразделение не последнее, то выводится самое верхнее, если же подразделение самое верхнее, он лезет выше, и ненаходит никаких там выше значений, из за чего, результат не выводится, как сделать, что если подразделение найдено, а выше него уже нету, то берется самое высокое?
#28 by tushich
а для соединения ВИерархии не работает?
#29 by Валидатор
ВЫБРАТЬ в консоле запросов показывает в колонке ПОЛЕ1 все нужные мне головные подразделения, но на отчете не отображаются, почему?
#30 by Валидатор
ну я соответственно этот запрос и в отчете на СКД использую
#31 by tushich
а если уровень вложенности будет больше?) ещё один когда ... Тогда добавишь? А вспомнишь?))
#32 by Валидатор
ну с уровнями вложенности это да, но пока не планируются еще какие либо уровни вложенностей, да и это единственный вариант решения, который я нашел) как вот передавать в связь данные по ПОЛЕ1?)
#33 by Валидатор
как передать в связь ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ттРегионПоставки КАК ттРегионПоставки        ПО ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель.Родитель = ттРегионПоставки.Подразделение Данные вот этого Поле1?
#34 by Валидатор
тааа блин, не получается, почему в СКД все круто, а в отчете прямопропорционально?(
#35 by Валидатор
пробелма еще актуальна(
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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