Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 00:49

Помогите с запросом для макета!

Автор Конст_007, 04 июн 2015, 13:24

0 Пользователей и 1 гость просматривают эту тему.

Конст_007

Всем привет!
Помогите горю, не могу запросом вывести в макет документа реквизиты связанных справочников (ФизическиеЛица,БанковскиеСчетаОрганизаций).
УТ 11.1 Нужно в документе "Реализация товаров" формировать печатную форму, в которую помимо данных документа
выводились бы такие данные как:
- руководитель организации
- адрес организации
- платежные данные банков контрагента и организации
Данные документа в макет выводятся нормально, а вот  эти не получается, похоже со связями в запросе ошибся.
В макете пытаюсь вывести параметры ФизЛицо, БанкДляРасч, АдресБанка, БИК но выводится пустота.
Вот собственно процедура из модуля менеджера:

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


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
Подвал = Макет.ПолучитьОбласть("Подвал");
ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка");
ОбластьТовары = Макет.ПолучитьОбласть("Товары");
ТабДок.Очистить();

ВставлятьРазделительСтраниц = Истина;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

ТабДок.Вывести(ОбластьТоварыШапка);
ВыборкаТовары = Выборка.Товары.Выбрать();

Пока ВыборкаТовары.Следующий() Цикл
ОбластьТовары.Параметры.Заполнить(ВыборкаТовары);
ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень());
КонецЦикла;

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал, Выборка.Уровень());


ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры


Помогите плиз, пробовал связи по разному настраивать, не получается...

cska-fanat-kz

зачем впихивать в запрос невпиху..? так, стоп! как говорят в КВНе )

в самом цикле по документам перед...
    ТабДок.Вывести(Шапка, Выборка.Уровень());

заполните все нужные параметры макета пользуясь ссылками на организацию и пр...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий@

Чтобы выводились реквизиты банка

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


Насчет остального не смотрел

Конст_007

Цитата: cska-fanat-kz от 04 июн 2015, 14:06
зачем впихивать в запрос невпиху..? так, стоп! как говорят в КВНе )

в самом цикле по документам перед...
    ТабДок.Вывести(Шапка, Выборка.Уровень());

заполните все нужные параметры макета пользуясь ссылками на организацию и пр...

Спасибо за ответы!
Возможно не так понял, разве не в запросе мы заполняем значениями параметры:

            |    БанковскиеСчетаОрганизаций.АдресБанкаДляРасчетов КАК АдресБанка,
           |    БанковскиеСчетаОрганизаций.БИКБанка КАК БИК
и т.д., которые потом передаем в определенную область макета?
Т.е. мы получили значения параметров в запросе, передали эти параметры в соответствующую область:

        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());
и потом уже в макете по имени параметра вытаскиваем нужные значения.
Можете по одному параметру для примера написать?

Дмитрий, попробовал как вы написали, все равно реквизиты банка не выводятся, хотя они для
организации заполнены.

Все таки не пойму ошибка в запросе или уже при передачи параметров в область макета?

cska-fanat-kz

Цитата: Конст_007 от 05 июн 2015, 11:00Шапка.Параметры.Заполнить(Выборка);

можно и так, для так сказать группового заполнения и да обычно из запроса.
но никто не мешает устанавливать параметр и отдельно:
    Шапка.Параметры.ИмяПараметра = ЗначениеПараметра;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий@

я пробовал свой запрос в консоли запросов все выводится.
Так что дело в другом. Смотрите что у вас с параметрами.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск