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

Помогите с печатной формой пожалуйста

Автор drapik, 13 июл 2011, 16:37

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

drapik

Цитата: has от 14 июл 2011, 10:21
Вобщем как-то так
ВЫБРАТЬ
ИнвентаризацияТоваровНаСкладе.Ссылка.Организация,
ИнвентаризацияТоваровНаСкладе.Ссылка.Дата,
ИнвентаризацияТоваровНаСкладе.Ссылка.ОтветственноеЛицо КАК ФизЛицо,
ИнвентаризацияТоваровНаСкладе.НомерСтроки КАК Номер,
ИнвентаризацияТоваровНаСкладе.Количество КАК Количество,
ИнвентаризацияТоваровНаСкладе.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
ИнвентаризацияТоваровНаСкладе.Номенклатура.Код КАК ТоварКод,
ИнвентаризацияТоваровНаСкладе.Цена КАК Цена,
ПоступлениеТоваровУслуг.Ссылка.Дата КАК ДатаПриход
ИЗ
Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладе
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
ПО (ИнвентаризацияТоваровНаСкладе.Номенклатура = ПоступлениеТоваровУслуг.Номенклатура)
ГДЕ
ИнвентаризацияТоваровНаСкладе.Ссылка = &ТекущийДокумент


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

   // Выводим шапку накладной
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.Заполнить(Шапка);
   ОбластьМакета.Параметры.ПредставлениеОрганизации = Шапка.Организация;
   ОбластьМакета.Параметры.Дата                   = Шапка.Дата;
   ОбластьМакета.Параметры.ФизЛицо                = Шапка.ФизЛицо;
   ТабДокумент.Вывести(ОбластьМакета);
   
   // Выводим заголовок таблицы
   ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ТабДокумент.Вывести(ЗаголовокТаблицы);
   
   // Выводим многострочную часть докмента
   ОбластьМакета = Макет.ПолучитьОбласть("Строка");
      ОбластьМакета.Параметры.Номер = Шапка.Номер;
      ОбластьМакета.Параметры.ТоварКод = Шапка.ТоварКод;
      ОбластьМакета.Параметры.Цена = Шапка.Цена;
      ОбластьМакета.Параметры.Количество = Шапка.Количество;
      ОбластьМакета.Параметры.ТоварНаименование = Шапка.ТоварНаименование;
      ОбластьМакета.Параметры.ДатаПриход = Формат(Шапка.ДатаПриход, "ДЛФ=Д");
      ТабДокумент.Вывести(ОбластьМакета);
      
      // Зададим параметры макета
   ТабДокумент.ПолеСверху = 0;
   ТабДокумент.ПолеСлева  = 0;
   ТабДокумент.ПолеСнизу  = 0;
   ТабДокумент.ПолеСправа = 0;
   ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

   Возврат ТабДокумент;

КонецФункции // ПечатьКарточкиМЦ()

Теперь вроде бы правильно вбиваются даты прихода по товару, ТОЛЬКО в отчет попадает единственный товар, который стоит первый в табличной части документа инвентаризации, т.е. в печатной форме 1 строка, как сделать, чтобы все товары с табличной части вбивались?

Сорри за мое нубство, я только начинаю!!!

has


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

А вобще выборку шапки документа и таб. части надо делать разными запросами.

Вася Новенький

А вобще выборку шапки документа и таб. части надо делать разными запросами.

ага, это точно, и для каждой строки из запроса получать область строка и заполнять параметры. тогда будут все строчки.а не только одна

drapik

Спасибо огромное, все получилось

has

Цитата: Вася Новенький от 14 июл 2011, 11:56
ага, это точно, и для каждой строки из запроса получать область строка и заполнять параметры. тогда будут все строчки.а не только одна
Не понял, область зачем получать для каждой строки?

Теги:

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

Рейтинг@Mail.ru

Поиск