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

Вывод на печать Табличную часть документа

Автор Кот_Леопольд, 30 янв 2019, 09:33

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

Кот_Леопольд

Подскажите как вывести на печать Табличную часть документа, что бы у нее объединились одинаковые позиции по определенному столбцу. При использовании метода свернуть, сворачивается на форме документа, при этом все остальные столбцы становятся пустыми.
&НаСервере
Функция ГруппировкаСтрок()
ТЗ = Новый ТаблицаЗначений;
     ТЗ = Объект.Калькуляция.Выгрузить();
     ТЗ.Свернуть("ОбъектИследования" );
     Объект.Калькуляция.Загрузить(ТЗ);
Возврат ТЗ;
КонецФункции


LexaK

ну вы хотя бы чуть-чуть почитайте СП (синтаксис помощник)
команда свернуть еще может суммировать указанные поля
вот пример вашего варианта

&НаСервере
Функция ГруппировкаСтрок()
     //ТЗ = Новый ТаблицаЗначений; - не нужная команда
     ТЗ = Объект.Калькуляция.Выгрузить();
     ТЗ.Свернуть("ОбъектИследования","Количество,Сумма");
     //Объект.Калькуляция.Загрузить(ТЗ); - обратно в объект грузить не надо
     Возврат ТЗ; //вот ваша свернутая ТЗ по ней и выводите данные в табличный документ
КонецФункции
если помогло нажмите: Спасибо!

trialex3

Цитата: LexaK от 30 янв 2019, 10:07
ну вы хотя бы чуть-чуть почитайте СП (синтаксис помощник)
команда свернуть еще может суммировать указанные поля
вот пример вашего варианта

&НаСервере
Функция ГруппировкаСтрок()
     //ТЗ = Новый ТаблицаЗначений; - не нужная команда
     ТЗ = Объект.Калькуляция.Выгрузить();
     ТЗ.Свернуть("ОбъектИследования","Количество,Сумма");
     //Объект.Калькуляция.Загрузить(ТЗ); - обратно в объект грузить не надо
     Возврат ТЗ; //вот ваша свернутая ТЗ по ней и выводите данные в табличный документ
КонецФункции


чтобы не создавать еще 1 тему спрошу здесь. Подскажите пожалуйста как вывести таблицу значений в табличный документ 1с без макета?
Нашел вот такой вариант:
постр=новый построительотчета;
постр.источникданных=новый описаниеисточникаданных(вашатаблица);
постр.заполнитьнастройки();
тыды=новый табличныйдокумент;
постр.вывести(тыды);
тыды.показать();

Но он ругается на несоответствие параметров, хотя пихаю именно таблицу значений

Кот_Леопольд

Как мне правильно использовать эту функцию:
&НаСервере
Функция ГруппировкаСтрок()
     ТЗ = Объект.Калькуляция.Выгрузить();
     ТЗ.Свернуть("ОбъектИсследования","Количество,Сумма");
     Возврат ТЗ;
КонецФункции

что бы на печать вышла табличка группированных  строк.
Мне нужно изменять запрос или достаточно проста объявить функцию?
&НаСервере
Функция ПечатьНаСервере()
ТабДок = Новый ТабличныйДокумент;

Макет = Документы.КоммерческоеПредложение.ПолучитьМакет("КоммерческоеПредложение");

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

Запрос.Параметры.Вставить("Ссылка", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовокШапка = Макет.ПолучитьОбласть("ЗаголовокШапка");
ОбластьРеквизиты = Макет.ПолучитьОбласть("Реквизиты");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьКалькуляцияШапка = Макет.ПолучитьОбласть("КалькуляцияШапка");
ОбластьОбъект = Макет.ПолучитьОбласть("Объект");
ОбластьКалькуляция = Макет.ПолучитьОбласть("Калькуляция");
ОбластьИтоговаяСумма = Макет.ПолучитьОбласть("ИтоговаяСумма");
ОбластьПодпись = Макет.ПолучитьОбласть("Подпись");

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

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

ОбластьЗаголовокШапка.Параметры.ОрганизацияПолное = Константы.НаименованиеОрганизацииПолное.Получить();
ОбластьЗаголовокШапка.Параметры.Организация = "("+Константы.НаименованиеОрганизации.Получить()+")";

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


ОбластьРеквизиты.Параметры.Заказчик = Выборка.КонтрагентНаименование;
ОбластьРеквизиты.Параметры.ЗаказчикАдрес = Выборка.КонтрагентАдресЮридический;
ОбластьРеквизиты.Параметры.ЗаказчикИННКПП ="ИНН " + Выборка.КонтрагентИНН + ", КПП " + Выборка.КонтрагентКПП;
ОбластьРеквизиты.Параметры.ЗаказчикРасчетныйСчетКорреспондентскийСчет = "Р/с " + Выборка.КонтрагентРасчетныйСчет+", К/с " +Выборка.КонтрагентКорреспондентскийСчет;
ОбластьРеквизиты.Параметры.ЗаказчикБанкБИК = ""+ Выборка.КонтрагентБанк+", БИК "+Выборка.КонтрагентБИК;
// ОбластьРеквизиты.Параметры.Телефон = Выборка.Телефон;
// ОбластьРеквизиты.Параметры.ПочтовыйЯщик = Выборка.ПочтовыйЯщик;

ОбластьРеквизиты.Параметры.ОрганизацияАдрес ="Юридический адрес: "+ Константы.АдресЮридический.Получить();
ОбластьРеквизиты.Параметры.ОрганизацияТелефонПочтовыйЯщик = "Тел./факс: "+ Константы.Телефон.Получить() +", E-mail: " + Константы.ПочтовыйЯщик.Получить();
ОбластьРеквизиты.Параметры.ОрганизацияИННРасчетныйСчет ="ИНН " + Константы.ИНН.Получить()+", Р/с " + Константы.РасчетныйСчет.Получить();
ОбластьРеквизиты.Параметры.ОрганизацияКорреспондентскийСчетБанкБИК =Константы.Банк.Получить() + ", К/с " +Константы.КорреспондентскийСчет.Получить() + ", БИК "+ Константы.БИК.Получить();
ОбластьРеквизиты.Параметры.ОрганизацияМестоДеятельности = "Место осуществления деятельности: "+Константы.МестоДеятельности.Получить();

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

ФорматнаяСтрока=Формат(Объект.Дата,"ДЛФ=DD");
    ФорматнаяСтрока=Сред(ФорматнаяСтрока,Найти(ФорматнаяСтрока," ")+1,СтрДлина(ФорматнаяСтрока));
    ФорматнаяСтрока=Сред(ФорматнаяСтрока,1, Найти(ФорматнаяСтрока," "));
ОбластьЗаголовок.Параметры.НомерДата = "исх. №"+Объект.Номер + " от «"+ ( Строка(День(Объект.Дата))+"» " +СокрЛП(ФорматнаяСтрока)+" " +Формат(Объект.Дата,"ДФ=yyyy")+" года") ;
ОбластьЗаголовок.Параметры.Заголовок ="Коммерческое предложение №"+ Объект.Номер;
    ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьКалькуляцияШапка);
ОбластьОбъект.Параметры.МестоПроведениеРабот ="Объект:" + Объект.МестоПроведениеРабот;
ТабДок.Вывести(ОбластьОбъект);

    ВыборкаКалькуляция = Выборка.Калькуляция.Выбрать();
Пока ВыборкаКалькуляция.Следующий() Цикл

ОбластьКалькуляция.Параметры.ОбъектИсследования =ВыборкаКалькуляция.ОбъектИсследования;
ОбластьКалькуляция.Параметры.Заполнить(ВыборкаКалькуляция);

ТабДок.Вывести(ОбластьКалькуляция, ВыборкаКалькуляция.Уровень());
    КонецЦикла;

ОбластьИтоговаяСумма.Параметры.СтоимостьУслуг=Объект.СтоимостьУслуг;
ОбластьИтоговаяСумма.Параметры.Скидка=Объект.Скидка;
ОбластьИтоговаяСумма.Параметры.Итого=Объект.СуммаДокумента;

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

ОбластьПодпись.Параметры.Исполнитель ="Исп.: "+ Объект.Менеджер+" " +Константы.Телефон.Получить();
ОбластьПодпись.Параметры.Руководитель ="/"+ Объект.ОтветственноеЛицо +"/";
    ОбластьПодпись.Параметры.Должность =Выборка.ОтветственноеЛицоДолжность;
ТабДок.Вывести(ОбластьПодпись);

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




//ТабДок.ОтображатьЗаголовки=Ложь;
    ТабДОк.ОтображатьСетку=Ложь;
   

Возврат ТабДок

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

P.s: Извините за глупые вопросы=)

Теги:

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

Рейтинг@Mail.ru

Поиск