Динамичен списък 1s 8.3 персонализирани параметри на заявка. Имате въпрос или нужда от помощ от консултант?

Най-накрая мечтата на всяко седемгодишно дете се сбъдна. Колко често потребителите на програма 7.7 ​​са искали нормален избор на елементи? За да можете да видите баланси, цени и да зададете филтри. Трябваше да измисляме различни трикове, включително писане на външни компоненти. В 1C 8.2 се появиха динамични списъци. Предлагам да разгледаме какво е и какво могат да ни дадат в 1C 8.3.

Нека вземем за основа определена тестова конфигурация на 1C: „Счетоводство на предприятието 3.0“. Сега няма да правим избор, просто ще добавим друг формуляр за избор в директорията „Номенклатура“ и ще го направим временно основен:

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

Нека да влезем в неговите свойства и да видим какво има там.

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

Ще се отвори прозорец с готовия код в . Засега всички полета на директорията „Номенклатура“ са просто изброени там.

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

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

Персонализирана заявка в динамичен списък

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

Раздел „Настройки“.

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

Програмно задаване на параметри на заявка в динамичен списък 1C 8.3

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

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

&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing) списък. Настроики. SetParameterValue("Период" , Параметри. Дата) ; списък. Настроики. SetParameterValue("PriceType", Parameters.PriceType) ; Край на процедурата

Печат (Ctrl+P)

Динамичен списък

1. Обща информация

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

Ориз. 1. Опции за създаване на динамичен списък

При създаване на атрибути на формуляр от типа Динамичен списъкразработчикът може да избере два начина за формиране на заявка за данни:
● Като посочите главната таблица - в този случай трябва само да посочите таблицата (свойство Main table), от която искате да получавате данни, и системата автоматично ще генерира заявка за данните (вижте дясната част на фиг. 1).
● Ръчно генериране на заявка - за целта трябва да зададете свойството Custom request (вижте лявата страна на фиг. 1). След това ще бъде достъпно ръчно генериране на заявка за получаване на данни от информационната база.
Една заявка може да извлече данни от множество таблици, така че можете да посочите основна таблица. Това е така, че динамичният списък да може да определи кои данни са първични и кои вторични и да може правилно да избира и показва информация, както и да предоставя стандартни команди. Въпреки това, ако е невъзможно да се определи основната таблица в заявката, тогава тя не може да бъде посочена, но след това
динамичният списък няма да предоставя команди, свързани с основната таблица. Освен това в този случай (без да се посочва основната таблица) ефективността на получаване на данни чрез динамичен списък ще бъде значително намалена.
За да се подобри производителността, се препоръчва всички съединения, използвани в персонализирана заявка само за извличане на допълнителни данни, да бъдат направени незадължителни чрез използване на разширение на езика за заявка на система за композиране на данни.
За динамичен списък, който е основният атрибут на формуляра, е възможно да зададете стойности за избор с помощта на параметър на формуляр Избор. За да направите това, е необходимо името на свойството на структурата да се намира в параметъра Избор,
съвпадна с името на полето за избор на динамичен списък. В този случай стойността на свойството структура ще бъде зададена като правилната стойност на елемента за избор. Ако масив, фиксиран масив или списък със стойности се предава като стойност на елемент от параметъра за избор на формуляр на динамичен списък, тогава условие с опцията В списъка се добавя към селекцията в дясната стойност от които се поставя списък със стойности (към които се преобразуват масивът и фиксираният масив).
Произволна заявка в динамичен списък може да бъде заявка, в която параметър се използва за генериране на стойността на поле, например:

ИЗБИРАМ
ИЗБОР
WHEN Delivery.Coefficient = 1 THEN &Presentation
ИНАЧЕ Доставка. Коефициент
КРАЙ КАТО Съотношение
ОТ

Освен това, ако типът на стойността на параметъра се различава от типа на атрибута на обекта (например, Реквизит1има тип Номер, а стойността на параметъра е тип Линия), тогава за да покажете полето правилно, трябва изрично да прехвърлите стойността на параметъра към желания тип:

ИЗБИРАМ
ИЗБОР
WHEN Delivery.Coefficient = 1 THEN EXPRESS(&Representation AS String(100)) ELSE Delivery. Коефициент
КРАЙ КАТО Съотношение
ОТ
Документ. Доставка на продукти КАК да доставяме

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

● Ако режимът на изглед е зададен на йерархичен списък, ще бъдат прочетени само данните от текущата група и данните от всички родителски елементи (без дъщерните).
● Ако е зададен режим на дървовиден изглед, ще се четат само данни от отворени възли на дърво.
● Еднократното зареждане на данни от динамичен списък не се поддържа, ако е зададено йерархично сърфиране (свойството Показване е зададено на Дърво) и първоначалното дървовидно показване е зададено на Разширяване на всички нива. За получаване на данни ще бъдат направени толкова заявки към сървъра, колкото възли има в показания списък.
В рамките на едно извличане на данни динамичният списък използва повторно създадени преди това временни таблици, ако са изпълнени следните условия:
● Пакетната заявка за списък няма заявки след основната пакетна заявка.
● Съставът на временните таблици и полетата в тях остава непроменен от предишното изпълнение на партидната заявка.

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

2. Ограничения и характеристики

Когато задавате избор в динамичен списък, не забравяйте, че изборът не засяга групите, ако режимът на показване за динамичния списък е йерархичен списък или дърво. Под „групи“ имаме предвид елемент от директория или план от характерни типове, чието свойство ThisGroup е зададено на True.
Прилагат се квалификации, автоматично прилагани от динамичен списък към стандартните подробности Собственик, Родител, Дата, Период и Тази група
използване на стандартни системни инструменти за композиране на данни. Изборът, автоматично приложен от динамичен списък към ключови полета, може да се приложи както чрез стандартни средства на системата за съставяне на данни, така и чрез директно добавяне на условия към текста на заявката INкъм полетата на основната таблица. В резултат на прилагане на селекции с помощта на инструменти за оформление, те могат да се прилагат както във вложени заявки, така и в параметри на виртуални таблици.

Когато разработвате динамични списъци, се препоръчва да тествате всички динамични списъци с персонализирани заявки. По време на процеса на проверка трябва да се уверите, че ако дадена заявка за списък съдържа вложени заявки или виртуални таблици и в тях са налични полета с псевдоними, които съответстват на псевдонимите на стандартните подробности Собственик, Родител, Дата, Период, Тази група или ключови полета за селекция, тогава тези полета са валидни, съответстват на стандартните детайли, с които съвпада техният псевдоним. Ако това не е така, трябва да промените заявката, така че да съвпадат или
прякорът беше друг.
Ако изберете ръчно генериране на заявка, тогава върху заявката се налагат някои ограничения:
● Използването на израза FIRST в заявка за динамичен списък не се поддържа. Ако трябва да използвате селекция, ограничена от броя на записите в динамичен списък, трябва да преработите заявката за генериране на динамичен списък по такъв начин, че действителното съдържание на заявката да бъде поставено в подзаявка и да ограничите броя на записите получени в тази подзаявка. Можете също да използвате временна таблица вместо подзаявка.
● Изборът, сортирането и групирането не се поддържат:

  • Според детайлите на табличните части.
  • Преглед на полета.
  • Поле DataVersion.
  • Предефинирано поле DataName.
  • Поле за тип таблица на сметкоплана.
  • Поле Вид движение на таблицата с регистър на натрупване.
  • Тип на полето Стойности на плановата таблица на характерния тип.
  • Тип поле Тип;
  • Поле от тип String (неограничена дължина).
  • Поле от тип BinaryData.

● Не се поддържа сортиране и групиране по полета на Subconto<НомерСубконто>и ViewSubconto<НомерСубконто>Таблици Движения Подконто на счетоводния регистър.
● Не се поддържа групиране по полета, които са изрази на език за заявки, съдържащи агрегатни функции.
● Когато е избрана основната таблица, заявката за динамичен списък има следните ограничения:

  • Присъединяванията не се поддържат.
  • Разделът ПОРЪЧАЙ ПО не се поддържа. Трябва да използвате заявка без основна таблица или да зададете необходимото подреждане чрез настройките на динамичния списък.

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

Използването на следните таблици като основна таблица на динамичен списък не се поддържа:

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

● Подконто таблица на счетоводния регистър;
● всички виртуални таблици на счетоводния регистър, с изключение на таблицата MovementsSubconto;
● таблици с постоянни стойности (включително таблицата на константите);
● таблици на външни източници на данни без ключови полета;
● кубични таблици на външни източници на данни;
● регистрационни таблици за натрупване:

  • революционна маса;
  • маса за баланс;
  • таблица на оборотите и балансите.

● таблици с регистър на изчисленията:

  • таблица на действителния срок на валидност;
  • данни за графика;
  • основни данни.

● Таблици на таблични части на обекти;
● Регистрационни таблици за промени (използвани в механизмите за обмен на данни);
● Таблици на последователности;
● Таблици за преобразуване (използвани в механизми за периодичен сетълмент).
● Таблица, която се използва в заявка само във външно съединение.

С други думи, динамичен списък с посочената основна таблица ще работи правилно, ако в резултат на изпълнение на заявката,
посочен като източник на данни, броят на получените редове от основната таблица не се увеличава (като се вземе предвид наложената селекция). Ако в резултат на изпълнение на заявка броят на редовете, получени от заявката от главната таблица, се увеличи, това ще доведе до нарушаване на уникалността на ключа на записите на таблицата, показана от списъка. В този случай трябва да деактивирате използването на основната таблица с динамичен списък.
Когато работите с динамичен списък, трябва да вземете предвид правата за достъп до детайлите, показани от списъка:
● Данни от колони на динамичен списък, които са маркирани със свойството Използвай винаги, но за които текущият потребител няма право на преглед, не се предават към страната на клиента. Достъп до данни на такива колони (използвайки свойството CurrentData и метода RowData())
не е възможно от страна на клиента.
● Ако текущият потребител няма право на преглед върху ключово поле на динамичен списък, извличането на данни от този динамичен списък води до грешка при нарушение на достъпа.
За динамичен списък, който показва списък с изброяване, няма опция за интерактивно персонализиране на списъка.
Съставът на колоните и настройките на динамичния списък са свързани с полетата за заявка, като се използват псевдоними на полетата за избор. Ако псевдоним не е изрично указан в заявка за поле за избор и полето е системно, тогава името на полето за английската версия на вградения език се използва като псевдоним.
Посочената връзка означава, че при промяна (или изрично указване на псевдоним за поле, за което е използван автоматичен псевдоним)
псевдоним на полето за заявка, което генерира данните от динамичния списък, настройките на атрибута на динамичния списък ще бъдат загубени, елементите на формуляра ще „загубят“ показаните подробности, настройките на динамичния списък ще станат неправилни и т.н.
Ако източникът на данни на динамичен списък е таблица (обикновена или виртуална), която ви позволява да зададете избор по период, тогава ако потребителят зададе периода на показване в такъв динамичен списък (команда Задаване на интервал от дата...),
посочените граници на периода ще бъдат зададени като стойности за избор или параметри на виртуална таблица. Ако чрез езиково разширение
заявки за системата за съставяне на данни, имената на параметрите на виртуалната таблица бяха изрично посочени - параметрите с посочените
имена. Таблици, за които е възможно да се контролира периодът за показване или обработка на данните:
● регистрови таблици (основни или виртуални), за които има възможност за избор по период (за изчислителния регистър - по период на регистрация);
● основни таблици с документи, бизнес процеси и задачи;
● основни таблици на дневниците на документи;
● таблици на главни последователности, гранични таблици на последователности.
Параметърът на заявката за динамичен списък може да бъде масив или списък със стойности. Ако обаче параметърът е списък със стойности, тогава само първата стойност в списъка ще се използва като стойност за избор. Ако динамичен списък използва заявка с параметри, първоначалната настройка на стойностите на параметрите трябва да се извърши в манипулатора OnCreateOnServer.
Когато показвате данни от динамичен списък, имайте предвид следните точки:
● Когато промените програмно свойствата на динамичен списък, командните панели, свързани със списъка, не се попълват автоматично.
с този динамичен списък.
● Ако няколко полета са групирани в група с режима на групиране в клетка и в групираните полета има поле, което се показва като квадратче за отметка, тогава това квадратче за отметка винаги ще се показва първо в получената клетка (отляво на текст).
В динамичен списък, когато се определя типът данни за полета, чиито изрази включват параметри, полета или литерали, резултантният тип се определя от типовете на полетата и литералите. Ако типът стойност на параметъра не е включен в получения тип данни, неговата стойност ще бъде съкратена.
Например в следващия пример полето ще бъде от тип Number.

ИЗБОР
КОГАТО Е ЛЪЖА
ТОГАВА 5
В ПРОТИВЕН СЛУЧАЙ
&Параметър
КРАЙ

Ако зададете параметъра Параметър на стойност от друг тип, динамичният списък за това поле ще получи стойност 0 (стойността по подразбиране за типа Число).
Ако в такава ситуация трябва да изберете параметър от различен тип, препоръчително е да използвате конструкцията на езика за заявки ЕКСПРЕСНО. Например,
ако в горния пример трябва да предадете низ, не по-дълъг от 100 знака в параметъра, тогава трябва да замените простата индикация на параметъра с израз с явно преобразуване на типа:

ИЗБОР
КОГАТО Е ЛЪЖА
ТОГАВА 5
В ПРОТИВЕН СЛУЧАЙ
EXPRESS(&Параметър AS String(100))
КРАЙ

Ако произволният текст на заявка за динамичен списък използва параметри в изразите на полетата за избор, трябва изрично да посочите типа на параметрите, като използвате конструкцията ЕКСПРЕСНО. Например, вместо &Номенклатура КАТО номенклатураизползване
EXPRESS(&Номенклатура AS Директория.Номенклатура) AS Номенклатура. В противен случай търсенето през лентата за търсене може да работи
неправилни или произвеждат грешки.

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

Когато получава данни за показване, динамичният списък използва един от трите метода:
1. Четенето от базата данни се извършва на части с брой елементи от данни, малко по-голям от броя на редовете, показвани едновременно от списъка (но не по-малко от 20). Данните не се кешират на сървъра.
2. Четенето от базата данни се извършва на страници от 1000 елемента с данни. Данните се кешират на сървъра. Йерархичните данни се кешират: не повече от 2 страници с елементи се кешират за всеки родител. Не повече от 20 страници с елементи се кешират на динамичен списък. Кеширането ще бъде активирано от динамичен списък за следните таблици:
● Критерии за подбор;
● Всички таблици на счетоводния регистър, с изключение на основната таблица и таблицата MovementsSubconto;
● Всички регистрови таблици с натрупване, с изключение на основната;
● Всички таблици на информационния регистър, с изключение на основната таблица;
● Всички таблици на изчислителния регистър, с изключение на основната таблица;
● Виртуална таблица със задачи по изпълнител;
● Таблици на външни източници без ключове;
● Кубчета от външни източници.

3. Четенето от базата данни се извършва на страници от 1000 елемента. Първата част е равна на 1 страница. Всяка следваща част се увеличава с 1 страница (при достигане на края на предишната извадка). Колкото повече се приближава „гледната точка“ до края на показаните данни, толкова по-голяма извадка се чете от базата данни, като в крайна сметка става равна на всички показани данни. Данните се кешират на сървъра. Максималният брой записи в кеша и динамичния списък е 1 000 000.
В зависимост от това какво е избрано от основната таблица на динамичния списък и каква стойност приема свойството Dynamic reading, се използва един или друг метод за четене на данни:

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



● Една от следните таблици е посочена като стойност на свойството Main table: основната таблица на информационния регистър, регистърът на натрупването, регистърът на счетоводството, регистърът на изчисленията, виртуалната таблица на регистъра на счетоводството MovementsSubconto:

● Свойство за динамично четене:
● Инсталиран: използва се метод 1 (описанието на методите е дадено по-горе).
● Нулиране: Използва се метод 2 (описанието на методите е дадено по-горе).

● Свойството Основна таблица съдържа таблицата с критериите за избор или таблицата със задачи по изпълнител (Задачи по изпълнител):
● Ключ, идентифициращ ред в таблица: Връзка.

● Свойството Main table указва виртуалната таблица на информационния регистър SliceFirst или SliceLast:
● Ключ, идентифициращ ред от таблица: RecordKey.
● Свойството Динамично четене не е приложимо.
● Използва се метод 2 (описанието на методите е дадено по-горе).

● Свойството Main table е зададено на една от таблиците на виртуалния регистър, с изключение на изброените по-горе:

● Свойството Динамично четене не е приложимо.

● Свойството Main table не е посочено, използва се произволна заявка:
● Ключ, идентифициращ ред от таблица: Число.
● Свойството Динамично четене не е приложимо.
● Използва се метод 3 (описанието на методите е дадено по-горе).

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

4. Настройки на динамичен списък

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


Ориз. 2. Условен стил на динамичен списък

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

СЪВЕТ.Трябва да се помни, че лошият избор на полета за сортиране (както и изборът и групирането на данни) се отразява негативно на ефективността на динамичното вземане на проби.
От гледна точка на разработчик на приложения, настройките на динамичния списък се състоят от няколко части, които са свързани помежду си. Основното свойство, чрез което можете да управлявате настройките на динамичен списък, е LinkerSettings. Този обект съдържа три набора от настройки, които, когато системата работи, определят окончателните настройки, приложени към динамичния списък:
● Настройки – настройки, създадени в режим Конфигуратор. Свойството Order на динамичния списък осигурява бърз достъп до свойството Settings.Order на създателя на настройките на динамичния списък, така че следните конструкции са еквивалентни:
List.Order и List.SettingsLinker.Settings.Order;
● UserSettings – това са настройки, които се променят от потребителя в режим 1C:Enterprise;
● Фиксирани настройки – тези настройки се задават от вградения език. Това свойство също съдържа стойности за избор, които се прехвърлят във формуляра с помощта на неговите параметри. Свойствата на динамичния списък Избор, Опции, Условен външен вид осигуряват бърз достъп до фиксираните настройки на създателя на настройките на динамичен списък. С други думи, тези повиквания са еквивалентни:
List.Settings Composer.FixedSettings.Selection и List.Selection.
Когато създавате окончателните настройки за динамичен списък, различни опции за настройки се комбинират, както следва:
● Ако някой тип настройки е изцяло маркиран като потребителски, тогава получените настройки включват потребителските настройки
(List.ComposerSettings.UserSettings). Освен това, ако някои елементи на настройките са маркирани като недостъпни, тогава тези настройки ще бъдат поставени в получените настройки от свойството List.Settings Composer. Настройки.
● Ако някой тип настройки е маркиран като потребителски не изцяло, а елемент по елемент, тогава:
● Елементите, маркирани като персонализирани, ще бъдат включени в получените настройки от свойството List.SettingsComposer.CustomSettings.
● Елементите, маркирани като недостъпни, ще бъдат включени в получените настройки от свойството List.SettingsComposer.Settings.
● Фиксираните настройки (List.SettingsComposer.FixedSettings) се добавят към получените настройки „както са“. В същото време е неприемливо фиксираните и потребителските настройки да съдържат настройки с едно и също име, например избор със същата лява стойност в условието.

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


Ориз. 3. Контролирайте включването в потребителските настройки

Квадратчето за отметка в долната част на прозореца (вижте фиг. 3) отговаря за поставянето на целия тип настройки в настройките (нормални или бързи). Тази функция е достъпна за избор, подреждане, групиране и кондициониране. Ако настройките са зададени с режима за редактиране Бърз избор, тогава в свойството Група потребителски настройки на таблицата на формуляра, показващ динамичния списък, трябва да посочите празна група от формуляра, в която елементите, свързани с бързите потребителски настройки на динамичният списък ще бъде разположен. Ако групата не е посочена, бързите потребителски настройки няма да се показват във формуляра. Възможно е също така изрично да се извика създаването на персонализирани настройки с помощта на вградения език с помощта на метода CreateCustomSettingsFormItems() на разширението на динамичния списък.
Също така е възможно да изберете дали да поставите конкретни елементи от настройките в потребителските настройки. Тази функция е достъпна за избор и условни елементи на дизайна (вижте Фигура 3).

Ако имате нужда от зареждане на специални настройки при отваряне на динамичен списък, това може да стане по два начина:
● Използване на параметъра на формуляра за динамичен списък UserSettings. Данните, съдържащи се в този параметър, ще бъдат поставени в настройките на динамичния списък на потребителя.
● Използване на параметъра на формуляра за динамичен списък UserSettingsKey. Ако посочите този параметър при отваряне на формуляр, тогава потребителските настройки, намиращи се в хранилището за настройки с посочения ключ, ще бъдат заредени в динамичния списък, който е основният атрибут на формуляра.

5. Търсете в динамичен списък

Динамичен списък, разположен във формуляра, предоставя възможност за интерактивно търсене в показаните данни. Търсенето може да се извърши с помощта на следните инструменти: лента за търсене, диалогов прозорец за търсене, търсене на текущата стойност, използване на хронологията на търсенето и задаване на периода (за динамични списъци, показващи документи). Резултатът от търсенето е ограничен набор от записи
динамичен списък (на наличните за даден потребител), които отговарят на критериите за търсене.
За да контролирате възможностите за търсене на динамичен списък, има три свойства на таблица в управлявания формуляр, който показва динамичния списък:
● Search string position – определя позицията на търсения низ. Може да приема следните стойности: Auto, Command Bar, None, Top, Bottom.


Ориз. 4. Низ за търсене в динамичен списък

Ако стойността на това свойство е зададена на Команден панел, тогава низът за търсене ще бъде показан в командния панел на формуляра (ако динамичният списък е главният атрибут на формуляра) или в командния панел, свързан с динамичния списък. Лентата за търсене, поставена в командната лента, винаги се натиска в десния край на командната лента (заедно с бутоните, разположени вдясно от лентата за търсене).
Ако свойството е зададено на Не, тогава низът за търсене няма да бъде във формуляра и когато започнете да въвеждате низа за търсене, ще се отвори диалогов прозорец.
Ако свойството е зададено на Top, лентата за търсене ще бъде разположена между лентата с команди на списъка и таблицата, показваща динамичния списък. Ако свойството е зададено на Bottom, низът за търсене ще бъде поставен непосредствено след таблицата, показваща динамичния списък.


● Ако свойството Режим на съвместимост е зададено на Не използвайте или е по-старо от Версия 8.3.4 – стойността е Команден панел.
Отидете до реда за търсене, както следва:
● Чрез натискане на клавишната комбинация Ctrl+F;
● Мишка;
● Когато започнете да въвеждате в динамичен списък (като се вземе предвид стойността на свойството SearchOnTyping на динамичния списък).
● View State Position – описва къде ще се покаже състоянието на изгледа: какви полета са търсени и какви стойности
търсени във всяка област. Може да приема следните стойности: Auto, None, Top, Bottom


Ориз. 5. Състояние на търсене в динамичен списък

Ако свойството е зададено на Не, тогава състоянието на изглед няма да присъства във формуляра. В резултат на това ще бъде възможно да се определи дали търсенето е завършено или не само чрез наличието на бутона Отказ от търсенето.
Ако свойството е зададено на Top, състоянието на изглед ще бъде разположено между командната лента на списъка и таблицата, показваща динамичния списък. Ако свойството е зададено на Bottom, състоянието на изглед ще бъде поставено непосредствено след таблицата, показваща динамичния списък.
Ако формулярът е създаден в 1C:Enterprise версия 8.3.4 и по-стари, свойството е зададено на No. Ако формулярът е създаден в 1C:Enterprise версия 8.3.5 и по-стара, свойството е зададено на Автоматично. Реалната стойност на имота в този случай ще се определи, както следва:
● Ако свойството Режим на съвместимост е зададено на Версия 8.3.4 (и по-ниска) – стойност No;
● Ако свойството Режим на съвместимост е зададено на Не използвайте или е по-старо от Версия 8.3.4 – стойност Топ;
● Позиция на контрола за търсене – Определя къде ще се появи контролният бутон за търсене. Бутонът отваря меню, което съдържа следната информация: команди Търсене по текуща стойност, Разширено търсене, Отказ от търсенето, Задаване на период (за списъци с документи и дневници) и хронология на заявките за търсене (последните 5 заявки). Свойството може да приема следните стойности: Auto, None, Command panel.


Ориз. 6. Управление на търсенето в динамичен списък

Ако свойството е зададено на Не, тогава контролният бутон за търсене няма да бъде във формуляра (но командите ще бъдат достъпни чрез менюто Още). Стойността на свойството Command Bar поставя бутон в командната лента, свързан с таблица, показваща динамичен списък.
Ако формулярът е създаден в 1C:Enterprise версия 8.3.4 и по-стари, свойството е зададено на No. Ако формулярът е създаден в 1C:Enterprise версия 8.3.5 и по-стара, свойството е зададено на Автоматично. Реалната стойност на имота в този случай ще се определи, както следва:
● Ако свойството Режим на съвместимост е зададено на Версия 8.3.4 (и по-ниска) – стойност No;
● Ако свойството Режим на съвместимост е зададено на Не използвайте или е по-старо от Версия 8.3.4 – стойността е Команден панел;
Ако във формуляр има няколко командни панела, източникът на команди за които е една таблица на управлявания формуляр (показваща данни от динамичен списък), тогава редът за търсене и контролният бутон за търсене ще бъдат разположени само в един команден панел:
● Или в командната лента на самия динамичен списък (ако има активирано автоматично довършване)
● Или в някой от останалите командни панели.

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

● Търсенето не се извършва във всички колони на динамичния списък (и конфигурационния обект), а само в тези колони, които се показват в таблицата.
● Търсене в динамичен списък по полета от референтни типове с произволно представяне се извършва от полета, които се използват за
формиране на представителство (виж тук). Полетата, включени в изгледа, се получават, като се вземе предвид манипулаторът ViewFieldGettingProcessing() на съответния обект.
● За динамични списъци с определена главна таблица се използва пълнотекстово търсене в главната таблица. Всички неиндексирани връзки от главната таблица ще бъдат добавени към резултатите от пълнотекстово търсене. Резултатът от търсене в пълен текст за основната таблица се използва като селекция въз основа на ключови полета. Пълнотекстово търсене се извършва и върху полета, показани в списъка от други таблици (ако полето и конфигурационният обект използват пълнотекстово търсене). Без активирано пълнотекстово търсене данните може да са
намерени, но самото търсене ще бъде много бавно.
Ако възникне грешка при опит за извършване на търсене в пълен текст, търсенето ще се извърши без прилагане на търсене в пълен текст.
Например, това може да се случи при търсене на една буква и голям брой редове в информационната база, започващи с тази буква.
● Ако се използва селекция с тип сравнение Equals за поле в главната таблица на динамичен списък, тогава при извършване на пълнотекстово търсене, стойност за избор ще бъде добавена към заявката за търсене за тази таблица.
● Низът за търсене е разделен на думи. Този дял се извършва съгласно следните правила:
● Редът е прекъснат, като се използват символи за интервал и табулация като разделители.
● След това всеки получен фрагмент се обработва:
● Ако фрагментът е представяне на дата (с или без време) въз основа на локала на текущата сесия, тогава думата е фрагментът.
● В противен случай фрагментът се разделя допълнително, като се използват знаците „,.-/\“ като разделители. В този случай всеки получен фрагмент от низа се приема като дума.

● За всяка дума се формира собствен набор от условия, които се комбинират „по ИЛИ“. Този набор от условия се генерира, ако пълнотекстово търсене на дадена дума в таблицата, от която е получено това поле, е върнало поне един обект или пълнотекстово търсене не е използвано за това поле. Условията се формират както следва:
● За поле от тип String условието е FieldName LIKE %Word%.
● За поле от тип Number, условието има формата FieldName=Value, където Value е дума, преобразувана в типа Number. Ако прехвърлянето не може да се извърши, търсенето на полето няма да се извърши.
● Думата се търси като подниз в булевото представяне по подразбиране, дефинирано за текущата сесия. Ако думата за търсене бъде намерена в изглед, тя след това търси стойността, съответстваща на изгледа, в който е намерена думата. В този случай търсенето не използва изгледи, които са посочени чрез свойството Format form element.
● За поле от тип Date условието изглежда като FieldName>=StartofDay(Word) ANDFieldName<=КонецДня(Слово). Если Слово подобно дате, в которой год
посочена с една или две цифри, годината ще бъде намалена до текущия век и тази стойност ще бъде добавена към условието за търсене.
● За референтни полета се извършва търсене в полетата, използвани за формиране на референтния изглед. Във всяко от тези полета търсете
извършва се съгласно описаните по-горе правила. Търсенето не използва полета, използвани за формиране на персонализирано представяне на данни.
Наборът от условия за всяка дума е комбиниран с „И“.
● За стойности с водещи нули можете да търсите или в низа с водещи нули, или в посочения низ без водещи нули.
● Ако динамичен списък показва списък с документи или хронология на документи, зададеният от вас интервал за изглед на списък също се показва в областта на формуляра, запазена за показване на състоянието на изглед за желания динамичен списък.
● Командата за търсене по текуща стойност не е достъпна, ако главната таблица на динамичния списък е критерият за избор.
● Намерените фрагменти от низове се маркират, когато се показват в таблицата.
● За една колона се поддържа само един низ за търсене. Когато добавяте нова заявка за търсене за колона, която вече се търси, изразът за търсене ще бъде заменен, вместо двете заявки за търсене да бъдат добавени заедно.
● Ако формулярът няма добавяне на елемент на формуляр за показване на низ за търсене на формуляр, свързано с таблицата (свойство Източник на добавяне на елемент на формуляр), показващо динамичен списък, след което натискането на клавишната комбинация Ctrl+F отваря диалоговия прозорец за търсене.


Ориз. 7. Диалогов прозорец за търсене

Ако формулярът съдържа добавяне на елемент от формуляра Показване на низ за търсене, свързано с таблица (свойство Източник на добавяне на елемент на формуляр), показваща динамичен списък, тогава за да отворите диалоговия прозорец за търсене, трябва да използвате командата за разширено търсене.
● Когато използвате диалоговия прозорец за търсене, имайте предвид следните точки:
● Отварянето на диалоговия прозорец за търсене с помощта на клавишна комбинация води до показване на стойността на текущата клетка в реда Какво да търсите и стойността на превключвателя Как да търсите е зададена на По точно съвпадение.

● Отварянето на диалоговия прозорец за търсене чрез директно започване на въвеждане на низ за търсене в динамичния списък води до факта, че стойността на превключвателя Как да търсите е зададена на стойност По част от низа и въведеният текст завършва в Какво към полето за търсене.

6. Получаване на данните, показани чрез динамичен списък

Когато използвате динамични списъци, може да се наложи да извършите различни действия върху данните, показани в момента от динамичния списък, като вземете предвид приложените селекции и търсения. Такива действия включват: обработка на показаната информация, например повторно изпращане на избрани документи или задаване на някои подробности за избрани обекти, генериране на списък с налични обекти (с дизайн и т.н.), например за отпечатване или записване в документ с електронна таблица.
За да получите данни, които се показват от динамичен списък, трябва да използвате GetExecutableDataCompositionSchema() и
GetExecutableDataCompositionSettings().
Пример за получаване на данни:

Схема = Elements.List.GetExecutableDataCompositionSchema();
Настройки = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(схема, настройки);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = Нов OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Получаването на данни в колекция от стойности (таблица или списък със стойности) се извършва по същия начин.
Получаването на данни от динамичен списък по този начин има редица характеристики, които трябва да се вземат предвид при разработването на приложни решения:
● Следният дизайн на таблица не се поддържа:
● Редуващи се цветове на линиите;
● Заглавна снимка;
● Снимка на мазето;
● Цвят на фона на долния колонтитул;
● Цвят на текста в долния колонтитул;
● Шрифт на долния колонтитул;
● Хоризонтално разположение в сутерена;
● Режим на парола.
● Условният външен вид, определен за управляван формуляр, не се поддържа;
● Когато подреждате йерархична таблица във възходящ ред по поле от тип Link, записите, съдържащи празна връзка, винаги се поставят на първо място.

Домашни бележки от през огледалото

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

Внедрено във версия 8.3.6.1977.

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

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

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

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

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

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

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

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

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

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

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

При извеждане в документ с електронна таблица има още един приятен момент. Като цяло външният вид на отчета ще съответства на външния вид на таблицата с динамичен списък в момента на получаване на схемата и настройките. Включително условния дизайн на масата. Ще ви трябват някои допълнителни действия само ако искате да прехвърлите условния дизайн на формуляра към отчета.

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

За да демонстрираме възможностите на динамичния списък, нека създадем външна обработка и да добавим основния формуляр. Нека добавим нов атрибут към формата с тип „Динамичен списък“. Нека да влезем в неговите свойства и да видим какво има там.
Интересуваме се от имота „По поръчка“. Активирането му ще ни покаже всички възможности на динамичния списък. Ще можем да напишем заявка, използвайки почти всички възможности на езика за заявки на системата 1C: Enterprise. Поставете отметка в квадратчето и щракнете върху връзката „Отвори“:

По подразбиране нашият списък ще покаже списък с артикули с общия баланс за всички складове. За да приложите такъв списък, добавете следната заявка:


Като основна таблица ще изберем „Директория.Номенклатура“, това ще ни позволи да работим с динамичен списък, както със списък с номенклатура - добавяне, промяна, маркиране на елементи от директория за изтриване. Освен това инсталирането на основната таблица дава възможност за динамично четене на данни - това означава, че селекцията ще бъде направена на части, според нуждите.
След това трябва да създадем елементи на формуляр за нашия списък:

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


За да го премахнете, трябва да зададете стойност за параметъра „Период“. За да направите това, можете да използвате метода „SetParameterValue“ от колекцията „Параметри“ на динамичния списък. Методът приема два параметъра:
. "Параметър" - Тип: String; DataCompositionParameter. Името на параметъра или параметъра за съставяне на данни, чиято стойност искате да зададете;
. “Стойност” - Тип: Произволен. Стойността за задаване.
Може да се извика в манипулатора „OnCreateOnServer“ на формуляра:

Имате въпрос или нужда от помощ от консултант?


Ние ще предоставим на потребителя възможност за промяна на периода за получаване на баланси. За да направите това, добавете атрибута и свързания с него елемент от формуляра „Дата“:


В манипулатора “OnChange” на елемента на формуляра “Date” ще извикаме метода “SetParameterValue”, предавайки стойността на свързания атрибут като стойност. По подобен начин нека променим процедурата „При създаване на сървър“ на формуляра. Тъй като методът е наличен на клиента, няма нужда да се обаждате на сървъра:


Сега, когато датата се промени, балансите ще се актуализират автоматично:




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


При промяна на стойността на превключвателя, ние ще променим текста на заявката. За да направим това, ще използваме манипулатора на събитие „При промяна“ за елемента на формуляр „Показване на количество при получаване“. Трябва да променим свойството "QueryText" на динамичния списък в зависимост от стойността на атрибута. Тъй като това свойство не е налично на клиента, трябва да се извика сървърна процедура:


Резултат от направените промени:



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

Характеристики на динамични списъци в 1C

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

За да видите как се формира динамичен списък и какви данни показва, трябва да отворите управляваните формуляри, където се намира в конфигуратора: в списъка с подробности използвайте контекстното меню, за да отворите неговите свойства и обърнете внимание на „Персонализирани Заявка“. Ако няма квадратче за отметка, тогава параметърът „Главна таблица“ отразява таблицата на базата данни, от която са взети данните. В противен случай динамичният списък отразява данните от персонализирана заявка, която може да се види, като отворите настройките на списъка.

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

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

  • Динамичен избор на списък;
  • групи;
  • Сортиране;
  • Декор.

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

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

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



SELECT NomenclatureList.Name AS Name, GoodsInWarehousesRemainings.Warehouse AS Warehouse, GoodsInWarehousesRemainings.QuantityRemaining AS QuantityRemaining FROM Directory.Nomenclature AS NomenclatureList ЛЯВА ВРЪЗКА RegisterAccumulations.GoodsInWarehouses.Remainings(&CurrentDate,) AS Good sOnUS treasuresRemaining софтуер NomenclatureList.Link = ProductsInWarehousesRemainings.Nomenclature WHERE

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

&На сървърната процедура, когато е създадена на сървъра (Отказ, стандартна обработка) Номенклатурата остава. Параметри. Задаване на ParameterValue("CurrentDate", CurrentSessionDate()) EndProcedure


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

Добавете атрибута „DateRemaining“ от типа „Дата“ и го прехвърлете към елементите на формуляра. В полето събития създаваме събитието „OnChange“ и записваме кода за настройка на параметъра „CurrentDate“, използван в динамичната заявка. Така че при отваряне на формуляра потребителят веднага да разбере на коя дата вижда балансите, ще направим малки промени в процедурата „Когато е създаден на сървъра“.



&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing)RemainingDate = CurrentSessionDate(); Item Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Край на процедурата &На процедурата на клиента Remaining DateWhenChanged(Element)Nomenclature Remaining.Parameters.SetParameterValue("CurrentDate",RemainingDate); Край на процедурата

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

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

  1. селекция;
  2. Списъци.

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



 

Може да е полезно да прочетете: