Креирање печатена форма 1s 8.3 scratch. Додавање надворешен формулар за печатење во базата на податоци. Пишување барање за испечатен хендикеп

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

Можете да го преземете добиениот пример од.

Во конфигураторот 1C претпријатија 8креирајте надворешна обработка ( Датотека->Нова->Надворешна обработка), поставете го името, креирајте ги потребните детали за надворешната печатена форма Референца на објектотсо тип DocumentLink.Продажба на стоки и услуги.

Креирање распоред на печатена форма

Додадете нов распоред, оставете го типот на распоред табеларен документ. Ние создаваме три области на изгледот: Заглавие, податоциИ Подрум. Ова може да се направи со избирање на потребниот број линии и кликнување на менито Табела-> Имиња-> Доделете име (Ctrl+Shift+N).

После ова, започнуваме да поставуваме текст и параметри во областите. Ќе го ставиме во заглавието име на печатената форма, број на документИ организација, а исто така нацртајте ги границите на заглавието на табелата и напишете ги имињата на колоните. Кога креирате параметар во својствата на ќелијата, на табулаторот Layout треба да го поставите имотот Полнењево значење Параметар.

Во областа Податоциајде да создадеме параметри за прикажување на редови во табеларниот дел ( Номенклатура, ценаитн.), и во областа Подрумза збирки по количина и износ.

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

Ајде да одиме во модулот за објект за печатење Акции->Отвори го објектниот модул.

Ајде да создадеме функција за извоз таму што е задолжителна за печатени формулари. печат ().

Функција Печатење () ИзвозКрајна функција

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

TabDoc = нов TabularDocument; Распоред = GetLayout (" Распоред " ); HeaderArea = Layout.GetArea("Header" ); AreaData = Layout.GetArea("Податоци" ); AreaFooter = Layout.GetArea("Footer" );

Ајде да ги пополниме параметрите капии доведете го до табеларен документ .

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

За да добиете редови на табелата Стокиго користиме барањето.

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

Ги пренесуваме деталите на параметарот за барање Референца на објектот, за да се наведе во состојбата КАДЕ, дека ни требаат податоци само од документот од кој ја извлекуваме печатената форма. За да добиеме примерок за пребарување, прво го извршуваме, а потоа ги избираме редовите.

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

Следно во јамката ги пополнуваме параметрите на областа Податоциза секоја линија од примерокот на документот и прикажете ги во табеларен документ. Ги пресметуваме и вкупните вредности во јамката количиниИ износи. Ние нема да го пополнуваме секој параметар посебно, туку ја користиме процедурата Пополнете ги вредностите на својствата ((<Приемник>, <Источник>) од глобален контекст, ги копира вредностите на имотот <Источника> на имотите <Приемника> . Усогласувањето се врши според имињата на имотот. Можете да прочитате повеќе за ова во асистент за синтакса 1C Enterprise 8.

Вкупна сума = 0 ; Вкупна количина = 0 ; Додека Selection.Next() Јамка FillPropertyValues(AreaData.Parameters,Selection); Вкупна сума = Вкупна сума + Примерок.Сум; Вкупно Количина = Вкупно Количина + Примерок.Количина; TabDoc.Output(AreaData); Краен циклус ;

Пополнете и прикажете ја областа Подрум.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

Враќање на завршен документ со табеларни пресметки од функцијата печат ().

врати TabDoc;

Ако користите една од стандардните конфигурации, тогаш по враќањето на документот за табеларни пресметки 1Cќе ја прикаже печатената форма на екранот. Можете исто така да го користите методот на документ за табеларни пресметки за излез. Прикажи ().

5. Поврзување печатена форма со документ

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

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

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

Автоматска регистрација на печатена форма

За да се осигурате дека при поврзување форма за печатење не треба рачно да го избирате типот на документот, можете да конфигурирате авто-регистрација. За да го направите ова, додадете нов распоред и повикајте го Поставки_Автоматска регистрација(ова е единствениот начин) и во неговата прва ќелија пишуваме Документација.<Наименование документа> (или Директориуми.<Наименование справочника> ).

Сега, кога поврзуваме форма за печатење, ќе биде побарано да користиме параметри за автоматска регистрација.

Значи! Постои конфигурација (на пример, „Управување со трговија“, издание 10.3), а за тоа е неопходно да се развие надворешна печатена форма. На пример, да го земеме стандардниот документ „Фактура за плаќање на купувачот“ (иако надворешните печатени обрасци може да се креираат не само за документи, туку и за директориуми).

Пример за 1C 8.3 (Управувани форми)

Може да се погледне пример за развој на надворешна печатена форма за управувана апликација.

Задача

Развијте надворешен печатен образец кој ќе биде достапен од документот „Фактура за плаќање на купувачот“ и кој ќе го содржи името на организацијата, договорната страна и список на стоки со цена, износ и количина.

Оди!

Првото нешто што треба да направите е да креирате надворешна датотека за обработка. Обработката треба да содржи три главни точки:
  1. Атрибут „Object Link“ со тип „DocumentLink. Фактура за плаќање на купувачот“
  2. Изгледот што ќе се испечати
  3. Извезете ја функцијата „Print()“ која враќа документ од табела
Овие дејства се видливи на Слика 1

„Цртање распоред“

Нашиот распоред ќе содржи две области:
  1. Насловот (заглавието) на документот (во оваа област ќе бидат ставени имињата на организацијата и другата страна), и насловот на табелата (со имињата на колоните)
  2. Табела со стоки (колони со име, количина и износ)
Слика бр. 2 го прикажува распоредот на надворешното печатење. Ве молиме имајте предвид дека ќелиите на табелата и заглавието содржат параметри, а не само текст.

Функција „Печати()“

Формата е речиси подготвена. Останува само да се напише програмско пополнување на полињата од документот за табеларни пресметки. Овие дејства се изведуваат во модулот за обработувачки објект, во функција наречена „Печати“, која МОРА да може да се извезува.
Фаза бр. 1. Примање податоци за заглавието, пополнување на параметрите на заглавието и нивно пренесување во документ со табеларни пресметки TabularDocument = Нов TabularDocument; Распоред = GetLayout ("OurLayout"); Барање за податоци = Ново барање ("ИЗБЕРЕТЕ | ЗАПИШУВАЊЕ(Фактура за плаќање на Купувачот. Контрастрана) КАКО договорна страна, | ЗАПИШУВАЊЕ (Фактура за плаќање на купувачот. Организација) КАКО Организација | ОД | документ. Фактура за плаќање до купувачот КАКО фактура за плаќање на купувачот | КАДЕ | Фактура за плаќање до Купувачот. Врска = &врска"); Барање за податоци. Header = DataRequest.Execute().Select(); Cap.Next(); Area = Layout.GetArea ("Header"); Area.Options.Fill(Header); TabularDocument.Output(Area); Фаза бр. 2. Примање табеларни податоци и линија по линија излез на производи
Барање за податоци.Текст = "ИЗБЕРИ | _Производи. Број на линија, | ПРЕТСТАВУВАЊЕ(_Производи. Номенклатура) AS номенклатура, | _Производи. Количина, | _Производи. Цена, | _Производи. Износ | ОД | Документ. Фактура за плаќање до Купувачот. Производи AS _Products |WHERE | _Products. Link = &Link"; Fetch = DataRequest.Execute().Select(); Area = Layout.GetArea ("Податоци"); Додека Selection.Next() Loop Area.Parameters.Fill(Selection); TabularDocument.Output(Area); Краен циклус; Фаза бр. 3. Враќање на табеларни пресметки и функција за печатењеврати TabularDocument;

Додавање на нашата надворешна форма за печатење на 1C

Одете во менито „Услуга - Надворешни форми за печатење и обработка - Надворешни форми за печатење“

Во прозорецот за креирање елемент што се отвора, извршете ги следните дејства:

  1. Се вчитува надворешната датотека за обработка
  2. Посочуваме за кој конфигурациски документ (или директориум) е наменет печатениот формулар
  3. Снимање промени

Ајде да печатиме!

Отворете кој било документ „Фактура за плаќање на купувачот“ (со пополнет табеларен дел „Производи“, бидејќи таму ги добиваме податоците за пополнување), кликнете на копчето „Печати“, во прозорецот што се отвора изберете НАШЕ печатено форма и кликнете на „Печати“


ВНИМАНИЕ!Овој развојен алгоритам е погоден САМО за „редовна апликација“. Податоците за печатење за конфигурациите управувани со апликации се различни!

Датотеката на печатената форма прикажана во примерот може да биде

Ајде да одиме на Сервис->Дополнителни извештаи и обработка->Изборни надворешни плочи за печатење.

Се отвора формата за список со директориуми со надворешни печатени форми. Во горното мени на листата, кликнете Додадете. Се појавува формата за креирање ставка во директориум.

Кликнете на копчето Отвори и изберете ја датотеката со саканата форма за печатење. По ова, доколку е потребно, поставете го саканото име (Поле за име).

Ако печатениот формулар содржи параметри за автоматска регистрација, ќе се појави порака за ова. Кликнете Да.Ако тоа не се случи, тогаш треба да наведете со кој документ ќе биде поврзан овој формулар. полето изберете го типот на документот на кој го поврзуваме формуларот. Бидејќи во нашиот пример ова е чин на отпишување материјали, го избираме документот Барање-фактура.

После тоа, одете до кој било документ Барање-фактура, кликнете Печати и изберете ја новододадената форма.

За BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0.

За да покажам додавање печатена форма во управуван интерфејс, ќе покажам додавање на надворешен образец на фактура за плаќање на истоимениот документ во Сметководство 3.0.

Одиме во соодветниот дел од програмата:


Неопходно е да се вклучи знамето за користење на надворешни извештаи и обработка; следете ја хиперврската до списокот со надворешни објекти:

Во списокот што се отвора, кликнете Креирај:


Во полето за дијалог, изберете ја саканата датотека:


Картичката за надворешен објект се пополнува: во изгледот го гледаме типот на основниот објект на кој ќе биде прикачен формуларот и веднаш под неговото име:


Да ја напишеме и затвориме формата на креираниот надворешен објект.

Сега да одиме на кој било документ Фактура за плаќање на купувачоти прикажете го менито за печатење:


Инструкции

Отворете ја верзијата 8 на програмата 1C:Enterprise. Обрнете внимание на ставката од менито „Услуга“ - „Надворешни обрасци за обработка и печатење“. Со негова помош, можете да складирате надворешни извештаи, обработка, печатени формулари, како и обработка за пополнување табеларни елементи. Можете исто така да поврзете надворешна форма наместо да менувате постоечка, што би предизвикало мешање во конфигурацијата на програмата.

Стартувајте ја програмата 1C: Enterprise во режим на конфигуратор, потоа креирајте надворешна обработка, за да го направите ова, извршете ја командата „Датотека“ - „Ново“. Во прозорецот што се појавува, изберете „Надворешна обработка“. На екранот ќе се појави нова форма за надворешна обработка. Дајте му го името „Надворешно“. Потоа додадете нов атрибут наречен „Референца на објект“, наведете го типот за него - „Документ. Врска. Продажба на стоки и услуги“. За да креирате печатач за различен тип на документ, користете го соодветниот тип на врска.

Додадете нов распоред со кликнување на соодветното копче во прозорецот за нова форма. Наречете го „Layout“, креирајте област наречена „Header“, дајте му го параметарот „Header Text“. Потоа кликнете на копчето „Дејства“, изберете ја командата „Отвори објект модул“. Потоа вметнете го текстот на модулот, можете да го користите примерот објавен на веб-страницата http://www.uasoft.com.ua/content/articles/315/.

Стартувајте ја програмата 1C: Enterprise, одете во менито Tools, изберете External Printing Forms. Додадете нов запис во списокот со формулари. За да го направите ова, изберете ја креираната датотека за обработка и во табеларниот дел, наведете дека формуларот припаѓа на документот „Продажба на стоки“. Проверете дали новата плоча за печатење работи правилно. За да го направите ова, отворете го креираниот документ, проследете го, а потоа на дното на екранот кликнете на копчето „Печати“, изберете ја опцијата „Надворешна форма за печатење“.

Извори:

  • како да смените печатена форма во 1c

Со цел да се креираат и уредуваат обрасците на објектот, програмата 1C:Enterprise обезбедува специјален уредувач на формулари (или Дизајнер на форми). Објектните форми за апликативно решение се дизајнирани да визуелно претставуваат податоци додека работите со програмата. Уредувачот на формулари содржи неколку јазичиња кои обезбедуваат можност за уредување на сите елементи на формата.

Ќе ви треба

  • компјутер, 1C програма

Инструкции

Користејќи го уредувачот на формулари, можете да додадете еден или повеќе елементи „Група – страници“ во формуларот; за да го направите ова, кликнете на зелениот знак плус во горниот лев агол на уредникот додека сте на табулаторот „Елементи“.
Во режимот 1C: Enterprise, сите постоечки елементи на групата ќе бидат прикажани секој на посебно јазиче. За да го поставите над или под работната, во прозорецот „Карактеристики“ на одредена група, во ставката „Екран“, изберете ја соодветната команда.

Можете исто така да додадете елементи во формуларот со влечење на потребните детали во дрвото на елементите. За полесно да се движите кон контролите на формата при уредување или внесување податоци, поставете го редоследот што ви одговара, распоредувајќи ги елементите во дрвото и подредувајќи ги на други елементи и поставувајќи ги својствата на групните елементи за да одговараат на вашите потреби.
За да ги уредите деталите за формуларот - променете ги, креирајте нови или избришете ги, користете го панелот во областа на дрвото за детали на соодветното јазиче.

За да го уредите командниот интерфејс, одете на соодветното јазиче. Ќе видите дрво на команди, чии главни гранки се „Навигацискиот панел“ и „Командниот панел“. Некои команди автоматски се додаваат во стеблото за интерфејс на команди, но можете и самите да ги додадете со влечење на командите што ви се потребни од списокот со глобални (општи) команди или од списокот со команди со формулари.

Наредбите за формулари се уредуваат во соодветната листа. Можете да ги додадете, да ги отстраните од списокот, да поставите својства за секоја команда користејќи ја палетата на својства, која можете да ја повикате со кликнување на иконата со молив во командната линија на списокот.
За да ги уредите параметрите на формуларот, одете во табулаторот „Параметри“, каде исто така можете да ги додадете, да ги избришете и да ги поставите саканите својства.

Видео на темата

Сметковниот план, кој се користи во сметководството за прикажување на економските активности на претпријатието, поддржува хиерархија на повеќе нивоа: сметка - потсметки. За да може корисникот да ги прегледа податоците содржани во сметковниот план и да ги коригира, системот 1C ви овозможува да ја промените формата на сметката. Дополнително, печатената форма на фактурата може да се смени во кој било друг документ во 1C.

Ќе ви треба

  • - персонален компјутер со 1C.

Инструкции

За секоја сметка или подсметка е обезбедено аналитичко сметководство. Затоа, при креирање и последователно уредување на сметководствен план во 1C, може да се обезбеди потребниот број на под-сметки, односно аналитички сметководствени објекти. Освен тоа, прилагодувањата на сметките и подсметките може да се направат или од корисник кој работи со автоматски сметководствен систем или од развивач на софтвер.

Оваа статија ќе ви каже детално како почетник со мало познавање на 1C 8 може да создаде печатена форма. На пример, да земеме една од најчестите конфигурации 1C 8 - Сметководство 2.0. Создавање печатена форма 1C фази на пишување:

  • Креирање на датотека со надворешен формулар за печатење;
  • Креирање на распоред на печатена форма;
  • Пишување програмски код за прикажување на податоците од печатената форма на екранот;
  • Креирање параметри за автоматска регистрација на печатена форма;
  • Поврзување надворешна форма за печатење со основата 1C претпријатија.

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

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

  • Организација;
  • Контрапартија;
  • Договор за друга страна;
  • Датум на прием.

Прикажете ги податоците во табеларниот дел како табела Стокидокумент. Табелата треба да ги содржи следните колони:

  • Номенклатура;
  • Квантитет;
  • Цена;
  • Збир;
  • И, исто така, цената на предметот за тековниот датум (по тип на цена од документот).

Надворешна датотека за обработка

Ајде да продолжиме кон решавање на проблемот. Прво, да го отвориме 1C 8 во режим Конфигуратор. Во овој режим сите случувања се изведуваат на платформата 1C 8. Сега треба да создадеме надворешна датотека за обработка. За да го направите ова, кликнете на менито Датотека -> Ново…или со иконата на нова датотека.

Во прозорецот што се отвора, изберете ја ставката Надворешна обработка.

Следно на теренот ИмеМора да го внесете името на надворешната обработка. Во нашиот случај, ние едноставно ќе го наречеме „PrintedForm“; полето за синоним ќе се пополни автоматски. Ве молиме имајте предвид дека на терен Име,надворешна обработка, името треба да биде напишано без празни места или интерпункциски знаци.

Ајде да додадеме надворешни атрибути за обработка LinkToObject и изберететип за него DocumentLink.Прием на стоки и услуги. За да го направите ова, во дрвото за метаподатоци за надворешна обработка 1C, изберете ја ставката Реквизитии притиснете го копчето Додадете(копче со зелен плус). Прозорецот за својства на атрибутот ќе се отвори на десната страна на екранот, во полето Имеајде да напишеме - ReferenceToObject. ВОПоле Типпритиснете го копчето со три точки.

Ајде да ја прошириме гранката во дрвото на типот Документна врска, и таму пронајдете го елементот Прием на стоки и услуги, штиклирајте го полето до него и кликнете ДОБРО.

Ајде да ја зачуваме датотеката за надворешна обработка на тврдиот диск; за да го направите ова, користете го менито Датотека -> Зачувај, пиктограм Зачувај(сина флопи диск) или кратенка на тастатура Ctrl+S. Да ја именуваме зачуваната датотека „PrintForm“.

Креирање распоред на печатена форма

Ајде да започнеме да создаваме распоред на формата за печатење 1C. Распоредот служи како шаблон за излез на формата за печатење, па ако сакате вашата форма за печатење да изгледа добро, треба да обрнете внимание на тоа.

Ајде да додадеме нов распоред во дрвото на метаподатоци за надворешна обработка; нема да промениме ништо во прозорецот на дизајнерот на распоред и кликнете на копчето Подготвени.

Во новиот распоред што се отвора, ќе создадеме неколку области неопходни за прикажување на печатената форма. Сите области за распоред што ни се потребни ќе бидат хоризонтални, па за да креирате нова област, изберете го потребниот број на линии за распоред и одете во менито Табела -> Имиња -> Доделете имеили користете кратенка на тастатурата Ctrl + Shift + N,потоа внесете го името на регионот во полето. Кога креирате област за распоред, не плашете се да направите грешка со бројот на линии; секогаш можете да ги додадете или отстраните. За да избришете линија за распоред 1C, изберете ја саканата линија и изберете ја ставката во контекстното мени Избриши. За да додадете нова линија во изгледот, изберете која било линија од изгледот и изберете ја ставката во контекстното мени Прошири.

Додавање заглавие на распоред

Пред сè, да создадеме област Капа, ќе ги прикаже податоците за заглавието на печатената форма. За оваа област ќе ни требаат седум линии за распоред. Ајде да ги избереме и, како што напишав погоре, да ја притиснеме комбинацијата на копчиња Ctrl + Shift + N, на терен Именапишете „Шапка“ и притиснете го копчето добро.

Ајде да ја пополниме областа за распоред со податоците што ни се потребни. Обично, ниту еден печатен формулар не е комплетен без наслов, па ајде да создадеме таков и во заглавието на нашиот распоред. Бидејќи во насловот, покрај името на печатената форма, ќе го прикажеме и бројот на документот од кој е испечатен, текстот на насловот во изгледот ќе го поставиме како параметар. Параметарот на распоред е специјално назначена ќелија за распоред во која може да се излезат различни податоци користејќи го вградениот јазик 1C 8. Насловот треба да се прикаже по целата ширина на печатениот формулар, па да одлучиме колку ќелии за распоред ќе ни бидат доволни за да печатиме на стандардна ориентација на листот пејзаж.

Обично се доволни тринаесет или четиринаесет ќелии за распоред, изберете ги во првиот ред од областа Капаи се комбинираат во една ќелија ( Контекстно мени -> Спој). После ова, кликнете двапати на добиената голема ќелија и напишете го името на параметарот, во нашиот случај „TitleText“. За да може внесениот текст да стане полноправен параметар, кликнете со десното копче на ќелијата и изберете ја ставката во контекстното мени Својства. На обележувачот Распоредајде да го најдеме теренот Полнењеи изберете ја вредноста Параметар. Параметрите во распоредот 1C се означени со загради “<>».

Насловот на печатената форма треба да се издвојува меѓу другиот текст, затоа изберете ја ќелијата повторно и користете ги иконите на панелот за форматирање на распоред за да го поставите порамнувањето на текстот Центриранои големина на фонтот 14.

По насловниот текст ќе го прикажеме во областа Капаинформации за организацијата, договорната страна, договор со другата страна и датумот на прием на стоката. Бидејќи сите овие податоци се земени и од документот, ние исто така ќе го формализираме со параметри. Дополнително, пред секој параметар треба да напишете објаснувачки текст за да може корисникот лесно да разбере каде е организацијата, каде е другата страна итн. Сите овие дејства се слични на создавање наслов, затоа нема да се задржувам на нив детално, само ќе дадам слика за тоа што треба да се случи на крајот.

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

Додавање заглавие на табелата со распоред

Последното нешто што треба да го создадеме во оваа област за распоред е заглавието на табелата, во кое ќе бидат прикажани податоците од табеларниот дел. Стоки. Колоните потребни за табелата беа опишани во делот „Изјава за проблем“. Исто така, ќе создадеме заглавие на табелата користејќи комбинација од ќелии и пишување текст (имиња на колони). Изберете ги границите на заглавието на табелата користејќи ја алатката Рамка, кој се наоѓа во панелот за форматирање на распоред.

Додавање табела на распоред

Ајде да создадеме друга област во изгледот - Податоци. Во неа ќе биде прикажана табела со податоци на табеларниот дел Стоки.За оваа област ни треба само една линија на распоред. За да се прикажат сите редови од табеларниот дел во печатена форма, ќе ја пополниме и прикажеме оваа област потребниот број пати. Колони во областа Податоцитреба да се совпаѓа со колоните од заглавието на табелата, така што нема да биде тешко да се пополни. Разликата е само во областа Податоцини требаат параметри, не само текст. Исто така, забележете дека стандардно, нумеричките параметри се форматирани десно, а текстуалните параметри се форматирани налево. За да изберете колони, исто така треба да ја користите алатката Рамка.

Додавање подножје на распоред

Последната област за распоред што ни треба е Подрум. Ќе ги прикаже збирките по количина и износ. Создавањето е слично на создавање област Податоци, но дополнително резултатите треба да бидат истакнати со задебелени букви.

Крајниот резултат треба да биде распоред што изгледа вака:

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

Да почнеме да програмираме - ова е најважната фазасоздавање на печатена форма. Најпрво, да одиме во модулот за објект за надворешна форма за печатење, тука ќе програмираме. За да го направите ова, кликнете во главниот прозорец за надворешна обработка Акции -> Отворете го објектниот модул.

Треба да креирате функција за извоз во предметниот модул за надворешно печатење Seal().

Функција Print() Извези крајна функција

Ве молиме имајте предвид дека оваа функција е потребна за надворешни форми за печатење во конфигурации со користење на редовната апликација. Сите последователни програмски кодови потребни за прикажување на печатената форма ќе бидат запишани во оваа функција.

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

Ајде да создадеме променлива TabDoc, кој ќе содржи документ за табеларни пресметки - токму ова е печатената форма во која ќе ги прикажеме пополнетите области на изгледот.

TabDoc = нов TabularDocument;

До променлива РаспоредЌе го добиеме распоредот на печатената форма што го создадовме. За да го направите ова, ја користиме вградената функција GetLayout (<ИмяМакета>).

Распоред = GetLayout (" Распоред ");

Ќе ги претвориме сите области на распоредот во променливи. За да го направите ова, го користиме методот на распоред GetArea (<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Header"); AreaData = Layout.GetArea ("Податоци"); AreaFooter = Layout.GetArea("Footer");

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

Сите потребни променливи се иницијализирани. Да почнеме да ги пополнуваме и прикажуваме областите за распоред во документ со табеларни пресметки. Пред сè, да го пополниме насловот на формуларот за печатење; за ова треба да го пренесеме параметарот Текст за наслов, што го создадовме во изгледот, текстот што ни треба. За да ги пополните вредностите на параметрите за областа за распоред, постои посебна колекција наречена - Опции.Од кои преку „. можете да добиете кој било параметар. Во текстот на заглавјето ќе го пренесеме текстот: „Печатена форма“, како и бројот на документот.

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 договор = LinkToObject.Counterparty договор;

Сите параметри на заглавието се пополнети, ќе го прикажеме во документот за табеларни пресметки што го создадовме, за ова го користиме методот Излез(<Область>) .

TabDoc.Output(HeaderArea);

Пишување барање за испечатен хендикеп

Да почнеме да ја пополнуваме и исцртуваме областа Податоци. Создавањето печатена форма 1C вклучува и пишување барање; ни треба за да добиеме табеларни податоци Стокии цените Номенклатуриза тековниот датум што ќе го користиме Барање. Јазикот за пребарување 1C 8 е сличен на SQL, или поточно практично ги копира можностите на неговиот оператор SELECT, но целото барање е напишано на руски. Затоа, ако сте барем нејасно запознаени со SQL, тогаш лесно ќе го разберете јазикот за пребарување 1C 8.

Во оваа печатена форма, барањето ќе биде прилично едноставно и многумина ќе речат дека би било можно да се направи без него, но познавањето на јазикот на барањето и способноста за компетентно користење е една од главните вештини на програмер 1C. Пребарувањата ви дозволуваат да добиете сложени примероци на податоци користејќи помалку ресурси, а текстот на барањето е многу полесен за разбирање отколку програмскиот код напишан без користење на барање (или со минимална употреба на него). Покрај тоа, 1C 8 има многу добар дизајнер за прашања што ви овозможува интерактивно да соберете барање од потребните табели.

Ајде да создадеме променлива која ќе го содржи барањето.

Барање = Ново барање;

Ќе го составиме текстот на барањето користејќи го конструкторот на барањето. За почеток, да напишеме:

Request.Text = "";

Поставете го курсорот на глувчето помеѓу наводниците и притиснете го десното копче на глувчето. Во контекстното мени што се отвора, изберете ја ставката Барај конструктор,тоа многу ќе ни помогне во креирањето на 1C форма за печатење. После ова, ќе се отвори прозорецот на дизајнерот на барање, тој содржи многу јазичиња, но за нашето барање ќе ни требаат само четири: „Табели и полиња“, „Односи“, „Услови“, „Приклучување / псевдоними“.

За нашето барање ќе ни требаат две табели: дел од табелата Стокидокумент Прием на стоки и услугии слика од најновите информации за тековниот датум на регистарот Цените на артиклите.

На левата страна од дизајнерскиот прозорец ја наоѓаме колоната База на податоци. Содржи дрво од сите објекти на метаподатоци, ајде да ги најдеме оние што ни се потребни. За да го направите ова, ајде да ја отвориме темата Документацијаи најдете го документот Прием на стоки и услуги, да го отвориме и да го најдеме табеларниот дел Стоки, повлечете го во колоната на дизајнерот на барање Табели. Можете да влечете на три начини: со влечење, со двоен клик на табелата или со избирање и кликнување на копчето „>“. Ајде да ја отвориме темата Регистри на информациии најдете маса таму ЦениНоменклатура.КратенкаНајнови, повлечете го и во колоната Табели. Овие две табели се доволни за нашето барање.

Ајде да ги избереме полињата што ни се потребни од добиените табели. За да го направите ова, во колоната Табелида ја отвориме масата и пронајдете ги полињата: Номенклатура, Количина, Цена, Количинаи повлечете ги во третата колона од конструкторот - Полиња. Ајде да ја прошириме табелата , ајде да го најдеме полето Ценаа исто така повлечете го до Полиња.

Структурата на табелите и полињата на нашето барање е подготвена, сега да преминеме на условите. Ни требаат табеларни податоци Стокине се земени од сите сметки, туку само од онаа што ја печатиме. За да го направите ова, ќе наметнеме услов на масата Прием на стокиУслуги Стоки. Ајде да одиме во табулаторот „Услови“ на дизајнерот на барања. Во колумна Полињасе наоѓаат табелите што ги избравме претходно, за состојбата ќе ни треба поле Врскаод масата Прием на стоки и услуги стоки,Ајде да го повлечеме во прозорецот Услови.

Во барањата 1C можете да користите параметри; тие се потребни за пренос на податоци на барањето. На пример, ако сакаме да го ограничиме изборот на документи на одреден документ, тогаш можеме да користиме параметар за да пренесеме врска до овој документ до барањето и да го користиме овој параметар во условот. Токму тоа ќе го направиме во нашето барање.

По прозорецот Условидодадовме поле Врска, самиот дизајнер на барање ќе создаде параметар со исто име и ќе го постави по знакот „=“. Овој параметар може да се преименува ако сакате. Во текстот на барањето, параметрите се означени со „&“, но во во овој случајнема потреба да го направите ова, бидејќи се претпоставува дека вториот дел од состојбата содржи параметар, само треба да го запомните ова. Како да се пренесе вредност на параметарот за барање 1C ќе се дискутира подолу.

Бидејќи во барањето не користиме целосна табела со цени на производите, туку виртуелна (парче од второто во овој случај), треба да ги поставиме условите за формирање на оваа виртуелна табела, во нашиот случај ова е крајниот датум и условот за видот на цените (цените кои имаат строго дефиниран тип на цена е онаа наведена во документот за прием што го печатиме).

За да ги пополните параметрите на виртуелната табела, одете на јазичето Табели и полињаконструктор на барање, во колоната Табелиизберете ја табелата ЦениНоменклатура СечењеНајновии притиснете го копчето Опции за виртуелна табела, кој се наоѓа на врвот. Во прозорецот што се отвора, во полето Периодтреба да поставите параметар до кој ќе се помине датумот на кој ќе се изврши намалувањето на цената. Во нашиот случај, ова ќе биде тековниот датум (односно, денес), така што ќе го наречеме параметарот „&CurrentDate“. Во полето за услови ќе ги напишеме условите за типот на цената, ќе го пренесеме и во параметарот што ќе го наречеме „&TypePrice“. Добиената состојба ќе изгледа вака (каде Тип Цена- регистрира мерење Цените на артиклите):

Тип на цена = &Тип на цена

Параметрите на виртуелната табела се пополнуваат, кликнете на копчето добро.

Сега кога го ограничивме изборот само на документот што ни треба, ајде да создадеме врски помеѓу табелите за прашања. Ако ова не е направено, тогаш цените од табелата PricesNomenclatureSliceLast нема да се поврзат со ставката од сметката. Ајде да одиме на јазичето Врскидизајнер на барање. Ајде да создадеме врска низ теренот Номенклатурапомеѓу нашите две маси. За да го направите ова, притиснете го копчето Додадете, на терен Табела 1изберете табела Прием на стокиУслуги Стоки, а во полето Табела 2 - ЦениНоменклатураРечеПоследна. Во условите за комуникација, изберете ги полињата Номенклатураод двете табели.

Исто така, треба да се забележи дека во изборот на барање треба да ги добиеме сите редови од делот на јазичето Стокиа цените само доколку се достапни на тековниот датум за типот на цената на документот. Така, табеларните податоци Стокисе задолжителни, но податоците за расчленувањето на цените не се достапни. Затоа, во односите меѓу овие табели, неопходно е да се користи таканаречениот LEFT JOIN, а левата (или потребната) табела ќе биде Прием на стокиУслуги Стоки, и правото (или опционално) PriceNomenclatureSliceLast. Со цел да се лево придружитабелите за прашања работеа како што опишав погоре, треба да го проверите полето Ситепо теренот Табела 1.


Барањето е речиси готово, останува само да се поработи малку на теренските псевдоними. Ајде да одиме на обележувачот Синдикати / псевдонимии постави псевдоним за полето ЦениНоменклатура Парче Најнови.Цена. Прекарот ќе биде - Цена за денес, потребно е за да се совпаѓаат имињата на полињата за избор на барање и имињата на параметрите во распоредот на печатената форма.

Работата во дизајнерот на барања сега е завршена, кликнете OK. Откако ќе се затвори дизајнерскиот прозорец, ќе видите дека линијата со текстот на барањето е пополнета и изгледа вака:

Request.Text = "ИЗБИРАЈ | Прием на стокиУслугипроизводи.Номенклатура, | Прием на стокиУслугиСтоки.Износ, | Прием на стокиУслугипроизводи.Цена, | Прием на стокиУслугипроизводи.Количина, | ИПТ на Стоки, услуги. менклатура |КАДЕ | Прием на стокиУслугиПроизводи.Линк = &врска";

Извршување на барањето

Ајде да ги пренесеме потребните параметри на барањето; за ова ќе го користиме методот на барање SetParameter (<ИмяПараметра>,<Значение>). За да го добиете тековниот датум, користете ја вградената функција Тековниот датум(), ги враќа датумот и времето на компјутерот.

Ајде да извршиме барање за да добиеме примерок со податоците што ни се потребни. За да го направите ова, прво користете го методот на барање Стартувај (), а потоа и методот Изберете ().

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

Пополнување на табела за печатена форма

Како резултат на тоа, во променливата Примерќе содржи избор на резултати од барањето, можете да се движите низ него користејќи го методот Следно (), а за да ја поминете целата работа ви треба јамка Чао. Дизајнот ќе биде како што следува:

Додека Select.Next() Јамка EndLoop;

Во оваа јамка ќе ја пополниме и прикажеме областа за распоред Податоци. Но, прво, ајде да иницијализираме две променливи од нумерички тип. Во нив ќе ги собереме збирките по количина и количина што треба да ги прикажеме во областа Подрум.

Вкупна сума = 0; Вкупна количина = 0;

Внатре во јамката ќе ја пополниме областа Податоциподатоци од тековниот изборен елемент во променливи Вкупна количинаИ Вкупна количинадодајте збирни и количествени вредности и на крајот прикажете ја областа во документ со табеларни пресметки користејќи го методот кој веќе ни е познат Излез (). Бидејќи имињата на полињата на нашето барање целосно се совпаѓаат со имињата на параметрите на областа Податоци, потоа за пополнување ќе ја користиме вградената процедура FillPropertyValues(<Приемник>, <Источник>), кој ги копира вредностите на имотот<Источника>на имотите<Приемника>.

Додека Selection.Next() Јамка FillPropertyValues(AreaData.Parameters,Selection); Вкупна сума = Вкупна сума + Примерок.Сум; Вкупно Количина = Вкупно Количина + Примерок.Количина; TabDoc.Output(AreaData); Краен циклус;

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

Останува да се пополни и прикаже последната област од изгледот - Подрум. Веќе ги подготвивме податоците за пополнување, пополнување и повлекување се вршат според истата шема.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

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

Врати TabDoc;

Во овој момент, фазата на програмирање е завршена и создавањето на формуларот за печатење 1c е речиси завршено. Целосен текст на функцијата печат ()Нема да го дадам овде, можете да го погледнете во датотеката за печатење, која можете да ја преземете на дното на статијата.

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

Кога поврзувате надворешен формулар за печатење со базата на податоци, системот автоматски не одредува за кој документ или референтна книга е наменет формуларот за печатење; мора да го изберете рачно. И ако друго лице ја напишало печатената форма, а вие имате задача само да го поврзете, тогаш изборот може да стане двосмислен. За да се избегнат вакви проблеми, во сите надворешни печатени форми потребно е да се креира распоред со параметри за автоматска регистрација. Доколку е креиран и правилно форматиран, системот автоматски одредува за кој документ или референтна книга е наменет печатениот формулар.

Тоа се прави на следниов начин:

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

Поврзување надворешна форма за печатење со основата

  • Стартувајте 1C 8 во режим Компанија;
  • Одете во менито Услуга -> Дополнителни извештаи и обработка -> Дополнителни надворешни печатени формулари;
  • Кликнете на копчето Додадете;
  • Во прозорецот што се отвора, кликнете на иконата Заменете ја надворешната датотека за обработка;
  • Ако сте создале параметри за автоматска регистрација, тогаш се согласуваме да ги користиме;
  • Ако не сте создале параметри за автоматска регистрација, тогаш во табеларниот дел Додаток за плоча за печатењедодадете потребен документили референтна книга;
  • притисни го копчето ДОБРО.

После ова, формуларот за надворешно печатење ќе биде достапен во менито Печатдокумент Прием на стоки и услуги.Создавањето на печатената форма 1C сега може да се смета за завршено.

Споделете со пријателите или заштедете за себе:

Се вчитува...