Първият доклад за системата за съхранение. Първи отчет за DCS Създаване на отчет с помощта на система за съставяне на данни

Влезте в сайта като студент

Система за съставяне на данни 1C 8.3 за начинаещи: първи доклад за SKD

Ако не сте чели въведението към този модул, моля, прочетете го: .

За да завършите уроците, които ще ви трябват 1C 8.3 (не по-ниска от 8.3.4.482) .

Ако вече имате инсталиран 1C версия 8.3, използвайте го. Ако не, изтеглете и инсталирайте образователната версия, която 1C произвежда специално за образователни цели.

За това:

  • Разопаковайте изтегления от връзката архив в отделна папка на работния плот:
    • връзка за изтегляне от Dropbox (опция №1)
    • връзка за изтегляне от Mail.ru (опция № 2)
  • Стартирайте файла "setup.exe".
  • Щракнете върху Напред, Напред, Инсталиране.
  • Изчакайте инсталацията да завърши.

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

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

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

Най-накрая работната маса е настроена и сега ще създадем първия си отчет заедно, използвайки системата за съставяне на данни. Ще бъде много лесно да се демонстрират общите възможности на система за съставяне на данни (съкратено SKD).

Поставяне на цел

Целта на този урок- създаване на отчет, който в потребителски режим показва списък с клиенти със следните полета:

  • Име
  • Етаж
  • Любим цвят на клиента.

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

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

Отивам!

Създаване на отчет

Стартираме конфигуратора за базата данни Gastronom:

От главното меню изберете "Файл" -> "Нов...":

Изберете „Външен отчет“:

Създаване на диаграма на оформлението на данните в отчета

Отваря се прозорецът за създаване на външен отчет. За името въведете: " Урок 1" и след това натиснете бутона " Отворена диаграма за съставяне на данни":

Дизайнерът за създаване на схема стартира. Съгласни сме с името по подразбиране " Схема на оформление на основните данни" и натиснете бутона " Готов":

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

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

Сега сме на отметката " Набори от данни— Ще останем там.

Пишем заявка чрез конструктора

Системата за съставяне на данни (съкратено DCS) изисква от нас данни,които ще покаже на потребителя.

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

Кликнете върху зеленознак плюс и в падащия списък изберете елемента " Добавяне на набор от данни - Заявка":

Нашата задача е да напишем текста на заявката в това поле. Още ли не сте забравили как се прави това?

Ще ви подскажа:

В тази заявка сме избрали три полета (" Име", "Етаж" И " Любим цвят") от таблицата " Директория.Клиенти".

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

Сега ще създадем същата заявка визуално, само с помощта на мишката. Този метод се нарича " Конструктор на заявки".

За да извикате този конструктор, щракнете върху бутона " Конструктор на заявки..." в горната дясна част на полето "Заявка":

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

Оказа се така:

След това ще отворим таблицата " клиенти"във втората колона по знак" плюс"за да видите всички негови полета и да плъзнете полето" Име" от втората колона до третата, за да посочим, че от тази таблица трябва да направим заявка в полето "Име":

Оказа се така:

Нека направим същото с полетата" Етаж" И " Любим цвят". Резултатът ще бъде така:

Щракнете върху бутона „OK“, за да излезете от конструктора на заявки и да видите, че текстът на заявката се добавя автоматично към полето „Заявка“.

Освен това, въз основа на текста на заявката, 1C сам извади имената на полетата (областта над заявката), които ще бъдат използвани от схемата за съставяне на данни:

Сега, след като сме съставили заявка, ACS знае как да получи данни за отчета.

Настройка на представяне на данни

Остава някак визуализирайте тези данниза потребителя под формата на печатен формуляр. И тук ACS може да направи чудеса!

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

В прозореца, който се отваря, посочете типа отчет " списък"и натиснете " По-нататък":

В следващия прозорец изберете (чрез плъзгане) полетата, които трябва да бъдат показани в списъка (плъзнете всички налични за нас: " Любим цвят", "Име" И " Етаж"):

Нека получим този резултат и натиснете бутона " Добре":

Дизайнерът на настройките се затвори и елементът " Подробни записи":

Докладът е готов, нека го проверим. За да направите това, първо запазете отчета като външен файл.

Запазете отчета като файл

Отворете елемента от главното меню " Файл"->"Запазване":

Ще го запазя на работния си плот под името " Урок 1":

Проверка на отчета в потребителски режим

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

Потребителско име "Администратор", без парола:

Чрез менюто изберете елемента " Файл"->"Отворете...":

И посочете файла с отчета (запазих го на работния плот под името „Lesson1.erf“:

Формата за отчет се отвори, щракнете върху бутона " Форма":

Готов! Ето нашия печат със списък на клиентите, техния любим цвят и пол:

Формулярът за печат може лесно да бъде отпечатан. За да направите това, просто изберете елемента " Файл"->"Тюлен...":

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

студенти - отговарям по пощата, но първо погледнете.

Влезте в сайта като студент

Влезте като ученик за достъп до учебни материали

Здравей, скъпи читателю! Днес ще започнем да разглеждаме основите на системата за оформление. Ще научите какво е SKD и ще се запознаете с основните компоненти на SKD. Също така прегледайте входните данни за изграждане на отчет и научете основните стъпки за стартиране на отчет в системата за оформление и много повече. Освен това имате възможност да проверите знанията си чрез кратък тест. Да започваме!

Входни данни за изграждане на отчет чрез система за съставяне на данни (DCS).

    1. Диаграма на оформлението на данните— съдържа описания на набори от данни и параметри за събиране на данни. Той описва откъде да получите данни и как да управлявате оформлението на данните. Тази схема се получава с помощта на конструктора.
  1. Настройки за съставяне на данни— настройки за изпълнение на отчета, т.е. как трябва да се показва отчетът, какви трябва да бъдат параметрите за получаване на данни и какви селекции трябва да се прилагат за конкретна схема за съставяне на данни.
  2. Композитор на оформление— обработва схемата за съставяне на данни и настройките за съставяне на данни.
    Резултатът от конструктора на оформление е: оформление на оформлението на данните, което е резултат от прилагане на настройки към диаграмата на оформлението.

Основните етапи, които съставляват изпълнението на отчет с помощта на система за съставяне на данни (DCS).

Етапи на SKD 1C 8

    1. Оформление на оформлението на данните— схема за конструиране на отчет, готово описание на конструиране на отчет, указващо на системата какви данни да избира и какви заявки да изгражда. Забележка процесор за оформлениегенерира отчет на определена структура, като се вземат предвид зададените настройки. Така, Диаграма на оформлението на даннитесъдържа общо описание на веригата и оформление на оформлението на даннитесъщо така съдържа специфични потребителски настройки. Схема = Доклади. Ценова листа. GetLayout( "MainDataCompositionSchema") ; Настройки = Схема. Настройките по подразбиране;

      LayoutLinker = newDataLayoutLayoutLinker;
      Layout = LayoutComposer. Изпълнение (Схема, Настройки) ;

    2. Процесор за съставяне на данни— получава информация от базата данни или външни източници, като взема предвид данни от оформление на оформлението на данните. Извършва съставяне на данни и генерира резултата. Полученият резултат се съдържа в самия процесор за композиране на данни. CompositionProcessor = newDataCompositionProcessor; ProcessorLayout. Инициализиране (оформление);
  1. Изходен процесор— показва резултата от работата за представяне на потребителя,
    или в документ с електронна таблица, или в таблица със стойности.
OutputProcessor = Нов OutputProcessorDataCompositionResultInTabularDocument; TabDoc = Нов табличен документ; Изходен процесор. SetDocument(TabDoc); Изходен процесор. Изход (LayoutProcessor) ;

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

Какво е схема за съставяне на данни?

Диаграма на оформлението на данните— обект на вградения език на системата 1C:Enterprise „Схема за оформление на данни“.
Може да се нарече и специален тип оформление, което може да бъде създадено за всеки обект в конфигурацията на 1C Диаграма на оформлението на даннитесъответства на концепцията за оформление, тъй като оформлението е обект, който съдържа различни данни, необходими за показване на изходна информация.

От какво се състои диаграмата за съставяне на данни?

Набори от данни

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

  1. Заявка— достъп до текущата информационна база за получаване на данни.
  2. Предмет— избрани са следните обекти: таблица със стойности, таблична част, резултат от заявка, клетъчна област на документ с електронна таблица, документ, набор от регистрационни записи и др. За какво е обект на набор от данни? Например, ако използваме таблица със стойности като вход и в нея има данни от друга база данни (може би дори не 1C), тогава всъщност работим с данни от тази база данни.
  3. Асоциация— комбинира данни от набори от данни: заявка и обект. Защо се нуждаем от обект на набор от данни, ако заявката съдържа клауза UNION, която ни позволява да свързваме различни данни, тоест да ги комбинираме? Този набор от данни е необходим, тъй като наборът от данни може да бъде не само заявка, но и например таблица със стойности.

Настройки

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

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


В края на статията искам да ви препоръчам един безплатен от Анатолий Сотников. Това е курс от опитен програмист. Той ще ви покаже на отделна основа как да създавате отчети в системата за контрол на достъпа. Просто трябва да слушате внимателно и да запомните! Ще получите отговори на следните въпроси:
  • Как да създадете прост отчет със списък?
  • За какво служат колоните Поле, Път и Заглавие в раздела „Полета“?
  • Какви са ограниченията за полетата за оформление?
  • Как да конфигурирате правилно ролите?
  • Какви са ролите на полетата за оформление?
  • Къде мога да намеря раздела за съставяне на данни в заявка?
  • Как да конфигурирате параметрите в системата за контрол на достъпа?
  • Става още по-интересно...
Може би не трябва да се опитвате сами да сърфирате в интернет в търсене на необходимата информация? Освен това всичко е готово за употреба. Просто започнете! Всички подробности за това какво има в безплатните видео уроци

SKD 1C означава Система за съставяне на данни. SKD 1C е нов начин за писане на отчети в 1C, който позволява на потребителя напълно да персонализира отчета сам.

Недостатъкът на SKD 1C е, че настройките му са доста сложни и не всички потребители ги научават бързо.

Писането на ACS отчети изисква способността да работите със заявки в 1C, което обсъдихме в.

Каква е технологията за създаване на отчет SKD 1C:

  • Напишете 1C заявка до 1C SKD, която осигурява събиране на данни
  • Посочете ролята на полетата в SKD 1C (изчислени полета, ресурси)
  • Въведете настройките по подразбиране на 1C SKD.

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

Каква е технологията за създаване на отчет за предишни технологии:

  • Напишете заявка в програмата 1C
  • Разработете формуляр за настройки (уникален за отчета), който ще ви позволи да промените само N настройки, избрани от програмиста
  • Напишете кода (програмата) за изпълнение на заявката и конструиране на печатна форма на отчета.

Както можете да видите, SKD 1C има значително предимство както за потребителя, така и за програмиста:

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

Във всички нови конфигурации на 1C всички отчети ще се използват само на 1C SKD.

Нека да видим как сами да създадете отчет за SKD 1C от нулата.

Създаване на отчет SKD 1C

В конфигуратора щракнете върху бутона нов файл (меню Файл/Нов).

Изберете типа файл Нов отчет.

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

Нека създадем основната схема на SKD 1C.

Създайте заявка за отчета SKD 1C

Може да има много източници на данни за SKD 1C. За да използвате например две отделни заявки, добавете първо „Набор от данни - Обединение“, а след това няколко заявки.

В нашия пример ще използваме проста заявка.

Нека скицираме заявка за получаване на данни.

Работата с конструктора на заявки не се различава от обичайното; обсъдихме това в.

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

Ако името ви е неудобно, можете да го промените тук.

Моля, обърнете внимание, че използвахме параметъра &StartDate в заявката. В SKD 1C има параметър по подразбиране (дата), наречен &Период и можете да го използвате.

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

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

Настройки на SKD 1C

В раздела Ресурси посочваме полетата, които ще бъдат сумирани за общите суми (т.е. числа). Можете да зададете функция за сумиране за полета. По подразбиране е Сума (т.е. сумиране на числата от всички редове и получаване на общата сума), но можете да използвате Средно, Количество, Максимално и т.н.

В раздела Настройки ще деактивираме тези, от които не се нуждаем, и ще активираме тези, от които се нуждаем. Тук можете също да зададете човешко име за параметъра.

Основните настройки се правят в раздела Настройки:


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

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

Готово. Докладът работи.

Настройки на SKD 1C

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

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

Нека плъзнем артикула в склада.

Щракнете върху OK и генерирайте отчета. Ура - току-що променихме начина на работа на отчета в режим на програмиране без програмиране.

Щракнете с десния бутон върху Редове (или някое от полетата) и изберете Ново групиране.

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

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

Ако добавите ново групиране, но не изберете поле, това означава „Всички полета“ (показва се като „Подробни записи“). Изглежда така.

Щракнете с левия бутон върху нашето групиране (Склад/Артикул) и го плъзнете към ново групиране (Тип Склад).

Резултатът от нашите настройки.

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

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

Системата за съставяне на данни (DCS) е мощен механизъм на платформата 1C (8.2 и по-нови) за разработване на отчети, а не система за контрол на достъпа.

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

Видео урок за създаване на отчет „Дневник на документи“ в 1C SKD:

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

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

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

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

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

Основата на управлявания интерфейс 1C - SKD

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

Как да овладеете и научите как да правите отчети на системи за контрол на достъп?

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

В платформата 1C:Enterprise механизъм, наречен „Система за съставяне на данни“ (съкратено DCS), отговаря за генерирането на отчети. В тази статия ще се опитаме да опишем накратко идеята и архитектурата на механизма ACS и неговите възможности.


ACS е механизъм, базиран на декларативно описание на отчетите. Системата за контрол на достъп е предназначена за генериране на отчети и извеждане на информация със сложна структура. Между другото, в допълнение към разработването на отчети, механизмът ACS се използва и в 1C:Enterprise в динамичен списък, инструмент за показване на информация от списък с богата функционалност (показване на плоски и йерархични списъци, условен дизайн на редове, групиране и др. ).

Малко история

В първата версия на платформата 1C:Enterprise 8, версия 8.0, отчетите бяха направени по следния начин:
  1. Една или повече заявки бяха написани на езика за заявки 1C (език, подобен на SQL, повече за него по-долу).
  2. Написан е код, който прехвърля резултатите от изпълнените заявки в документ с електронна таблица или диаграма. Кодът може също така да върши работа, която не може да бъде извършена в заявка - например, той изчислява стойности с помощта на вградения език 1C.
Подходът е ясен, но не е най-удобният - има минимални визуални настройки, всичко трябва да се програмира "от ръка до ръка". И един от козовете по това време на напълно новата платформа „1C:Enterprise 8“ беше минимизирането в приложното решение на количеството код, който трябваше да бъде написан ръчно, по-специално чрез визуален дизайн. Би било логично да следваме същия път и в механизма за докладване. Това беше направено чрез разработването на нов механизъм - Data Composition System.

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

Формулиране на проблема

Задачата пред екипа за разработка беше да създаде система за докладване, базирана не на алгоритмичен (т.е. чрез писане на код), а на декларативен подход за създаване на отчети. И смятаме, че проблемът е успешно решен. Според нашия опит около 80% от необходимото отчитане може да се реализира с помощта на ACS без нито един ред код (с изключение на писане на формули за изчисляеми полета), най-вече чрез визуални настройки.
Разработването на първата версия на SDS отне около 5 човеко-години.

Два езика

Има два езика, включени в създаването на отчети. Единият е език за заявки, използван за извличане на данни. Вторият е езикът за съставяне на данни, предназначен за писане на изрази, използвани в различни части на системата, например в настройките за съставяне на данни, за описание на изрази на потребителски полета.

Език за заявки

Езикът за заявки е базиран на SQL и е лесен за научаване от тези, които познават SQL. Примерна заявка:

Лесно е да видите аналози на секции, стандартни за SQL заявки - SELECT, FROM, GROUP BY, ORDER BY.

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

  • Достъп до полета чрез точка. Ако полетата на дадена таблица са от референтен тип (съхраняват връзки към обекти от друга таблица), разработчикът може да ги посочи в текста на заявката чрез „.“ и системата не ограничава броя на нивата на влагане на такива връзки (например Поръчка на клиент. Споразумение. Организация. Телефон).
  • Многомерно и многостепенно формиране на резултатите. Общите и междинните суми се формират, като се вземат предвид групирането и йерархията, нивата могат да се преминават в произволен ред с сумиране и се осигурява правилното изграждане на общите суми според времевите измерения.
  • Поддръжка на виртуални маси. Виртуалните таблици, предоставени от системата, ви позволяват да получите почти готови данни за повечето задачи на приложението, без да е необходимо да създавате сложни заявки. По този начин виртуална таблица може да предоставя данни за продуктовите салда по периоди в определен момент от време. В същото време виртуалните таблици използват максимално съхранената информация, например предварително изчислени суми и др.
  • Временни маси. Езикът на заявките ви позволява да използвате временни таблици в заявки. С тяхна помощ можете да подобрите производителността на заявките, в някои случаи да намалите броя на блокировките и да направите текста на заявката по-лесен за четене.
  • Пакетни заявки. За да направи работата с временни таблици по-удобна, езикът на заявките поддържа работа с пакетни заявки - по този начин създаването на временна таблица и нейното използване се поставят в една заявка. Пакетната заявка е поредица от заявки, разделени с точка и запетая (";"). Заявките в пакета се изпълняват една след друга. Резултатът от изпълнението на пакетна заявка, в зависимост от използвания метод, ще бъде или резултатът, върнат от последната заявка в пакета, или масив от резултати от всички заявки в пакета в последователността, в която заявките в пакета следват .
  • Извличане на представяния на референтни полета. Всяка обектна таблица (в която се съхранява справочник или документ) има виртуално поле - „Изглед“. Това поле съдържа текстово представяне на обекта и улеснява работата на създателя на отчета. И така, за документ това поле съдържа цялата ключова информация - името на типа документ, неговия номер и дата (например „Продажба 000000003 от 06.07.2017 17:49:14“), спестявайки на разработчика от писане на изчисляемо поле.
  • и т.н.
Механизмът за заявка автоматично променя заявката, като взема предвид ролите, към които принадлежи потребителят, от чието име се изпълнява заявката (т.е. потребителят ще вижда само данните, които има право да вижда) и функционалните опции (т.е. в съответствие с тези, конфигурирани във функционалността на приложното решение).

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

Например:

  • ИЗБИРАМ. Това изречение описва полетата, които потребителят ще може да избира за извеждане. След тази ключова дума се изброяват псевдоними на полета от основния списък за избор на заявка, които ще бъдат достъпни за конфигуриране, разделени със запетаи. Пример: (ИЗБЕРЕТЕ артикул, склад)
  • КЪДЕТО. Описани са полетата, върху които потребителят може да приложи избор. Това предложение използва таблични полета. Използването на псевдоними на полета в списъка за избор не е разрешено. Всяка част от обединението може да съдържа свой собствен елемент WHERE. Примери: (WHERE Item.*, Warehouse), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
  • и т.н.
Пример за използване на разширения:

Език за изразяване на състава на данни

Езикът за изразяване на състава на данни е предназначен за писане на изрази, използвани по-специално за описание на персонализирани изрази на полета. SKD ви позволява да дефинирате персонализирани полета в отчет, като използвате вашите собствени изрази или набори от опции с условия за техния избор (аналогично на CASE в SQL). Персонализираните полета са подобни на изчислените полета. Те могат да бъдат зададени както в конфигуратора, така и в режим 1C:Enterprise, но функциите на общите модули не могат да се използват в персонализирани изрази на полета. Следователно персонализираните полета са предназначени по-скоро за потребителя, отколкото за разработчика.

Пример:

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

Когато създаваме отчет, трябва да създадем оформление, което определя как данните ще бъдат показани в отчета. Можете да създадете оформление въз основа на диаграма на оформление на данни. Диаграмата на оформлението на данните описва същността на данните, които се предоставят на отчета (откъде да вземете данните и как можете да контролирате тяхното оформление). Схемата за съставяне на данни е основата, на която могат да се генерират всякакви отчети. Схемата за съставяне на данни може да съдържа:
  • текст на заявка с инструкции за системата за съставяне на данни;
  • описание на множество набори от данни;
  • подробно описание на наличните полета;
  • описване на връзки между множество набори от данни;
  • описание на параметрите за събиране на данни;
  • описание на оформлението и групирането на полета;
  • и т.н.

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

Резултатът от стартирането на дизайнера на заявки ще бъде текстът на заявката (на езика на заявките 1C:Enterprise). Този текст може да се коригира ръчно, ако е необходимо:

Може да има няколко набора от данни в схема на оформление на данни, набори от данни могат да бъдат свързани в оформлението по всякакъв начин, могат да се добавят изчислени полета, могат да се уточняват параметри на отчета и т.н. Струва си да се спомене една интересна функция на механизма за заявки в 1C:Enterprise. Заявките в крайна сметка се превеждат в диалект на SQL, специфичен за СУБД, с която приложението директно работи. Като цяло се опитваме да използваме максимално възможностите на СУБД сървърите (ограничени сме от факта, че използваме само онези възможности, които са налични едновременно във всички СУБД, поддържани от платформата 1C:Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL). По този начин, на ниво заявка в изчисляеми полета, можем да използваме само тези функции, които са преведени в SQL.

Но на нивото на схемата за съставяне на данни вече можем да добавяме персонализирани полета и да използваме функции в тях във вградения език за разработка на 1C (включително тези, написани от нас), което значително разширява възможностите на отчетите. Технически изглежда така - всичко, което може да се преведе в SQL, се превежда в SQL, заявката се изпълнява на ниво СУБД, резултатите от заявката се поставят в паметта на сървъра на приложения 1C и SKD изчислява за всеки запис стойностите ​​на изчислени полета, чиито формули са написани на езика 1C.


Добавяне на персонализирани полета

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


Дизайнер на отчети


Доклад за времето на изпълнение

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

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

  • Разработчикът по време на проектиране с помощта на дизайнер (или по време на изпълнение с помощта на код) определя схемата за оформление на данните:
    • Текст на искането/заявките
    • Описание на изчисляемите полета
    • Връзки между заявките (ако има няколко от тях)
    • Опции за отчет
    • Настройките по подразбиране
    • и т.н.
  • Горните настройки се записват в оформлението
  • Потребителят отваря отчет
    • Евентуално прави допълнителни настройки (например променя стойностите на параметрите)
    • Щракнете върху бутона „Генериране“.
  • Потребителските настройки се прилагат към схемата за съставяне на данни, дефинирана от разработчика.
  • Формира се междинно оформление за съставяне на данни, съдържащо инструкции откъде да се получават данни. По-специално заявките, посочени в оформлението, се коригират. По този начин полетата, които не се използват в отчета, се премахват от заявката (това се прави с цел минимизиране на количеството получени данни). Всички полета, които участват във формулите за изчислени полета, се добавят към заявката.
  • Процесорът за композиране на данни влиза в игра. Процесорът за оформление изпълнява заявки, свързва набори от данни, изчислява стойности за изчислени полета и ресурси и извършва групиране. С една дума, той прави всички изчисления, които не са извършени на ниво СУБД.
  • Процесорът за извеждане на данни стартира заявка за изпълнение и показва получените данни в документ с електронна таблица, диаграма и др.


Процесът на генериране на отчет с помощта на ACS механизма

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

Персонализирани настройки

Всички ACS инструменти са достъпни както за разработчика, така и за крайния потребител. Но практиката показва, че крайният потребител често е уплашен от изобилието от възможности на инструментите. Освен това в повечето случаи крайният потребител не се нуждае от цялата мощ на настройките - достатъчно е той да има бърз достъп до настройка на един или два параметъра на отчета (например период и контрагент). Започвайки от определена версия на платформата, разработчикът на отчети има възможност да маркира кои настройки на отчета са достъпни за потребителя. Това става чрез квадратчето за отметка „Включване в потребителските настройки“. Освен това настройките на отчета вече имат флаг „Режим на показване“, който приема една от трите стойности:
  • Бърз достъп. Настройката ще се покаже директно в горната част на прозореца на отчета.
  • Обикновен. Настройката ще бъде достъпна чрез бутона „Настройки“.
  • Не е наличен. Настройката няма да бъде достъпна за крайния потребител.


Задаване на режим на показване във времето за проектиране


Показване на настройката в режим на бърз достъп по време на изпълнение (под бутона Генериране)

Планове за развитие

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

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