Veb mijoz rejimida foydalaning. 1C: Enterprise bilan ishlash uchun veb-serverlarni sozlash

Chop etish (Ctrl+P)

1C: Enterprise bilan ishlash uchun veb-serverlarni sozlash

1. Umumiy ma’lumotlar

Ushbu maqola veb-serverlarni veb-mijoz va veb-xizmatlar bilan ishlash uchun sozlash mexanizmini tavsiflaydi, shuningdek, OpenID autentifikatsiyasini qo'llab-quvvatlashni o'rnatadi. Nashr etilgandan so'ng, nashr etilgan komponentlarga quyidagi tarzda kirish mumkin:
● Veb mijozga kirish. Veb-mijozni ishga tushirish uchun siz quyidagi qoidalarga muvofiq tuzilgan manzildan foydalanishingiz kerak: <Имя хоста веб-сервера>/<Имя виртуального каталога> . Agar virtual katalog nomi DemoCfg bo'lsa, veb-mijozni ishga tushirish uchun quyidagi URL manzilini kiritishingiz kerak (mahalliy mashinadan kirish uchun): http://localhost/DemoCfg.
● Veb-xizmatga murojaat qilish. Veb-xizmatga kirish uchun siz quyidagi tarzda tuzilgan manzildan foydalanishingiz kerak:
<Veb-server host nomi>>/<Имя виртуального каталога>/ws/<Имя Web-сервиса> yoki <Имя хоста веб-сервера>/<Имя виртуального каталога>/ws/<Адрес Web-сервиса> .
Shunday qilib, agar virtual katalog DemoWS nomiga ega bo'lsa, konfiguratorda veb-xizmat nomi quyidagicha ko'rsatiladi. DemonstrationWorkWS, va DemoWorkWS manzil sifatida ko'rsatilgan bo'lsa, veb-xizmatga bir vaqtning o'zida ikkita manzilda kirish mumkin (mahalliy mashinadan kirish uchun):
http://localhost/DemoWS/ws/WS namoyishi yoki http://localhost/DemoWS/ws/DemoWorkWS.
Veb-xizmatlar haqida ko'proq o'qing.
● HTTP xizmatiga qo'ng'iroq qilish. HTTP xizmatiga kirish uchun siz quyidagi tarzda tuzilgan manzildan foydalanishingiz kerak:
<Имя хоста веб-сервера>/<Имя виртуального каталога>/hs/<путь к ресурсу>.
HTTP xizmatlari haqida ko'proq ma'lumot olish uchun bu yerga qarang.
● OpenID autentifikatsiyasi tizim tomonidan avtomatik ravishda amalga oshiriladi.
Internet Information Services (keyingi o'rinlarda IIS) oilasining veb-serverlari operatsion tizim bilan ta'minlangan va qaysi veb-serverdan foydalanayotganingizni tushunishni osonlashtirish uchun bu erda veb-server versiyasi va veb-server o'rtasidagi yozishmalar jadvali keltirilgan. operatsion tizim:

IIS versiyasi Operatsion tizim versiyasi
IIS 5.1 Windows XP Professional
IIS 6.0 Windows Server 2003 yoki Windows XP Professional x64 Edition
IIS 7.0 Windows Vista yoki Windows Server 2008
IIS 7.5 Windows 7 yoki Windows Server 2008 R2
IIS 8.0 Windows 8 yoki Windows Server 2012
IIS 8.5 Windows 8.1 yoki Windows Server 2012 R2
IIS 10.0 Windows 10

Apache veb-server tarqatilishini (ham Windows, ham Linux OS uchun) loyiha veb-saytidan olish mumkin: http://httpd.apache.org/download.

2. Umumiy talablar

Siz nashr etadigan kompyuterda qo'llab-quvvatlanadigan veb-server o'rnatilgan va sozlangan bo'lishi kerak. Internet Information Services veb-serverini o'rnatish uchun siz foydalanayotgan operatsion tizim uchun tarqatish paketi kerak bo'lishi mumkin. Veb-serverni o'rnatishda siz ISAPI kengaytmalarini qo'llab-quvvatlashni o'rnatishingiz kerak. Veb-serverni o'rnatish uchun kerakli veb-server o'rnatiladigan kompyuterda ma'muriy huquqlar talab qilinadi. Nashr qilish ikki yo'l bilan amalga oshirilishi mumkin:
● Agar veb-serverga ega kompyuter kerakli bit chuqurligi konfiguratorini ishga tushirish imkoniyatiga ega bo'lsa, veb-serverda nashr qilish dialog oynasidan foydalanish.
● Webinst yordam dasturidan foydalanish (1C: Enterprise ning 32-bitli versiyasining bin katalogidan webinst yordam dasturiga qo'ng'iroq qiling).

Veb-serverlarga nashr qilish uchun siz nashr qilayotgan kompyuterda ma'muriy imtiyozlarga ega bo'lishingiz kerak:

● Windows Vista va undan yuqori versiyalarida nashr qilish uchun element yordamida konfiguratorni ishga tushirishingiz kerak Administrator sifatida ishga tushirish ilova yoki ishga tushirgichning kontekst menyusi. Agar nashr qilish webinst yordam dasturi yordamida amalga oshirilsa, u holda yordamchi dasturning o'zi yoki Windows buyruq qatori tarjimoni administrator sifatida ishga tushirilishi kerak.
● Linux OS uchun nashr qilish uchun siz su buyrug'i yordamida superuser (root user) bo'lishingiz yoki sudo buyrug'i yordamida nashr etuvchi ilovani ishga tushirishingiz kerak.

Nashr qilmoqchi bo'lganingizda, tizim operatsiyani bajarish uchun kerakli imtiyozlarga ega ekanligingizni tekshiradi. Agar joriy foydalanuvchining imtiyozlari nashrni amalga oshirish uchun etarli bo'lmasa, u holda:

● Konfiguratordan nashr qilishda foydalanuvchidan nashr etishni davom ettirish kerakligi so'raladi. Muloqotda (muloqotning) paydo bo'lish sababi ko'rsatilgan va kerakli imtiyozlarni qanday olish bo'yicha tavsiyalar mavjud.
● Webinst yordam dasturidan foydalangan holda nashr qilishda foydalanuvchi diagnostika xabarini oladi, lekin nashr qilish davom etadi.

Nashr qilish faqat 1C: Enterprise veb-serverli kompyuterda joylashgan bo'lsa mumkin.
Agar Directory xususiyati (yoki webinst yordam dasturining dir parametri) katalogga ishora qilsa, IIS 7.x va undan keyingi veb-serverlar uchun nashr etish qo‘llab-quvvatlanmaydi. %SYSTEMDRIVE%\Inetpub\wwwroot.
ESLATMA. Veb-server orqali konfiguratsiya bilan ishlash uchun konfiguratsiya bo'sh bo'lmasligi kerak.

3. Nashr qilish turlari

3.1. Umumiy nashr sxemasi

Umumiy nashr sxemasi quyidagicha:

● veb-serverga mos keladigan so'rovni qayta ishlash moduli (veb-server kengaytmasi moduli) ro'yxatga olingan;
● virtual ilova veb-serverda ro'yxatdan o'tgan;
● virtual ilovalar katalogi yaratiladi va unga default.vrd fayli joylashtiriladi va sozlanadi;
● foydalanuvchilarga ma'lumotlar bazasi fayli bilan katalogga huquqlar beriladi (faqat fayl opsiyasi uchun).

Veb-mijozni nashr qilish uchun siz veb-mijoz yordamida kirishni rejalashtirgan ma'lumotlar bazasi bilan ishlash uchun ishlatiladigan 1C: Enterprise versiyasidan foydalanishingiz kerak. Agar kompyuteringizda ikkita versiya o'rnatilgan bo'lsa, masalan, 8.3.3.100 va 8.3.3.150 va 1C: Enterprise serverining 8.3.3.150 versiyasi ishlayotgan bo'lsa, nashr qilish uchun siz aynan bir xil versiyadagi konfigurator yoki webinst yordam dasturidan foydalanishingiz kerak.
Nashr qilayotganda, ro'yxatdan o'tgan veb-server kengaytmasining bitligi veb-serverning o'ziga mos kelishi kerakligini unutmang.

IIS veb-serveriga nashr qilishda quyidagilarni yodda tuting:
● Nashr qilish har doim standart veb-saytda amalga oshiriladi;
● Nashr qilish har doim standart dastur puli (DefaultAppPool) uchun amalga oshiriladi;
● 1C: Enterprise dasturini ishga tushirish uchun foydalaniladigan ilovalar puli uchun .NET muhitini qo‘llab-quvvatlash o‘chirib qo‘yilishi kerak. Buni amalga oshirish uchun .NET Framework Versions ilovalar hovuz xususiyatini Boshqariladigan kod yo'q ga o'rnating.
Konfiguratordan nashr qilish uchun siz nashr qilish dialog oynasidan foydalanishingiz kerak ( Ma'muriyat - veb-serverda nashr etilmoqda…).

Guruch. 1. Veb-serverda nashr qilish

Keyin quyidagilarni qilishingiz kerak:
● Nom maydoniga virtual katalog nomini kiriting, virtual katalog nomi faqat lotin harflaridan iborat bo'lishi mumkin;
● Veb-server maydonida siz nashr etayotgan veb-server turini belgilang.
● Katalog maydonida virtual katalogni tavsiflovchi fayllar joylashgan katalogning jismoniy joylashuvini belgilang. Apache veb-serveridan foydalanganda katalog nomi faqat lotin harflaridan iborat bo'lishi kerak.
● Ehtiyojga qarab belgilash katakchalarini tanlang Yupqa va veb-mijozlarni nashr eting va Web xizmatlarini nashr eting.
● IIS veb-serverida siz OT yordamida veb-serverga autentifikatsiya qilishni belgilashingiz mumkin.
● Agar kerak bo'lsa, nashr qilmoqchi bo'lgan veb-xizmatlarni tanlang. Manzil ustunini o'zgartirish mumkin. Ushbu ustun veb-xizmatning sinonimini belgilaydi. Siz veb-xizmatga ism yoki sinonim orqali kirishingiz mumkin.
● Agar kerak bo'lsa, nashr qilishning boshqa parametrlarini sozlang.
● Nashr qilish tugmasini bosish nashr qilish jarayonini boshlaydi. O'chirish tugmasini bosish tanlangan veb-serverdan nashrni olib tashlaydi.

Nashr qilgandan so'ng, quyidagi hollarda veb-serverni qayta ishga tushirish so'raladi:
● “1C:Enterprise” versiyasi o‘zgargan;
● veb-server kengaytmasi moduliga yo'l o'zgardi;
● Apache veb-server uchun yangi nashr tayyorlandi;
● nashr qilish o‘chirilgan.
Anonim autentifikatsiyadan va fayl ma'lumotlar bazasidan foydalanganda, nashr qilishda ma'lumotlar bazasi katalogiga kirish huquqiga ega bo'lgan foydalanuvchi tekshiriladi. Agar foydalanuvchi kerakli huquqlarga ega bo'lmasa, veb-server orqali ushbu ma'lumot bazasi bilan ishlashning mumkin emasligi haqida ogohlantirish beriladi. Ma'lumot bazasi bilan katalogga huquqlarni berish yoki veb-serverda operatsion tizim autentifikatsiyasidan foydalanish katagiga belgi qo'yish tavsiya etiladi.
Agar konfiguratordan nashr qilish imkoni bo'lmasa (masalan, 64-bitli Windows operatsion tizimidan foydalanilganda), nashr qilish quyidagi yordamida amalga oshirilishi mumkin.
Windows va Linuxda ikkala bit o'lchamida mavjud bo'lgan webinst buyruq qatori yordam dasturi. Nashr qilish dialogi quyida batafsil tavsiflanadi.
webinst yordam dasturi uchun buyruq qatori kalitlari.

3.2. Nashr qilish dialogi

Nashr qilish dialog oynasi webinst yordam dasturi yordamida nashr yaratish yoki shablon faylini nashrga tayyorlash uchun ishlatiladi (-descriptor buyruq qatori parametri yordamida).
Nashr yaratishda tahrir qilinishi mumkin bo'lgan barcha parametrlar ikkita yorliqda joylashgan. Keling, ularni batafsil ko'rib chiqaylik.

3.2.1. Dialog tugmalari

Nashr qilish tugmasi veb-serverda nashr etadi. Nashr qilishda diskda katalog yaratiladi va belgilangan veb-server 1C: Enterprise bilan ishlash uchun sozlanadi. Esda tutingki, IIS veb-serveriga nashr qilish har doim standart veb-sayt (Standart veb-sayt) va standart dastur hovuzi (DefaultAppPool) uchun amalga oshiriladi.
Linux OS ostida quyidagi harakatlar amalga oshiriladi:
● default.vrd fayli joylashgan katalog uchun egalar guruhi nomidan veb-server ishlaydigan foydalanuvchi guruhiga o'rnatiladi;
● default.vrd fayli nomidan veb-server ishlayotgan foydalanuvchini o'z ichiga olgan guruh uchun o'qishga kirish uchun o'rnatilgan.
Fayl ma'lumotlar bazasini nashr qilishda, infobase fayli bo'lgan katalog uchun egalar guruhi nomidan veb-server ishlaydigan foydalanuvchi guruhiga o'rnatiladi va egalar guruhining merosi ma'lumotlar bazasi bilan ishlashni ta'minlash uchun sozlanadi. .

Guruch. 2. Veb-serverda nashr qilish

O'chirish tugmasi, agar kerak bo'lsa, dasturni veb-serverdan va nashr qilish katalogidan olib tashlaydi.
Saqlash tugmasi veb-serverdagi nashr qilish dialog oynasida ko'rsatilgan parametrlarni faylga saqlaydi. Saqlashda tizim saqlash amalga oshiriladigan fayl nomi va joylashuvini so'raydi. Saqlash default.vrd fayl formatida amalga oshiriladi. Ushbu buyruq yordamida siz webinst yordam dasturining -descriptor parametri sifatida ishlatiladigan shablon fayllarini yaratishingiz mumkin. Nuqta elementining ib va ​​asosiy atributlarining qiymatlari fayl saqlanadigan ma'lumotlar bazasi parametrlarini o'z ichiga oladi.
Yuklash tugmasi tahrirlash uchun ixtiyoriy default.vrd faylini yuklash imkonini beradi. Yuklashda yuklangan faylning nuqta elementining ib va ​​tayanch atributlari e'tiborga olinmaydi.
Yopish tugmasi dialog oynasini yopadi.
Yordam tugmasi nashr qilish muloqot oynasi haqidagi yordam ma'lumotlari bilan oynani ochadi.

3.2.2. "Asosiy" yorlig'i
3.2.2.1. Umumiy parametrlar
Guruch. 3. Veb-serverda nashr qilish. Asosiy

Ushbu yorliqda siz asosiy nashr parametrlarini o'rnatishingiz mumkin.
Ism. Nashr nomini belgilaydi. Webinst yordam dasturidan foydalangan holda nashr qilishda -wsdir parametri bilan tavsiflanadi. default.vrd faylida nuqta elementining asosiy atributiga mos keladi.

Veb-server. Qaysi veb-serverga nashr qilinayotganini bildiradi. Apache veb-serverlari, agar ular kompyuterda aniqlansa, ro'yxatga qo'shiladi. Webinst yordam dasturi yordamida nashr qilishda foydalaniladigan veb-server iis, apache2, apache22 yoki apache24 parametrlaridan biri bilan belgilanadi. Linuxda ishlayotganda, nashr qilish faqat Apache veb-serverida mumkin.
Agar tizim kompyuterda o'rnatilgan Apache veb-serverining versiyasini aniq aniqlay olmasa (2.2 yoki 2.4), veb-serverning ikkala versiyasi ham ro'yxatda mavjud bo'ladi. Shuni hisobga olish kerakki, Apache veb-serverining 2.2 va 2.4 versiyalari uchun veb-server konfiguratsiya faylida kiritilgan o'zgarishlar bir-biridan farq qiladi. Shuning uchun veb-server versiyasini noto'g'ri ko'rsatish nashrning ishlamasligiga olib keladi.

Katalog Diskdagi default.vrd fayli joylashadigan va veb-server virtual katalogi xaritaga tushiriladigan jismoniy katalogni belgilaydi. Katalog mavjud bo'lishi kerak. Webinst yordam dasturidan foydalangan holda nashr qilishda u -dir parametri bilan tavsiflanadi.

Yupqa va veb-mijozni nashr eting. Yupqa va veb-mijoz yordamida nashr etilgan ma'lumotlar bazasi bilan ishlash qobiliyati uchun javobgardir. Agar katakcha belgilansa, nozik va veb-mijoz yordamida nashr etilgan ma'lumotlar bazasi bilan ishlash mumkin. default.vrd faylida nuqta elementining yoqish atributiga mos keladi.

Standart OData interfeysini nashr eting. Ilova yechimining standart OData interfeysiga kirish imkoniyati uchun javobgar. Standart OData interfeysining mexanizmi 1C: Enterprise 8.3 kitobida batafsilroq tavsiflangan. "Ishlab chiquvchilar uchun qo'llanma". default.vrd faylida nuqta elementining enableStandardOData atributiga mos keladi.

Tarqatishni nashr qilish. Mijoz ilovasi va server versiyalari mos kelmasa, mijoz ilovasini olish va o'rnatish mumkinligini aniqlaydi. Tarqatish sifatida zip arxividan foydalaniladi, uning to'liq nomi nashr etilgan tarqatish xususiyatining Location qiymati sifatida ko'rsatilgan. default.vrd faylida bu xususiyatlar nuqta elementining pubds t atributiga mos keladi. Arxiv bo'lishi kerak
mijoz ilovasining tarqatish to'plami joylashgan. O'rnatish 1cestart.cfg faylida ko'rsatilgan o'rnatish parametrlaridan foydalanadi (oddiy mijoz ilovasini o'rnatish bilan bir xil).

Operatsion tizim autentifikatsiyasidan foydalaning. Tizimga OS autentifikatsiya qilish imkoniyatini IIS veb-serveriga o'rnatish imkonini beradi.

Veb-mijoz tugashi bilan o'tish manzili veb-mijoz tugagandan so'ng o'tish amalga oshiriladigan URL manzilini belgilash imkonini beradi. default.vr faylida d exitURL elementiga mos keladi.

3.2.2.2. Veb-xizmatlar yorlig'i
Guruch. 4. Web xizmatlarini nashr qilish

Veb-xizmatlarni nashr qilish. Ushbu katakchani belgilash konfiguratsiyada yaratilgan va tasdiqlash qutisi ostidagi jadvalda keltirilgan veb-xizmatlarning nashr etilishiga olib keladi. default.vrd faylida ws elementining enbl e atributiga mos keladi. Agar bayroq o'chirilsa, bu default.vrd faylida ws elementining yo'qligi yoki enable atributi true qiymatiga o'rnatilgan ws elementining mavjudligi bilan tengdir.

Veb-xizmatlarni sukut bo'yicha nashr qilish. Ushbu ma'lumotlar bazasida foydalanish uchun aniq ruxsatisiz nashr etilgan veb-xizmatlardan foydalanish imkoniyati uchun javobgar. default.vrd faylida ws elementining pointEnableCommon atributiga mos keladi.
Quyidagi jadval katagiga belgi qo'ying Veb-xizmatlarni nashr qilish nashr etilgan veb-xizmatlar ro'yxatini o'z ichiga oladi va har bir veb-xizmatning nashrini boshqarish imkonini beradi. Birinchi ustun ma'lum bir veb-xizmatning nashr etilishini nazorat qiladi. Agar katakcha o'chirilgan bo'lsa, ushbu veb-xizmatdan foydalanish taqiqlanadi (uni chaqirib bo'lmaydi). default.vrd faylida nuqta elementining yoqish atributiga mos keladi.
Ikkinchi ustunda (Ism deb nomlangan) veb-xizmatning yaratilish vaqtida ko'rsatilgan nomi mavjud. Veb-xizmatlarning tavsifi 1C: Enterprise 8.3 kitobida keltirilgan. "Ishlab chiquvchilar uchun qo'llanma". default.vrd faylida nuqta elementining nom atributiga mos keladi.
Jadvalning oxirgi ustunida (Manzil deb nomlangan) nashr etilgan veb-xizmat nomining taxalluslari mavjud. Siz veb-xizmatga ism yoki taxallus orqali kirishingiz mumkin. Veb-xizmat taxallusni nashr qilish oynasida tahrirlash mumkin. default.vrd faylida u nuqta elementining taxallus atributiga mos keladi.
Bog'langan kengaytmalarda joylashgan veb-xizmatlar ushbu jadvalda ko'rsatilmaydi va faqat default.vrd faylini qo'lda tahrirlash orqali nashr etilishi mumkin.
Sukut bo'yicha kengaytmali veb-xizmatlarni nashr qilish. Konfiguratsiya kengaytmalarida taqdim etilgan veb-xizmatlardan foydalanish imkoniyati uchun javobgar. default.vrd faylida ws elementining publishExtensionsByDefault atributiga mos keladi.

3.2.2.3. HTTP xizmatlari yorlig'i

HTTP xizmatlari yorlig'i HTTP xizmatlaridan foydalangan holda dastur yechimiga kirish imkoniyatini boshqarish uchun mo'ljallangan.

Guruch. 5. HTTP xizmatlarini nashr qilish

Ushbu katakchani belgilash konfiguratsiyada yaratilgan va tasdiqlash qutisi ostidagi jadvalda keltirilgan HTTP xizmatlarini nashr etilishiga olib keladi. default.vrd faylida httpServices elementining publishByDefault atributiga mos keladi. Agar bayroq o'chirilgan bo'lsa, bu default.vrd faylida httpServices elementining yo'qligi yoki httpServices elementining mavjudligi bilan tengdir.
publishByDefault atributi noto'g'ri o'rnatilgan.

Quyidagi jadval katagiga belgi qo'ying Sukut bo'yicha HTTP xizmatlarini nashr qiling nashr etilgan HTTP xizmatlari ro'yxatini o'z ichiga oladi va har bir HTTP xizmatining nashrini boshqarish imkonini beradi. Birinchi ustun ma'lum bir HTTP xizmatining nashr etilishini nazorat qiladi. Agar katakcha o'chirilgan bo'lsa, ushbu HTTP xizmatidan foydalanish taqiqlanadi (uni chaqirib bo'lmaydi). default.vrd faylida xizmat elementining yoqish atributiga mos keladi.
Ikkinchi ustun (ismli) HTTP xizmatining yaratilish vaqtida ko'rsatilgan nomini o'z ichiga oladi. HTTP xizmatlarining tavsifi 1C: Enterprise 8.3 kitobida keltirilgan. "Ishlab chiquvchilar uchun qo'llanma". default.vrd faylida xizmat elementining nom atributiga mos keladi.
Bog'langan kengaytmalarda joylashgan HTTP xizmatlari ushbu jadvalda ko'rsatilmaydi va faqat default.vrd faylini qo'lda tahrirlash orqali nashr etilishi mumkin.

Sukut bo'yicha kengaytma HTTP xizmatlarini nashr qilish. Konfiguratsiya kengaytmalarida taqdim etilgan HTTP xizmatlaridan foydalanish imkoniyati uchun javobgardir. default.vrd faylida httpServices elementining publishExtensionsByDefaul t atributiga mos keladi.

3.2.3. "Boshqa" yorlig'i
Guruch. 6. Veb-serverda nashr qilishning boshqa variantlari

Ushbu yorliqda siz yordamchi nashr parametrlarini o'zgartirishingiz mumkin.

Vaqtinchalik fayllar katalogi. Veb-server kengaytmasini yoki ma'lumot bazasining fayl versiyasini ishga tushirish uchun vaqtinchalik fayllar katalogini belgilash imkonini beradi. default.vrd faylida nuqta elementining temp atributiga mos keladi.

Ulanish hovuz guruhi. default.vrd faylining hovuz elementini tavsiflaydi. Batafsil bu yerda oʻqing. Shuningdek, ushbu guruhning parametrlari ulanishni yo'qotishni kuzatish tizimining ishlashini nazorat qiladi.

Nosozliklarni tuzatish guruhi. default.vrd faylining disk raskadrovka elementini tavsiflaydi.

OpenI D guruhi default.vrd faylining openid elementini tavsiflaydi.

Ma'lumotlarni ajratish. default.vrd faylining zonalar elementini tavsiflaydi. Keling, ajratgichlar bilan jadvalning tuzilishini batafsil ko'rib chiqaylik.

Jadval konfiguratsiya yoki yuklangan faylda mavjud bo'lgan barcha mustaqil chegaralovchilarni o'z ichiga oladi. Birinchi ustun (nomsiz) tanlangan ajratuvchi uchun zona elementini yaratish yoki yo'qligini aniqlaydi. Shuni esda tutish kerakki, elementlarni moslashtirish ajratuvchi nomi bilan emas, balki uning ro'yxatdagi tartib o'rni bilan amalga oshiriladi. Agar birinchi ajratuvchi o'chirilgan bo'lsa, qolganlarini o'chirib qo'yish mantiqan to'g'ri keladi, chunki zonalar elementining parametrlari tizim tomonidan boshqa ajratgichlarga qo'llaniladi.
Nom ustunida umumiy atributning xususiyatlarida ko'rsatilgandek ajratuvchi nomi mavjud. Keyingi ustundagi katakcha zona elementidagi ajratuvchi qiymati o'rnatiladimi yoki yo'qligini aniqlaydi. Agar katakcha belgilansa, qiymat ustunidagi qiymat qiymat atributining qiymati sifatida ishlatiladi.
Belgilash va Xavfsiz ustunlaridagi belgilash katakchalari default.vrd faylining zona elementining xavfsiz va belgi atributlari (mos ravishda) uchun javobgardir.
Fayl versiyasi parametridagi Fon ishlari ma'lumotlar bazasining fayl versiyasida fon ishlaridan foydalanish imkoniyatini tavsiflaydi (ildiz nuqtasi elementining allowexecutescheduledjobs atributi).

Vazifa: foydalanuvchi ish stantsiyalarida 1C dasturi bilan ishlashni tezlashtirish.
Asboblar: platforma 1Sver8.2, konfiguratsiya korxona buxgalteriya hisobi KORP nashrlari 2.0 va 3.0, ish haqi konfiguratsiyasi va xodimlarni boshqarish. IIS veb-serverini, brauzerni, ish stantsiyasini o'rnatadigan Windows bilan server, garchi serverdan hamma narsani qilish shart emas.

Platformani o'rnatgandan so'ng 1C 8.2 kompyuterda biz 1C - 1C Enterprise va 1C Enterprise (nozik mijoz) ni ishga tushirish uchun bir nechta variantni ko'ramiz. Etkazib berish qutisidan ma'murning qo'llanmasini o'qib chiqqandan so'ng, men 8.2 platformasi 1C konfiguratsiyasi bilan bir necha usulda ishlashi mumkinligini tushundim:

  • Juda og'ir, semiz mijoz, ayniqsa qadimiy apparat uchun, 2005 yilda chiqarilgan Celeron 2.0 kabi avtobus chastotasi 400 MGz va 512 MB xotiraga ega shaxsiy kompyuterlarda 1C 8 bilan ishlashning iloji yo'q, dastur zamonaviy mahsulotni sotib olish quvonchini his qilish uchun osilib turadi. darhol yo'qoladi. Avvaliga, 7.7 versiyasidan so'ng, men nima uchun mijoz deb hayron bo'ldim 1C 8.2 juda ahmoq. Va men 1C dan ish uchun shaxsiy kompyuter tizim talablarini so'radim. Va ular shunday bo'lishi kerak 1C 8.2 uchun ish stantsiyasi uchun minimal tizim talablari:
  1. Operatsion tizim talablari:

1.1. Windows 2000, Service Pack 4 bilan

1.2. 3-xizmat to'plami bilan Windows XP

1.3. Windows Vista

  1. Tasodifiy kirish xotirasining minimal miqdori (RAM):

2.1. Windows 2000 SP4, Windows XP SP3 uchun - 256 MB

2.2. Windows Vista, Windows 7 uchun - 512 MB

  1. Protsessor talablari (CPU):

3.1. Intel va AMD kamida 1,8 gigagertsli chastotaga ega

  1. Video quyi tizimiga qo'yiladigan talablar:

4.1. Kamida 1024*768 dpi piksellar sonini qo'llab-quvvatlaydigan video adapter

4.2. Kamida 1024 * 768 dpi piksellar soniga ega monitor

  1. Dasturiy ta'minot litsenziyasini olish uchun Internetga kiring.

Bir qarashda 1C 8.2 eng talabchan dastur emas. Ammo shuni qo'shimcha qilmoqchimanki, ikki yadroli protsessor va operativ xotiraga ega kompyuterda 1C qalin mijoz bilan ishlash yoqimli. Oh 1 GB ichida va eskirgan uskunada bu juda noqulay.

  • Yupqa mijozdan foydalanish. U haqiqatan ham ishda tezroq tuyulardi va ishlash uchun boshqariladigan shakllardan foydalanadi. To'g'rirog'i, bu ish uchun kerak buxgalteriya nashri 3.0, Uchun buxgalteriya nashri 2.0 yupqa mijozda ishlash uchun dasturiy ta'minot interfeysi yo'q va oldinga qarab, veb-mijoz yo'q. Shunday qilib, 1C bilan ishlash uchun nozik mijozni ochganingizda, ish stoli yorlig'i va uchta juft tugmani ko'rsangiz va buxgalterga yana nima kerakligini, hisobotni o'tkazib yubormaslik uchun taqvim va hisoblash uchun kalkulyatorni o'ylasangiz hayron bo'lmang. ish haqi.
    Yupqa mijozda dastur ishlashi uchun mijoz tomonida joylashgan himoya kaliti va veb-serverda o'rnatilgan kalitdan foydalanish mumkin. 1C 8.2, va veb-serverda tarmoq kaliti bo'lishi kerak, ya'ni agar apparat bo'lsa, tarmoq ( qizil - tarmoq kaliti, ko'k - mahalliy bitta foydalanuvchi kaliti) va dasturiy ta'minot kalitining o'zi tarmoqqa asoslangan. Xo'sh, siz litsenziyalarni hisoblashingiz mumkin litsenziya menejeri, shunday 1C korporativ server agar sizda buning uchun litsenziya bo'lsa.
  • Veb mijoz, menimcha, dastur bilan ishlash uchun eng yaxshi yechim - bu dasturiy ta'minot platformaga bog'lanmagan va siz Internetga ulangan bo'lsangiz, hatto oydan ham ishlashingiz mumkin. Ishlayotganda, bu variant juda tez bo'lib tuyuldi, bu veb-serverga tushadi. Agar server tomonida kuchli uskunangiz bo'lsa, veb-mijoz orqali ishlash varianti yaxshi. 1C 8.2 veb-mijoz orqali ishlashda litsenziyalash veb-server, litsenziya menejeri yoki 1C serveri tomonidan amalga oshiriladi. Agar buxgalterlarning ish stantsiyalari parki uzoq vaqt davomida yangilanmagan bo'lsa, veb-mijoz 1C bilan ishlash uchun ideal echimdir.

Eslatma: veb-mijoz va nozik mijoz orqali bugungi kunda faqat u bilan ishlash mumkin ko'rinadi buxgalteriya hisobi 3.0, va hatto buxgalteriya hisobi 3.0 funksionalligi buxgalteriya hisobi 2.0 funksionalligiga etib bormagan bo'lsa ham, bu haqda bu erda o'qishingiz mumkin: http://www.1c.ru/news/info.jsp?id=15068 1C dan ish haqi va boshqariladigan shakllarga ega xodimlar uchun konfiguratsiyalar hali mavjud emas. Kompaniya tomonidan yozilgan konfiguratsiyadan foydalanish mumkin Kamin - "1C-Kamin: Ish haqi. Versiya 5.0"

Yupqa va bilan ishlash uchun 1C 8.2 ni sozlashvebmijoz

1C yupqa mijozi ishlashi uchun veb-serverni sozlash umuman shart emas, nozik mijoz ma'lumotlar bazasi va konfiguratsiya bilan mahalliy, tarmoq versiyasida, korporativ 1C serveri, veb-server orqali ishlashga imkon beradi.

Bilan ishlash uchun 1S8.2 Brauzer orqali veb-serverni sozlashingiz kerak. Buning uchun IIS ni o'rnating va sozlang

  • IIS o'rnatilmoqda

Dasturlarni o'rnatish, o'chirish -> windows komponentlarini o'rnatish -> dastur serveri -> kompozitsiya

  • Wwwroot papkasida biz veb-sayt uchun katalog yaratamiz 1c8x

  • Jildda 1c8x quyidagi tarkibga ega default.vrd faylini yarating


Xmlns:xs=http://www.w3.org/2001/XMLSchema
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
base="/1c8x"
ib="Fayl=C:\Base;">

Xususiyat asos yaratilgan virtual ilova papkasining nisbiy yo‘liga, atributga ishora qiladi ib ma'lumotlar bazasiga ulanish qatori bu holda ma'lumotlar bazasi veb-server bilan bir xil serverda joylashgan;

  • Yangisini yarating veb-sayt yoki virtual katalog

  • Keling, tugunni o'rnatishga o'tamiz, uy katalogi yorlig'i, bu erda hamma narsa standartdir:

  • Platformani o'rnatish 1S8X veb-serverga, o'rnatish vaqtida biz kengaytmali modullarni o'rnatishimiz kerak veb-server

  • Veb-xizmat adapterini ro'yxatdan o'tkazamiz. Buning uchun tugun xususiyatlarida 1C8x keling, uy katalogi yorlig'iga o'tamiz, ilovani sozlash uchun sozlash tugmasini bosing va kengaytma xaritasini, faylni qo'shing wsisapi.dll papkadan 1cv82\bin

  • Tizimlarni tahlil qilish va loyihalash
  • 1C: Enterprise texnologiyasining yoqimli xususiyatlaridan biri shundaki, boshqariladigan shakllar texnologiyasidan foydalangan holda ishlab chiqilgan dastur yechimi Windows, Linux, MacOS X uchun nozik (bajariladigan) mijozda ham, 5 ta brauzer uchun veb-mijoz sifatida ham ishga tushirilishi mumkin - Chrome, Internet Explorer, Firefox, Safari, Edge va bularning barchasi dasturning manba kodini o'zgartirmasdan. Bundan tashqari, tashqi tomondan, dastur nozik mijoz va brauzerda ishlaydi va deyarli bir xil ko'rinadi.
    10 ta farqni toping (kesim ostidagi 2 ta rasm):

    Linuxda yupqa mijoz oynasi:

    Xuddi shu oyna veb-mijozda (Chrome brauzerida):

    Nima uchun biz veb-mijoz yaratdik? Bir oz achinarli qilib aytganda, vaqt oldimizga shunday vazifa qo'ygan. Internet orqali ishlash uzoq vaqtdan beri biznes ilovalari uchun zaruriy shart bo'lib kelgan. Birinchidan, biz nozik mijozimiz uchun Internet orqali ishlash qobiliyatini qo'shdik (aytmoqchi, ba'zi raqobatchilarimiz buni to'xtatdilar; boshqalari, aksincha, nozik mijozdan voz kechib, veb-mijozni amalga oshirish bilan cheklanishdi). Biz foydalanuvchilarga o'zlariga mos keladigan mijoz variantini tanlash imkoniyatini berishga qaror qildik.

    Yupqa mijozga veb-ga asoslangan imkoniyatlarni qo'shish mijoz-server arxitekturasini to'liq o'zgartirish bilan katta loyiha edi. Veb-mijozni yaratish noldan boshlab mutlaqo yangi loyihadir.

    Muammoni shakllantirish

    Shunday qilib, loyiha talablari: veb-mijoz nozik mijoz bilan bir xil qilish kerak, xususan:
    1. Foydalanuvchi interfeysini ko'rsatish
    2. 1C tilida yozilgan mijoz kodini bajaring
    1C-dagi foydalanuvchi interfeysi vizual muharrirda tasvirlangan, ammo deklarativ ravishda, elementlarning piksel-piksel joylashuvisiz; O'nga yaqin interfeys elementlaridan foydalaniladi - tugmalar, kiritish maydonlari (matn, raqamli, sana/vaqt), ro'yxatlar, jadvallar, grafiklar va boshqalar.

    1C tilidagi mijoz kodi server qo'ng'iroqlari, mahalliy resurslar (fayllar va boshqalar) bilan ishlash, chop etish va boshqalarni o'z ichiga olishi mumkin.

    Yupqa mijoz (veb orqali ishlaganda) ham, veb-mijoz ham 1C dastur serveri bilan bog'lanish uchun bir xil veb-xizmatlardan foydalanadi. Mijozlarni amalga oshirish, albatta, har xil - nozik mijoz C++ da, veb-mijoz JavaScript-da yozilgan.

    Bir oz tarix

    Veb-mijoz loyihasi 2006 yilda (o'rtacha) 5 kishidan iborat jamoa bilan boshlangan. Loyihaning muayyan bosqichlarida ishlab chiquvchilar muayyan funksionallikni (elektron jadval hujjati, diagrammalar va boshqalar) amalga oshirish uchun jalb qilingan; qoida tariqasida, bu nozik mijozda ushbu funktsiyani bajargan bir xil ishlab chiquvchilar edi. Bular. Ishlab chiquvchilar avval C++ da yaratgan komponentlarini JavaScript-da qayta yozishdi.

    Ikki til o'rtasidagi kuchli kontseptual farqlar tufayli biz boshidanoq C++ yupqa mijoz kodini JavaScript veb mijoziga avtomatik (hatto qisman) aylantirish g'oyasini rad etdik; veb-mijoz JavaScript-da noldan yozilgan.

    Loyihaning birinchi iteratsiyasida veb-mijoz o'rnatilgan 1C tilidagi mijoz kodini to'g'ridan-to'g'ri JavaScript-ga aylantirdi. Yupqa mijoz boshqacha harakat qiladi - o'rnatilgan 1C tilidagi kod bayt-kodga kompilyatsiya qilinadi va keyin bu bayt-kod mijozda talqin qilinadi. Keyinchalik, veb-mijoz ham xuddi shunday qila boshladi - birinchidan, u ishlash samaradorligini oshirdi, ikkinchidan, bu nozik va veb-mijozlarning arxitekturasini birlashtirishga imkon berdi.

    Veb-mijozlarni qo'llab-quvvatlashga ega 1C: Enterprise platformasining birinchi versiyasi 2009 yilda chiqarilgan. O'sha paytda veb-mijoz ikkita brauzerni - Internet Explorer va Firefox-ni qo'llab-quvvatlagan. Dastlabki rejalar Opera-ni qo'llab-quvvatlashni o'z ichiga olgan, ammo o'sha paytda Opera-da dasturni yopish ishlov beruvchilari bilan hal qilib bo'lmaydigan muammolar tufayli (ilova yopilganligini 100% ishonch bilan kuzatib bo'lmaydi va o'sha paytda o'chirish jarayoni amalga oshirilmadi. 1C dastur serveri) ushbu rejalardan voz kechish kerak edi.

    Loyiha tuzilishi

    Hammasi bo'lib 1C: Enterprise platformasida JavaScript-da yozilgan 4 ta loyiha mavjud:
    1. WebTools boshqa loyihalar tomonidan ishlatiladigan keng tarqalgan kutubxonalardir (biz bu yerda Google Closure Library ham mavjud).
    2. Formatlangan hujjatlarni boshqarish
    3. Rejalashtiruvchi boshqaruv (JavaScript-da nozik mijozda ham, veb-mijozda ham amalga oshiriladi)
    4. Veb mijoz
    Har bir loyihaning tuzilishi Java loyihalari (yoki .NET loyihalari - qaysi biri yaqinroq bo'lsa) tuzilishiga o'xshaydi; Bizda nomlar maydoni bor va har bir nom maydoni alohida papkada. Jildning ichida fayllar va nomlar maydoni sinflari mavjud. Veb-mijoz loyihasida 1000 ga yaqin fayl mavjud.

    Tarkibiy jihatdan veb-mijoz asosan quyidagi quyi tizimlarga bo'linadi:

    • Boshqariladigan mijoz ilova interfeysi
      • Umumiy dastur interfeysi (tizim menyulari, panellar)
      • Boshqariladigan shakllar interfeysi, shu jumladan, 30 ga yaqin boshqaruv elementlari (tugmalar, har xil turdagi kiritish maydonlari - matn, raqam, sana/vaqt va boshqalar, jadvallar, ro'yxatlar, grafiklar va boshqalar).
    • Mijozda ishlab chiquvchilar uchun mavjud bo'lgan ob'ekt modeli (jami 400 dan ortiq turlar: boshqariladigan interfeys ob'ekti modeli, ma'lumotlarni joylashtirish sozlamalari, shartli uslublar va boshqalar).
    • O'rnatilgan 1C tilining tarjimoni
    • Brauzer kengaytmalari (JavaScript-da qo'llab-quvvatlanmaydigan funksiyalar uchun ishlatiladi)
      • Kriptografiya bilan ishlash
      • Fayllar bilan ishlash
      • Tashqi komponentlar texnologiyasi, ularni nozik va veb-mijozlarda ishlatishga imkon beradi

    Rivojlanish xususiyatlari

    Yuqoridagilarning barchasini JavaScript-da amalga oshirish oson emas. Ehtimol, 1C veb-mijozi JavaScript-da yozilgan eng katta mijoz ilovalaridan biri - taxminan 450 000 satr. Biz veb-mijoz kodida ob'ektga yo'naltirilgan yondashuvdan faol foydalanamiz, bu esa bunday yirik loyiha bilan ishlashni osonlashtiradi.

    Mijoz kodining hajmini minimallashtirish uchun biz birinchi navbatda o'z obfuscatorimizdan foydalandik va 8.3.6 platforma versiyasidan (2014 yil oktyabr) boshlab Google Closure Compiler-dan foydalanishni boshladik. Raqamlarda foydalanishning ta'siri - chalkashlikdan keyin veb-mijoz ramkasining o'lchami:

    • O'z obfuskatori - 1556 kb
    • Google Closure Compiler - 1073 kb
    Google Closure Compiler-dan foydalanish veb-mijozning ish faoliyatini bizning obfuscatorimizga nisbatan 30% ga yaxshilashga yordam berdi. Bundan tashqari, ilova tomonidan iste'mol qilinadigan xotira hajmi 15-25% ga kamaydi (brauzerga qarab).

    Google Closure Compiler ob'ektga yo'naltirilgan kod bilan juda yaxshi ishlaydi, shuning uchun veb-mijoz uchun uning samaradorligi iloji boricha yuqori. Closure Compiler biz uchun bir nechta yaxshi narsalarni qiladi:

    • Loyihani yaratish bosqichida statik turni tekshirish (kodni JSDoc izohlari bilan qoplashimizni ta'minlaydi). Natijada C++ da yozish darajasiga juda yaqin bo'lgan statik yozish. Bu loyihani tuzish bosqichida xatolarning juda katta foizini qo'lga kiritishga yordam beradi.
    • Xiralashtirish orqali kod hajmini kamaytirish
    • Bajarilgan kodning bir qator optimallashtirishlari, masalan:
      • inline funktsiyalarni almashtirish. JavaScript-da funktsiyani chaqirish juda qimmat operatsiya bo'lib, tez-tez ishlatiladigan kichik usullarni inline almashtirish kodni sezilarli darajada tezlashtiradi.
      • Kompilyatsiya vaqtida konstantalarni hisoblash. Agar ifoda doimiyga bog'liq bo'lsa, doimiyning haqiqiy qiymati unga almashtiriladi
    Biz WebStorm-dan veb-mijozlarni ishlab chiqish muhiti sifatida foydalanamiz.

    Kodni tahlil qilish uchun biz statik kod analizatorlarini birlashtirgan SonarQube-dan foydalanamiz. Analizatorlar yordamida biz JavaScript manba kodining sifati yomonlashuvini kuzatamiz va uning oldini olishga harakat qilamiz.

    Biz qanday muammolarni hal qildik?

    Loyihani amalga oshirish jarayonida biz hal qilishimiz kerak bo'lgan bir qator qiziqarli muammolarga duch keldik.

    Server bilan va Windows o'rtasida ma'lumotlarni almashish

    Manba kodini chalkashtirib yuborish tizimning ishlashiga xalaqit berishi mumkin bo'lgan holatlar mavjud. Veb-mijozning bajariladigan kodidan tashqaridagi kod chalkashlik tufayli bizning bajariladigan kodimiz kutganidan farq qiladigan funksiya va parametr nomlariga ega bo'lishi mumkin. Biz uchun tashqi kod:
    • Ma'lumotlar tuzilmalari shaklida serverdan keladigan kod
    • Boshqa dastur oynasi uchun kod
    Server bilan ishlashda chalkashliklarga yo'l qo'ymaslik uchun @expose tegidan foydalanamiz:

    /** * @constructor * @extends (Base.SrvObject) */ Srv.Core.GenericException = funktsiya () ( /** * @type (string) * @expose */ this.descr; /** * @type (Srv.Core.GenericException) * @expose */ this.inner; /** * @type (string) * @expose */ this.clsid /** * @type (boolean) * @expose */ this; kodlangan)
    Va boshqa oynalar bilan o'zaro aloqada bo'lishning oldini olish uchun biz eksport qilingan interfeyslardan foydalanamiz (barcha usullar eksport qilinadigan interfeyslar).

    /** * Eksport qilingan DropDownWindow boshqaruv interfeysi * * @interface * @struct */ WebUI.IDropDownWindowExp = function()() /** * Tanlovni 1 ga oldinga yoki orqaga siljitadi * * @param (boolean) isForward * @param ( mantiqiy ) checkOnly * @return (boolean) * @expose */ WebUI.IDropDownWindowExp.prototype.moveMarker = funktsiya (isForward, checkOnly)() /** * Tanlovni boshiga yoki oxiriga o'tkazadi * * @param (mantiqiy) isFirst * @param (mantiqiy) checkOnly * @return (mantiqiy) * @expose */ WebUI.IDropDownWindowExp.prototype.moveMarkerTo = funktsiya (isFirst, checkOnly)() /** * @return (mantiqiy) * @expose */ WebUI. IDropDownWindowExp.prototype .selectValue = funktsiya ()()

    Biz Virtual DOM-dan u asosiy oqimga aylanishidan oldin foydalanganmiz)

    Murakkab Web UI bilan shug'ullanadigan barcha ishlab chiquvchilar singari, biz DOM dinamik foydalanuvchi interfeysi bilan ishlashga juda mos emasligini tezda angladik. Deyarli darhol UI bilan ishlashni optimallashtirish uchun Virtual DOM-ning analogi amalga oshirildi. Hodisalarni qayta ishlash jarayonida barcha DOM o'zgarishlari xotirada saqlanadi va faqat barcha operatsiyalar tugallangandan so'ng, to'plangan o'zgarishlar DOM daraxtiga qo'llaniladi.

    Veb-mijozni optimallashtirish

    Veb-mijozimiz tezroq ishlashi uchun biz standart brauzer imkoniyatlaridan (CSS va boshqalar) maksimal darajada foydalanishga harakat qilamiz. Shunday qilib, forma buyruqlar paneli (dasturning deyarli barcha shakllarida joylashgan) faqat brauzer vositalaridan foydalangan holda, CSS-ga asoslangan dinamik tartib yordamida taqdim etiladi.

    Sinov

    Funktsional va unumdorlikni tekshirish uchun biz xususiy vositadan (Java va C++-da yozilgan) hamda Selenium ustiga qurilgan testlar to'plamidan foydalanamiz.

    Bizning vositamiz universaldir - u deyarli har qanday oynali dasturni sinab ko'rish imkonini beradi va shuning uchun ham nozik mijozni, ham veb-mijozni sinab ko'rish uchun javob beradi. Asbob skript faylida 1C ilova yechimini ishga tushirgan foydalanuvchining harakatlarini qayd etadi. Shu bilan birga, ekranning ish maydonining tasvirlari - standartlar - yozib olinadi. Veb-mijozning yangi versiyalarini kuzatishda skriptlar foydalanuvchi ishtirokisiz o'ynaladi. Agar skrinshot har qanday bosqichda mos yozuvlarga mos kelmasa, sinov muvaffaqiyatsiz deb hisoblanadi, shundan so'ng sifat bo'yicha mutaxassis bu xato yoki tizim xatti-harakatlaridagi rejalashtirilgan o'zgarish ekanligini aniqlash uchun tekshiruv o'tkazadi. Rejalashtirilgan xatti-harakatlar bo'lsa, standartlar avtomatik ravishda yangilari bilan almashtiriladi.

    Asbob, shuningdek, 25 millisekundgacha bo'lgan aniqlik bilan dasturning ishlashini o'lchaydi. Ba'zi hollarda biz skript qismlarini aylantiramiz (masalan, buyurtma yozuvini bir necha marta takrorlash) vaqt o'tishi bilan bajarilish vaqtining degradatsiyasini tahlil qilish. Barcha o'lchovlarning natijalari tahlil qilish uchun jurnalga yoziladi.


    Bizning sinov vositamiz va sinovdan o'tgan dastur

    Bizning vositamiz va Selen bir-birini to'ldiradi; Misol uchun, agar ekranlardan biridagi biron bir tugma o'z joyini o'zgartirgan bo'lsa, Selenium buni kuzatmasligi mumkin, ammo bizning vositamiz buni sezadi, chunki skrinshotni standart bilan piksel bo'yicha taqqoslashni amalga oshiradi. Asbob shuningdek, klaviatura yoki sichqonchadan kiritilgan ma'lumotlarni qayta ishlash bilan bog'liq muammolarni kuzatishi mumkin, chunki u aynan shu narsani takrorlaydi.

    Ikkala vositadagi testlar (bizning va Selenium) amaliy yechimlarimizdan odatiy ish stsenariylarini bajaradi. Sinovlar 1C: Enterprise platformasining kundalik tuzilishidan so'ng avtomatik ravishda ishga tushiriladi. Agar skriptlar sekinroq bo'lsa (oldingi tuzilishga nisbatan), biz sekinlashuv sababini tekshiramiz va hal qilamiz. Bizning mezonimiz oddiy - yangi tuzilma avvalgisidan sekin ishlamasligi kerak.

    Ishlab chiquvchilar sekinlashuv hodisalarini tekshirish uchun turli xil vositalardan foydalanadilar; asosan DynaTrace tomonidan ishlab chiqarilgan Dynatrace AJAX Edition ishlatiladi. Oldingi va yangi tuzilmalar bo'yicha muammoli operatsiyani bajarish jurnallari qayd etiladi, keyin jurnallar tahlil qilinadi. Shu bilan birga, bitta operatsiyalarni bajarish vaqti (millisekundlarda) hal qiluvchi omil bo'lishi mumkin emas - axlat yig'ish kabi xizmat ko'rsatish jarayonlari vaqti-vaqti bilan brauzerda ishga tushiriladi, ular funktsiyalarni bajarish vaqti bilan mos kelishi va rasmni buzishi mumkin. Bu holatda ko'proq mos keladigan parametrlar bajarilgan JavaScript ko'rsatmalarining soni, DOMdagi atom operatsiyalari soni va boshqalar bo'ladi. Agar bitta skriptdagi ko'rsatmalar/operatsiyalar soni yangi versiyada ko'paygan bo'lsa, bu deyarli har doim tuzatilishi kerak bo'lgan ishlashning pasayishini anglatadi.

    Bundan tashqari, unumdorlikning pasayishi sabablaridan biri Google Closure Compiler ba'zi sabablarga ko'ra funktsiyani inline almashtirishni amalga oshira olmaganligi bo'lishi mumkin (masalan, funktsiya rekursiv yoki virtual bo'lgani uchun). Bunday holda, biz manba kodini qayta yozish orqali vaziyatni tuzatishga harakat qilamiz.

    Brauzer kengaytmalari

    Ilova yechimi JavaScript-da mavjud bo'lmagan funksiyalarga muhtoj bo'lsa, biz brauzer kengaytmalaridan foydalanamiz:
    • fayllar bilan ishlash uchun
    • kriptografiya bilan ishlash uchun
    • tashqi komponentlar bilan ishlash
    Bizning kengaytmalarimiz ikki qismdan iborat. Birinchi qism brauzer kengaytmasi (odatda JavaScript-da yozilgan Chrome va Firefox uchun kengaytmalar) deb ataladigan narsa bo'lib, ikkinchi qism bilan o'zaro ta'sir qiladi - bizga kerak bo'lgan funksionallikni amalga oshiradigan ikkilik kengaytma. Shuni ta'kidlash kerakki, biz ikkilik kengaytmalarning 3 ta versiyasini yozamiz - Windows, Linux va MacOS uchun. Ikkilik kengaytma 1C: Enterprise platformasining bir qismi sifatida taqdim etilgan va 1C dastur serverida joylashgan. Veb-mijozdan birinchi marta chaqirilganda, u mijoz kompyuteriga yuklab olinadi va brauzerga o'rnatiladi.

    Safari-da ishlayotganda, bizning kengaytmalarimiz Internet Explorer-da ishlayotganda NPAPI-dan foydalanadilar, ular ActiveX texnologiyasidan foydalanadilar. Microsoft Edge hali kengaytmalarni qo'llab-quvvatlamaydi, shuning uchun undagi veb-mijoz cheklovlar bilan ishlaydi.

    Keyingi rivojlanish

    Veb-mijozlarni ishlab chiqish guruhining vazifalaridan biri bu funksionallikni yanada rivojlantirishdir. Veb-mijozning funksionalligi yupqa mijozning funksionalligi bilan bir xil bo'lishi kerak, barcha yangi funksiyalar bir vaqtning o'zida nozik va veb-mijozlarda amalga oshiriladi.

    Boshqa vazifalarga arxitekturani rivojlantirish, qayta ishlash, ishlash va ishonchlilikni oshirish kiradi. Masalan, yo'nalishlardan biri asinxron ish modeliga keyingi harakatdir. Veb-mijozning ba'zi funksiyalari hozirda server bilan o'zaro aloqaning sinxron modeliga qurilgan. Asinxron model endi brauzerlarda (va nafaqat brauzerlarda) dolzarb bo'lib bormoqda va bu bizni sinxron qo'ng'iroqlarni asinxronlarga almashtirish (va shunga mos ravishda kodni qayta tiklash) orqali veb-mijozni o'zgartirishga majbur qiladi. Asinxron modelga bosqichma-bosqich o'tish, chiqarilgan echimlarni qo'llab-quvvatlash va ularni bosqichma-bosqich moslashtirish zarurati bilan izohlanadi.

    Bugun men 1C WEB server va IIS 8 xizmatlari orqali kirishni tashkil qilish nuqtai nazaridan 1C 8.3 ni sozlash haqida qisqacha post qoldiraman.

    Ilgari men foydalanuvchilarga eski uslubda terminal serveridan foydalangan holda 1C ga kirish huquqini berdim. Keyin mening ishimda 1C 7-versiyaga ega Windows 2003 serverim bor edi, menda terminal serveri joylashtirilgan terminal server litsenziyasi bor edi. Men ham bir marta bu yaxshilikni o'rnatish haqida maqola yozganman. Hammasi normal edi, lekin endi bizda yangi apparat (Intel Xeon CPU E3-1220 v3 asosida, 8 gb operativ xotira), yangi 1C (v 8.3), yangi operatsion tizim (Windows Server 2012 r2).

    Boshidan boshlab, bizning buxgalteriya bo'limi (8 shaxsiy kompyuter) tarmoq diskida ishlagan, ammo bu holda dastur tarmoq orqali fayllarni yuklash printsipi bo'yicha ishlaydi va u juda sekin. Ishni tezlashtirish yo'lini topishga qaror qilindi.

    Men terminal serveri haqida o'yladim, lekin menda terminal serveri uchun litsenziya yo'q (men uni Internetda topa olmadim, lekin sotib olish qimmat ekanligini aytishdi). Yechim tasodifan taklif qilingan, ma'lum bo'lishicha, 1C WEB-serverni qo'llab-quvvatlaydi. Xuddi shu Apache bilan tajribaga ega bo'lganim va ishlash tamoyilini bilganim uchun men 1C WEB serverini o'zlashtirishga qaror qildim.

    Barcha komponentlarni o'rnatish va sinovdan o'tkazish

    1C veb-server komponentlarini o'rnatish orqali sozlashni boshlaylik. 1C veb-server kengaytmasi moduli o'rnatilganligini tekshirib ko'raylik. Agar o'rnatilmagan bo'lsa, uni o'rnating.

    Ma'lumotlar bazasini veb-serverga nashr qiling

    Biz 1C ma'lumotlar bazasiga konfigurator rejimida kiramiz. Keyin menyuga o'tamiz "Ma'muriyat" - "Veb-serverda nashr qilish"

    Keling, nashr qilaylik!

    1C papkalari uchun ruxsatlarni o'rnatish

    Keyingi qadam quyidagi papkalarga ruxsatlarni o'rnatishdir:

    Bin papkasi 1C.

    Xavfsizlik menyusida quyidagi skrinshotdagi kabi huquqlarni o'rnatamiz.

    Mijoz kompyuterlaridan veb-serverga ulanish

    Buning uchun 1C ma'lumotlar bazasiga ulanishni yarating - Ulanish nomini yozing -> Veb-serverda -> ni tanlang, keyin quyidagi rasmda bo'lgani kabi:

    Shundan so'ng siz veb-server orqali 1C ga ulanishingiz mumkin bo'ladi.

    Men duch kelgan xatolar:

    1C8.3 IIS "Potentsial xavfli so'rov. Yo'l qiymati aniqlandi" mijozdan olingan

    1C veb-serverini o'rnatganimdan so'ng, men muammoga duch keldim: IP orqali 1C ga kirishim mumkin, men kirdim, lekin barcha menyular ishlamadi, men 1C ish stolidan tashqari bitta oynani ocholmadim. Internetda yechim topgunimcha uzoq vaqt kurashdim.

    Nima qilish kerak:
    1. IISni oching. Boshlash - ishga tushirish - "IIS xizmat menejeri" ni toping
    2. "Saytimizni" oching
    3. Menyuga o'ting "Ishlab chiqaruvchi xaritalari"
    4. Qidirmoqda ISAPI-dll va o'zgartirish-ni tanlang.
    5. So‘rov yo‘lini “*.dll” dan “*” ga o‘zgartiring, bajariladigan fayl (sizda 1C ning boshqa versiyasi bo‘lishi mumkin, ehtiyot bo‘ling) - “C:\Program Files (x86)\1cv8\ 8.3.6.2390 \bin\wsisapi.dll".
    6. Saqlash.

    7. Tekshirish.

    Hozircha hammasi shu. Agar sizda biron bir savol bo'lsa, men yordam berishga harakat qilaman.

    Zamonaviy sharoit, mobil qurilmalar va foydalanish mumkin bo'lgan Internetdan keng foydalanish bilan birga, hatto kichik kompaniyalarning ham axborot tizimlariga yangi talablar qo'ymoqda. Agar bir necha yil oldin masofaviy kirish yirik tashkilotlarda ko'p bo'lgan bo'lsa, bugungi kunda istalgan joydan ma'lumotlarga kirish imkoniyati odatiy hol sifatida qabul qilinadi. Bugun biz sizga fayl rejimida ishlaydigan 1C: Enterprise ma'lumotlar bazalariga internetga kirishni qanday tez va tejamkor tashkil etishni aytib beramiz.

    Fayl rejimida 1C: Enterprise bilan ishlashning an'anaviy sxemasi SMB protokoli (Microsoft tarmog'i) orqali ma'lumotlar bazasi fayllariga umumiy kirishni nazarda tutadi. Bunday holda, kompyuterlardan biri fayl serveri vazifasini bajaradi, qolganlari esa hamma uchun ochiq axborot bazasi bilan ishlaydi.

    Biroq, bu sxema bir qator muhim kamchiliklarga ega. Operatsion tezligiga tarmoqning o'tkazish qobiliyati ham, mijoz kompyuterlarining hisoblash quvvati ham sezilarli darajada ta'sir qiladi. Biz bu masalani materialimizda batafsilroq muhokama qildik. Bu, ayniqsa, oldingi avlod konfiguratsiyalariga qaraganda ko'proq resurs talab qiladigan boshqariladigan ilovalarga asoslangan konfiguratsiyalarga o'tgandan keyin to'g'ri keladi.

    Masofaviy kirish bilan bog'liq muammo ham o'tkirdir, agar RDP orqali masofaviy kompyuterlar uchun masofaviy kirishni tashkil qilish mumkin bo'lsa, aytmoqchi, har doim ham alohida serverga ega bo'lmagan kichik kompaniyalar uchun mavjud emas, mobil qurilmalar bilan hamma narsa; ancha achinarli.

    Shu bilan birga, boshqariladigan ilova yangi xususiyatlarni taqdim etadi, masalan, ma'lumotlar bazasiga veb-kirish, shu jumladan fayl rejimida ishlaydiganlar. Bu deyarli qo‘shimcha xarajatlarsiz axborot tizimi bilan ishlash usulini sifat jihatidan o‘zgartirish imkonini beradi.

    Axborot bazasiga ega kompyuterda ma'lumotlar bazasi nashr etiladigan veb-serverga qo'shimcha rol beriladi. Shundan so'ng siz u bilan fayl rejimida ham, veb-server rejimida ham ishlashni davom ettirishingiz mumkin.

    Bunday holda, platformani ishlatish uchun brauzerdan foydalanish shart emas, shuningdek, nozik mijoz rejimida veb-server orqali ma'lumotlar bazasiga kirish mumkin. Bu xususiyat nafaqat masofaviy va mobil mijozlar uchun kirishni tashkil qilish, balki ofisdagi unumdor bo'lmagan mashinalarda ishlashni yaxshilash imkonini beradi, chunki barcha asosiy hisob-kitoblar server tomonida amalga oshiriladi va tarmoq orqali uzatiladigan trafik minimallashtiriladi. mijozning kompyuteridagi yuk.

    Va, albatta, ma'lumotlar bazasiga masofadan kirish uchun deyarli cheksiz imkoniyatlar mavjud: istalgan joydan, istalgan qurilmadan, brauzer yordamida.

    Quyida mijoz operatsion tizimlarida fayl rejimida ishlaydigan kichik ma'lumotlar bazalariga veb-kirishni tashkil qilishning mumkin bo'lgan konfiguratsiyasini ko'rib chiqamiz.

    Hozirda ikkita asosiy veb-server qo'llab-quvvatlanadi: Apache va IIS va platforma veb-server va kompyuterga o'rnatilishi kerak. veb-server kengaytmasi modullari. Platformani o'rnatish dasturini qayta ishga tushirish orqali ularni har doim qo'shimcha ravishda o'rnatishingiz mumkin:

    Windows va IIS

    Noma'lum sabablarga ko'ra Internet Information Services (IIS) ma'murlar va 1C foydalanuvchilari orasida mashhur emas. Lekin behuda, ba'zi uchinchi tomon dasturlari foydasiga standart echimni e'tiborsiz qoldirish, hatto yaxshi bo'lsa ham, hech bo'lmaganda g'alati ko'rinadi.

    Mijoz OS-ga IIS-ni o'rnatish uchun, bizning holatda Windows 7 x64-ga o'ting Boshqaruv paneli - Dasturlar va xususiyatlar - Windows xususiyatlarini yoqing yoki o'chiring.

    Ochilgan oynada tanlang Internet axborot xizmatlari, keyin roʻyxatni kengaytiring va oʻting Internet xizmatlari - Ilovalarni ishlab chiqish komponentlari va qarshisidagi katakchani belgilang ISAPI kengaytmalari, boshqa parametrlar sukut bo'yicha qoldirilishi mumkin.

    IIS ni o'rnatgandan so'ng, uni sozlashga o'tamiz, buni amalga oshirish uchun oching Boshqaruv paneli - Ma'muriy asboblar - Internet-axborot xizmatlari menejeri.

    Chapdagi daraxtda biz tanlaymiz Ilova hovuzlari, ustiga o'ng tugmasini bosing DefaultAppPool - Qo'shimcha parametrlar va ruxsat bering 32-bitli ilovalar mos variantni o'rnatish orqali To'g'ri.

    Endi guruhlar uchun kerakli huquqlarni o'rnatamiz IUSR Va IIS_IUSRS. Biz ma'lumotlar bazasi bilan jildga huquqlarni beramiz O'zgartirish Va O'qing va bajaring:

    Jildga bin platformalar - O'qing va bajaring:

    Keyin biz 1C: Enterprise-ni administrator sifatida ishga tushiramiz va kerakli ma'lumotlar bazasini konfigurator rejimiga yuklaymiz.

    Menyuda Ma'muriyat tanlang Veb-serverda nashr qilish. 1C: Enterprise veb-serverni (IIS) avtomatik ravishda aniqlaydi va veb-ilovani veb-serverning ildiziga ma'lumot bazasi papkasi nomi bilan joylashtirishni taklif qiladi, bu esa siz o'zgartirishingiz mumkin bo'lgan nashr nomidir agar kerak bo'lsa, ushbu parametrlar.

    Tayyor! Ma'lumotlar bazasiga kirish uchun biz kabi manzildan foydalanishimiz mumkin http://host_name(manzil)/nashr_nomi, bizning holatlarimizda http://192.168.3.109/Acc30, brauzerni ishga tushiring va ishni tekshiring.

    Shuningdek, siz ma'lumotlar bazasini platforma orqali u bilan ishlash uchun sozlashingiz mumkin, buning uchun yangi ma'lumotlar bazasini qo'shish uchun muloqot oynasida veb-serverdagi joyni belgilang:

    Keyingi qadam ulanish manzilini kiritishdir:

    Ma'lumot bazasini ishga tushirgandan so'ng, uning fayl rejimida emas, balki veb-server rejimida ishlayotganiga ishonch hosil qilishingiz mumkin:

    Windows va Apache 2.2

    Agar biron sababga ko'ra siz IIS-dan foydalanishni xohlamasangiz, 1C-ni boshqa mashhur veb-server Apache bilan ishlash uchun sozlashingiz mumkin. Afsuski, Apache ishlab chiquvchilari Windows uchun ikkilik yig'ilishlarni nashr etishni to'xtatib, o'z sheriklari bilan bog'lanishni taklif qilishdi, shuning uchun keling, Apache Haus veb-saytiga o'tamiz va yig'ilishni yuklab olamiz. 2.2.x x86 arxitekturasi, 64-bitli operatsion tizimingiz bo'lsa ham.

    Diqqat! Apache tuzilishini olish uchun siz faqat loyiha veb-saytida ko'rsatilgan ishonchli manbalardan foydalanishingiz kerak. Sizning veb-serveringiz va ma'lumotlaringiz xavfsizligi bunga bog'liq!

    Bundan tashqari, Apache tuzilmasi to'g'ri ishlashi uchun zarur bo'lgan Microsoft Visual C++ 2008 qayta taqsimlanadigan paketini o'rnatishingiz kerak bo'ladi.

    Keyin yuklab olingan Apache arxivini ixtiyoriy katalogga oching, masalan, C: \ Apache22, barcha ko'plab papkalardan biz papkalarga qiziqamiz bin Va htdocs, birinchisi veb-server bajariladigan fayllarni o'z ichiga oladi, ikkinchisi veb-kontentni o'z ichiga olishi kerak.

    Administrator huquqlari bilan buyruq satrini oching va katalogga o'ting bin veb-server:

    CD C: \ Apache22 \ bin

    Endi Apache-ni xizmat sifatida o'rnatamiz:

    Httpd -k o'rnatish

    Biz 1C bilan foydalanish uchun ogohlantirishlarga e'tibor bermaymiz, standart Apache konfiguratsiyasi mos keladi;

    Xizmat tizim hisobi nomidan ishlaganligi sababli, ma'lumotlar bazasi va platformasi bo'lgan papkalarga huquqlarni o'rnatishning hojati yo'q.

    Keyin, xuddi shu tarzda, biz 1C-ni konfigurator rejimida administrator sifatida ishga tushiramiz va veb-serverda nashr qilishni davom ettiramiz. IISdan farqli o'laroq, bu holda platformaning o'zi yo'lni aniqlay olmaydi va papka yarata olmaydi, shuning uchun biz buni qo'lda qilamiz. Jild katalog ichida yaratilishi kerak htdocs va uning nomi nashr nomiga mos kelishi kerak:

    Bizning holatlarimizda shunday C:\Apache22\htdocs\Acc30\ Aytgancha, kerakli katalogni to'g'ridan-to'g'ri papka tanlash dialogida yaratishingiz mumkin. Keyin biz ma'lumot bazasini nashr qilamiz.