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

Вывод сведений об организации

Автор deringpavel, 05 апр 2013, 14:22

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

deringpavel

Здравствуйте. Делаю печатную форму ТОРГ-12 для конфы УТ 11.
Как вывести сведения об организации в формате <организация-грузоотправитель, адрес, телефон, банк>?

Текст функции такой:

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

УстановитьПривилегированныйРежим(Истина);


ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОрдерНаОтражениеНедостачТоваров_ОтражениеНедостачТоваров";
//
//КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
//ВыводитьКоды = ЗначениеЗаполнено(КолонкаКодов);

ЗапросДанные = Новый Запрос;
ЗапросДанные.Текст =
"ВЫБРАТЬ
| ОрдерНаОтражениеНедостачТоваровТовары.Номенклатура КАК Номенклатура,
| ОрдерНаОтражениеНедостачТоваровТовары.Количество КАК Количество,
| ОрдерНаОтражениеНедостачТоваровТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ОрдерНаОтражениеНедостачТоваровТовары.Номенклатура.Код КАК Код,
| ОрдерНаОтражениеНедостачТоваровТовары.Номенклатура.ЕдиницаИзмерения.Код КАК КодПоОКЕИ,
| ОрдерНаОтражениеНедостачТоваров.Номер,
| ОрдерНаОтражениеНедостачТоваров.Дата
|ИЗ
| Документ.ОрдерНаОтражениеНедостачТоваров.Товары КАК ОрдерНаОтражениеНедостачТоваровТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОрдерНаОтражениеНедостачТоваров КАК ОрдерНаОтражениеНедостачТоваров
| ПО ОрдерНаОтражениеНедостачТоваровТовары.Ссылка = ОрдерНаОтражениеНедостачТоваров.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Количество";


Результаты = ЗапросДанные.Выполнить();

Выборка = Результаты.Выбрать();



//ВыводитьЯчейкиИУпаковки = СкладыСервер.ИспользоватьАдресноеХранение(ВыборкаПоДокументам.Склад, ВыборкаПоДокументам.Помещение);

   
//Макет получаем в цикле,т.к. ширина колонок зависит от склада и помещения в документе

// Шапка
        Макет = ПолучитьМакет("Макет");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ВыборкаНомерДата = Результаты.Выбрать();

Пока ВыборкаНомерДата.Следующий() Цикл

ОбластьШапка.Параметры.НомерДокумента = ВыборкаНомерДата.Номер;
ОбластьШапка.Параметры.ДатаДокумента = ВыборкаНомерДата.Дата;
КонецЦикла;

СведенияОПокупателе = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ОбъектыПечати.Покупатель, ОбъектыПечати.Дата);
   
ТабличныйДокумент.Вывести(ОбластьШапка);



ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокТаб");
ТабличныйДокумент.Вывести(ОбластьЗаголовок);


Номер = 0;
Пока Выборка.Следующий() Цикл
Номер = Номер + 1;
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока.Параметры.Номер = Номер;
    ОбластьСтрока.Параметры.ТоварНаименование = Выборка.Номенклатура;
    ОбластьСтрока.Параметры.КоличествоМест = Выборка.Количество;
ОбластьСтрока.Параметры.Количество = Выборка.Количество;
ОбластьСтрока.Параметры.БазоваяЕдиницаНаименование = Выборка.ЕдиницаИзмерения;
ОбластьСтрока.Параметры.ВидУпаковки = Выборка.ЕдиницаИзмерения;
ОбластьСтрока.Параметры.ТоварКод = Выборка.Код;
ОбластьСтрока.Параметры.БазоваяЕдиницаКодПоОКЕИ = Выборка.КодПоОКЕИ;
ТабличныйДокумент.Вывести(ОбластьСтрока);
КонецЦикла;



ОбластьИтого = Макет.ПолучитьОбласть("ИтогоПоСтранице");

Результат = ЗапросДанные.Выполнить();
ВыборкаСумма = Результат.Выбрать();

СуммаИтог = 0;

Пока ВыборкаСумма.Следующий() Цикл
СуммаИтог = СуммаИтог + ВыборкаСумма.Количество;
КонецЦикла;

ОбластьИтого.Параметры.ИтогоМестНаСтранице = СуммаИтог;
ОбластьИтого.Параметры.ИтогоКоличествоНаСтранице = СуммаИтог;


ТабличныйДокумент.Вывести(ОбластьИтого);


ОбластьВсего = Макет.ПолучитьОбласть("Всего");

ОбластьВсего.Параметры.ИтогоМест = СуммаИтог;
ОбластьВсего.Параметры.ИтогоКоличество = СуммаИтог;

ТабличныйДокумент.Вывести(ОбластьВсего);

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

Количество = Выборка.Количество();

ОбластьПодвал.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(Количество, "Л = ru_RU", ",,,,,,,,0");
ОбластьПодвал.Параметры.ВсегоМестПрописью = ЧислоПрописью(СуммаИтог, "Л = ru_RU", ",,,,,,,,0");




ТабличныйДокумент.Вывести(ОбластьПодвал);


Возврат ТабличныйДокумент;
КонецФункции


Предполагаю, что для этого нужно использовать функции ОписаниеОрганизации и СведенияОбЮрФизЛице. Но у них имеются параметры - а вот как их определить, не могу взять в толк.

И второй вопрос - требуется разделить печатную форму на страницы, если кол-во данных не помещается на одной странице?

Yura063

Можно сделать так:

СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Шапка.ОрганизацияПолучатель, Шапка.ДатаДокумента);
ОбластьМакетаШапка.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);

Добавлено: 05 апр 2013, 14:34


Шапка.ОрганизацияПолучатель - это получено из запроса по шапке документа!
Помогли, отблагодари!

deringpavel

Цитата: Yura063 от 05 апр 2013, 14:31СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Шапка.ОрганизацияПолучатель, Шапка.ДатаДокумента);
ОбластьМакетаШапка.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);


Переменная Шапка что собой представляет?

Yura063

Отбор по запросу, по шапке документа! я привел пример как я делал! в вашем варианте добавляете в запрос организацию вставляете в параметр!
Помогли, отблагодари!

deringpavel

Спасибо, уже понял)
Добавлено: 07 апр 2013, 08:50


Еще вопрос: как можно грамотно реализовать функцию ПроверитьВывод(), чтобы печатная форма делилась на страницы?


Теги:

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

Рейтинг@Mail.ru

Поиск