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

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

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

В конфигуратора 1C предприятия 8създаване на външна обработка ( Файл->Нов->Външна обработка), задайте име, създайте атрибут, необходим за външната печатна форма ReferenceToObjectс тип Документ Справка. Реализация на стоки Услуги.

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

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

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

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

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

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

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

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

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

TabDoc = нов SpreadsheetDocument; Layout = GetLayout("Layout"); Област на заглавката = Layout.GetArea("Заглавка"); ScopeData = Layout.GetScope("Данни"); AreaFooter = Layout.GetArea("Мазе");

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

Header Area.Parameters.HeaderText = +ObjectReference.Number; HeaderScope.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

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

Заявка = нова заявка; Query.SetParameter("Reference", ObjectReference); Query.Text = "ИЗБЕРЕТЕ | Реализация на стоки, услуги, стокова номенклатура, | Реализация на стоки, услуги, стоки, сума, | Реализация на стоки, услуги, стоки, цена, | Продажби на стоки, услуги, стоки, количество| ОТ | Документ.Продажба на СтокиУслуги.Стоки AS Реализация на СтокиУслугиСтоки|КЪДЕ | ImplementationProductsServicesProducts.Reference = &Reference";

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

Избор = Query.Execute().Select();

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

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

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

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

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

върнете TabDoc;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

По-навътре в полето Иметрябва да въведете името на външната обработка. В нашия случай, нека го наречем просто: "Формуляр за печат", полето за синоним ще се попълни автоматично. Моля, имайте предвид, че в полето Име,външна обработка, името да се изписва без интервали и препинателни знаци.

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

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

Нека запазим външния файл за обработка на твърдия диск, за това ще използваме менюто Файл -> Запазване, икона Запазване(синя дискета) или клавишна комбинация ctrl+s. Нека наименуваме записания файл "PrintForm".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TabDoc = нов SpreadsheetDocument;

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

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

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

Област на заглавката = Оформление GetArea("Заглавка"); AreaData = Layout.GetArea("Данни"); AreaFooter = Layout.GetArea("Мазе");

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

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

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

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

HeaderScope.Parameters.Organization = LinkToObject.Organization; Header area.Parameters.Account = LinkToObject.Account; Header Area.Parameters.IncomingDate = ObjectReference.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 за печат. След това ще се отвори прозорецът на дизайнера на заявки, който съдържа много раздели, но нашата заявка ще се нуждае само от четири: „Таблици и полета“, „Връзки“, „Условия“, „Съединения / псевдоними“.

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

В лявата част на прозореца на дизайнера намерете колоната База данни. Той съдържа дърво на всички обекти с метаданни, нека намерим тези, от които се нуждаем. За да направите това, отворете клона Документитеи намерете документа Услуги за входящи стоки, разгънете го и намерете табличната част Продукти, го плъзнете в колоната на дизайнера на заявки маси. Има три начина за плъзгане и пускане: чрез плъзгане, чрез двукратно щракване върху таблицата или като я изберете и щракнете върху бутона ">". Да отворим клон Информация за регистритеи намерете маса там PricesItems.SliceLast, също го плъзнете в колоната маси. Тези две таблици са достатъчни за нашето запитване.

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

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

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

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

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

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

PriceType = &PriceType

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

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

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


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

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

Заявка. Текст = "Изберете | получаване на услуги. Номенклатори, | получаване на услуги. Обобщени стоки, | получаване на услуги. Стоки за крупиране. Продукти, | услуги на получаване. Сложности, | цени на затворника. Цена като цена на пари | от | документ. Съдействие като разписка за регионални услуги. (| &CurrentDate, PriceType = &PriceType) AS PricesItemsSliceLast | By Incoming GoodsServicesGoods.Nomenclature | = PricesItemsSliceLast.Nomenclature |WHERE | Incoming GoodsServicesGoods.Reference = &Reference";

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

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

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

Избор = Query.Execute().Select();

Попълване на таблицата за печат

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

Докато Selection.Next() Loop EndCycle;

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

Обща сума = 0; Общ брой = 0;

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

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

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

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

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

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

Върнете TabDoc;

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

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

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

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

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

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

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

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

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

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

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

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

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

Има два вида разпечатки:

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

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

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

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

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

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

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

Създаване на проста форма чрез вградения Print Constructor

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

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

Създаване на външен печат

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

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

Сега повече за самата процедура. Разгледайте примера за създаване на оформление "Сметка" за документа "Изпълнение (актове, фактури)".

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

Функция DetailOnExternalProcessing() Експортиране
RegistrationParameters = Нова структура;
AssignmentArray = Нов масив;
Масив от задания Add("Документ. Реализация на стоки или услуги"); //Посочваме документа, към който правим външен печат. форма
RegistrationParameters.Insert("Изглед", "Формуляр за печат"); //може да бъде - PrintingForm, попълване на обект, допълнителен отчет, създаване на свързани обекти ...
RegistrationParameters.Insert("Присвояване", Масив от присвояване);
Parameters.Insert("Име", "Поръчка за продажба на стоки"); // име, под което обработката ще бъде регистрирана в директорията на външната обработка
RegistrationParameters.Insert("SafeMode", FALSE);
RegistrationParameters.Insert("Версия", "1.0");
RegistrationParameters.Insert("Информация", "Този формуляр за печат е създаден като проба");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "External Order", "External Order", "ServerMethod Call", True, "PrintMXL");
RegistrationParameters.Insert("Команди", CommandTable);
Параметри за връщане Регистрация;
EndFunction // ExternalProcessing Details()
Функция GetCommandTable().
Команди = Нова таблица със стойности;
Commands.Columns.Add("View", New TypeDescription("String"));//как ще изглежда описанието на формуляра за печат за потребителя
Commands.Columns.Add("Identifier", NewTypeDescription("String")); //отпечатайте име на оформлението на формуляр
Commands.Columns.Add("Usage", NewTypeDescription("String")); //Извикване на ServerMethod
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add("Modifier", NewTypeDescription("String"));
Завръщане на отбора;
Крайни функции
Процедура AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = Изглед;
NewCommand.Identifier = Идентификатор;
NewCommand.Use = Използване;
NewCommand.ShowAlert = Покажи предупреждение;
NewCommand.Modifier = Модификатор;
EndProcedure

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

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

AddCommand(CommandTable, "Външен ред", "Външен ред"):
Процедура Печат (Масив от обекти, Колекция от печатни формуляри, Печатни обекти, Изходни параметри) Експорт
PrintManagement.OutputSpreadsheetDocumentToCollection(
КолекцияПечатни формуляри,
"Външен ред"
"Външен ред"
GeneratePrintForm(ArrayObjects,PrintObjects);
EndProcedure // Print()

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

Функция GeneratePrintForm(ReferenceToDocument,PrintObjects)
SpreadsheetDocument = Нов документ за електронна таблица;
SpreadsheetDocument.PrintParameterName = "PRINT_PARAMETERS_InvoiceForVRTU";
ProcessingLayout = GetLayout("InvoiceForPaymentExternal");
// попълнете заглавката
AreaHat = LayoutProcessing.GetArea("Шапка");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
// показване на заглавката в документ с електронна таблица
SpreadsheetDocument.Output(RegionHeader);
//попълнете редовете в ЛС
StringScope =ProcessingLayout.GetRegion("StringP");
За всеки CurrentRow From ReferenceToDocument.Products Loop
FillPropertyValues(RowArea.Parameters, CurrentRow);
SpreadsheetDocument.Output(StringArea);
EndCycle;
//попълване на долен колонтитул
AreaFooter = LayoutProcessing.GetArea("Долен колонтитул");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("Количество");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("Сума");
RegionFooter.Parameters.OwnerName = LinkToDocument.Manager.Name;
//изведете долния колонтитул в документ с електронна таблица
SpreadsheetDocument.Output(RegionFooter);
SpreadsheetDocument.AutoScale = True;
Връщане на SpreadsheetDocument;
Крайни функции

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

Заключение

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

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

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

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

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

Следващата стъпка е бутонът Build Tree. Тук всичко, което се изисква от нас е да намерим името на процедурата „Печат” в списъка с процедури, да я изберем и да натиснем бутона „Избор на основна”. Самата обработка ще определи кои процедури и функции са необходими за отпечатване и в допълнение към бутона „нужда / не е необходим“, избрах две процедури „Получаване на структурата на печатни форми“, тъй като тялото на процедурата използва „Създаване функция GO Table for Conducting, след което я избираме и с бутона „need“:

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

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

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

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

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

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

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

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