Изграждане на разпределени информационни системи, търсене, рутинни задачи, функционални опции. Функционални опции и параметри на функционални опции 1s 8.3 функционални опции на подсистемата


Обект 1в "Функционални опции" - са предназначени да подчертаят функционалност в приложно решение, което може да бъде включено (изключено) по време на внедряването, без да се променя (заедно с подсистемите те формират интерфейса на 1C тънък клиент). Те са част от механизма на функционалните опции.

Механизъм за функционални опции включва два обекта с метаданни:

  1. Функционална опция;
  2. Параметри на функционалните опции.

Повече информация

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

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

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

Можем да кажем, че параметрите на функционалните опции са координатните оси на стойностното пространство на функционалните опции. Освен това, един параметър на функционалните опции може да определи стойността на „своята“ координатна ос едновременно за много функционални опции.

[свиване]

Функционалните опции могат да окажат влияние:

  1. към потребителския интерфейс:
    • глобален ;
    • подробности (включително колони с подробности за формуляри като Таблица със стойностиили ValueTree);
    • команди за форма;
  2. на отчети, реализирани с помощта на система за съставяне на данни;
  3. към алгоритми, написани на вграден език - възможно е да се получат стойностите на функционалните опции от вградения език и да се използват в различни условия, например, за да се намали количеството на изчисленията (вижте, например, ).

ВНИМАНИЕ!Ако клиентското приложение работи с файловата версия на информационната база чрез уеб сървъра, тогава промяната на функционалната опция ще промени потребителския интерфейс само след рестартиране на уеб сървъра (рестартирането на клиентското приложение няма да промени потребителския интерфейс).

Свойства на функционалните опции 1C

  • Съхранение е поле, в което трябва да изберете обект от тип Boolean. Обикновено се използват константи.
  • при получаване - флагът отговаря за възможността да получи стойността на функционална опция в привилегирован режим.
  • Композиция - списък с обекти и детайли на обекта, чиято видимост се включва/изключва при включване/изключване на функционална опция (ще се управлява чрез управлявана форма).

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

Характеристики на използването на 1C функционални опции:

  1. Функционалните опции могат да имат стойности от всякакъв тип (не непременно булеви).
  2. Когато добавяте нова константа за използване на функционална опция, не забравяйте да я включите в подходящата подсистема и да й присвоите разрешения.
  3. Работата с функционални опции е достъпна от вградения език, благодарение на който разработчикът може да създаде свои собствени алгоритми за стойностите на функционалните опции.
  4. Командата на командния интерфейс ще бъде изключена от командния интерфейс, ако функционалната опция е деактивирана:
    • атрибут, който е команден параметър;
    • тип команден параметър (ако типът команден параметър е съставен, тогава командата става недостъпна, когато всички типове параметри са деактивирани).

ВНИМАНИЕ!Функционалните опции и техните параметри не влияят на състава на базата данни: всички таблици и полета присъстват в базата данни, независимо от състоянието на функционалните опции.

Влияние на функционалните опции върху детайлите на формуляра и командите:

  1. тип управлявана форма<Вид>Предмет ( DirectoryObject, DocumentObject и т.н.) ще бъдат деактивирани, ако съответният обект е деактивиран от функционалната опция. Анализират се само онези функционални опции, които нямат параметри.
  2. Основни атрибути на тип управлявана форма Динамичен списъкще бъде деактивиран, ако функционалната опция деактивира конфигурационния обект, който е посочен като основна таблица на динамичния списък. Анализират се само онези функционални опции, които нямат параметри.
  3. Атрибутът на формуляр на референтен тип е деактивиран, ако конфигурационният обект, който формира този тип, е деактивиран от функционална опция. Атрибутът на форма на съставен тип е деактивиран, ако функционалните опции деактивират всички съставни типове.
  4. Таблица с формуляр ще бъде деактивирана, ако показва данни за атрибут на формуляр, които са деактивирани от функционална опция.
  5. Няма типове в диалоговия прозорец за избор на тип (например за полета за въвеждане, свързани с атрибути от сложен тип), ако конфигурационните обекти, които формират тези типове, са деактивирани от функционална опция. Информацията за типовете, деактивирани от функционални опции, се кешира от страна на клиента и се изчиства след 20 минути или по време на извикване на метод UpdateInterface().

ВНИМАНИЕ!За разлика от командния интерфейс, стойностите на параметрите на функционалните опции се задават само за конкретен екземпляр на формуляра.

Създаване на параметър за функционални опции

Параметърът на функционалната опция се създава с помощта на конфигурационния обект на 1C „Параметри на функционалната опция“.

[свиване]

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

Свойства на параметрите на функционалните опции:

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

ВНИМАНИЕ!Не можете да използвате един и същ обект на метаданни в множество параметри на функционални опции.

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

Например опцията „Използване на вътрешни поръчки“ (вижте екранната снимка вдясно) ви позволява да направите този документ достъпен за използване в режим 1C:Enterprise за потребителя, а също така включва отделни клонове на алгоритми, свързани с тази функционалност.

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

Принцип на действие

Както бе споменато по-горе, функционална опция ви позволява да активирате/деактивирате функционалността за конфигурация, свързана с нея. Нека разгледаме последователността от действия за създаване и конфигуриране на този конфигурационен обект.

В клона за конфигурация "Общи->Функционални опции" можем да създадем нов обект или да видим свойствата на вече създадени опции. В тестовата конфигурация ще създадем функционалната опция „EnableImportance“. В самото начало, когато обектът все още не е конфигуриран, прозорецът за списъка с неговите свойства ще изглежда така:

Свойствата "Име" и "Синоним" имат стандартно предназначение. От особен интерес са настройките „Съхранение“ и „Композиция“.

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

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

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

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

Пример за употреба

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

„Активиране на важността“. Създадените обекти са показани на следната екранна снимка.

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


Тестовият документ ще съдържа две подробности:
  • "Коментар" с тип "Низ".
  • „Важност“ с тип „EnumerationRef.Importance“.

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

Като стартирате програмата в режим 1C:Enterprise, отворете тестов документ. Няма да видим атрибута „Важност“ във формуляра, тъй като все още не сме активирали функционалната опция.

За да активирате използването на атрибута "Важност", трябва да зададете стойността на константата "Активиране на Импортанс" на TRUE. Тогава формата ще се промени, както следва:

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

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

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

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

2. Елементът на формуляр "Важност" във формуляра, независимо от стойността на функционалната опция, винаги има стойности за свойствата "Видимост" и "Достъпност", равни на TRUE.

Наистина, както при създаване на формуляр на сървъра, така и при отваряне на формуляра, както и по време на по-нататъшна работа с него, свойствата „Видимост“ и „Достъпност“ не се задават автоматично на FALSE от платформата. Вероятно 1C:Enterprise 8.x прави това зад кулисите.

3. За да получи стойността на функционална опция, платформата генерира SQL заявка към СУБД в съответствие с обекта за съхранение, т.е. до константа. В една от предишните статии вече говорихме за конструиране на SQL заявки към константи и метода за съхраняването им в базата данни.


В нашия пример платформата генерира следната SQL заявка:

Що се отнася до момента на получаване на стойността на функционална опция, платформата се ръководи от следния принцип : Първото придобиване на стойността на функционална опция става при достъп до обекта/атрибута, включен в нейния състав. След това платформата използва кешираната стойност, докато стойността на обекта, който съхранява тази стойност, бъде променена (в нашия пример, константите „EnableImportance“) или потребителската сесия се рестартира. Стойността на функционалната опция се кешира в отделна сесия.


Всичко по-горе беше проверено експериментално. Всичко, което използвах за експерименти, е в тестовата конфигурация (линк в края на статията), с изключение на .

Заключение

Функционалните опции са неразделна част от почти всяко решение за циркулация на платформата 1C:Enterprise 8.x. Благодарение на този механизъм можете да създавате конфигурации с функционалност, базирана на блокове, които могат лесно да се включват/изключват при настройване на програмата. В този случай възможностите на механизма могат да бъдат разширени чрез използване на параметри на функционални опции, но това е тема за друга статия.

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

Файлове за изтегляне:

Функционални опцииИ Параметър на функционалната опция- това са конфигурационни обекти 1C 8.3 (8.2), които заедно представляват механизъм за функционални опции. Механизмът на функционалните опции е функционалност, която ви позволява да определите набора от функции, от които потребителите се нуждаят.

Казано по-просто, механизмът за функционални опции е превключвател за включване/изключване за различни функции в конфигурация.

Защо може да се наложи да деактивирате функционалността?

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

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

Какво контролират функционалните опции?

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

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

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

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

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

След това, по време на внедряването, можете да активирате или деактивирате тази функционална опция в конкретна информационна база в режим 1C:Enterprise.

Платформата автоматично ще включва и изключва показването на всички съответни елементи на интерфейса (полета, команди, колони от списък, елементи на отчет). В нашия случай полето ще бъде скрито или показано Наличноствъв всички форми на документи Получаване на стоки.

30.03.2017

Функционални опции 1C 8.3 (Механизъм, използване)

Да започна важноИмайте предвид, че механизмът за функционални опции НЕограничава достъпа до данни, но контролира само видимостта (показването) на данните във формуляра. За да ограничи достъпа до обекти, платформата използва ролеви механизъм.
Затова ще започнем разглеждането на механизма на функционалните опции с описание на задачата. В нашата мини-конфигурация има една директория "Складове". Да приемем, че всички потребители имат достъп до тази директория.
Отново! Механизмът на функционалните опции контролира показването на данни във формуляра и не ограничава достъпа до обекта на метаданни (Директория, документ, записи в регистър...) Необходимо е да се направи настройката "Използване на множество складове" (Да, да... Това е в UT 11.X, там се прави и за организации). Ако използваме няколко склада, тогава директорията на складовете е достъпна в интерфейса, ако не, тогава има команда, която отваря един склад (в този случай приемаме, че има само един и не усложняваме задачата).

Конфигурационни обекти с метаданни

За да постигнем тази задача ще ни трябва:
  • Две функционални опции "Използване на няколко склада" и "Не използване на няколко склада". Първият отговаря за наличността на директорията, а вторият за наличността на общата команда за извикване на алгоритъма за „отваряне“ на склада
  • Константи със същото име с булев тип за съхраняване на стойностите на функционалните опции
  • Справочник "Складове"
  • Обща команда "OpenMainWarehouse". Не забравяйте да посочите група от команди за него, в противен случай конфигурацията няма да бъде приложена (ще има грешка)
И ще добавим една подсистема, където ще включим всички съществуващи обекти

Настройка на функционални опции

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




Втората функционалност „Не използвайте няколко склада“ се инсталира, когато първата „Използване на няколко склада“ НЕ е инсталирана.
Тези. ако не използваме няколко склада (Използване на няколко склада = FALSE и справочникът "Складове" не е наличен), тогава се показва командата "OpenMainWarehouse", чиято наличност се контролира от опцията "Не използвайте няколко склада" (Не използвайте няколко склада = ВЯРНО)

Проверка на поведението на системата

Опция 1. UseMultipleWarehouses = True, Don'tUseMultipleWarehouses = False. Директория "Складове" е достъпна в интерфейса


Вариант #2. UseMultipleWarehouses = False, Don'tUseMultipleWarehouses = True. Директорията „Складове“ НЕ е налична в интерфейса; вместо това е налична общата команда „OpenMainWarehouse“.

Избор на редакторите
Използва се като лечебно средство повече от 5000 години. През това време научихме много за полезните ефекти на разредената среда върху...

Масажорът за крака Angel Feet WHITE е лека компактна джаджа, обмислена до най-малкия детайл. Предназначен е за всички възрастови групи...

Водата е универсален разтворител и освен самите H+ и OH- йони, обикновено съдържа много други химикали и съединения...

По време на бременност тялото на жената претърпява истинско преструктуриране. Много органи трудно се справят с повишеното натоварване....
Коремната област е една от най-проблемните за отслабване. Факт е, че там се натрупват мазнини не само под кожата, но и около...
Основни характеристики: Стилна релаксация Масажният стол Mercury е функционалност и стил, удобство и дизайн, технология и...
Всяка Нова година е уникална и затова трябва да се подготвите за нея по специален начин. Най-светлият и дългоочакван празник в годината заслужава...
Нова година е преди всичко семеен празник и ако планирате да го празнувате в компания за възрастни, би било хубаво първо да празнувате...
Масленица се празнува широко в цяла Русия. Този празник отразява вековни традиции, грижливо съхранявани и предавани от поколение на...