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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&На клиент

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

SetVATRateOnServer();

Край на процедурата

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

&На сървъра

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

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

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

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

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

EndCycle;

Край на процедурата

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

Като такава, нашата обработка е готова за употреба. За да го извикате, в режим „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

Блог на компанията 1C GOODWILL

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

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

Активиране на механизма за външна обработка в програмата

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

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

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

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

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

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

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

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

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

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

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

&На клиент

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

SetVATRateOnServer();

Край на процедурата

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

&На сървъра

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

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

Заявка.Текст =

| Справочник.Номенклатура AS Номенклатура

| А НЕ Номенклатура. Изтриване на маркировка

| А НЕ номенклатура Това е група”;

Request.SetParameter("Група артикули", Група артикули);

ResRequest = Request.Execute();

SelectRecordDet = ResRequest.Select();

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

SprNomObject.VATRate = ИзберетеVATRate;

SprNomObject.Write();

Изключение

Доклад("Грешка при писане на обект """ + SprNomObject + """!

|» + DescriptionError());

EndAttempt;

EndCycle;

Край на процедурата

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

Като такава, нашата обработка е готова за употреба. За да го извикате, в режим „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

Нека сега да преминем към режима „1C Enterprise“ и да добавим външна обработка:

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

Публикацията Как да създадете външна обработка в 1C 8.3 (управляеми форми) се появи за първи път в блога на компанията 1C GOODWILL.

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

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

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

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

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

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

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

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

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


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

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


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


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


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


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


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


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


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


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


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


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


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

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

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

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

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

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

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

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

Функция 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 = Модификатор;

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