هذه المقالة مخصصة لأولئك الذين يستخدمون G Suite و 1C.
PIK Digital هي شركة تكنولوجيا معلومات تصنع تقنية البناء. في العام الماضي ، نقلنا مجموعة شركات PIK إلى
G Suite . للعمل بشكل كامل مع Google Sheets و Docs ، كان من الضروري تحسين أنظمتنا.
أحد هذه التحسينات هو امتداد لتحميل التقارير والنماذج من 1C إلى Google Drive بتنسيق
Google Sheets و
Google Docs . في المقالة سوف نشارك حلًا جاهزًا ومعلومات مفيدة عن تنفيذه. التمديد مجاني. خذ واستخدم.
تحميل التمديد
عرض الكود على جيثب

لكي تعمل الإضافة ، ستحتاج إلى:
- تسجيل حساب جوجل
- إنشاء مشروع على Google Cloud Platform
- إنشاء عميل OAuth
- تكوين الوصول إلى Google Drive API
- تثبيت التمديد 1C
- تكوين الاتصال بـ Google API في 1C
بعد ذلك ، نعتبر كل مرحلة على حدة ونقدم أمثلة على الكود.
تسجيل حساب Google
للعمل ، تحتاج إلى
حساب Google . بدونها ، لن تتمكن الإضافة من التفاعل مع خدمات G Suite. لديك بالفعل حساب حالي - استخدمه.
إنشاء مشروع في برنامج شركاء Google المعتمدون
لتنشيط الوصول إلى Google Drive API ، يجب عليك إنشاء مشروع في
Google Cloud Platform (GCP). هناك
خياران للعمل مع برنامج "شركاء Google المعتمدون" مجانًا:
- فترة تجريبية مدتها 12 شهرًا بميزانية قدرها 300 دولار.
- دائمًا مجاني - الوصول إلى معظم موارد برنامج "شركاء Google المعتمدون".
كلتا الطريقتين لها قيود ، ويرد المزيد عنهم
هنا . نوصي بهذا الخيار مع فترة تجريبية مدتها 12 شهرًا. بعد الفترة التجريبية ، لن يتم خصم الأموال إذا لم تبدأ في استخدام الخدمات المدفوعة. كل ما تحتاجه للعمل التكامل مجاني.
نحن نسجل المشروع على الرابط
console.cloud.google.com ، انقر فوق "تحديد مشروع" ، ثم - "إنشاء مشروع". بعد إنشاء المشروع ، حدده بالضغط على الزر "تحديد مشروع" مرة أخرى.

إنشاء عميل OAuth
أنشئ بيانات الاعتماد للاتصال بـ G Suite باستخدام بروتوكول OAUth 2.0. في برنامج "شركاء Google المعتمدون" ، انتقل إلى عنصر القائمة "API والخدمات" - "بيانات الاعتماد" - "إنشاء بيانات اعتماد" - "معرف مفتاح OAUth".
تظهر مطالبة لإنشاء نافذة طلب وصول. يتم تشكيل هذه النافذة عندما يطلب المستخدم إذنًا للوصول إلى بياناته.

اترك نوع الوصول "Open Access" وأدخل اسم التطبيق الذي سيتم عرضه عندما يبدأ الموظف المشروع ويتطلب موافقة للوصول إلى البيانات. انقر فوق "حفظ".
بعد ذلك ، قم بتعيين "نوع التطبيق". حدد أنواع أخرى وأدخل معرف عميل OAuth. يرجى ملاحظة أن هذا ليس هو نفسه اسم عرض التطبيق. نتيجة لذلك ، يتم فتح نافذة مع معرف وسر العميل. حفظها ، وهذا هو المهم.
توصيل مكتبة واجهة برمجة تطبيقات Google Drive
للوصول إلى وظيفة API ، انتقل إلى عنصر القائمة "مكتبة API" ، ابحث عن المكتبة المطلوبة وقم بتوصيلها.

نظرًا لأننا نريد العمل مع تنسيقات G Suite ، فنحن بحاجة إلى توصيل مكتبة واجهة برمجة تطبيقات Google Drive بالمشروع. بالإضافة إلى ذلك ، سنحتاج إلى مكتبة واجهة برمجة تطبيقات Google Sheets ، Google Docs API. ابحث عنه وقم بتوصيله بنفس الطريقة.
تثبيت التمديد في وضع المستخدم
الآن يمكنك صياغة الطلبات إلى API. تذكير: مهمتنا هي تحميل البيانات من تقرير 1C للنموذج القياسي إلى صفحات Google أو مستندات Google.
تحميل التمديد 1C.
في 1C ، من الممكن تثبيت ملحقات التكوين بشكل مستقل. إذا كانت هذه هي المرة الأولى التي تواجه فيها هذا ، فراجع
الفيديو القصير الخاص بنا حول كيفية القيام بذلك.
يعمل امتدادنا مع النظام الأساسي الذي يبدأ من الإصدار 8.3.10 ، على تكوينات BP (بدءًا من 3.0.65 وأعلى) ، ERP (بدءًا من 2.4.6 وما بعده) و UT (بدءًا من 11.4.6 وما بعده).
إذا رأيت تحذيرًا أمنيًا عند تثبيت الملحق ، فانقر فوق نعم. سترى رسالة تفيد بأن "الإجراء الحالي قد تمت مقاطعة لإصدار تحذير." هذا يعني أنك قمت بتمكين الوضع الآمن ، لذلك تحتاج إلى تكرار الإجراء لإضافة ملحق ، وتعطيل الوضع الآمن. بعد الإضافة ، أعد تشغيل 1C.
إذا كان التثبيت ناجحًا ، فسترى زر "حفظ إلى Google Drive" في التقارير ونماذج الطباعة.

تحديد المعلمات للاتصال بـ Google API في 1C
يبقى تكوين الإعدادات للاتصال بـ Google API ، ويمكنك العمل. مرة أخرى ، حدد عنصر "جميع الوظائف" في القائمة وفي قسم "المعالجة" ، نبحث عن عنصر "إعدادات اتصال واجهة برمجة تطبيقات Google".

نحن نملأ الحقول Clientid و Clientsecret و "Port" بالقيم التي تم الحصول عليها عند إنشاء المشروع في GCP. افتراضيًا ، يتم استبدال اسم الملف والمجلد حيث سيتم حفظ المفاتيح المؤقتة المستخدمة للاتصال. لأغراض الأمان ، يتم تخزين البيانات المتعلقة بالمفاتيح (تحديث الرموز المميزة والوصول إليها) في دليل الملفات المؤقتة للمستخدم الحالي ، وفي المجلد <اسم المجلد> وفي الملف <اسم الملف>. إذا تم إنشاء نفس مشروع Google بتكوينات مختلفة ، فيمكن جعل اسم الملف هو نفسه في كل هذه العناصر ، حتى لا يتم إنشاء ملفات متعددة بنفس المعلومات. عند الحفظ ، يتم حفظ إعدادات الاتصال في مستودع الإعدادات العامة.
حفظ التقرير
يمكنك الآن حفظ التقارير بتنسيق أوراق Google ومحرّر مستندات
Google في
Google Drive .
في أول محاولة لحفظ التقرير ، ستحتاج إلى متابعة إجراء ترخيص المستخدم لمرة واحدة في كل تكوين بحيث تتلقى الخدمة حقوق الوصول لحفظ البيانات.

في النافذة التي تظهر ، أدخل عنوان البريد الإلكتروني وكلمة المرور الخاصين بـ Gmail. التالي
في النافذة التي تفتح ، انقر فوق "السماح". لذا فإنك تعطي التطبيق لحفظ المعلومات في Google Drive.

ستحتاج إلى إدخال اسم ملف ، وتحديد نوعه ودليله للحفظ في محرك أقراص مشترك أو شخصي. انقر فوق "حفظ". بعد الحفظ ، سيتم فتح التقرير في المتصفح. استمتع بمشاهدتك
الجانب الفني للقضية
الآن دعونا نرى كيف يعمل داخل منصة 1C.
للاتصال ، يتم إنشاء سطر الاستعلام التالي لخدمة Google:
="https://accounts.google.com/o/oauth2/auth"+"?" + "response_type=code" + "&client_id=" + _ + "&redirect_uri=http://localhost" + "&access_type=offline" + "&scope=https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.apps.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.metadata;
client_id هو معرف العميل الذي سبق أن حفظنا فيه قيمة المتغير.
النطاق - عناوين مكتبات API التي سنستخدمها. إذا كنت بحاجة إلى توصيل عدة مكتبات ، فقم بإدراجها بمسافة.
سلسلة الاستعلام هذه مطلوبة للاتصال لمرة واحدة لتطبيق العميل الخاص بنا بخدمة Google. يمكنك إدخال سلسلة الاستعلام في المتصفح ، ردًا على ذلك ، ستقوم الخدمة بإرجاع عنوان URL مع شيء مثل هذا:
http:
يمكنك إضافة حقل لبيانات HTML في مصمم النموذج 1C وتنفيذ طلب من خلاله. نحتاج إلى الحصول على القيمة <CODE> - رمز الوصول للخدمة من عنوان URL هذا.
يبقى الحصول على رمزين عن طريق تقديم طلب HTTP. نتيجةً لذلك ، سيعود الطلب سلسلة ذات قيم وصول وتحديث بتنسيق JSON. الرمز المميز للتحديث لا يفقد أهميته بمرور الوقت ، ويعيش رمز الوصول المميز لمدة 60 دقيقة ثم يحتاج إلى التحديث. لاستلام هذه الرموز المميزة ، نحتاج إلى <CODE> التي تم استلامها للتو ، بالإضافة إلى معرف وسر العميل الذي قمنا بحفظه مسبقًا.
الرمز يمكن أن يكون شيء مثل هذا:
= "accounts.google.com"; = "/o/oauth2/token"; = ("client_id=%1&client_secret=%2&grant_type=authorization_code&code=%3&redirect_uri=http://localhost", _, _, ); = HTTP(,443,,,,, OpenSSL); = ; .("Content-Type","application/x-www-form-urlencoded”) HTTP = HTTP(,); HTTP.(); = .HTTP("POST", HTTP); . = 200 .((" : %1", .())); ; ; = .(); = JSON(); .(); = XDTO.JSON(); .(); = .access_token; = .refresh_token; = .expires_in;
يحتوي المتغير expires_in على عمر رمز الوصول المميز.
فيما يلي طلب لتحديث الرمز المميز:
= "accounts.google.com"; = "/o/oauth2/token"; = Google.refresh_token; _ = Google.client_id; _ = Google.client_secret; = "grant_type=refresh_token" + "&client_id=" + _ + "&client_secret=" + _ + "&refresh_token=" + ;
حفظ مستند جدول بيانات في Google Drive
الآن ، لنرى كيفية حفظ مستند جدول بيانات على Google Drive ثم تحويله إلى جداول بيانات Google.
يستخدم هذا الرمز طريقة
التحميل متعدد الأجزاء لتحميل ملف.
نحن تشكيل طلب POST من كتل البيانات اثنين. في المربع الأول ، اكتب عنوان الملف ونوعه. الكتلة الثانية تنقل محتويات الملف. يتم تعريف الكتل بواسطة المحددات ، والتي تتم الإشارة إليها في نهاية وبداية الكتلة.
تعرف على المزيد حول هذا الموضوع في
مقالتنا حول إدراج ملفات Google Drive Knowledge Base.
هذه هي الطريقة التي يعمل بها. نأمل ألا تضيع الوقت في تحويل البيانات التي تم تنزيلها من 1C.
مؤلف
امتدادنا هو المطور الرائد لـ PIK Digital Brazhnikova Maria
mbrazh