Публикации. Публикации 1c създаване на оформление на печатна форма

Извършва се в съответствие със стандартното оформление на отпечатания формуляр, вградено в приложението от разработчиците (това се нарича „доставено“ оформление).

Ако е необходимо, можете да промените стандартното оформление и в бъдеще да отпечатате документ въз основа на вашето лично („персонализирано“) оформление. За редактиране на оформлението на отпечатаната форма е предвиден механизъм за качване на локален компютър. Редактирането на оформлението се извършва в локалната версия на системното приложение 1C:Enterprise (по-специално, можете да използвате безплатното приложение 1C:Enterprise - Работа с файлове).


За да промените оформлението за печат:




Редактирането на оформлението на отпечатания формуляр е завършено; при отпечатването на документа ще се използва оформлението, в което са направени промените.

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

Желаем ви приятна работа!

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

Ето конкретен пример за редактиране на оформление на печатен формуляр Фактури за плащане, а именно ще разгледаме как да вмъкнем изображение в него, например лого на фирма (това изображение трябва първо да бъде подготвено и запазено като графичен файл, например във формат png или jpg).


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

Желаем ви приятна работа!

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

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

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

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

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

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

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

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

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

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

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

Нека добавим външни атрибути за обработка 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 = LinkToObject.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 = "Изберете | Получаване на стоки СервиксProducts.Nomenclature, | Получаване на стокисервикспродукти.Amount, | Получаване на стокисърсиспродукти. GoodsServices.Goods AS Receipt ProductsServicesProducts |. ЛЕВА ВРЪЗКА RegisterInformations.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) AS PricesNomenclatureSliceLast ON Receipt of GoodsServicesProducts

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

Нека предадем необходимите параметри на заявката; за това ще използваме метода на заявката 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 вече може да се счита за завършено.

Външни печатни формуляри за обикновено приложение (за конфигурация Enterprise Accounting 2.0, Управление на заплати и човешки ресурси 2.5, Управление на търговия 10.3 и т.н.) се създават доста просто в сравнение с външните печатни формуляри за управлявано приложение.

Защо да създаваме външни печатни форми?

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

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

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

Нека разгледаме процеса на създаване на външна 1C печатна форма стъпка по стъпка:

  1. Създаваме външна обработка. За да направите това, изберете елемента от менюто в конфигуратора Файл - Нов...И в диалоговия прозорец, който се отваря - Външна обработка.
  2. Създайте външен атрибут за обработка с името Обектна справка. Тип атрибут е връзка към директория или документ, за който се създава външен печатен формуляр. Една и съща форма може да се използва за няколко типа обекти, в този случай типът данни атрибут Обектна справкатрябва да е съставен.
  3. В обектния модул създаваме експортна функция с името Тюлен, който трябва да върне готов отпечатан документ с електронна таблица.

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

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

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

  1. Създаване на външна обработка с подпори Референтен обект,тип данни - DocumentLink Продажби на стоки и услуги.
  2. Намираме оформлението на стандартния UPD печатен формуляр (той се намира в общите оформления) и го копираме (плъзгаме) във външния прозорец за обработка. Оформления на други печатни формуляри може да се намират в самите документи или справочници.
  3. Правим необходимите промени в копираното оформление на отпечатаната форма.
  4. Намираме функцията, отговорна за генерирането на отпечатаната форма. Тази функция трябва да върне генерирания документ с електронна таблица. Копирайте съдържанието му във функцията за експортиране Тюлен()в модула на външния обект за обработка.
    В нашия случай това е функцията PrintUniversalTransferDocument() Експортиранеот модул обект на документ Продажба на стоки и услуги.
    Ако промените в оформлението са били значителни (области и/или параметри са променени), тогава трябва да се направят съответните корекции на функцията за печат.
  5. Опитваме се да спестим външна обработка. Вероятно обаче ще получите съобщения за грешка, които показват, че някои от процедурите и функциите, извикани от функцията за печат, липсват. Тези функции и процедури трябва да се намерят в изходния документ и също така да се копират във външния обектен модул за обработка. Или коригирайте връзката, ако оригиналната функция или процедура е експортиране.
  6. (не е задължително).За тестване на външна печатна форма е удобно да направите форма, върху която да поставите реквизита Обектна справка. Бутон Изпълнитрябва да извика процедура Тюлен()от обектния модул. За да направите това, събитието с щракване върху бутон получава процедура:

Нека да разгледаме писането на най-простата печатна форма 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Има директория за регистриране на външни печатни формуляри Външна обработка. За да се свържете, отидете в менюто в корпоративния режим Услуга->Допълнителни справки и обработка->Допълнителни външни печатни форми.

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

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

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

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

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

пясъчник

корав човек 23 август 2011 г. в 10:22 ч

Оформленията в 1C 8.2 не са трудни (Част 1 - Създаване на оформление)

Да приемем, че трябва да покажете отчет като този:

Този отчет може лесно да бъде изграден с помощта на система за съставяне на данни (DCS), особено ако всички необходими данни се съхраняват в една директория. Нека обаче се опитаме да покажем същия отчет с помощта на оформление.


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

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

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

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

След това, ако в текста на клетката се появи израз в квадратни скоби, той ще бъде възприет от системата 1C като параметър. Например, ако текстът на клетката е както следва:

Казвам се [Моето име],

След това, за да изведете текста “Казвам се Иван” параметърът е достатъчен "Моето име"задайте стойността "Иван".
В нашия случай шаблонът ще бъде датата на извеждане на отчета, както и всички колони от реда, съдържащ данните на служителя. В резултат на това, след всички манипулации, оформлението на отчета ще изглежда така:

Това завършва създаването на оформлението. Сега трябва програмно да генерирате отчет от генерираните области и да го покажете.

Етикети: 1C 8, оформление, отчети, оформления

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

2024 minbanktelebank.ru
Бизнес. Печалби. Кредит. Криптовалута