gifts2017

Создание печатной формы табличной части документа с использованием СКД

Опубликовал Алек4сандр Ершов (sanja) в раздел Программирование - Практика программирования

Создаем макет СКД, там произвольно или с какими-нибудь условиями выбираем в наборе данных поля табличной части, ставим условие на документ владелец,  и задаем оформление. В форме документа добавляем кнопку печать, прописываем в параметрах наш документ и оп-ля - печатная форма готова


Процедура ОсновныеДействияФормыПечать(Кнопка)



 Если
Ссылка = Документы.РасчетЗаказа.ПустаяСсылка() тогда

 
Предупреждение("Документ не записан");

 Возврат;

 Иначе

 
Схема = ПолучитьМакет("Макет1");

 
Настройки = Схема.НастройкиПоУмолчанию;

 
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();

 
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);



 
ПараметрДок = Новый ПараметрКомпоновкиДанных("документ");

 
ЗначениеПараметраДок = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрДок);

 
ЗначениеПараметраДок.Значение = Ссылка;

 
ЗначениеПараметраДок.Использование = Истина;

 
Настройки = КомпоновщикНастроек.Настройки;



 
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

 
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);

 
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

 
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

 
ДокументРезультат = Новый ТабличныйДокумент;

 
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

 
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

 
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);



 
ДокументРезультат.ОтображатьЗаголовки = Ложь;

 
ДокументРезультат.ОтображатьСетку = Ложь;

 
ДокументРезультат.АвтоМасштаб = Истина;

 
ДокументРезультат.Показать();



 КонецЕсли;



КонецПроцедуры

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Алек4сандр Ершов (sanja) 12.12.11 14:09
Создаем макет СКД, там произвольно или с какими-нибудь условиями выбираем в наборе данных поля табличной части, ставим условие на документ владелец, и задаем оформление. В форме документа добавляем кнопку печать, прописываем в параметрах наш документ и оп-ля - печатная форма готова

Перейти к публикации

1. Анатолий (Yasen) 12.12.11 14:09
Это все замечательно конечно, но кто потом за Вами будет конфигурацию обновлять?

Вот здесь народ копья ломает чтоб форму не менять лишний раз, а Вы не удосужитесь почитать ИТС про внешние печатные формы...

Ни одна из "1С:Комплексная автоматизация 8, 1С:Бухгалтерия 8, 1С:Зарплата и Управление Персоналом 8, 1С:Управление торговлей 8, 1С:Управление производственным предприятием 8" не годится для предлагаемого решения.
Минус.

Доржи, и зачем же ты придумал инфостарт-деньги...
Winstoncuk; +1 2 Ответить 1
2. Алек4сандр Ершов (sanja) 12.12.11 16:47
Добавленная кнопка с процедурой и макет нисколько не усложнят обновление с новыми возможностями платформы... Создание внешней печатной формы вообще не проблема: создать внешнюю обработку, создать макет СКД, в модуле прописать экспортную функцию печать, далее вставить код из публикации. Все
Минус не понимаю. И причем тут инфостарт-деньги, публикация выложена текстом
3. Виктор (vkt) 13.12.11 12:17
(2)
Публикация имеет место быть. В существующем потоке информации не всегда можно легко найти то что нужно. А здесь - то что проверено и работает. Применять или нет - дело личное.

sanja, ты бы еще файлик с реализованным примером выложил для наглядности
4. Fomix (fomix) 14.12.11 11:45
(1) Yasen,
Может (sanja) Алек4сандр и не знает как ими (внешними формами) пользоваться?! А так, кто мешает подобный механизм реализовать во внешней печатной форме...
5. Dmitry Chernykh (dim0n_la) 14.12.11 13:22
В каком-то очень частном случае может и нужна такая печатная форма..
6. isn Игнатьев (isn) 16.12.11 16:08
Печатные формы "ТЧ документа с использованием СКД" очень распространены в УТ 11. Рекомендую ознакомится с печатью документа "ПриказНаПроведениеИнвентаризацииТоваров" - "печать инвентаризационной описи". там собираются данные из 3 документов ссылающихся на текущий документ.
На мой взгляд автору сего опуса будет полезно.
7. Валерий Дубовой (Valerich) 19.12.11 11:14
Если Ссылка = Документы.РасчетЗаказа.ПустаяСсылка() тогда


от таких перлов советую избавляться сразу. Переменная Ссылка может быть равна и неопределено и другой ссылке вовсе не на нужный тип объекта...
Так что надо проверять на заполненность в общем, на соответствие нужному типу.

Очень начинающий код.

Советую автору не выкладывать в виде обработок, а выносить в форум на обсуждение (если действительно хочет научиться, а не набрать плюсиков на неограниченное скачивание).
8. Мастер Йода (master_yoda) 12.01.12 16:04
Да и еще один момент:

ЗначениеПараметраДок.Использование = Истина; не в том месте стоит

надо ставить перед

ЗначениеПараметраДок.Значение = Ссылка;

Согласе с тем что это очень начинающий код
9. Евгений Палагин (Jon2011) 28.02.12 19:32
Полезная вещь. Сам долго ковырялся с настройкой СКД, а тут все на конкретном примере показано. Спасибо.
Такая форма нужна чтобы не мудрить табличные макеты, с их бесконечными настройками.
10. Miffka (mikhailv) 01.08.12 11:17
"ПриказНаПроведениеИнвентаризацииТоваров" - "печать инвентаризационной описи"

(6) isn, ткните носом: в модуле документа не увидел схемы. Только стандартный запрос и макет.
(детально смотрел СформироватьПечатнуюФормуИНВ3, если имелась в виду "Инвентаризационная опись ИНВ3")
11. Владимир 777 (MyPuK_OLD) 28.04.13 11:17
(2) sanja, Доброго времени суток!!!
Можно ли получить более подробное описание?..Желательно со скринами как сделать вот это все: "Создаем макет СКД, там произвольно или с какими-нибудь условиями выбираем в наборе данных поля табличной части, ставим условие на документ владелец, и задаем оформление"...
12. Владимир 777 (MyPuK_OLD) 06.05.13 08:15
В эту публикацию заглядывает хоть кто-нибудь?..
13. Александр Воронов (ya.Avoronov) 03.11.15 11:54
Отлично работающий код! Спасибо!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа