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

Внешняя печатная форма ПКО\РКО

Автор SkyNetYar, 16 сен 2015, 12:45

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

SkyNetYar

Добрый день!
УТ 11.1.10
Пытаюсь сделать внешнюю печатную форму к документу "Отчет о розничных продажах"
Хочу выводить все ПКО и РКО за день в ТД
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
     Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXL_ЛистКассовойКниги") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
                     "ПФ_MXL_ЛистКассовойКниги", "ПФ_MXL_ЛистКассовойКниги",
                     СформироватьПечатнуюФорму("Бланк лист кассовой книги", МассивОбъектов, ОбъектыПечати));
     КонецЕсли;
КонецПроцедуры

Функция СформироватьПечатнуюФорму(Тип, МассивОбъектов, ОбъектыПечати)

УстановитьПривилегированныйРежим(Истина);
ТабДок = Новый ТабличныйДокумент;
Ссылка = Документы.ЛистКассовойКниги;

Макет = ПолучитьМакет("ПФ_MXL_ЛистКассовойКниги");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЛистКассовойКниги.КоличествоДокументовНаЛисте,
| ЛистКассовойКниги.СуммаВыдачи,
| ЛистКассовойКниги.СуммаПоступления,
| ЛистКассовойКниги.КассовыеОрдера.(
| НомерСтроки,
| Документ,
| Приход,
| Расход
| )
|ИЗ
| Документ.ЛистКассовойКниги КАК ЛистКассовойКниги
|ГДЕ
| ЛистКассовойКниги.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

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

ТабДок.Очистить();

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

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

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

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

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

КонецФункции

Выдает ошибку
{ВнешняяОбработка.ВнешняяПечатнаяКМ6.МодульОбъекта(72)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(14, 30)}: Неверные параметры
ЛистКассовойКниги.Ссылка В (<<?>>&Ссылка)


И вообще может я не оттуда делаю запрос?
Подскажите пожалуйста как правильно сделать.

vitasw

ошибка тут
Цитата: SkyNetYar от 16 сен 2015, 12:45Ссылка = Документы.ЛистКассовойКниги;
Ссылка - это указатель на конкретный документ.
Документы.ЛистКассовойКниги - это менеджер документа


SkyNetYar

Может тогда так сделать?
|ГДЕ
| ДокументКассоваяКнига.Ссылка В(&МассивДокументов)
| И ДокументКассоваяКнига.Проведен
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Ссылка";

Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);


Ммм.Так тоже не работает,что то запутался совсем =\

vitasw


SkyNetYar

{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(237)}: В обработчике печати не был сформирован табличный документ для: ПФ_MXL_ЛистКассовойКниги
ВызватьИсключение(ТекстСообщенияОбОшибке);


// Проверим, все ли макеты были сформированы.
Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
Если Стр.ТабличныйДокумент = Неопределено Тогда
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
Стр.ИмяМакета);
ВызватьИсключение(ТекстСообщенияОбОшибке);
КонецЕсли;

Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
КонецЦикла;

Теги:

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

Рейтинг@Mail.ru

Поиск