Дизайнер на външни печатни форми 1s. Свързване на външна печатна форма към основата

И така, за какво изобщо е необходимо? Например, имате нужда от оформлението печатна формапроменете буквално няколко знака или добавете ред или премахнете нещо. Премахнете конфигурацията от поддръжката и след това изпитвате затруднения с всяка актуализация? За какво? По-добре да използвате външна печатна форма!

За да го създадем, се нуждаем от обработка, която намерих в Интернет, благодаря на автора за това чудо „Дизайнер на външни печатни форми“. Можете да го изтеглите и обсъдите на: forum.-infostart.-ru/-forum24/-topic74569/.

Да започнем, обработката започва в 1C:Enterprise. Ето как изглежда основният прозорец:

Например, трябва да променим печатната форма на документа „Касов ордер“, за да направите това, изберете го в полето Тип документ. Отиваме в конфигуратора и копираме целия модул на документа „Приходен касов ордер“. След това го поставете в полето „Изходен текст“, както е показано на следната снимка:

Следващата стъпка е бутонът Build tree. Тук всичко, което се изисква от нас, е да намерим името на процедурата „Печат“ в списъка с процедури, да я изберете и да щракнете върху бутона „Избор на основна“. Самата обработка ще определи кои процедури и функции са необходими за отпечатване и допълнително бутона „нужда/ненужност“, избрах две процедури „Получаване на структура на отпечатани формуляри“, тъй като тялото на процедурата използва функцията „Генериране на таблица за публикуване“ , след което също го избираме с бутона „необходимост“:

Следващата стъпка е да въведете името на оформлението, което ще бъде отпечатано и което ще променим, както е показано:

Веднага го отваряме за проверка! Ще се отвори формата за обработка, изберете в полето необходим документза отпечатване на RKO, бутонът за формуляр „Изпълни“ и външната форма за печат са готови.

От формуляра за обработка можете лесно да регистрирате външен печатен формуляр, за това има специален бутон на формуляра, след което става възможно да се печата от документа. Това е всичко, сега можете да правите промени в оформлението за печат. Късмет!

Тази статия ще ви разкаже подробно как начинаещ с малко познания за 1C 8 може да създаде печатна форма. Например, нека вземем една от най-често срещаните конфигурации 1C 8 - Счетоводство 2.0. Създаване на печатна форма 1C етапи на писане:

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

Създаване на печатна форма 1C. Формулиране на проблема

Ние сме задължителни в конфигурацията Счетоводство 2.0създаване на печатен формуляр за документ Получаване на стоки и услуги. В заглавката на отпечатания формуляр покажете следните данни:

  • организация;
  • контрагент;
  • Договор за контрагент;
  • Дата на получаване.

Покажете данните в табличния раздел като таблица Стокидокумент. Таблицата трябва да включва следните колони:

  • номенклатура;
  • количество;
  • Цена;
  • сума;
  • А също и цената на артикула за текуща дата (по вид цена от документа).

Файл за външна обработка

Да преминем към решаването на проблема. Първо, нека отворим 1C 8 в режим Конфигуратор. Именно в този режим се извършват всички разработки на платформата 1C 8. Сега трябва да създадем външен файл за обработка. За да направите това, щракнете върху менюто Файл -> Нов...или чрез иконата на нов файл.

В прозореца, който се отваря, изберете елемента Външна обработка.

Следващ в полето ИмеТрябва да въведете името на външната обработка. В нашия случай просто ще го наречем „PrintForm“; полето за синоним ще бъде попълнено автоматично. Моля, имайте предвид, че в полето Име,външна обработка, името трябва да се изписва без интервали и препинателни знаци.

Нека добавим външни атрибути за обработка LinkToObject и изберететип за него DocumentLink Получаване на стоки и услуги. За да направите това, в дървото с метаданни за външна обработка на 1C изберете елемента Реквизитии натиснете бутона Добавете(бутон със зелен плюс). Прозорецът със свойства на атрибута ще се отвори от дясната страна на екрана, в полето Именека пишем - ReferenceToObject. INполе Типнатиснете бутона с три точки.

Нека разширим клона в дървото на типа Връзка към документа, и намерете там елемента Получаване на стоки и услуги, поставете отметка в квадратчето до него и щракнете ДОБРЕ.

Нека запазим външния файл за обработка на твърдия диск; за да направите това, използвайте менюто Файл -> Запазване, пиктограма Запазване(синя дискета) или клавишна комбинация Ctrl+S. Нека наименуваме записания файл “PrintForm”.

Създаване на оформление на печатна форма

Нека започнем да създаваме оформление на формата за печат 1C. Оформлението служи като шаблон за извеждане на печатната форма, така че ако искате вашата печатна форма да изглежда добре, трябва да му обърнете внимание.

Нека добавим ново оформление в дървото с метаданни за външна обработка; няма да променяме нищо в прозореца на дизайнера на оформление и щракнете върху бутона Готов.

В новото оформление, което се отваря, ще създадем няколко области, необходими за показване на отпечатаната форма. Всички области на оформлението, от които се нуждаем, ще бъдат хоризонтални, така че за да създадем нова област, трябва да изберем необходимо количестворедове за оформление и отидете в менюто Таблица -> Имена -> Присвояване на имеили използвайте клавишна комбинация Ctrl + Shift + N,след това въведете името на региона в полето. Когато създавате област за оформление, не се страхувайте да направите грешка с броя на редовете; винаги можете да ги добавите или премахнете. За да изтриете линия на оформление на 1C, изберете желания ред и изберете елемента в контекстното меню Изтрий. За да добавите нов ред към оформлението, изберете произволен ред от оформлението и изберете елемента в контекстното меню Разширяване.

Добавяне на заглавка на оформлението

Първо, нека създадем зона Шапка, той ще покаже данните за заглавката на отпечатания формуляр. За тази област ще ни трябват седем реда на оформление. Нека ги изберем и, както писах по-горе, натиснете клавишната комбинация Ctrl + Shift + N, в полето Именапишете „Шапка“ и натиснете бутона Добре.

Нека запълним областта на оформлението с данните, от които се нуждаем. Обикновено нито един печатен формуляр не е завършен без заглавие, така че нека създадем такова и в заглавката на оформлението. Тъй като в заглавието, освен името на отпечатаната форма, ще изведем и номера на документа, от който е отпечатана, ще зададем като параметър текста на заглавието в оформлението. Параметърът на оформлението е специално определена клетка за оформление, в която могат да се извеждат различни данни с помощта на вградения език 1C 8. Заглавието трябва да се показва по цялата ширина на отпечатания формуляр, така че нека решим колко клетки за оформление ще са достатъчни, за да отпечатаме върху стандартна пейзажна ориентация на листа.

Обикновено са достатъчни тринадесет или четиринадесет клетки за оформление, изберете ги в първия ред на областта Шапкаи комбинирайте в една клетка ( Контекстно меню -> Обединяване). След това щракнете двукратно върху получената голяма клетка и напишете името на параметъра, в нашия случай „TitleText“. За да може въведеният текст да стане пълноценен параметър, щракнете с десния бутон върху клетката и изберете елемента в контекстното меню Имоти. На отметката Оформлениеда намерим полето Пълнежи изберете стойността Параметър. Параметрите в оформлението на 1C са обозначени със скоби „<>».

Заглавието на отпечатания формуляр трябва да се откроява сред останалия текст, така че изберете отново клетката и използвайте иконите в панела за форматиране на оформлението, за да зададете подравняването на текста Центриранои размер на шрифта 14.

След заглавния текст ще го покажем в областта Шапкаинформация за организацията, контрагента, споразумението с контрагента и датата на получаване на стоките. Тъй като всички тези данни също са взети от документа, ние също ще ги формализираме с параметри. Освен това преди всеки параметър трябва да напишете обяснителен текст, така че потребителят да може лесно да разбере къде е организацията, къде е контрагентът и т.н. Всички тези действия са подобни на създаването на заглавие, така че няма да се спирам на тях подробно, просто ще дам картина на това, което трябва да се случи в крайна сметка.

Фигурата показва как параметрите на оформлението се различават от обикновения текст.

Добавяне на заглавка на таблица с оформление

Последното нещо, което трябва да създадем в тази област на оформлението, е заглавката на таблицата, в която ще се показват данните от табличната част Стоки. Колоните, необходими за таблицата, са описани в раздела „Изявление на проблема“. Също така ще създадем заглавка на таблица, като използваме комбинация от клетки и писане на текст (имена на колони). Изберете границите на заглавката на таблицата с помощта на инструмента Кадър, който се намира в панела за форматиране на оформлението.

Добавяне на таблица към оформление

Нека създадем друга област в оформлението - Данни. В него ще се покаже таблицата с данни на табличната част Стоки.За тази област се нуждаем само от един ред оформление. За да покажем всички редове на табличната част в печатна форма, ще попълним и покажем тази област необходимия брой пъти. Колони в района Даннитрябва да съвпада с колоните на заглавката на таблицата, така че попълването й няма да е трудно. Разликата е само в района Данниимаме нужда от параметри, не само от текст. Също така имайте предвид, че по подразбиране числовите параметри са форматирани отдясно, а текстовите параметри са форматирани отляво. За да изберете колони, също трябва да използвате инструмента Кадър.

Добавяне на долен колонтитул към оформление

Последната област на оформление, от която се нуждаем, е Мазе. Той ще покаже общи суми по количество и сума. Създаването е подобно на създаването на област Данни, но освен това резултатите трябва да бъдат подчертани с удебелен шрифт.

Крайният резултат трябва да бъде оформление, което изглежда така:

Създаване на печатна форма 1C. Програмиране

Нека започнем с програмирането - това е най-важният етап от създаването на печатна форма. Първо, нека отидем на обектния модул за външна форма за печат, тук ще програмираме. За да направите това, щракнете върху основния прозорец за външна обработка Действия -> Отваряне на обектен модул.

Трябва да създадете функция за експортиране в обектния модул на формуляр за външен печат Тюлен().

Функция Print() Export EndFunction

Моля, обърнете внимание, че тази функция е необходима за външни формуляри за печат в конфигурации, използващи обикновено приложение. Всички последващи програмни кодове, необходими за показване на отпечатания формуляр, ще бъдат написани в тази функция.

Инициализиране на основни променливи

Нека създадем променлива TabDoc, който ще съдържа документ с електронна таблица - това е точно печатната форма, в която ще покажем попълнените области на оформлението.

TabDoc = нов табличен документ;

Към променлива ОформлениеЩе получим оформлението на отпечатания формуляр, което създадохме. За целта използваме вградената функция GetLayout(<ИмяМакета>).

Оформление = GetLayout("Оформление");

Ще преобразуваме всички области на оформлението в променливи. За целта използваме метода на оформление GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Header"); AreaData = Layout.GetArea("Данни"); AreaFooter = Layout.GetArea("Долен колонтитул");

Извеждане на заглавката на отпечатан формуляр в документ с електронна таблица

Всички необходими променливи се инициализират. Нека започнем да попълваме и показваме областите на оформлението в документ с електронна таблица. Първо, нека попълним заглавието на формуляра за печат; за това трябва да предадем параметъра Текст на заглавието, който създадохме в оформлението, текстът, от който се нуждаем. За да попълните стойностите на параметрите за областта на оформлението, има специална колекция, наречена - Настроики.От което през „.“ можете да получите всеки параметър. В заглавния текст ще прехвърлим текста: “Печатна форма”, както и номера на документа.

Header Area.Parameters.TitleText = "Формуляр за печат"+LinkToObject.Number;

Ще попълним останалите параметри на заглавката по подобен начин, ще получим всички необходими стойности за тях от детайлите Обектна справка, който съдържа връзка към документа за печат.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Header Area.Parameters.Counterparty Agreement = LinkToObject.Counterparty Agreement;

Всички параметри на заглавката са попълнени, ще ги покажем в документа с електронната таблица, който създадохме, за това използваме метода Изход (<Область>) .

TabDoc.Output(HeaderArea);

Писане на заявка за печатен хендикап

Нека започнем да запълваме и изчертаваме областта Данни. Създаването на печатен формуляр 1C също включва писане на заявка; имаме нужда от нея, за да получим таблични данни Стокии цени Номенклатуриза текущата дата, която ще използваме Заявка. Езикът за заявки 1C 8 е подобен на SQL или по-скоро практически копира възможностите на неговия оператор SELECT, но цялата заявка е написана на руски език. Следователно, ако сте поне бегло запознати с SQL, тогава лесно ще разберете езика на заявките 1C 8.

В тази печатна форма заявката ще бъде доста проста и мнозина ще кажат, че би било възможно да се направи без нея, но познаването на езика на заявките и способността да се използва компетентно е едно от основните умения на 1C програмист. Заявките ви позволяват да получавате сложни проби от данни, като използвате по-малко ресурси, а текстът на заявката е много по-лесен за разбиране от програмния код, написан без използване на заявка (или с минимално използване). В допълнение, 1C 8 има много добър дизайнер на заявки, който ви позволява интерактивно да събирате заявка от необходимите таблици.

Нека създадем променлива, която ще съдържа заявката.

Заявка = Нова заявка;

Ще съставим текста на заявката с помощта на конструктора на заявки. Като начало нека напишем:

Request.Text = "";

Поставете курсора на мишката между кавичките и натиснете десния бутон на мишката. В контекстното меню, което се отваря, изберете елемента Конструктор на заявки,това ще ни помогне много при създаването на 1C печатна форма. След това ще се отвори прозорецът на дизайнера на заявки; той съдържа много раздели, но за нашата заявка ще ни трябват само четири: „Таблици и полета“, „Връзки“, „Условия“, „Съединения / псевдоними“.

За нашата заявка ще ни трябват две таблици: таблична част Стокидокумент Получаване на стоки и услугии моментна снимка на последната информация към текущата дата на регистъра Цени на артикулите.

От лявата страна на прозореца на дизайнера намираме колоната База данни. Той съдържа дърво на всички обекти с метаданни, нека намерим тези, от които се нуждаем. За да направите това, нека отворим темата Документацияи намерете документа Получаване на стоки и услуги, нека го отворим и намерим табличната част Стоки, го плъзнете в колоната на дизайнера на заявки Маси. Можете да плъзгате по три начина: чрез плъзгане, чрез двукратно щракване върху таблицата или като я изберете и щракнете върху бутона „>“. Да отворим темата Информационни регистрии намерете масата там PricesNomenclature.ShortcutLatest, също го плъзнете в колоната Маси. Тези две таблици са достатъчни за нашето запитване.

Нека изберем полетата, от които се нуждаем, от получените таблици. За да направите това, в колоната Масинека отворим масата и намерете полетата: Номенклатура, Сума, Цена, Количествои ги плъзнете в третата колона на конструктора - Полета. Нека разширим таблицата , да намерим полето Ценаи също го плъзнете към Полета.

Структурата на таблиците и полетата на нашата заявка е готова, сега нека да преминем към условията. Имаме нужда от таблични данни Стокине са взети от всички разписки, а само от тази, която печатаме. За да направим това, ще наложим условие на масата Получаване на СтокиУслугиСтоки. Нека отидем в раздела „Условия“ на дизайнера на заявки. В колона Полетатаблиците, които избрахме по-рано, са разположени, за условието ще ни трябва поле Връзкаот масата Получаване на стоки и услуги Стоки,Нека го плъзнем в прозореца Условия.

В 1C заявки можете да използвате параметри, те са необходими за прехвърляне на данни към заявката. Например, ако искаме да ограничим избора на документи до конкретен документ, тогава можем да използваме параметър, за да предадем връзка към този документ към заявката и да използваме този параметър в условието. Точно това ще направим в нашето искане.

След прозореца Условиядобавихме поле Връзка, самият дизайнер на заявки ще създаде параметър със същото име и ще го постави след знака “=”. Този параметър може да бъде преименуван, ако желаете. В текста на заявката параметрите са маркирани със знака „&“, но в този случай това не е необходимо, тъй като се предполага, че втората част на условието съдържа параметър, просто трябва да запомните това. Как да предадете стойност на параметър на заявка на 1C ще бъде обсъдено по-долу.

Тъй като в заявката използваме не пълна таблица с цените на продуктите, а виртуална (част от последната в случая), трябва да зададем условията за формиране на тази виртуална таблица, в нашия случай това е крайна дата и условие за вида на цените (цени, които имат строго определен вид цена е тази, посочена в касовия документ, който отпечатваме).

За да попълните параметрите на виртуалната таблица, отидете в раздела Таблици и полетаконструктор на заявка, в колоната Масиизберете таблицата ЦениНоменклатураРязанеПоследнии натиснете бутона Опции за виртуална маса, разположен в горната част. В прозореца, който се отваря, в полето Периодтрябва да зададете параметър, към който ще премине датата, на която ще бъде направено намалението на цената. В нашия случай това ще бъде текущата дата (т.е. днес), така че ще наречем параметъра „&CurrentDate“. В полето условия ще напишем условията за типа цена, ще го подадем и в параметъра, който ще наречем “&TypePrice”. Полученото условие ще изглежда така (където TypePrice- регистрирано измерване Цени на артикулите):

PriceType = &PriceType

Параметрите на виртуалната таблица са попълнени, щракнете върху бутона Добре.

Сега, след като ограничихме избора само до документа, от който се нуждаем, нека създадем връзки между таблиците на заявките. Ако това не е направено, тогава цените от таблицата PricesNomenclatureSliceLast няма да бъдат свързани с артикула от касовата бележка. Да отидем на раздела Връзкидизайнер на заявки. Нека създадем връзка в полето Номенклатурамежду нашите две маси. За да направите това, натиснете бутона Добавете, в полето маса 1изберете маса Получаване на СтокиУслугиСтоки, а в полето Таблица 2 - PricesNomenclatureSliceLast. В условията за комуникация изберете полетата Номенклатураот двете маси.

Трябва също да се отбележи, че при избора на заявка трябва да получим всички редове от раздела Стокии цени само ако са налични към текущата дата за типа цена на документа. По този начин табличните данни Стокиса задължителни, но данните за ценова разбивка не са налични. Следователно в релациите между тези таблици е необходимо да се използва т.нар. LEFT JOIN, а лявата (или задължителната) таблица ще бъде Получаване на СтокиУслугиСтокии десния (или незадължителен) PriceNomenclatureSliceLast. За да работи лявото свързване на таблици със заявки, както описах по-горе, трябва да поставите отметка в квадратчето всичкослед полето Маса 1.


Заявката е почти готова, остава само да поработим малко върху полевите псевдоними. Да отидем на отметката Съюзи/Псевдонимии задайте псевдоним за полето Цени Номенклатура Срез Последни.Цена. Псевдонимът ще бъде - PriceAsToday, то е необходимо, за да съвпадат имената на полетата за избор на заявка и имената на параметрите в оформлението на отпечатания формуляр.

Работата в дизайнера на заявки вече е завършена, щракнете върху OK. След като прозорецът на дизайнера се затвори, ще видите, че редът с текста на заявката е попълнен и изглежда така:

Request.Text = "SELECT | Получаване на GoodsServicesProducts.Nomenclature, | Получаване на GoodsServicesGoods.Amount, | Получаване на GoodsServicesProducts.Price, | Получаване на GoodsServicesProducts.Quantity, | PricesNomenclature Slice of Latest.Price AS PriceToday | FROM | Документ. Получаване на GoodsServices.Goods AS ReceiptTo varsServicesProducts LEFT CONNECTION RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) HOW Номенклатура PricesSliceLast | ON Получаване на GoodsServicesProducts.Nomenclature | = PricesNomenclatureSliceLast.Nomencla ture |WHERE | Получаване на GoodsServicesProducts.Link = &Link";

Изпълнение на заявката

Нека предадем необходимите параметри на заявката; за това ще използваме метода на заявката SetParameter(<ИмяПараметра>,<Значение>). За да получите текущата дата, използвайте вградената функция Текущата дата (), той връща датата и часа на компютъра.

Нека изпълним заявка, за да получим извадка с данните, от които се нуждаем. За да направите това, първо използвайте метода на заявка Изпълни(), а след това метода Избирам().

Изберете = Query.Run().Select();

Попълване на печатната таблица на формуляра

В резултат на това във променливата пробаще съдържа селекция от резултати от заявка, можете да навигирате в него с помощта на метода Следващия(), а за да преминете през цялото нещо, имате нужда от цикъл Чао. Дизайнът ще бъде както следва:

Докато Select.Next() Loop EndLoop;

Именно в този цикъл ще запълним и покажем областта на оформлението Данни. Но първо, нека инициализираме две променливи от числов тип. В тях ще съберем сумите по количество и суми, които трябва да изведем в района Мазе.

Обща сума = 0; TotalQuantity = 0;

Вътре в цикъла ще запълним областта Данниданни от текущия елемент за избор в променливи Обща сумаИ Общо количестводобавете сумарни и количествени стойности и накрая покажете областта в документ с електронна таблица, като използвате вече познатия ни метод Изход(). Тъй като имената на полетата на нашата заявка напълно съвпадат с имената на параметрите на областта Данни, тогава за запълване ще използваме вградената процедура FillPropertyValues(<Приемник>, <Источник>), който копира стойностите на свойствата<Источника>към имоти<Приемника>.

Докато Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output(AreaData); EndCycle;

Извеждане на долния колонтитул на отпечатан формуляр в документ с електронна таблица

Остава да попълните и покажете последната област на оформлението - Мазе. Вече сме подготвили данните за попълване, попълването и тегленето се извършват по същата схема.

AreaFooter.Parameters.TotalQuantity = Общо количество; AreaFooter.Parameters.TotalSum = Обща сума; TabDoc.Output(AreaFooter);

Документът с електронната таблица е напълно попълнен; остава само да се покаже на екрана, така че потребителят да може да види отпечатания формуляр и да го отпечата, ако е необходимо. Но в типичните конфигурации на 1C 8, процедурите на специални модули са отговорни за изхода на външни печатни форми. Следователно е достатъчно да се върнете от функцията Тюлен()попълнен документ с електронна таблица.

Върнете TabDoc;

На този етап етапът на програмиране е завършен и създаването на 1c печатната форма е почти завършено. Пълен текст на функцията Тюлен()Няма да го давам тук, можете да го разгледате във файла за печат, който можете да изтеглите в долната част на статията.

Създаване на печатна форма 1C. Опции за автоматична регистрация

При свързване на външен формуляр за печат към базата данни системата не определя автоматично за кой документ или справочник е предназначен формулярът за печат, трябва да го изберете ръчно. И ако друг човек е написал печатния формуляр и вие имате задачата само да го свържете, тогава изборът може да стане двусмислен. За да се избегнат подобни проблеми, във всички външни печатни форми е необходимо да се създаде оформление с параметри за автоматична регистрация. Ако е създаден и правилно форматиран, системата автоматично определя за кой документ или справочник е предназначен отпечатаният формуляр.

Извършва се по следния начин:

  • При външна обработка създаваме ново оформление. Ние го наричаме „Settings_Auto-Registration“ (важно е да не правите грешка!).
  • В първата клетка на оформлението пишем Документация.(или Справочници.) и името на документа, към който трябва да свържете отпечатания формуляр.

Свързване на външна печатна форма към основата

  • Стартирайте 1C 8 в режим Компания;
  • Отидете в менюто Услуга -> Допълнителни отчети и обработка -> Допълнителни външни печатни форми;
  • Щракнете върху бутона Добавете;
  • В прозореца, който се отваря, щракнете върху иконата Замяна на файл за външна обработка;
  • Ако сте създали параметри за автоматична регистрация, ние се съгласяваме да ги използваме;
  • Ако не сте създали параметри за автоматична регистрация, тогава в табличната част Аксесоар за печатна плочадобавете необходимия документ или справочник;
  • Натисни бутона ДОБРЕ.

След това външната форма за печат ще бъде достъпна в менюто Тюлендокумент Получаване на стоки и услуги.Създаването на печатната форма 1C вече може да се счита за завършено.

Дизайнер на оформлениеви позволява да създавате оформления, използвани както от обекти на приложното решение, така и от самото приложно решение като цяло. Оформленията могат да съдържат различни видове данни, които са необходими за показване на информация, докато работите.

Конструкторът се извиква автоматично от системата при създаване на ново оформление (например при създаване на ново оформление на директория в прозореца за конфигуриране):

Дизайнерът ви позволява да създавате както празни оформления, така и оформления, съдържащи някаква информация. Това може да бъде празно оформление на документ с електронна таблица, който прилича на електронни таблици и се използва широко при генериране на изходни форми на документи и отчети; може да е празно оформление текстов документили оформление, съдържащо двоични данни.

Дизайнерът също поддържа създаване на оформления, съдържащи ActiveDocument (напр. Word документ, Excel лист или CorelDRAW чертеж). В допълнение, дизайнерът ви позволява да създавате оформления, съдържащи HTML документи или географски диаграми. За отчети, които използват система за съставяне на данни, дизайнерът ви позволява да създавате оформления, които съдържат диаграма за съставяне на данни и оформление за съставяне на данни.

Резултатът от работата на конструктора ще бъде завършено оформление. Например, това може да е оформление на документ с празна електронна таблица.

Нека да разгледаме писането на най-простата печатна форма 1s 8.1 - 8.2използване на пример за конфигурация Счетоводство на предприятието 2.0. Да речем, че трябва да напишете външен печатен формуляр за документ: покажете основните данни на документа, както и от табличната част Стоки: номенклатура, цена, количество и сума.

Можете да изтеглите получения пример от .

В конфигуратора 1C предприятия 8създаване на външна обработка ( Файл->Нов->Външна обработка), задайте името, създайте необходимите подробности за външния печатен формуляр Обектна справкас тип DocumentLink Продажби на стоки и услуги.

Създаване на оформление на печатна форма

Добавете нов оформление, оставете типа оформление документ с електронна таблица. Създаваме три области на оформлението: Заглавие, данниИ Мазе. Това може да стане, като изберете необходимия брой редове и щракнете върху менюто Таблица->Имена->Присвояване на име (Ctrl+Shift+N).

След това започваме да поставяме текст и параметри в областите. Ще го поставим в заглавката наименование на печатния формуляр, номер на документаИ организация, а също така начертайте границите на заглавката на таблицата и напишете имената на колоните. Когато създавате параметър в свойствата на клетката, в раздела Оформление трябва да зададете свойството Пълнежпо смисъл Параметър.

В района Даннинека създадем параметри за показване на редове в табличния раздел( Номенклатура, ценаи др.), и в района Мазеза суми по количество и сума.

Програмиране

Да преминем към обектния модул за печатна форма Действия->Отваряне на обектния модул.

Нека създадем там функция за експортиране, която е задължителна за печатни формуляри. Тюлен().

Функция Печат () Експортиране EndFunction

Във функцията, за която ще създадем променлива документ с електронна таблица, в който ще бъде изведен отпечатаният формуляр, получаваме оформлениеИ зони на оформление.

TabDoc = нов табличен документ; Layout = GetLayout("Layout"); HeaderArea = Layout.GetArea("Header"); AreaData = Layout.GetArea("Данни"); AreaFooter = Layout.GetArea("Долен колонтитул");

Да попълним параметрите шапкии го доведе до документ с електронна таблица.

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

За да получите редове от таблицата Стокиизползваме заявката.

Заявка = нова Заявка; Request.SetParameter("Връзка", ObjectLink); Query.Text = "ИЗБЕРЕТЕ | Продажби на стоки и услуги Стоки.Номенклатура, | Продажби на стоки и услуги Стоки. Сума, | Продажба на стоки и услуги Стоки. Цена, | Продажби на стоки и услуги Стоки Количество| ОТ | Документ Продажби на стоки и услуги Стоки КАК да продавате стоки и услуги Стоки|КЪДЕ | Продажба на стоки и услуги Стоки. Връзка = &Връзка";

Предаваме подробностите към параметъра на заявката Обектна справка, да се посочи в условието КЪДЕТО, че се нуждаем от данни само от документа, от който извличаме печатната форма. За да получим примерна заявка, първо я изпълняваме и след това избираме редовете.

Изберете = Query.Run().Select();

След това в цикъла попълваме параметрите на областта Данниза всеки ред от примерния документ и ги покажете в документ с електронна таблица. Ние също изчисляваме общите стойности в цикъла количестваИ суми. Няма да попълваме всеки параметър поотделно, а ще използваме процедурата Попълнете PropertyValues((<Приемник>, <Источник>) от глобален контекст, той копира стойностите на свойствата <Источника> към имоти <Приемника> . Съвпадението се извършва чрез имена на свойства. Можете да прочетете повече за това в асистент за синтаксис 1C Enterprise 8.

Обща сума = 0; TotalQuantity = 0; Докато Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output(AreaData); Краен цикъл;

Попълнете и покажете областта Мазе.

AreaFooter.Parameters.TotalQuantity = Общо количество; AreaFooter.Parameters.TotalSum = Обща сума; TabDoc.Output(AreaFooter);

Връщане на попълнения документ с електронна таблица от функцията Тюлен().

върнете TabDoc;

Ако използвате една от стандартните конфигурации, след връщане на документа с електронна таблица 1Cще покаже отпечатания формуляр на екрана. Можете също да използвате метода на документ с електронна таблица за изход. Покажи().

5. Свързване на печатен формуляр към документ

IN стандартни конфигурации 1C 8Има директория за регистриране на външни печатни формуляри Външна обработка. За да се свържете, отидете в менюто в корпоративния режим Услуга->Допълнителни отчети и обработка->Допълнителни външни печатни форми.

Добавете нов елемент от директория, заредете отпечатания формуляр от диска и изберете типа документ.

Сега в документа Продажба на стоки и услугиЩе се появи нов печат.

Автоматична регистрация на печатен формуляр

За да сте сигурни, че когато свързвате форма за печат, не е необходимо да избирате типа документ ръчно, можете да конфигурирате автоматична регистрация. За да направите това, добавете ново оформление и го извикайте Настройки_Автоматична регистрация(това е единственият начин) и в първата му клетка записваме Документация.<Наименование документа> (или Справочници.<Наименование справочника> ).

Сега, когато свързваме форма за печат, ще бъдем помолени да използваме параметри за автоматична регистрация.

Не е тайна, че въпреки че в наше време всичко голямо количествокомпаниите преминават към електронен документНапротив, старата поговорка „Без лист хартия...” не губи своята актуалност. Случва се така, че по някаква причина контролните органи се интересуват предимно от хартиени документи. Ето защо, ако използвате активно за финансов контролпрограма 1C: Счетоводство или предприятие, важно е да знаете как да отпечатате електронен документ, създаден с помощта на програмата.

Печатните формуляри в 1C ви позволяват да трансформирате електронен документ в печатна версия.

За това разработчикът е предоставил отличен инструмент - Print Designer. С негова помощ можете да създавате документи, в които да посочвате всякакви данни, от които се нуждаете, а не само няколко стандартни формуляра. Това важи особено за онези документи, които нямат строго регламентирана форма, която не може да бъде променяна при никакви обстоятелства. Това по-специално може да включва акт за завършване на работа, някои фактури или плащания.

В това ръководство предлагаме да разберем възможностите на печатния дизайнер, да разгледаме какви видове печатни форми могат да бъдат и как се различават един от друг. Ще покажем и с пример как се отпечатва създадения формуляр.

Първо, струва си да разберете какво, като цяло, е печатна форма в 1C 8. Това е шаблон на електронна таблица 1C (като Excel), в който са посочени някои променливи редове, попълнени с данни от програмата при изготвяне на документ.

Печатните форми се предлагат в два вида:

  • Вътрешен (вграден). Те се съхраняват в конфигурацията на програмата, така че е по-добре да не ги променяте, тъй като могат да възникнат проблеми по-късно по време на актуализацията.
  • Външни - съхраняват се отделно от настройките на програмата. И с тяхна помощ можете да създадете и подготвите за печат документ с почти всякаква сложност, без да засягате конфигурацията на програмата 1C 8.

Как да изберем вече готови оформления? След като извършите входяща или изходяща операция, например изписване на отчет за свършена работа, щракнете върху бутона „Печат“, за да отпечатате документите. Списъкът показва списък с формуляри за печат, които вече са попълнени с въведени данни за извършената транзакция и вашата компания. Щраквайки върху типа документ, от който се нуждаете, вие отваряте прозорец за предварителен преглед, за да можете да се уверите, че данните, които сте попълнили, са правилни. Бутонът за печат отпечатва документа на принтера.

Като приключим с основите, нека да разберем къде се съхраняват всичките ви материали за печат. Да преминем към следващия въпрос.

Къде се съхраняват отпечатаните формуляри?

Можете да видите вградените печатни формуляри както в режим на конфигуратор, така и в нормален режим на предприятие. В първия случай трябва да щракнете върху съответния бутон в началния прозорец, когато стартирате програмата. Ще видите менюто на програмата, намерете клона „Продажби на продукти и услуги“, който съдържа елемента „Оформления“. Често съдържа само два елемента - „Фактура“ и „Акт“. Къде са всички останали тогава, след като списъкът е много по-обширен? Те просто се крият някъде другаде. Трябва да отворите клона „Общи“ - „Общи оформления“, почти всички оформления се съхраняват в него.

Във втория случай трябва да отидете в раздела на менюто „Администрация“ - „Печат на формуляри, отчети и обработка“ - „Оформления на печатни формуляри“. Той ще покаже всички оформления на документи. Трябва да се отбележи, че те могат да се редактират в същото меню.

Относно външни форми, тогава първо трябва или да ги създадете в режим на конфигуратор, или като изтеглите готов файл и след това да ги свържете към менюто „Администриране“ - „Печатни форми, отчети и обработка“ - „Допълнителни отчети и обработка“. Ще поговорим за това малко по-късно.

Създаване на прост формуляр с помощта на вградения Print Designer

Такава печатна форма не предполага възможност за дълбоко редактиране, тъй като това ще доведе до промяна в конфигурацията на програмата, както и допълнителни трудности при нейното актуализиране. Ако обаче сте напълно доволни от стандартната форма или искате да се задълбочите в тънкостите на създаването на външна форма, този метод е напълно подходящ за вас.

  1. Първо стартирайте режима на конфигуратора, намерете документа, от който се нуждаете, например Продажби на продукти и услуги, в свойствата на документа отидете на Действия - Дизайнери - Дизайнер на печат.
  2. Когато бъдете подканени за работна опция, изберете Редовни формуляри.
  3. Дайте име на новото оформление, например „Печат на фактура“.
  4. Изберете подробностите, които искате да видите в заглавката на документа. Освен това те трябва да бъдат избрани в реда, в който ще бъдат показани. За да изберете, трябва да маркирате елемента в лявата колона с курсора и да натиснете стрелката в средата на екрана, така че подробностите да се появят в дясната колона.
  5. Маркирайте детайлите, които да се показват в секцията с таблици. Изборът на детайли следва същия принцип, както в предишния параграф.
  6. По същия начин изберете детайлите в долната част на документа.
  7. На последния етап от създаването изберете дали искате да отпечатате веднага без преглед, дали трябва да защитите таблицата и след това потвърдете създаването на формуляра с бутона OK.

Създаване на външна печатна форма

Формулярите, създадени чрез Print Designer, могат да бъдат сравнени с визуален софтуерен редактор, когато не въвеждате целия код ръчно, а само го композирате от предложените елементи. Външната форма е файл с ръчно написан програмен код, който описва процедурата за извеждане на данни на екрана. Това е, което ви позволява да редактирате отпечатания формуляр, както желаете, като посочите абсолютно всякакви данни във всяка последователност.

Допълнително предимство е, че дори ако не разбирате или просто не искате да разберете тънкостите на програмирането на 1C 8, можете да поверите тази процедура на професионалисти. Те могат да ви подготвят необходимата форма, ще ви го предостави като готов файл, който просто активирате с няколко натискания на бутон.

Сега нека поговорим повече за самата процедура. Нека да разгледаме примера за създаване на оформление „Фактура“ за документа „Продажби (актове, фактури)“.

  1. Отворете програмата 1C 8 в режим на конфигуратор.
  2. Щракнете върху Файл - Нов - Външна обработка, дайте му име (не трябва да включва интервали), след което щракнете върху Действия - Отваряне на обектен модул.
  3. В полето за въвеждане, което се отваря, въведете следния код (стойностите, които могат да бъдат променени на ваши, са маркирани в жълто):

Функция InformationOnExternalProcessing() Експортиране
Параметри за регистрация = Нова структура;
ArrayDestinations = Нов масив;
Масив от задания.Добавяне("Документ.Продажби на стоки и услуги"); //Посочваме документа, за който правим външен печат. форма
Parameters.Insert("View", "PrintForm"); //може би - PrintableForm, попълващ обект, допълнителен отчет, създаване на свързани обекти...
Регистрационни параметри.Insert("Дестинация", масив от дестинация);
Parameters.Insert("Име", "Поръчка за продажба на стоки"); // име, под което обработката ще бъде регистрирана в директорията на външната обработка
Параметри за регистрация.Insert("SafeMode", FALSE);
Параметри за регистрация.Insert("Версия", "1.0");
Registration Options.Insert("Информация", "Този формуляр за печат е създаден като проба");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "External Order", "ExternalOrder", "CallServerMethod", True, "MXL Print");
Параметри за регистрация.Insert("Команди", CommandTable);
ReturnRegistrationParameters;
EndFunction // Информация ЗА външна обработка ()
Функция GetTableCommand()
Команди = Нова таблица със стойности;
Commands.Columns.Add("View", New TypeDescription("Row"));//как ще изглежда описанието на формата за печат за потребителя
Commands.Columns.Add("Identifier", New TypeDescription("String")); //отпечатайте име на оформлението на формуляр
Commands.Columns.Add("Usage", NewTypeDescription("Row")); //Извикване на ServerMethod
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add("Модификатор", NewTypeDescription("Ред"));
Екип за връщане;
EndFunction
Процедура AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = Изглед;
NewCommand.Identifier = Идентификатор;
NewCommand.Use = Използване;
NewCommand.ShowAlert = Покажи предупреждение;
NewCommand.Modifier = Модификатор;
Край на процедурата

  1. Запазете оформлението за печат като файл във всяка папка на вашия твърд диск, наименувайте го по подходящ начин.

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

Добавете команда (Таблица с команди, „Външен ред“, „Външен ред“):
Процедура Печат (Масив от обекти, Колекция от PrintForms, PrintObjects, Изходни параметри) Експорт
Управление на печат. Изход TabularDocumentIntoCollection(
Колекция от печатни форми,
"Външен ред"
"Външен ред"
GeneratePrintForm(ArrayofObjects, PrintObjects);
EndProcedure // Print()

  1. Вмъкнете оформление за попълване на отпечатания формуляр, като щракнете върху името на външния формуляр в долния ляв ъгъл и изберете „Оформления“ - „Добавяне“ - „Документ с електронна таблица“, дайте му име. След това попълнете електронната таблица с необходимите данни. Например:
    • Поръчка за продукт № [Номер на реализация] от [Дата на реализация] - десен бутон - Свойства - Оформление - Попълване - Шаблон.
    • Създайте колоните, които искате да се показват във вашия документ.
    • Изберете въведените клетки, щракнете върху Таблица - Имена - Задайте име - въведете името „Заглавка“.
    • Копирайте реда със заглавките на таблицата, изберете ги, щракнете с десния бутон - Properties - Layout - Filling - Parameter.
    • Изберете ред и го наименувайте, например „StringTCH“.
    • Създайте долен колонтитул: напишете Total, клетката, в която трябва да се покаже общата сума, наименувайте я TotalTotal, изберете „Параметри“ в свойствата.
    • Посочете отговорното лице и в свойствата на клетката за показване на фамилното име посочете „Параметри“.
    • Изберете долните редове и наименувайте диапазона „Долен колонтитул“.
  2. Сега в прозореца за въвеждане въведете функцията за генериране на печатна форма:

Функция GeneratePrintForm(LinkToDocument, PrintObjects)
TabularDocument = Нов табличен документ;
TabularDocument.Name of Print Parameters = “PRINT_PARAMETERS_Invoice for Payment to VRTU”;
Оформление за обработка = GetLayout("Payment InvoiceExternal");
//попълнете заглавката
AreaHeader = ProcessingLayout.GetArea("Header");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
//изведете заглавката в документ с електронна таблица
TabularDocument.Output(HeaderArea);
//попълнете редовете в ЛС
RowArea = ProcessingLayout.GetArea("РЕД");
За всеки текущ ред от връзка към документ. Цикъл на продукти
FillPropertyValues(RowArea.Parameters, CurrentRow);
TabularDocument.Output(RowArea);
EndCycle;
//запълване на мазето
AreaFooter = ProcessingLayout.GetArea("Долен колонтитул");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("Количество");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("Сума");
AreaFooter.Parameters.ResponsibleName = LinkToDocument.Manager.Name;
//изведете долния колонтитул в документ с електронна таблица
TabularDocument.Output(AreaFooter);
TabularDocument.AutoScale = True;
върнете TabularDocument;
EndFunction

  1. Запазете промените в документа.
  2. Сега трябва да активирате създадения формуляр. За това:
    • Отидете на „Администриране” - „Печатни формуляри, отчети и обработка” - „Допълнителни отчети и обработка”.
    • Щракнете върху бутона „Създаване“, изберете файла с външен формуляр в Explorer, потвърдете въвеждането си с бутона „Запазване и затваряне“.
  3. За да проверите, отидете на Продажби - Продажби (актове, фактури), щракнете върху бутона "Печат", изберете вашия формуляр и проверете дали е попълнен правилно.
  4. Отпечатайте документа, ако е необходимо.

Заключение

Разгледахме пример за създаване на формуляр за печат чрез Print Designer и чрез инструмента за създаване на външни формуляри. Надяваме се всичко да се получи за вас. Оставете вашите въпроси в коментарите.