телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Справки и обработка за 1s 8.2. Добавяне на външна обработка към базата данни. Допълнителни външни печатни плаки

Отидете в горното меню Обслужване->->.

Появява се формулярът със списък на външна директория за обработка. IN горно менюНатисни бутона Добавете.

Ще се появи формулярът за добавяне на нов обект. Щракнете върху бутона за отваряне и изберете файла с желаната обработка. След като сте избрали необходим файл, ако е необходимо, посочете името на обработката (поле Име). След това трябва да щракнете върху OK, за да запазите направените промени.

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

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

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

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

За първия случай ще добавим обработка за попълване на номенклатурния указател от Excel.

Нека отидем в съответния раздел на програмата:


Необходимо е да е зададен флаг за използване на допълнителни отчети и обработка, следвайте хипервръзката към списъка с външни обекти:

В списъка щракнете Създавайте:


В диалоговия прозорец, който се отваря, изберете желания файл за обработка:


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


Изберете произволен раздел (или няколко) за разположение:


Напишете и затворете картата с външен обект:


Сега нека отворим обработката от интерфейса:


Списъкът е празен, щракнете Персонализирайте списъка:


Изберете нашата обработка:


Вече е достъпен за избор. За да отворите обработката, трябва да щракнете Изпълни:


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


Ако желаете, списъкът с разположения може да бъде коригиран ( не добавяйте допълнително разположение, но премахнете ненужното):


За да приемете промяната, картата на външния обект също трябва да бъде записана.

За да използвате обработката, трябва да отидете на конкретен обект на базата данни (от списъка с разположения), щракнете върху Напълнетев командния панел и изберете командата:

Нека помислим за създаването на външен отчет в 1C 8, без да използваме система за съставяне на данни. За да създадем външен отчет, ще използваме конфигурацията на Счетоводство 2.0, първоначалните данни: „Напишете отчет по счетоводна сметка 62, в който оборотът за посочения период ще бъде показан в контекста КонтрагентиИ Договори на контрагенти.

1. Създайте отчет

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

Изберете елемента от списъка Външен доклад. След като създадете външния отчет, дайте му име (напр SimplestReport) и го запазете на диск. Ще добавим и две подробности: Начало на периодаИ Край на периодаТип дата, те ще ни трябват, за да ограничим интервала от време за извадка от данни при генериране на отчет.

2. Създайте външно оформление на отчета

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

Нашето оформление ще има 4 области:

  • Хедър – в тази област ще изведем името на отчета, периода, за който е генериран и хедъра на таблицата;
  • Данни за контрагента – в тази област ще покажем данни за контрагента в таблица;
  • DataCounterparty Agreement - в тази област ще покажем данни за контрагента в таблица;
  • Долен колонтитул – в тази област ще покажем общите стойности за целия отчет за полетата Приходи и Разходи.

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

След това името на параметъра в клетката ще бъде оградено в ъглови скоби ("<>“). В резултат на това областта Шапкатрябва да изглежда така:

В района DataCounterpartyще създадем параметри за извеждане на името на контрагента, както и за приходи и разходи за сметка 62, с помощта на инструмента ГранициНека проектираме областта като ред от таблица.

В района Споразумение за контрагент за данниДа създадем параметри за извеждане на името на договора, както и за приходи и разходи за сметка 62, като с помощта на инструмента Borders ще проектираме областта като табличен ред. Нека направим малък отстъп преди параметъра Договор за насрещна страна(това може да стане чрез разделяне и сливане на клетки. Щракнете с десния бутон върху клетката -> Обединяванеили Разделена клетка), необходимо е, за да може отчетът да види, че редът за договора е по-нисък в йерархията от реда за контрагента.

В района МазеНека създадем параметри за общите приходи и разходи.

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

3. Създайте формуляр за отчет

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

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

В резултат на това ще получим тази форма:

Но не сме доволни от него в тази форма; нека направим някои промени в него:

  • Нека плъзнем бутона формаот долния панел на отчета до горния (това ще бъде по-удобно за потребителя);
  • Разтегнете формата вертикално и хоризонтално;
  • Да подредим нивите Начало на периодаИ Край на периодахоризонтално;
  • Добавяне на контрола поле към формуляра документ с електронна таблица(нашият отчет ще бъде показан в него), дайте му име TabDoc;
  • Нека създадем бутон за избор на период (при щракване ще се появи диалогов прозорец с удобен избор на желания период). Все още няма да напишем програмния код за него, така че просто ще поставим бутона до полетата за периода.

В резултат нашата форма ще изглежда така:

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

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

Можете да превключвате между формуляра и неговия модул, като използвате разделите в долната част на формуляра

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

Процедура Button1Press(Елемент)Работа с Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Край на процедурата

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

TabDoc = FormElements.TabDoc;

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

Layout = GetLayout("Layout");

След като оформлението е получено, нека създадем променливи за всяка от неговите области, използвайте метода на оформлението за това GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header"); AreaDataAccount = Layout.GetArea( „Данни за изпълнителя“); AreaDataContract = Layout.GetArea("DataContract"); AreaFooter = Layout.GetArea("Долен колонтитул");

Нека изчистим полето на документа с електронна таблица. Това е необходимо, така че всеки път, когато се генерира нов отчет, старите данни да се изтриват.

TabDoc.Clear();

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

AreaHeader.Parameters.PeriodStart = Начало на периода; AreaHeader.Parameters.EndPeriod = Краен период;

Без повече действия с района ШапкаПроизводителят не е необходим, така че ще покажем неговото поле в документ с електронна таблица.

TabDoc.Output(AreaHead);

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

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

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

Request.SetParameter("Account62", Сметкопланове. Самоподдържащ се. Намиране по код("62" ));

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

Request.SetParameter("Начало на периода", Начало на периода); Request.SetParameter("Край на периода", Край на периода);

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

Request.Text = "" ;

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

Сега трябва да изберем необходимата таблица на базата данни 1C 8. Нуждаем се от виртуална таблица Революциисчетоводен регистър Самоподдържащ се. Нека го намерим от лявата страна на прозореца на дизайнера

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

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

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

Акаунт В ЙЕРАРХИЯ (&Акаунт62)

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

Няма нужда да налагате повече условия на виртуалната маса, така че нека щракнете върху бутона Добрев прозореца на параметрите на виртуалната таблица. След това трябва да изберем полетата, от които се нуждаем, от таблицата Самоносеща се. Оборот(а именно: Контрагент, Договор за контрагент, Приходи и Разходи). За да видите списъка с полета, налични в избраната от нас таблица, щракнете върху символа „+“ до нейното име. След това плъзнете необходимите полета в най-дясната област на дизайнера на заявки, която се нарича: Полета. Ако отворим сметкоплана, ще видим това за сметката 62 анализи на За контрагента това е Subconto1, и от Договор за контрагент - Subconto2.

Затова от полетата на виртуалната таблица избираме Подконто1И Подконто2. Тъй като имаме нужда от приходи и разходи по сума, избираме и полетата СумаОборотDtИ СумаОборотKt

Нека попълним псевдонимите на полетата, които сме избрали; за да направите това, отидете в раздела Съюзи/Псевдонимии задайте задължителните имена на полета.

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

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

Query.Text = "ИЗБЕРЕТЕ | Самоподдържащ се оборот.Subconto1 AS контрагент, | Self-supportingTurnover.Subconto2 AS Договор за контрагент, | Самоподдържащ се оборот.СумаОборотDt AS разписка, | Самоподдържащ се Оборот.СумаОборотKt КАТО Разход| ОТ | Счетоводен регистър. Самоотчитане. Обороти (&Начало на периода, &Край на периода, Сметка В ЙЕРАРХИЯ (&Сметка 62),) КАТО Самоотчитане Оборот|РЕЗУЛТАТИ | AMOUNT(приходи), | СУМА (Разход) |PO | контрагент, | Споразумение за контрагент";

След като приключим с писането на заявката, нека започнем да попълваме зоните DataCounterparty, DataAgreementCounterpartyИ Мазе. Ние ще попълним всички тези области с данните, получени при изпълнение на заявката. Тъй като нашата заявка съдържа групи ( КонтрагентИ Договор за насрещна страна) изберете данни от него, както следва:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

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

Преди да преминем през примерните данни с помощта на цикъл, ние инициализираме променливите, предназначени за изчисляване на общите резултати за отчета:

Общо входящи = 0; Общо потребление = 0;

За да се показват данните в отчета с йерархия (и ротации по „+“), нека зададем началото на автоматичното групиране на редовете на документа с електронна таблица:

TabDoc.StartAutoGroupingRows();

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

Докато Изберете Account.Next() Cycle EndCycle ;

В началото на цикъла нулирайте параметрите идвамИ Консумациярегион DataCounterparty. За какво е? Нека си представим ситуация, при която контрагентът Чичо Вася, приходът е 10, а разходът е 5, а за следващия контрагент Чичо Петяняма приходи или разходи, в този случай, ако не нулираме параметрите идвамИ Консумация, след това по линия по контрагент Чичо Петяще има приход 5 и разход 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

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

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

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

TabDoc.Output(AreaDataAccount,1);

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

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Ще извършим обхождането с помощта на цикъл Чао.

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

В цикъла за споразумения с контрагенти, нека нулираме параметрите идвамИ Консумация, запълнете областта DataContractот извадката и я покажете в документ с електронна таблица на второ ниво на записи.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; Попълнете PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

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

TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

Това приключва извеждането на данни в областта DataCounterparty, DataAgreementCounterpartyзавършено, остава само да завършите автоматичното групиране на редовете на документа с електронна таблица.

TabDoc.FinishAutoGroupingRows();

Пълни цикли, отговорни за извеждане на данни в района DataCounterpartyИ DataAgreementCounterpartyизглежда така:

TabDoc.StartAutoGroupingRows(); Докато SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); Докато SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; Попълнете PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense; Краен цикъл; Краен цикъл; TabDoc.FinishAutoGroupingRows();

Остава да изведем окончателните данни в областта Мазеи изведете самата област към документ с електронна таблица.

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = Общо потребление; TabDoc.Output(AreaFooter);

Това завършва процеса на писане на външен отчет за 1C 8 без използване на система за контрол на достъпа. Сега той може да бъде генериран в режим 1C:Enterprise 8 и добавен към директорията Външна обработкаМожете да изтеглите файла с отчета, обсъден в статията, от.

Гледайте видеоклипа за създаване на външна печатна форма за управлявано приложение:

За свързване на външна обработка, отчети, печатни формуляри за платформата 1C:Enterprise 8.2 е разработен нов стандартза работа в управлявано приложение (стандарт от подсистемата стандартни библиотеки 8.2). Появиха се „чипове“, които не са били там преди, а именно:

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

    Една обработка може да съдържа списък от няколко операции (команди), т.е. можете да направите една обработка, където ще има няколко елемента от менюто наведнъж: печат и бележка за доставка, печат на касова бележка, печат на гаранционна карта. (Бележка на автора: по-рано в стария стандарт, за да правите такива неща, трябваше да правите всичко наведнъж (дори и да не е необходимо) и не трябваше да затваряте или да рисувате своя собствена форма, която имаше необходимите бутони за избор необходимата операция)

    Можете да въвеждате въз основа и да попълвате обекти въз основа на няколко обекта наведнъж, а не само на един

    Можете да зададете график за изпълнение на сървърни команди (на сървъра).

    Можете да зададете режима на „Безопасен“ или „Небезопасен“, т.е. стартирайте обработка, като вземете предвид ограничените права или ги игнорирайте (както при пълните права)

    Можете да зададете режима на използване: Не използвайте, отстраняване на грешки, използвайте. „Не използвайте“ - не работи, „Отстраняване на грешки“ - видимо само за администратори, „Използвайте в експлоатация“.

    Може да се използва в обектни форми и в списъчни форми

    Можете да обвържете обработка или отчет към всички обекти наведнъж.

    Може да се персонализира бърз достъпкъм определени външни команди за обработка.

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

И така, какво може да се свърже със стандартните конфигурации?

От гледна точка на платформата можете да свържете:

  • външна обработка (файлове с разширение “epf”);
  • външни отчети (файлове с разширение “erf”).

От гледна точка на областта на приложението (конфигурация), можете да свържете външна обработка и отчети с формата*:

  • Допълнителна обработка
    • Само допълнителна обработка. Възможно е персонализиране
  • Допълнителен отчет
    • Просто допълнителен отчет
  • Попълване на обект
    • Собствени бутони за попълване на обекти (документи), преди това имаше само бутони за попълване на табличната част.
  • Форма за печат
    • Допълнителна печатна форма (добавен е бутон „Допълнително“. печатни форми»)
  • Докладвай
    • Справка, прикачена към обекти (указатели и документи).
  • Създаване на свързани обекти
    • Вашият собствен вход въз основа на (бутонът „Създаване на свързани обекти...“ се добавя към елемента от менюто „Въвеждане въз основа на“)

*на примера на редакцията „Управление на малка фирма изд. 1,2"

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

Да започнем с Общи изискванияза всички видове обработка и отчетност. За да създадете външна обработка или отчет на добавка, трябва да декларирате експортната функция InformationOnExternalProcessing() в обектния модул, който трябва да попълни структура, която описва поведението. Пример за тази функция:

Функция InformationOnExternalProcessing() Експортиране
RegistrationData = Нова структура;
Регистрационни данни.Insert("Име", "Пример за използване на външна обработка 8.2.");
RegistrationData.Insert("SafeMode", True);
RegistrationData.Insert("Версия", "1.0");

//Допълнителна обработка
//Допълнителен отчет
//Попълване на обекта
//Докладвай
//Формуляр за печат
//Създаване на свързани обекти
RegistrationData.Insert("Преглед", "Допълнителна обработка");

Регистрационни данни.Insert("Информация", "Обработка, извършена съгласно новия стандарт за свързване на външна обработка 8.2. Пример за обработка ""Hello Word"" ");

///////////// команди //////////////////////////
tzCommand = Нова таблица със стойности;
tzCommand.Columns.Add("Идентификатор");
tzCommand.Columns.Add("Изглед");
tzCommand.Columns.Add("Модификатор");
tzCommand.Columns.Add("Покажи предупреждение");
tzCommand.Columns.Add("Използване");


stringCommands.Identifier = "1";
stringCommands.View = "команда ""Hello Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "command""Hello Word""(CallClientMethod)";
stringCommands.ShowAlert = True;
stringCommand.Usage = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "command""Hello Word""(CallServerMethod)";
stringCommands.ShowAlert = True;
stringCommand.Use = "CallServerMethod";

RegistrationData.Insert("Команди", tzКоманди);

////////////// цел (в кои обекти се използва) //////////////////////////
//за отпечатване на формуляри, попълване, въвеждане на свързани обекти
//ArrayAssignments = Нов масив;
//Масив от задания.Add("Документ.*"); // всички документи са присвоени
//Масив от задания.Add("Document.Advance Report");
//Масив от Assignments.Add("Document.Buyer's Order");
//Регистрационни данни.Insert("Дестинация", масив от дестинация);

Връщане на регистрационни данни;

EndFunction

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

    Име – кратко наименование на лечението

    Версия - информация за версията на обработка

    Безопасен режим– отговаря за това дали обработката трябва да се извършва, като се вземат предвид правата на потребителя. Ако е зададено на False, обработката или докладването ще се извършват без да се вземат предвид ограниченията на правата (както при пълните права). Тази функция се появи точно в 8.2, където при създаване на външни обработки и отчети вторият параметър указва режима.

    Тип – тип обработка или отчет. Изброих възможните стойности в началото на статията, а възможните стойности за задаване в кода са посочени в коментарите

  • Команди – таблица със стойности, която изброява използваните команди. Колони на таблицата със стойности:
    • Идентификатор – произволен низ (идентификатор на команда)
    • Изглед - описание на командата
    • Модификатор - низ (използван за допълнителни печатни форми)
    • Покажи известие – прозорецът за известяване ще се появи преди началото и след края на изпълнението (за клиентски и сървърни команди без формуляр)
    • Използване – начален режим на обработка:
      • OpenForm – отваря се формулярът за обработка
      • CallClientMethod – извикване на клиентския експортен метод на формата
      • Call ServerMethod – извикване на метода за експортиране от модула за обработка

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

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

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

Статията ще обсъди следните опции за допълнителни външни свързваеми обекти:

  • Допълнителна външна обработка на таблични части;
  • Допълнителни външни печатни форми;
  • Допълнителни външни доклади;
  • Допълнителна външна обработка.

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




Като начало бих искал да говоря най-общо за какви са тези външни обработки, отчети и печатни формуляри?. Доста често, когато работите със стандартна конфигурация, било то 1C ZUP или 1C Enterprise Accounting или друга конфигурация, има нужда от някои функции, които не се предоставят от разработчиците на 1C. Например, може да се наложи печатна форма, който не е регламентиран, а се използва за вътрешни нужди на организацията. Или се изисква по определен начин обработвам (променям, коригирам)данни, налични в базата данни. Например промяна на определени подробности в документи за необходимия период, което е неудобно да се прави ръчно, когато големи обемиинформация.

В този случай има два варианта. Първо, можем да модифицираме самата конфигурация, самата програма. След това той ще престане да бъде типичен и ще бъде достатъчно да го актуализирате с тях по прости начини, за който писах, няма да работи. Актуализирането на нестандартна конфигурация е по-дълъг и по-сериозен процес, така че с този подход най-вероятно ще трябва да плащате на специалист 1C месечно за актуализиране на програмата. ВтороВариант е да разработите или поискате разработка на външна обработка или печатна форма (отчет). Това по същество е външен модул, който също е разработен на езика за програмиране 1C в конфигуратора, но не прави промени в стандартната конфигурация. Той съществува независимо от самата конфигурация. За съхраняването им се използват специални директории: елемент от главното меню “Сервиз” -> “Допълнителни справки и обработка”.

Допълнителна външна обработка за попълване на таблични части

Семинар „Лайфхакове за 1C ZUP 3.1“
Анализ на 15 лайфхака за счетоводство в 1C ZUP 3.1:

КОНТРОЛЕН ЛИСТ за проверка на изчисленията на заплатите в 1C ZUP 3.1
ВИДЕО - месечна самопроверка на счетоводството:

Изчисляване на заплати в 1C ZUP 3.1
Инструкция стъпка по стъпказа начинаещи:

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

За да стане по-ясно, ще дам конкретен примерот моята практика, в която за решаване на проблема използвах външна обработка на таблични части. В конфигурацията "1C Заплата и управление на персонала" издание 2.5 има документ "Плащане за празнични и почивни дни"(За този документ е писано подробно). В стандартния си вид този документ дава възможност автоматично пълненетабличната част по служители „Работа на празници“.

Счетоводителят поиска да се приложи възможността за попълване на този документ от служители, чиито работни дни са планирани да паднат през почивните дни, т.е. „Работа през уикенда“.

Този файл е качен в директорията "Външна обработка на таблични части"(меню “Сервиз” -> “Допълнителни отчети и обработка” -> “Допълнителна външна обработка на таблични части”). При създаването на елемент от тази директория беше посочено за кой документ се отнася изтеглената обработка - „Плащане за празници и почивни дни на организацията“, както и коя таблична част - „Служители“. В нашия пример документът има една таблична част, но в други документи може да има няколко от тях, така че е необходимо конкретно да посочите за кой от тях се отнася обработката.

В резултат на добавянето на тази обработка към директорията „Допълнителна външна обработка за попълване на таблични части“в самия документ „Плащане за празнични и уикенд части“ ще се появи бутон „Попълване“ с падащ списък, в който ще можете да започнете тази обработка. В нашия случай бутонът „Попълване на недели“ е наличен в падащия списък. Натискането му стартира алгоритъма, съдържащ се в обработката. IN в този примерТабличната част се попълва от служители, чиито работни дни се падат на почивен ден. Моля, обърнете внимание, че този бутон не е съществувал преди (екранна снимка по-горе).

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

Допълнителни външни печатни плаки

Семинар „Лайфхакове за 1C ZUP 3.1“
Анализ на 15 лайфхака за счетоводство в 1C ZUP 3.1:

КОНТРОЛЕН ЛИСТ за проверка на изчисленията на заплатите в 1C ZUP 3.1
ВИДЕО - месечна самопроверка на счетоводството:

Изчисляване на заплати в 1C ZUP 3.1
Инструкции стъпка по стъпка за начинаещи:

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

Можете да добавите свои собствени към тези печатни форми на указателя. За целта се създава външен печатен формуляр с разширение “.epf”. След това за него се създава елемент на директория „Допълнителни външни печатни форми“(точка от менюто „Инструменти” -> „Допълнителни справки и обработка”) и към този елемент от директорията се добавя файл с разширение „.epf”. Необходимо е също така да се посочи за кой документ или справочник се добавя обработката.

В резултат на това като част от печатните формуляри на елементите на директорията „Служители“ ще се появи друга форма - „Трудово споразумение (Alpha LLC)“, която не съществуваше преди. И тя външен види попълването на данните се определя от програмиста във файла “.epf”.

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

Допълнителни външни отчети

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

Външен отчет може да бъде съхранен като част от конфигурацията с помощта на справочника „Допълнителни външни отчети“ (меню „Инструменти“ -> „Допълнителни отчети и обработка“). Те не са свързани с конкретен документ или справочник; тази информация не е задължителна.

При тази опция за съхранение отчетът се стартира от същата директория (с двойно щракване).

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

Допълнителни външни лечения

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

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

ще ти доведа още един примернапълно просто, но доста популярно лечение. Ако в 1C ZUP не поддържате документа „Прехвърляне на данък върху доходите на физическите лица към бюджета“ през годината, тогава при генериране на 2-данък върху доходите на физическите лица за годината полето „Прехвърлено“ за всеки служител ще бъде нула, което е обикновено фактически неправилно. Въвеждането на документа „Прехвърляне на данъка върху доходите на физическите лица в бюджета“ за цялата година може да бъде доста досадно, предвид спецификата на самия документ. Но можете да извършите външна обработка, която в генерирания 2-NDFL просто ще попълни полето „Изброени“ за всеки служител въз основа на стойностите в полето „Изчислено“. Счетоводителите обикновено много харесват тази опция.

Външната обработка има същите две опции за съхранение и стартиране: или използвайте директорията „Допълнителна външна обработка“(елемент от менюто „Инструменти” -> „Допълнителни справки и обработка”), или елемент от главното меню „Файл” -> „Отвори”.

Това е всичко за днес!

За да научите първи за нови публикации, абонирайте се за актуализациите на моя блог:

внимание!
Цялата обработка от ITS дискове е предназначена за информационни цели и изключително за регистрирани ITS потребители.

Избор и обработка на обекти. (Универсален)

Търси обекти в документи и директории, които отговарят на определени условия. Обработва резултатите от търсенето.

Конволюция на информационната база. (Универсален)

Извършва събиране на информационна сигурност на типични конфигурации:

  • UPP 3.1.
  • BP 1.6.
  • UT 10.3.

Регистриране на промени за обмен. (Универсален)

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

Преобразуване на регистрационния файл на потребителската активност. (Универсален)

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

Пълнотекстово търсене в данни. (Универсален)

Индексиране и търсене на данни.

Намиране и заместване на стойности. (Универсален)

Търси и замества референтни стойности в обекти за информационна сигурност.

Настройване на технологичен дневник. (Универсален)

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

Конзола за работа. (Универсален)

Монитори фон и рутинни задачи. Изтрива, създава нови.

Преобразуване на външна обработка. (Универсален)

Промяна на поверителна информация. (Универсален)

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

Групова смяна на детайли. (Универсален)

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

Качване и зареждане на потребители. (Универсален)

Качва и зарежда потребители за информационна сигурност в XML файл.

Качване на данни във външни бази данни. (Универсален)

Качва структури от данни във външни СУБД с помощта на ADO в два режима:

  • Разтоварете всички
  • Качване на промени (използва се за синхронизиране на промените в работния IS с получаващия IS). Този режим използва механизми на план за обмен.

Поддържа следните СУБД:

  • Microsoft SQL
  • IBM DB2
  • Оракул
  • PostgreSQL
  • MySQL

Качване и зареждане на XML данни. (Универсален)

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

Зареждане на данни от документ с електронна таблица. (Универсален)

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

Работи в дебел клиент в нормален режим на приложение.

Конзола за заявка. (Универсален)

Осигурява голяма помощ при отчитане и създаване на заявки.



Свързани публикации