Създаване на външна печатна форма в управлявано по конфигурация пример за заплатата и
Рейтинг: 5/5
Днес искам да ви кажа как да се създаде външни плочи печат за конфигурация "Заплата и управление на персонала 3.0". В SPP 3.0 Известно е използването на библиотеката standratnyh подсистеми, и по този начин обработката struture изглежда доста по-различно. Когато за първи път трябваше да се направи печатна форма за БСП в контролирани форми (тогава беше UT 11), първото нещо, което се качи на устройството с ETS, за да открие там подробна документация за всички процедури за износ, с какви параметри трябва да бъдат obrabtke и как работи всичко. Има ИТС ми е малко разочарован, защото там всичко казано, за това как процедури трябва да се появят в модула за документ и си разменят местата настройките външни печат "Печат" процедури, така че трябваше да се потърси информация от други източници и да изберат подсистема вътре.
Е, нека да започнем. Фактът, че ние да стигнем до края, може да се използва като шаблон.
Етап един - очевидно. Създаване на нова лечение. Присвояване го произволно име: "ObrazetsPechati".
Втора стъпка. Създаване на оформление. Тъй като ние имаме тест, оформлението ще създаде най-простите, без нито един параметър.
Трета стъпка - най-интересното. Отваряне на модула обект и да започнете програмирането. Според БСП при регистриране външна обработка, тя (процеса) е да Ви информираме, че тя знае какво обекти тя е длъжна, както го наричат. Когато го попитали какво е в състояние да лечение трябва да се върне списък с команди - таблица на ценности. В този случай, обработката е в състояние да изход печатна форма, така че отборът ще бъде само един. За образуването на маса от стойности се определят няколко процедури, които всички външни печатни форми винаги ще бъде един и същ:
// процедура, която подготвя структурата на табло за управление
// Създаване на празна маса и колона команди в него
Command = нов TablitsaZnacheny;
// Как ще описанието на печатната форма на потребителя
Komandy.Kolonki.Dobavit ( "Представяне" Нова OpisanieTipov ( "низ"));
// Името на нашата оформление, което би могло да се направи разграничение на екипа, наречен в обработката на печат
Komandy.Kolonki.Dobavit ( "ID", Ню OpisanieTipov ( "низ"));
// Тук се определя като екипът на лечение трябва да бъде извикана
// Вариантите са:
// - OtkrytieFormy - в този случай, идентификаторът на колона трябва да се посочи името на формата, която трябва да бъде отворена система
// - VyzovKlientskogoMetoda - извикване на процедура за износ на клиенти от устройството за обработка на форма
// - VyzovServernogoMetoda - причини процедурата по износ на сървъра за обработка на обект модул
Komandy.Kolonki.Dobavit ( "Използване на" Нова OpisanieTipov ( "низ"));
// Следващият параметър определя дали да се показва уведомление, в началото и обработка на прекратяване е необходимо. То няма смисъл, когато отворите формата
Komandy.Kolonki.Dobavit ( "PokazyvatOpoveschenie" Нова OpisanieTipov ( "Булева"));
// За печатната форма трябва да съдържа низа PechatMXL
Komandy.Kolonki.Dobavit ( "модификатор" Нова OpisanieTipov ( "низ"));
// Създава нов ред в Command Table
Функция DobavitKomandu (TablitsaKomand, View, лични, използване, PokazyvatOpoveschenie = Лъжите, Модификатор = "")
NovayaKomanda TablitsaKomand.Dobavit = ();
NovayaKomanda. Представяне = Представяне;
NovayaKomanda. Id = Id;
NovayaKomanda. Употреба = използване;
NovayaKomanda. PokazyvatOpoveschenie = PokazyvatOpoveschenie;
NovayaKomanda. Модификатор Модификатор =;
KonetsFunktsii
На следващо място, ние започваме рутинна програма за износ, което ще се наречеш с програма с добавянето на външна обработка на файла в директорията.
SvedeniyaOVneshneyObrabotke () функция за износ
ParametryRegistratsii = нова структура;
MassivNaznacheny = нов Array;
MassivNaznacheniy.Dobavit ( "Dokument.PriemNaRabotu");
ParametryRegistratsii.Vstavit ( "Преглед", "PechatnayaForma"); // може да бъде - ZapolnenieObekta, DopolnitelnyyOtchet, SozdanieSvyazannyhObektov.
ParametryRegistratsii.Vstavit ( "Дестинация" MassivNaznacheny);
ParametryRegistratsii.Vstavit ( "Име", "Hello World"); // името, при които обработването ще бъде регистрирано в директорията на външни обработки
ParametryRegistratsii.Vstavit ( "Версия", "1.0");
ParametryRegistratsii.Vstavit ( "BezopasnyyRezhim" истина);
ParametryRegistratsii.Vstavit ( "Информация", "проба"); // това ще се появи на потребителското описание pech.formy на
TablitsaKomand PoluchitTablitsuKomand = ();
DobavitKomandu (TablitsaKomand, "Hello World", "Разпределение", "VyzovServernogoMetoda" Истината ", PechatMXL");
ParametryRegistratsii.Vstavit ( "Екип" TablitsaKomand);
Върнете ParametryRegistratsii;
KonetsFunktsii
Всъщност в това и вие трябва да вземете всеки път, когато създадете нова външна плоча. От част от код показва, че тя се свързват, ние ще се документира "Набиране", съответно Ти пишеш сам. Наречен на печатна форма ние ще бъдем "Hello World", отново се промени сами по себе си. Тук в шаблона ще бъде удобно да пиша изрично bileberdu, че тя хвана окото, да не забравите да го оправя тогава, по мое vzglya "Hello World" идва в подходящ момент. Версия - тя е за себе си, пиша това, което искате, то ще бъде показано във формата на елемент справка външни процесори на данни. Думата "проба" - също се вижда само под формата на директория печатни форми. След това добавете команда, тук вторият параметър предава името на бутона, това е, което потребителят ще види в документа по тази точка от менюто "Печат".
Четвърта стъпка - не по-малко интересно.
-И тук и там, да спрат да работят, и на процедурата.
-И как да получите оформлението?
-Изпращайте на функция модул на подсистемата за глобалното печат.
Ето текста на процедурата:
Процедура за печат (MassivObektov, KollektsiyaPechatnyhForm, ObektyPechati, ParametryVyvoda) Износ
Ако UpravleniePechatyu.NuzhnoPechatatMaket (KollektsiyaPechatnyhForm ", модел") След това
UpravleniePechatyu.VyvestiTablichnyyDokumentVKollektsiyu (KollektsiyaPechatnyhForm,
"Разпределение", "Layout"
SformirovatTabDokumntObraztsa (MassivObektov, ObektyPechati));
ENDIF;
KonetsProtsedury
Сега изясняване. В първия ред на процедурата е състояние, малко neponyanoe. Факт е, че когато се обадите процедура за печат, системата ни дава маса на ценности, което означава, че ние трябва да отпечатате. функция Posuti UpravleniePechatyu.NuzhnoPechatatMaket (.) Проверява линиите маса, в която стойностите в линията на колона "ImyaVREG" с наименование оформление. На практика, в повечето случаи, безполезно нещо, защото Нашата лечение ще бъде в състояние да се образува само една плоча печат. Т.е. Това състояние може да се пропусне и работа няма да бъдат засегнати.
Следваща UpravleniePechatyu.VyvestiTablichnyyDokumentVKollektsiyu (.) - това е просто добавя оформление табличен, където искате да да го покажете. Ако трябва да покажете документ за електронни таблици в прозорец (не типично), а след това не се обади тази процедура, и след това просто напишете кода си.
Също така искам да добавя, че процедурата за печат се извършва на клиента, а след това можете да отворите форма, за да поиска повече информация от потребителя трябва да отпечатате, както е необходимо.
Следваща SformirovatTabDokumntObraztsa (.) - функция, която ще стане дума след устройството за обработка и която връща документ за електронни таблици. В 100 от 100 случая, той ще бъде на сървъра, защото ние трябва да се стойността на данните на обектите, включени в показателя "MassivObektov".
Пета стъпка - образуване на оформлението.
ЕАП, ние най-накрая да получите до формирането на алгоритъма за оформление, събиране на данни и т.н.
функция SformirovatTabDokumntObraztsa (MassivObektov, ObektyPechati)
tabDok = New SpreadsheetDocument;
оформление = PoluchitMaket ( "модел");
oblastShapka Maket.PoluchitOblast = ( "шапка");
tabDok.Vyvesti (oblastShapka);
Това е всичко, благодаря ви за вниманието
Аз излъгах
UT обърна 11.0.9.5 Demo база данни
Всичко работи добре.
В модула за управление на документи (например отчети за разходи) 5 параметри
Процедура за печат (MassivOb ektov, ParametryPechati. KollektsiyaPechatn yhForm, ObektyPechati, ParametryVyvoda) Износ
И в нашата работа - 4. Не копирайте процедура за печат, копиране функция, която връща документ за електронни таблици. В моята процедура печат ще замести моето предизвикателство "SformirovatTa bDokumntObraztsa (.)" Поканата че сте копирали
Тук дори стреля!
Процедура за печат (MassivOb ektov, KollektsiyaPechatn yhForm, ObektyPechati, ParametryVyvoda) Износ
Ако UpravleniePechatyu.NuzhnoPechatatMaket (KollektsiyaPechatn yhForm "PF_MXL_ZayavkaT rebovanieNaSkla д") След това
UpravleniePechatyu.VyvestiTablichnyyDokumentVKollektsiyu (KollektsiyaPechatn yhForm,
"PF_MXL_ZayavkaT rebovanieNaSkla г", "PF_MXL_ZayavkaT rebovanieNaSkla т.н."
SformirovatPech atnuyuFormuZakaz NaPeremeschenie (М assivObektov, ObektyPechati));
ENDIF;
KonetsProtsedury
Недостатъчни действителните параметри в модула (модул общо DopolnitelnyOt chetIObrabotki, линия 746)