Параметри на външна обработка 1s 8.3. Добавяне на външна обработка към базата данни

В тази статия ще разгледаме инструкции стъпка по стъпка за създаване на външна обработка в 1C 8.3 в режим на управлявано приложение; съответно ще използваме управлявани форми. И най-важното, ще научим как да го свържем с механизма за „външна обработка“ на 1C конфигурации, изградени върху библиотека от стандартни подсистеми версия 2.0 и по-нова.

Задачата ще бъде следната: да се създаде най-простата външна обработка, която да извърши групово действие върху директорията „Артикул“, а именно да зададе избрания процент на ДДС за определената група артикули.

За да направим това, незабавно ще направим необходимите настройки в програмата (разглеждаме конфигурацията 1C 8.3: „Enterprise Accounting 3.0“ на управлявани формуляри).

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

Създаване на нова външна обработка в 1C 8.3 с помощта на пример

Сега да преминем към конфигуратора. В менюто "Файл" изберете "Нов...". Ще се отвори прозорец за избор на типа файл, който ще се създава. Изберете „Външна обработка“:

Ще се отвори нов прозорец за външна обработка. Нека веднага да й дадем име. Ще бъде предложено при запазване на обработката на диск:

Нека добавим нова форма за контролирана обработка. Посочваме, че това е форма на обработка и тя е основната:

Във формуляра ще имаме две подробности:

  • Група Номенклатура – ​​връзка към справочник „Номенклатура”;
  • SelectVATRate – връзка към прехвърляне на ДДС ставката.

Създаваме детайлите в колоната „Свойства“ в горния десен прозорец. Плъзнете ги с мишката в горния ляв прозорец. Новите подробности трябва незабавно да се появят във формуляра по-долу.

Редът на детайлите може да се промени с помощта на стрелките "Нагоре" - "Надолу":

Вземете безплатно 267 видео урока за 1C:

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

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

&На клиент

Процедура Задаване на ДДС ставка (команда)

SetVATRateOnServer();

EndProcedure

В процедурата на сървъра ще напишем малка заявка и действия, свързани с настройка на ставката на ДДС:

&На сървъра

Процедура SetVATRateOnServer()

Заявка = Нова заявка;
Заявка.Текст =
"ИЗБИРАМ
| Номенклатура.Връзка
| ОТ
| Справочник.Номенклатура AS Номенклатура
|КЪДЕ
| Номенклатура.Връзка В ЙЕРАРХИЯ (&Група номенклатура)
| А НЕ Номенклатура. Изтриване на маркировка
| А НЕ номенклатура Това е група”;

Request.SetParameter("Група артикули", Група артикули);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

Докато SelectRecordDet.Next() цикъл

опит
SprNomObject.Write();
Изключение
Доклад("Грешка при писане на обект """ + SprNomObject + """!
|» + DescriptionError());
EndAttempt;

EndCycle;

EndProcedure

Връщаме се в раздела „Формуляр“, добавяме бутон към формуляра и го свързваме с командата:

Като такава, нашата обработка е готова за употреба. За да го извикате, в режим "1C Enterprise" трябва да отидете в менюто "Файл" - "Отвори" и да изберете създадения файл.

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

За това е предназначен разделът „Допълнителни справки и обработка“.

Но за да добавим нашата обработка там, първо трябва да й дадем описание и да кажем на програмата нейните свойства.

Описание на функцията „Информация за външна обработка“

Ще дам пример за съдържанието на тази функция. Той трябва да може да се експортира и съответно да се намира в модула за обработка:

Функция InformationOnExternalProcessing() Експортиране

DataForReg = Нова структура();
DataForReg.Insert("Име", "Настройка на ставката на ДДС");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("Версия", "версия: 1.001");
DataForReg.Insert("Информация", "Обработка за задаване на ДДС ставка в справочник Номенклатура");
DataForReg.Insert("Изглед", "Допълнителна обработка");

CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Идентификатор");
TabZnCommands.Columns.Add("Използване");
TabZnCommands.Columns.Add("Изглед");

NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Отворена обработка";
DataForReg.Insert("Команди", TabZnCommands);

Връщане на DataForReg;

EndFunction

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

Както можете да видите, всичко е съвсем просто. Само един атрибут не съвпада: „Опция за стартиране“ – „Използване“. Ако погледнем кода на един от общите модули, ще видим как възникват куп от тези полета:

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

Свързване на външна обработка в 1C 8.3

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

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

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

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

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

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

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

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

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


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

Кликнете в списъка Създавайте:


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


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


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


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


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


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


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


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


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


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


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

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

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

Тази инструкция е предназначена за управлявани формуляри (8.2 и 8.3). За обикновени форми (8.1, 8.2) можете да използвате .

Създайте и запазете нова обработка на вашия компютър. Първо трябва да направите някои стъпки за регистрация.

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

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

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

Нека създадем нова форма за обработка.

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

В нашия пример ще се обработва вече съществуващата таблична част „Продукти“. За всяка линия ще бъде зададена ръчна отстъпка от 5%. Също така ще изчислим размера на самата отстъпка, равна на количеството стоки в линията, умножено по 0,05.

&В сървърната процедура Изпълнете команда (команда, обекти за присвояване) за всяка клиентска поръчка от обекти за присвояване Цикъл Customer OrderObject = Customer Order. GetObject(); За всяка TK линия от Customer OrderObject. Продуктов цикъл LineTZ. ManualDiscountPercent = 5; LineTZ. Сума на ръчна отстъпка = TK линия. Сума * 0 . 05 ; Краен цикъл; CustomerOrderObject. Write() ; Краен цикъл; EndProcedure

Регистрация на външна обработка

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

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

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

Този бутон ще бъде наличен и в самата карта на документа.

Раздел за конфигурация: Обекти на приложението

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

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

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

Този код е даден по-долу. За вашата обработка трябва да промените няколко параметъра.

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

Функция InformationOnExternalProcessing() Експортиране
// Нека декларираме променлива, в която ще записваме и връщаме необходимите данни "отвън"
Параметри за регистрация = Нова структура;

// Нека декларираме друга променлива, която ще ни трябва по-долу
ArrayDestinations = Нов масив;

// Първият параметър, който трябва да посочим, е какъв тип обработка трябва да регистрира системата.
// Валидни типове: AdditionalProcessing, AdditionalReport, FillingObject, Report, PrintForm, CreatingLinkedObjects
Parameters.Insert("View", "AdditionalProcessing");

// Сега трябва да предадем под формата на масив от имена към какво ще бъде свързан нашият VPF
// Имайте предвид, че можете да зададете името в следната форма: Документ.* - в този случай обработката ще бъде свързана с всички документи в системата,
// които поддържат VPF механизма
Масив от присвоявания.Добавяне("Подсистеми.Регулирано счетоводство");
Параметри за регистрация. Вмъкване ("Дестинация", масив от дестинация);

// Сега нека зададем името, под което VPF ще бъде регистриран във външната директория за обработка
Parameters.Insert("Име", "Анализ на отрицателни салда по регистър");

// Задайте правото на обработка за използване на безопасен режим. Повече подробности можете да намерите в помощта на платформата (метод SetSafeMode)
Parameters.Insert("SafeMode", True);

// Следващите два параметъра играят по-скоро информационна роля, т.е. това е, което потребителят ще види в информацията за обработка
Параметри за регистрация.Insert("Версия", "1.0");
Parameters.Insert("Информация", "Анализ на отрицателни салда по регистри");

// Създайте таблица с команди (вижте подробности по-долу)
CommandTable = GetCommandTable();

// Добавяне на команда към таблицата
Добавяне на команда (Таблица с команди, "Анализ на отрицателни салда по регистри", "Анализ на отрицателни салда по регистри", "Формуляр за отваряне");

// Запазване на таблицата с команди в параметрите за регистрация на обработка
Параметри за регистрация.Insert("Команди", CommandTable);

// Сега нека върнем нашите параметри в системата
ReturnRegistrationParameters;
EndFunction

Функция GetTableCommand()

// Създаване на празна командна таблица и колони в нея
Команди = Нова таблица със стойности;

// Как ще изглежда описанието на отпечатаната форма за потребителя
Commands.Columns.Add("View", NewTypeDescription("Row"));

// Името на нашето оформление, така че да можем да различим извиканата команда при обработката на печат
Commands.Columns.Add("Identifier", New TypeDescription("String"));

// Това задава как трябва да се извика командата за обработка
// Възможни опции:
// - OpeningForm - в този случай колоната с идентификатор трябва да показва името на формуляра, който системата ще отвори
// - CallClientMethod - извикване на процедурата за експортиране на клиента от модула за обработваща форма
// - Извикване на ServerMethod - извикване на сървърна процедура за експортиране от модула на обработващия обект
Commands.Columns.Add("Usage", New TypeDescription("Row"));

// Следващият параметър указва дали трябва да се показва известие, когато задача за обработка започне и приключи. Няма смисъл при отваряне на формуляра
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// За отпечатана форма, тя трябва да съдържа низа PrintMXL
Commands.Columns.Add("Modifier", New TypeDescription("Row"));
Екип за връщане;
EndFunction

Процедура AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
// Добавяне на команда към таблицата с команди според предаденото описание.
// Параметрите и техните стойности могат да се видят във функцията GetCommandTable
NewCommand = CommandTable.Add();
NewCommand.View = Изглед;
NewCommand.Identifier = Идентификатор;
NewCommand.Use = Използване;
NewCommand.ShowAlert = Покажи предупреждение;
NewCommand.Modifier = Модификатор;



Зареждане...
Връх