İstifadəçi böyük hesabatı açır və ekran onlarla saniyə “donur”. Başqa istifadəçi zəif internet üzərindən işləyir və hər kliklə gözləyir. Belə hallar 1C platformasının inkişafında əsas arxitektura dəyişikliyinə, yəni idarə olunan tətbiqə (Управляемое приложение) gətirib çıxarıb.
Bu məqalədə idarə olunan tətbiqin nə olduğunu, adi tətbiqdən nə ilə fərqləndiyini, müştəri-server arxitekturasının necə qurulduğunu, asinxron modelin səbəbini və istifadəçi parametrlərinin rolunu nümunələrlə izah edirik.
1Adi tətbiq və idarə olunan tətbiq
İdarə olunan tətbiq 1C:Enterprise platformasının 8.2 versiyasında təqdim olunub və 8.3 ilə inkişaf etdirilib. Bu, yalnız yeni görünüş deyil, formaların təsvir edilməsi, kodun icra olunduğu yer və müştəri ilə server arasındakı əlaqə ilə bağlı yeni yanaşmadır.
Burada tez-tez rast gəlinən bir qarışıqlığı aydınlaşdıraq. Qalın müştəri (Толстый клиент) müştəri proqramının növüdür, “köhnə model” adı deyil. Əsl müqayisə adi tətbiq (Обычное приложение) ilə idarə olunan tətbiq arasında aparılır.
| Rejim | Qalın müştəri | Nazik müştəri | Veb-müştəri |
|---|---|---|---|
| Adi tətbiq | Bəli | Xeyr | Xeyr |
| İdarə olunan tətbiq | Bəli | Bəli | Bəli |
Cədvəldən görünür ki, nazik müştəri və veb-müştəri yalnız idarə olunan tətbiqdə işləyir. Qalın müştəri isə hər iki rejimi başlada bilir. Platformanın başlatma rejimi konfiqurasiyada və başlatma parametrlərində müəyyən edilir.
Əsas fikir: adi tətbiqdə forma müştəridə hazırlanır, idarə olunan tətbiqdə isə forma təsvir edilir və müştəri ilə server arasında bölüşdürülmüş şəkildə icra olunur. Bu yanaşma veb-müştərinin və mobil platformanın əsasını təşkil edir.
2Müştəri-server arxitekturası
Müştəri-server rejimində 1C server klasteri ilə verilənlər bazası idarəetmə sistemi (DBMS) arasında iş bölünür. İstifadəçi tərəfində isə yüngül müştəri işləyir.
| Proses | Rolu |
|---|---|
ragent | Server agenti: klasterin işə salınmasını və prosesləri idarə edir |
rmngr | Klaster meneceri: klasterin ümumi idarəsi və paylaşma |
rphost | İşçi proses: tətbiq kodunu icra edir və DBMS ilə əlaqə qurur |
Bu arxitekturada ağır əməliyyatlar (hesabat formalaşdırma, sənədlərin emalı, verilənlərlə iş) serverdə icra olunur. Müştəriyə yalnız interfeysi göstərmək və istifadəçi hərəkətlərini emal etmək üçün lazım olan məlumat ötürülür.
Vacib dəqiqləşdirmə: klaster və rphost yalnız müştəri-server rejimində var. Fayl rejimində idarə olunan tətbiq də işləyir, lakin server kodu həmin kompüterdə müştərinin öz prosesində icra olunur. Ona görə performans üstünlüyü əsasən müştəri-server rejimində hiss olunur və real nəticə infrastrukturun sazlanmasından, bazanın həcmindən və tətbiqin quruluşundan asılıdır.
3Kontekst direktivləri və server çağırışları
İdarə olunan formada hər prosedur müştəridə, ya serverdə icra olunur. Bunu prosedurun əvvəlindəki direktiv müəyyən edir.
| Direktiv | Harada icra olunur? | Form məlumatlarına çıxış |
|---|---|---|
&НаКлиенте | Müştəridə | Var |
&НаСервере | Serverdə | Var (formanın konteksti ilə) |
&НаСервереБезКонтекста | Serverdə | Yoxdur, yalnız parametrlərlə işləyir; daha az məlumat ötürülür |
&НаКлиентеНаСервереБезКонтекста | Həm müştəridə, həm serverdə çağırıla bilər | Yoxdur |
Müştəridən serverə hər müraciət şəbəkə üzərindən gediş-gəliş deməkdir. Çox sayda kiçik server çağırışı yavaş işləyən interfeysin ən tipik səbəbidir.
&НаКлиенте
Процедура HamisiniEmalEt()
Для Каждого Setir Из Объект.Mallar Цикл
QiymetiYenile(Setir.НомерСтроки);
КонецЦикла;
КонецПроцедуры&НаКлиенте
Процедура HamisiniEmalEt()
QiymetleriYenile();
КонецПроцедуры
&НаСервере
Процедура QiymetleriYenile()
Для Каждого Setir Из Объект.Mallar Цикл
// bütün sətirlər serverdə emal olunur
КонецЦикла;
КонецПроцедурыBirinci variantda 100 sətir üçün 100 server müraciəti olur, ikincidə isə bir. Qayda sadədir: müştəri kodu qərarı verir, ağır iş isə bir çağırışla serverdə görülür.
4Asinxron model
Adi tətbiqdə Вопрос() kimi funksiyalar modal pəncərə açır: istifadəçi cavab verənə qədər kod dayanır, sonra davam edir. Veb-brauzerlər belə dayandırıcı pəncərələri sərbəst dəstəkləmir, mobil mühit üçün də uyğun deyil. Ona görə idarə olunan tətbiqdə modal çağırışların əvəzinə asinxron metodlardan istifadə olunur: sual göstərilir, kod isə dayanmadan davam edir, cavab gələndə ayrıca prosedur çağırılır.
// Adi tətbiqdə
Cavab = Вопрос("Sənədi silək?",
РежимДиалогаВопрос.ДаНет);
Если Cavab = КодВозвратаДиалога.Да Тогда
SenediSil();
КонецЕсли;&НаКлиенте
Процедура SilNaxis(Команда)
Bildiris = Новый ОписаниеОповещения(
"SilmeniTesdiqle", ЭтотОбъект);
ПоказатьВопрос(Bildiris, "Sənədi silək?",
РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура SilmeniTesdiqle(Netice, Parametr) Экспорт
Если Netice = КодВозвратаДиалога.Да Тогда
SenediSil();
КонецЕсли;
КонецПроцедурыОписаниеОповещения hazırlanır: cavabdan sonra hansı prosedur çağırılacaqПоказатьВопрос sualı göstərir və dərhal geri qayıdırDiqqət: ПоказатьВопрос sualı göstərəndən sonra dərhal növbəti sətrə keçir. Cavaba görə icra olunmalı hər şey geri çağırış prosedurunda olmalıdır, sualdan sonrakı sətirdə yox. İstifadəçi pəncərəni cavabsız bağlayarsa, Netice Неопределено ola bilər, bunu yoxlayın.
Platformada modallıqdan istifadənin konfiqurasiya səviyyəsində idarə olunmasına imkan verən xüsusi xassə var. Onun adı və dəstəklənən variantları platformanın versiyasından asılıdır, ona görə öz mühitinizdə yoxlayın.
5İstifadəçi parametrləri
İdarə olunan formalar metaməlumatlar əsasında qurulur, ona görə istifadəçi interfeysin bir hissəsini kod yazmadan özü uyğunlaşdıra bilər. Tətbiqin verdiyi imkanlardan asılı olaraq istifadəçi aşağıdakıları edə bilər.
| İstifadəçi nə edə bilər? | Nümunə | Proqramçının rolu |
|---|---|---|
| Formanı fərdiləşdirmək | Sahələri gizlətmək, yerini dəyişmək | Formanı elə qurmaq ki, sahələr məntiqi qruplarda olsun |
| Siyahını tənzimləmək | Sütunların sırası, eni, görünməsi | Siyahıda mənalı sütunların mövcudluğunu təmin etmək |
| Filtr və çeşidləmə | Müştəri üzrə, tarix üzrə seçim | Filtr üçün uyğun sahələri açıq saxlamaq |
| Standart görünüşə qayıtmaq | Qarışdırdığı tənzimləməni sıfırlamaq | Standart quruluşun düzgün olmasına nəzarət etmək |
Bu parametrlər adətən istifadəçi üzrə informasiya bazasında saxlanılır, buna görə əməkdaş başqa kompüterdən daxil olanda da öz görünüşünü ala bilər. Dəqiq saxlama mexanizmi və menyu adları interfeysin və platformanın versiyasından asılıdır.
Praktiki tövsiyə: istifadəçi parametrləri konfiqurasiyanı dəyişmir, yalnız həmin istifadəçinin görünüşünə təsir edir. Standart formanı aydın və məntiqli qurun: ən yaxşı fərdiləşdirmə lazım olmayan fərdiləşdirmədir.
6Praktik qaydalar
| Qayda | Səbəb |
|---|---|
| Server çağırışlarının sayını azaldın | Hər çağırış müştəri ilə server arasında gediş-gəliş deməkdir |
| Ağır emalı serverdə, qərarı müştəridə qurun | Müştəri yüngül qalır, server emalı mərkəzləşdirilir |
| Modal funksiyalardan istifadə etməyin | Veb-müştəri və mobil mühitdə işləmirlər |
| Cavabdan asılı kodu geri çağırış prosedurunda yazın | Asinxron sualdan sonrakı sətir cavabı gözləmir |
| Yaxşı standart forma qurun | İstifadəçinin fərdiləşdirməyə ehtiyacı azalır |
| Performansı real şəraitdə ölçün | Nəticə infrastrukturdan və bazanın həcmindən asılıdır |
?Özünü yoxla
Əvvəl cavabı özünüz düşünün, sonra açıqlamanı oxuyun.
1. Qalın müştəri ilə idarə olunan tətbiq eyni səviyyəli anlayışlardırmı?
Xeyr. Qalın müştəri müştəri proqramının növüdür. Müqayisə adi tətbiq ilə idarə olunan tətbiq arasında aparılır və qalın müştəri hər iki rejimi başlada bilir.
2. Veb-müştəri hansı tətbiq rejimində işləyir?
Yalnız idarə olunan tətbiqdə. Adi tətbiq veb-müştəridə işləmir.
3. rphost nə edir?
Server klasterinin işçi prosesidir: tətbiq kodunu icra edir və verilənlər bazası ilə əlaqə qurur.
4. Niyə hər sətir üçün ayrıca server çağırışı pis yanaşmadır?
Hər çağırış şəbəkə üzərindən gediş-gəliş tələb edir və çoxlu çağırış interfeysi yavaşladır. Daha yaxşısı bütün işi bir server çağırışında görməkdir.
5. ПоказатьВопрос çağırışından sonrakı sətir cavabı gözləyirmi?
Xeyr. Cavaba görə kod geri çağırış prosedurunda icra olunmalıdır.
6. İdarə olunan tətbiq həmişə avtomatik sürət artımı verirmi?
Xeyr. Nəticə rejimdən (fayl və ya müştəri-server), infrastrukturdan, bazanın həcmindən və tətbiqin quruluşundan asılıdır.
Yekun
İdarə olunan tətbiq 1C-də interfeysi, icranın bölüşdürülməsini və müştəri ilə server əlaqəsini yenidən qurur. Düzgün istifadə olunduqda yüngül müştərilərə, veb-müştəriyə və fərdiləşdirilə bilən interfeysə şərait yaradır. Yadda saxlamaq üçün:
- Adi tətbiq ilə idarə olunan tətbiqi müqayisə edin, qalın müştəri ayrı anlayışdır.
- Server çağırışlarının sayını azaldın, ağır işi serverdə görün.
- Modal pəncərələrin əvəzinə asinxron metodlardan və geri çağırışdan istifadə edin.
- Performans zəmanət deyil, ölçülməlidir.
Sizin formanızda ən çox hansı əməliyyat serverə lazımsız gediş-gəliş yaradır?
Qeyd: direktivlər, metodlar və menyu adları 1C platformasının versiyasından asılı ola bilər. Nümunələri öz mühitinizdə sınaqdan keçirin.







