Свежая пресса
Изменения в законе «О бухгалтерском учете и финансовой отчетности в Украине»

Опубликовано: 2017.11.10

Уважаемые коллеги-бухгалтера! Спешим сообщить Вам, об изменениях в ЗУ «О бухгалтерском учете и финансовой отчетности в Украине», касающихся изменений некоторых положений, и вступит в силу с 01.01.2018, а уже с 01.01.2019 года вступят в силу тот абзац, касающийся предоставления финотчетности.

Подробнее...
Обновление программы EffectorSaver

Опубликовано: 2017.10.20

Уважаемые пользователи! Спешим сообщить вам о выходе новой версии программы Effector Saver! 

Подробнее...
Осенняя акция от компании FinSoft

Опубликовано: 2017.10.09

Что еще может так скрасить серые осенние будни, как не акция на программный продукт 1С от компании FinSoft

Подробнее...

Обучающие статьи. Урок 23 - Документы. Внешние печатные формы

Опубликовано: 2017.04.18

 Печатные формы

Приветствуем читателей сайта. Сегодня мы ознакомимся с внешними печатными формами 1С для документов.

Добавлять макеты для печати мы научились. Но как быть с теми документами, которые находятся на поддержке? Каждый из них снимать с поддержки для того чтобы добавить печать в модуль объекта или менеджера? Конечно же, нет. Для этого нам на помощь могут прийти внешние печатные формы. Это обычные обработки, но используются как промежуточное звено между документом и печатью.

Возможна ситуация, когда один из сотрудников не будет иметь доступа к нашему новому документу «Путевые листы», а только к заказу покупателя, но предположим, что водитель или менеджер забыли напечатать, например, расходку на склад или зарплатный лист бухгалтеру. Но у кладовщика или бухгалтера есть доступ на просмотр заказа покупателей, а путевые листы они вообще не видят, как и всю подсистему логистики.

Давайте поможем кладовщику или бухгалтеру с незадачливыми водителями и добавим печать наших трех макетов в заказ покупателя, но как внешние печатные формы. Для этого создаем внешнюю обработку и назовем ее «Печать Путевые листы грузовая накладная», добавим один реквизит и назовем его «СсылкаНаОбъект» с типом данных документ ссылка Заказ покупателя. Скопируем процедуру заполнения макета «Грузовая накладная» из модуля объекта документа в модуль объекта обработки. Изменим название процедуры на «Печать» так же наша процедура должна стать функцией, если таковой не была ранее. После названия процедуры добавим основной оператор «Экспорт». Этот оператор обозначает, что функция печати будет доступна не только в обработке, но и в других объектах.

Обучающие статьи от компании FinSoft

Если ранее процедура печати была процедурой, а не функцией, то нам нужно добавить возвращаемое значение табличный документ. Ранее в процедурах мы сразу показывали пользователю документ.

Обучающие статьи от компании FinSoft

Теперь же вернем его. Вернем куда? Нашу новую функцию будет вызывать документ заказ покупателя из своей процедуры печати, по правилам этой процедуры печати заказа покупателя нам необходимо вернуть из нашей функции табличный документ, который в свою очередь заказ покупателя отправит дальше в механизмы печати. Вот так это выглядит для стандартных макетов документа заказ покупателя:

Листинг 34. Типовая процедура обработки печати:

Обучающие статьи от компании FinSoft

Такого рода процедуры есть почти в каждом документе обычных форм. В управляемых, скажем так, конфигурациях печать устроена немного сложнее. Если анализировать внимательно этот участок процедуры, то мы найдем вызов функции печати и получение из нее табличного документа. Например: «ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета);» по аналогии с нашим примером внешней обработки будет такая конструкция: «ТабДокумент = Печать ();» дописывать ее не нужно, все данные будут обработаны автоматически.

Код нашей печатной формы документа Путевые листы подразумевает печать из документа, где нам напрямую доступны реквизиты и табличные части. В обработке их естественно нет. Ранее мы добавляли реквизит «СсылкаНаОбъект» с типом заказ покупателя. Этот реквизит будет хранить текущий заказ покупателя, из которого был сделан вызов внешней обработки. Если у нас есть ссылка на документ, то мы можем найти документ путевой лист, в котором основание заказ из которого был сделан вызов обработки печати. Предположим, что на основании одного заказа вводится только один документ путевой лист для упрощения примера. Сделаем запрос.

Листинг 35. Запрос к документу основания:

Обучающие статьи от компании FinSoft

Разберем код. Запросом мы выбираем ссылку на документ Путевой лист, а в условия добавляем: отбирать только проведенные документы и только те, где основание будет равно реквизиту обработки «СсылкаНаОбъект».

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

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

Теперь у нас есть переменная, полученная в результате запроса «ДокументДляПечати», которая содержит в себе ссылку на документ Путевой лист. Заменим в нашей функции печати все переменные «ЭтотОбъект» на «ДокументДляПечати», ранее «ЭтотОбъект» содержал в себе ссылку на документ путевого листа.

Сохраним обработку. Теперь добавим обработку во внешние обработки. И сделаем настройку. Открываем меню Операции – Справочники – Внешние обработки.  Или через меню Сервис – Внешние печатные формы и обработки – Внешние печатные формы.  Создадим новый элемент справочника Внешние обработки.

Обучающие статьи от компании FinSoft

В поле «Вид» укажем вид обработки «Печатная форма». Нажмем на иконку открытия нового файла и выберем нашу внешнюю обработку. Далее, нажимаем подбор и выбираем из списка документов заказ покупателя. После этого можно в поле наименование задать название кнопки для печати. Должно получиться вот так:

Обучающие статьи от компании FinSoft

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

Так же, наша компания проводит обучение по курсам:

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

 От вас требуются уверенные знания ПК, и желание научиться чему-то новому.