====== Системни Източници, Изгледи и Списъци за избор ====== Много удобно в практиката е да има стандартен комплект от справки, скриптове и списъци, които да се използват за основа, върху която да се правят различни допълнения и разширения поискани от конкретния клиент, но да не могат да бъдат променяни. При необходимост на тяхна разновидност, може да се направят като отделни източници на данни с копиране или експорт и импорт като нови. Целта е да може при ъпгрейд, стандартните източници и изгледи да се ъпгрейдват автоматично. Това позволява нови техни разновидности да се правят на база на най-последната версия (с имплементирани всички новости и промени). Също така, когато даден източник е в оригиналния си вид и не е променян, той може да бъде използван като референтен при нови справки, скриптове и списъци. \\ Право на избор е, дали да се работи директно със "стандартен" източник, с което се рискува при ъпгрейд нещо да се повреди, но се печелят автоматични обновления на кода и изгледа (ако има такива). За покриване на този начин на работа в системата е реализиран начин за **маркиране на източници на данни, изгледи и списъци за системни**.\\ **Системните Източници, Изгледи и Списъци, не може да се трият или редактират** през потребителският интерфейс на програмата (те са "read only"). **Системеният запис** винаги е с **отрицателно ID**. Променени са класовете за експорт и импорт на източниците и изгледите, така че при дублиране на системен източник, полученият източник и изглед да не са системни. Самото конвертиране в системен запис се извършва със съответните бутони "Конвертирай като системен" в **Списъци за избор** и **Справки/Скриптове**. Те са видими само за системния потребител. {{:sluzebni:butoni_za_konvertirane.png|}} {{:sluzebni:buton_konv.spisak.png|}} **Редовете** със **системни записи** са в **сиво и неактивни**. Не е редно да се конвертира изглед да стане системен, без източника да стане системен. {{:sluzebni:ocvetiavane_sistemni_sp..png?700|}} {{:sluzebni:ocvetiavane_sistemni_izt..png?700|}} Важно е да се има предвид, че копирането на източници, изгледи и списъци към системни не може да се извършва при наличие на синхронизационни тригери. За да може да се разграничават системните изгледи на формите от останалите и с цел избягване на проблеми с настъпване на записи с еднакви ID-та, /* от [[vavedenie:kakvo_novo|релийз 2016.12]] е направено така, че */ в тригерите по инсърт и ъпдейт се прави проверка, дали е лейаут на справка, дали е за основната роля и ако това е изпълнено се взима следващото поредно ID с отрицателен знак. ==== Системни (стандартни) стойности във всички таблици ==== При стартиране на нов проект (нова клиентска база) особено полезно би било наличието на **системни стойности** (константи), които са стандартни за всички бази и са основен комплект от записи, които служат за основа, върху която да се правят различни допълнения и разширения поискани от конкретния клиент. Основната идея е, че тези системни стойности (сист. позиции, сист. мерни единици, сист. групи, сист. типове ТД, системни списъци) се **въвеждат** и **поддържат** в **референтна база**, с която се ъпгрейдват клиентските бази. \\ Може да има например системни типове ТД, които участват в системни списъци с типове ТД, които са параметри на системни справки; системни артикули, в системни групи, със системни мерни единици; тези системни артикули участват често в настройки на скриптове и типове ТД. Критерият, че **даден запис е системен** е **отрицателен главен ключ** в таблиците. В програмата за ъпгрейд е налична функционалност за сравнение с базата на клиента и уеднаквяване на системните записи с тези в референтната база (новите се вмъкват, старите се актуализират, излишните се изтриват). Добавена е **опция** за избор **при ъпгрейд** за **"Изтриване на системни записи, които не съществуват в референтната"**. Маркирането й задейства **изтриване на системни записи**, които **не съществуват в референтната база за ъпгрейд**, а **съществуват само в клиентската база**, която се ъпгрейдва. \\ По подразбиране опцията не е включена. {{:sluzebni:opcia_pri_upgrade.png?600|}} ===== Редакция на системни записи ===== Потребителят, който е отговорен да създава системни източници, изгледи, списъци би трябвало да може и да ги редактира, тъй като би било удачно те да могат да се донастройват и подобряват в зависимост от начина им на работа. Например: Настройва се Източник по подходящ начин със съответния Изглед, преобразуват се в системни и започват да се използват. В процеса на работа обаче се оказва, че се налага да се коригира няколко пъти. Ако това се прави от програмист би било много бавно и неефективно. Затова е реализирана възможност да може и да се **редактират системни записи** посредством избор на **бутон „Редакция на системен източник/изглед/списък“** (скрит е по подразбиране). \\ Такова право има само потребителят, поддържащ референтната база за ъпгрейд с всички системни записи. {{:sluzebni:b.redakcia_na_spisaci.png|}}