Печатная форма своими руками
Начать рубрику о 1С я думаю лучше с того, с чем приходится сталкиваться довольно часто. Не знаю как у вас, а у меня создание или изменение внешних печатных форм, довольно частое занятие. А как быть если вы новичок? Эта небольшая заметка как раз и рассчитана на помощь новичкам. Итак , сегодня мы с вами научимся делать печатные формы.
Поговорим сначала о изменении уже существующих печатных форм. Есть два пути, один правильный другой нет. Рассмотрим для начала в корне не правильный подход. Печатную форму можно изменить прямо в конфигурации. Если мы так поступим, то мы автоматом изменим и саму конфигурацию, то есть снимем ее с поддержки. Если мы снимем ее с поддержки, то смело можем забыть о такой полезной вещи, как автоматическое обновление. Отсутствие автоматических обновлений – это дополнительные затраты денег, времени и отсутствие оперативных обновлений. Для нас – это дополнительная нагрузка, причем массовый поток заявок невозможно предугадать.
Рассмотрим подробнее второй путь решения. Путь правильный, не затрагивающий конфигурацию.Вы скорей всего замечали пункт меню Сервис/Внешние обработки и печатные формы.

В нем можно хранить внешние обработки, отчеты, печатные формы и обработки заполнения табличных частей. Сегодня рассмотрим работу с внешними печатными формами. Результатом будет новая печатная форма для документа «Реализация товаров и услуг».
Поехали, как сказал Гагарин.
Откроем конфигуратор и создадим внешнюю обработку с названием ВПФ.epf . Нажмем Файл/Новый…
Выберем «Внешняя обработка».
Результатом будет новая внешняя обработка.
Назовем её ВнешняяПечатнаяФорма. Добавим новый реквизит СсылкаНаОбъект с типом ДокументСсылка.РеализацияТоваровИУслуг. Если хотим сделать печатную форму для другого вида документа – нужно использовать соответствующий ссылочный тип.
Добавим новый макет.Создадим макет с названием «Макет». Создадим область с названием «Заголовок» и параметром «ТекстЗаголовка».
Откроем модуль внешней обработки.
И вставим следующий текст модуля:
//Пример внешней печатной формы для 1С:Предприятие 8 // Функция формирует табличный документ с печатной формой // Возвращаемое значение: // Табличный документ - печатная форма накладной // Рекумендуется заменить на аналогичную функцию из модуля документа, для которого создается внешняя печатная форма Функция ПечатьДокумента() //Получим данные из документа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Номер, | РеализацияТоваровУслуг.Дата |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент"; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); //используем в качестве параметра реквизит обработки СсылкаНаОбъект Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); //Созданим и заполним табличный документ ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = "Расходная накладная №" + Шапка.Номер + " от " + Шапка.Дата; ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции // ПечатьДокумента() // Функция является точкой входа в данную обработку. // Алгоритм заполнения печатной формы удобно размещать в отдельной(ых) функции(ях) // Возвращаемое значение: // Табличный документ - печатная форма накладной // Функция Печать() Экспорт ТабДокумент = ПечатьДокумента(); Возврат ТабДокумент; КонецФункции // Печать
В результате получится
Запустим 1С:Предприятие 8. Перейдем в Сервис/Внешние обработки и печатные формы/Внешние печатные формы.Добавим новую запись в список форм. Выберем созданный нами файл обработки. В табличной части укажем принадлежность внешней печатной формы документу «Реализация товаров и услуг».Проверим как работает новая печатная форма.



26. Авг, 2009 
Автору не стоит ни в коем случае путать понятия «снятие с поддержки» и «включение возможности редактирования»
Делаю внешнию обработку по аналогии данной, все работает, только вот макет почему то береться из документа, как сделать так чтоб брать его из внешней обработки ?
Все очень просто Павел, нужно во внешнюю обработку добавить макет с другим именем. И в коде модуля добавить строку «Макет=ПолучитьМакет(„Как вы там его обозвали“);»
Спасибо.
всегда пожалуйста
Заходите еще!
«Создадим область с названием «Заголовок» и параметром «ТекстЗаголовка».» ©
А как создать область?
А из скриншота не понятно?
Скажите пожалуйста, а где можно найти типовой код заполнения типовой же печатной формы счёта на оплату покупателю? Мне надо изменить его чуть-чуть, макет я нашла, скопировала, а вот сам модуль найти не могу...
Скажите пожалуйста, а где можно найти типовой код заполнения типовой же печатной формы счёта на оплату покупателю? Мне надо изменить его чуть-чуть, макет я нашла, скопировала, а вот сам модуль найти не могу...
Помог, спасибо.
Пожалуйста. Всегда рад, когда мои записи хоть кому то приносят пользу