إذًا، لماذا تعتبر تطبيقات الهاتف المحمول 1C فكرة جيدة؟ نصائح للأتمتة تطبيق الهاتف المحمول 1C لنظام Android

يرتبط تطوير تطبيقات الهاتف المحمول دائمًا بالحاجة إلى تعلم تقنيات إضافية. ماذا لو أعدنا النظر في السؤال واستخدمنا أدوات مألوفة بالفعل؟

لأول مرة حاولت شركة 1C الدخول سوق تطوير الهاتف المحمولفي عام 2006 سنة. في ذلك الوقت، كان هناك اندفاع حقيقي لأتمتة عمل الموظفين عن بعد باستخدام أجهزة المساعد الرقمي الشخصي. ظهرت برامج جديدة لحل مثل هذه المشكلات مثل الفطر، ولا يمكن لبائع مثل 1C الذي لديه منتجات ناجحة لأتمتة مجالات الأعمال المختلفة أن يفوت فرصة دخول سوق مربح.

بحلول منتصف عام 2006، طرحت الشركة منتجًا جديدًا يحمل الاسم الواعد "1C:Enterprise 8. Extension لأجهزة الكمبيوتر المحمولة". بدأ مطورو 1C، الذين رأوا آفاق النظام الأساسي الثامن، يأملون الآن، باستخدام أداة واحدة، أن يصبح من الممكن دون صعوبة كبيرة التطوير لنظام تشغيل الهاتف المحمول "Windows Mobile"، الذي كان شائعًا في تلك السنوات.

في الممارسة العملية، بدا كل شيء أسوأ بكثير. لم تسمح لنا هذه الأداة بتنفيذ الأفكار الأصلية. حقيبة بلاستيكية " ملحق لأجهزة الكمبيوتر المحمولة» كان بمثابة وظيفة إضافية لبعض التكوينات النموذجية أكثر من كونه حل تطوير كامل. لم يكن هناك شرط لتوسيع وظيفة التكوين عن طريق إضافة كائنات بيانات تعريف جديدة. تم ترك أشياء بسيطة جدًا لمبرمجي الطرف الثالث: إنشاء نماذج جديدة لتفاعل المستخدم ومعالجة أحداث المستخدم.

نعم، كانت هناك كل أنواع الحلول للقيود، لكنها لم تسمح بحدوث تطور حقيقي. وبالإضافة إلى القيود التقنية، شعر المستهلكون بوجود حاجز مالي خطير. طُلب من الشركات التي قررت تنفيذ الحل من 1C شراء أجهزة المساعد الرقمي الشخصي الإنتاجية، وشراء تراخيص Windows Mobile، وكذلك دفع 1C مقابل تسليم الحل والتطبيق النهائي.

كان الحل من 1C مكلفًا للغاية. واصلت الشركات المعتادة على توفير المال استخدام الحلول البديلة. علاوة على ذلك، تمكن مطورو البدائل من تجهيز منتجاتهم بوظائف للتفاعل مع حلول 1C القياسية.

لم تسمح القيود الفنية والتكلفة العالية للمنتج بتكرار النجاح الهائل الذي حققه النظام الأساسي لسطح المكتب. فكرة التغلب على سوق الهاتف المحمول للمبنى.

التطبيقات فشلت فشلا ذريعا.

خطوة إلى الأمام

الخسارة والخسائر الناجمة عن مشروع غير ناجح لم تضع حداً لتطوير اتجاه واعد. في عام 2013، قدمت شركة 1C أول إصدار مستقر من النظام الأساسي الجديد 8.3، والذي يتميز بوظيفة تطوير تطبيقات الهاتف المحمول.

أعادت 1C التفكير بالكامل في نهجها في حل "نظرية" الهاتف المحمول وأخذت في الاعتبار أخطاء المنتج السابق غير الناجح. والنتيجة هي أداة جديدة تمامًا ليس لها أي شيء مشترك مع سابقتها وتركز على أحدث منصات الأجهزة المحمولة - Android وiOS.

تطبيقات الهاتف المحمول بأسلوب 1C

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

للعمل، ستحتاج إلى أحدث إصدار من منصة 1C:Enterprise 8.3. النسخة التعليمية للتوزيع متاحة على موقع 1C الرسمي. هناك ما يكفي لإعادة إنشاء مثال لقدراته.

بالإضافة إلى منصة 1C:Enterprise 8.3، سنحتاج إلى عدد من الأدوات الإضافية. ستنظر هذه المقالة في مثال لتطوير تطبيق Android. في هذا الصدد، سيتعين عليك تنزيل: Android SDK وApache WEB server. يحتوي المكون الأول على كل ما يلزم لإنشاء التطبيق ومحاكيًا للاختبار، كما أن خادم الويب مفيد لتنزيل التطبيق بسرعة على نظام تشغيل الهاتف المحمول.

سنطلب أيضًا تسليم "منصة مطور الأجهزة المحمولة". يحتوي على تكوين لتبسيط عملية إنشاء تطبيق الهاتف المحمول الذي تم إنشاؤه، بالإضافة إلى منصة مطور الهاتف المحمول. يجب تثبيته على جهاز محمول أو محاكي.

لإنشاء تطبيق جاهز للتوزيع عبر Google Play، ستحتاج إلى تنزيله أباتشينتو JavaJDK. هذا الموضوع خارج نطاق المقالة، لذا يمكنك معرفة المزيد حول العمل باستخدام هذه الأدوات وتجميع التطبيق في القسم المقابل من ملفي.

أدوات التكوين

منصة " 1C: المؤسسة 8.3" ويتم تزويد خادم الويب Apache بأدوات التثبيت ويتم تثبيته بطريقة قياسية. أندرويد سكتحتاج فقط إلى فك ضغطه في دليل منفصل وتشغيل " مدير SDK.exe" ستظهر أمامك نافذة بها مجموعة مختارة من الحزم المتاحة للتثبيت. لاختبار المثال الذي تمت مناقشته في هذه المقالة، ستحتاج إلى تحديد وتثبيت: أدوات أندرويد SDK، أ أدوات منصة أندرويد, واجهة برمجة تطبيقات منصة SDK 17.

ستكون الخطوة الأخيرة هي إنشاء قاعدة معلومات جديدة. بالنسبة لأولئك الذين لا يشاركون في التنمية تحت " 1ج: المؤسسة"سأشرح أن أي حل لهذا النظام الأساسي يتكون من قاعدة معلومات وتكوين. تتم إضافة قاعدة بيانات جديدة عن طريق النقر على " يضيف» نافذة البداية. بعد اضافة قاعدة البيانات قم بفتحها في " مكون».

التكوين الأول للهاتف المحمول

في القائمة الرئيسية للمكوِّن سنجد القسم " إعدادات" وحدد "فتح التكوين". سيتم عرض شجرة التكوين (الكائنات التي ستشكل التطبيق المستقبلي) على الجانب الأيسر من النافذة. حدد جذر التكوين فيه واضغط على مجموعة المفاتيح " البديل + أدخل" سيتم فتح محرر الخصائص في الجزء الأيمن من نافذة المكوّن.

دعنا نسمي التكوين " لكى يفعل" وفي خاصية "الغرض من الاستخدام" نشير إلى " جهاز محمول" يرجى ملاحظة أنه بعد تنفيذ الإجراء الأخير، ستصبح بعض العقد في شجرة التكوين غير نشطة. لسوء الحظ، ليس من الممكن استخدام كافة كائنات البيانات التعريفية على منصة الهاتف المحمول.

لحل مشكلتنا، سنحتاج إلى إنشاء عدة كائنات بيانات وصفية في شجرة التكوين:


الإجراء AddTask(Task) ExportRecordManager = CreateRecordManager(); RecordManager.Period = CurrentDate(); RecordManager.Task = Task; RecordManager.Status = Task.Status; RecordManager.Record(); نهاية الإجراء

القائمة 2. كود الوظيفة "الحصول على قائمة المهام غير المغلقة ()"

قائمة GetList الخاصة بـ UnClosedTasks() طلب التصدير = طلب جديد؛ Query.Text = "SELECT |TaskStatusSliceLast.Task AS مهمة، |TaskStatusSliceLast.Task.ExecutionDate AS ExecutionDate |FROM | معلومات Register.TaskStatus.SliceLast(&CurrentDate, الحالة<>VALUE(Enumeration.TaskStatuses.Completed)) AS StateTasksSliceLast | |الطلب حسب | تاريخ التنفيذ DESC"; Request.SetParameter("CurrentDate", CurrentDate()); Return Request.Execute().Unload(); EndFunction

لقد قمنا بفرز البيانات من سجل المعلومات وتسجيلها، والآن دعونا نعلم الدليل الخاص بنا كيفية العمل مع السجل. للقيام بذلك، قم بإضافة وحدة نمطية مشتركة إلى شجرة التكوين بالاسم " العمل مع المهام" يمكنك الاستغناء عنها، لكني أود التركيز على الفور على إمكانية تقسيم الكود إلى وحدات. لا يزال العديد من مطوري 1C يهملون هذه التوصية ويصفون كل المنطق في مكان واحد، مما يعقد صيانة التعليمات البرمجية اللاحقة. لنقم بإنشاء إجراء جديد في الوحدة " إنشاء مهمة جديدة"(انظر القائمة 3).

القائمة 3. رمز إجراء "إنشاء مهمة جديدة".

الإجراء CreateNewTask(Link) التصدير إذا كان Link.ThisGroup ثم العودة؛ إنهاء إذا؛ طلب = طلب جديد؛ Query.Text = "SELECT |TaskStatusSliceLast.Status |FROM |Information Register.TaskStatus.SliceLast(&CurrentDate, Task = &Task) AS TaskStatusSliceLast"; Query.SetParameter("CurrentDate"، CurrentDate()); Request.SetParameter("مهمة"، رابط)؛ النتيجة = Query.Run().Select(); إذا كانت Result.Next () ثم إذا كانت Result.Status<>Link.Status ثم سجلات المعلومات.Task Status.AddTask(Link); إنهاء إذا؛ خلاف ذلك المعلومات Registers.TaskStatus.AddTask(Link); إنهاء إذا؛ نهاية الإجراء

قبل إنشاء سجل جديد، يتم التحقق من وجود السجلات الموجودة للمهمة. إذا كان السجل موجودًا بالفعل، فأنت بحاجة إلى مقارنة حالات المهام. إذا كانت الحالة من السجل لا تختلف عن حالة العنصر الذي تتم كتابته، فليست هناك حاجة لإنشاء إدخال إضافي.

وكلمسة أخيرة، دعونا نفتح نموذج عنصر دليل "المهام" وننشئ معالج الأحداث " AfterRecordingOnServer" سنكتب فيه استدعاء للإجراء الموضح في القائمة الثالثة:

WorkWithTasks.CreateNewTask(CurrentObject.Link);

نحن نعمل على الواجهة

الوظيفة الرئيسية للتطبيق جاهزة - يمكن للمستخدم إنشاء المهام، وكل مهمة جديدة تقوم بإنشاء إدخال في سجل المعلومات الدورية. الآن دعنا ننتقل إلى الواجهة. دعونا نضع العمل مع المهام في المقدمة. بالتأكيد سيكون من المنطقي عرض قائمة المهام غير المغلقة على الفور والقدرة على إنشاء مهمة جديدة فور تشغيل التطبيق؟

دعونا نجد العقدة " النماذج العامة"وإضافة نموذج جديد يسمى" سطح المكتب" لنفتح النموذج الذي تم إنشاؤه في مصمم الواجهة ونضيف سمة مثل " جدول القيم" دعنا نسميها "OpenZachi". سيحتوي الجدول على عمودين - " مهمة"(الارتباط المرجعي.المهام) و" تاريخ التنفيذ" (تاريخ).

الخطوة التالية هي سحب الدعائم المضافة إلى النموذج. يجب أن يكون لدينا واجهة لجدول بسيط. لن نحدد أي أبعاد، بل سنترك القلق بشأن توسيع نطاق الواجهة إلى النظام الأساسي.

بالنسبة للجدول الذي تم إنشاؤه، في عارض الخصائص، قم بتعيين خانة الاختيار للخاصية " للاطلاع فقط"، والممتلكات" موقف لوحة القيادة» اضبط القيمة "لا". سنقوم بملء الجدول بالمعلومات الديناميكية، لذلك لا فائدة من تحريره من جانب المستخدم.

الآن دعونا نصف معالج الأحداث "When CreatedOnServer" للنموذج. دعنا نضيف سطرًا واحدًا من التعليمات البرمجية إليه:

OpenTasks.Load(InformationRegisters.TaskStatus.GetListofUnClosedTasks());

في الكود نشير إلى الإجراء الذي وصفناه " احصل على قائمة المهام غير المغلقة"وتوضع نتيجة تنفيذها في الجدول.

لنعود إلى مصمم النموذج ونضيف مجموعة من نوع "مجموعة عادية بدون عرض" بزرين: " يخلق" و " تحديث" ملكية " التجميع"بالنسبة للمجموعة المضافة، قم بتعيين القيمة إلى"أفقي". لجعل الأزرار أكثر تعبيرا، قم بإضافة الصور وتغيير الخط الافتراضي.

الآن حدد الزر " يخلق"وإعطائها الأمر العالمي" المهام: إنشاء" سيسمح لك ذلك بإنشاء المهام دون الدخول إلى الدليل نفسه. بالنقر على الزر الثاني، سنقوم بتحديث محتويات الجدول بالمهام. للقيام بذلك، سوف تحتاج إلى إنشاء أمر نموذج إضافي.

يتم إنشاء جميع أوامر النموذج الجديدة في علامة التبويب التي تحمل الاسم نفسه " فرق" المبدأ بسيط - نضيف أمرًا جديدًا، ونصف رمز الإجراء الموجود فيه، ثم نربط الأمر بالواجهة، في حالتنا باستخدام زر.

يجب ألا ننسى أيضًا أننا نقوم بتطوير تطبيق مُدار، لذلك نحتاج إلى التمييز بوضوح بين رمز العميل والخادم. عند النقر على الزر سيكون هناك سياق " OnClient"، وسوف نتلقى البيانات من قاعدة البيانات من الخادم. في الكود يبدو مثل هذا:

&في إجراء العميل UpdateTaskList(Command) UpdateList(); نهاية الإجراء &في إجراء الخادم عند الإنشاء على الخادم (فشل، معالجة قياسية) OpenTasks.Load(InformationRegisters.TaskStatus.GetListofUnClosedTasks()); نهاية الإجراء

الآن دعونا نحدد نموذج سطح المكتب الخاص بنا باعتباره منطقة الصفحة الرئيسية. افتح خصائص التكوين (حدد العقدة العلوية وانقر فوق " البديل + أدخل") وبالنسبة للخاصية "منطقة العمل بالصفحة الرئيسية" قم بتعيين القيمة " عمود واحد"، ثم أضف النموذج الخاص بنا إلى القائمة" سطح المكتب».

التطبيق جاهز تمامًا وحان الوقت لاختباره عمليًا. حاول تشغيل المثال وإنشاء عدة مهام بحالة أخرى غير " مكتمل" تم تجديد سجل المعلومات بإدخالات جديدة (يمكن الاطلاع على ذلك من خلال عنصر القائمة " جميع الوظائف") ويتم عرض بعضها على سطح المكتب.

الهبوط على الروبوت

يعمل التكوين بشكل رائع على سطح المكتب، والآن هو الوقت المناسب لاختباره على محاكي نظام التشغيل المحمول. لإعداد محاكي جديد، قم بتشغيل مترجم الأوامر ( cmd.exe) وانتقل إلى دليل "toos" الخاص بتوزيع Android SDK. قم بتشغيل الأمر " android.bat avd"، والذي سيطلق مدير جهاز Android الافتراضي. فيه، انقر فوق الزر "إنشاء" وفي النافذة التي تظهر، حدد معلمات الجهاز الظاهري. في بيئة عملي قررت أن أحاكيه نيكزس S مع أندرويدالإصدار 4.2.2. (مستوى واجهة برمجة التطبيقات 17).

بعد إنشاء الجهاز، سنقوم بتشغيله على الفور. أثناء تحميل Android، دعنا نعود إلى أداة التهيئة وننشر تطبيقنا على خادم الويب. في القائمة الرئيسية للمكون، حدد العنصر " إعدادات» -> « تطبيق الجوال» -> « ينشر" في نافذة إعدادات النشر، نحدد اسم التطبيق (يمكن أن يكون أي شيء)، وخادم الويب (يجب أن يكون هناك خادم في بيئتنا) ودليل تخزين الإعدادات.

تحديد كاسم " ما يجب عمله على الهاتف المحمول"، سيكون التطبيق متاحًا على العنوان - " http://host/todo-mobile" انقر فوق "موافق" وحاول الوصول إلى التطبيق المنشور باستخدام المتصفح. إذا نجح الأمر، فسيقوم الخادم بإرجاع رمز XML الخاص بالتكوين الذي تم إنشاؤه.

دعنا نعود إلى المحاكي ونقوم بتحميل التطبيق باستخدام النظام الأساسي لمطوري الأجهزة المحمولة فيه. يتوفر ملف التطبيق نفسه مع تسليم النظام الأساسي لمطوري الأجهزة المحمولة ويسمى "1cem-arm.apk". لتثبيت هذا التطبيق في المحاكي، سنستخدم الأداة المساعدة " adb.exe"من الدليل" أدوات المنصة»: تثبيت adb.exe –r 1cem-arm.apk.

بعد التثبيت الناجح، افتح قائمة التطبيقات في المحاكي وقم بتشغيل منصة مطوري الأجهزة المحمولة. في النافذة التي تفتح، انقر فوق " إضافة التطبيق" وفي حقل "العنوان"، نشير إلى عنوان URL لخادم الويب الخاص بنا. لدي هذا http://192.0.168.106/todo-mobile. انقر " يضيف"وتم نقل التكوين الخاص بنا بنجاح إلى منصة الهاتف المحمول. التطبيق جاهز للاستخدام. اختبر النتيجة وارجع إلى أداة التهيئة، فقد حان الوقت لتزويد التطبيقات بـ "وظيفة الهاتف المحمول".

إرسال رسائل SMS/MMS

وظائف للعمل مع الرسائل القصيرة / رسائل الوسائط المتعددةيتم دعم المراسلة بشكل مختلف عن طريق الأنظمة الأساسية المحمولة. على سبيل المثال، عند تشغيل تطبيق ما على نظام Android، يكون لدى المطور فرصة الاشتراك في الرسائل القصيرة والوصول إلى الرسائل الجديدة فور استلامها. ولسوء الحظ، هذه الميزة نفسها غير متوفرة على نظام التشغيل iOS، لذا يجب أن تكون الوثائق في متناول اليد أثناء التطوير.

يتم توفير كائن لإرسال رسائل SMS رسالة قصيرة. لنلقي نظرة على مثال:

&OnClient الإجراء SendSMSMessage(Recipient, messageText) NewMessage = New SMSMessage(); NewMessage.Text = messageText; NewMessage.Recipients.Add(Recipient); أدوات الاتصال الهاتفي.SendSMS(NewMessage); نهاية الإجراء

الكود بسيط للغاية ولا يحتاج إلى تعليقات. الآن دعونا نلقي نظرة على الاشتراك في الرسائل الواردة:

&في إجراء العميل ConnectMessageReceivingHandler() SignToMessages = New AlertDescription("ProcessingNewMessages", ThisObject); أدوات الاتصال الهاتفي.ConnectSMSMessageHandler(SubscribeToMessages); نهاية الإجراء &في إجراء العميل معالجة الرسائل الجديدة (الرسالة، المعلمات الإضافية) // معالجة رسالة جديدة //Message.Sender, message.Text; نهاية الإجراء

إجراء " معالجة الرسائل الجديدة" سيتم الاتصال به في كل مرة يتم فيها تلقي رسالة نصية قصيرة جديدة. من خلال المعلمة " رسالةيتم إرسال "كائن من النوع". رسالة قصيرة» ويمكننا بسهولة الحصول على نص الرسالة والمعلومات الخاصة بالمرسل.

يتم العمل مع رسائل الوسائط المتعددة بنفس الطريقة. نقوم أولاً بإنشاء رسالة نصية قصيرة (SMS)، ثم نقوم بإضافة مرفق (على سبيل المثال، صور) إليها. مع هذا الإجراء البسيط، تتحول الرسالة النصية القصيرة إلى رسالة وسائط متعددة:

NewMessage= New SMSMessage(); المرفق = مرفق MMSA جديد؛ المرفقات. البيانات = الصورة؛ Attachment.ContentType = "image/jpeg"; MMMSMessage.Attachments.Add(Attachment);

إجراء المكالمات من تطبيق الهاتف المحمول

يتم إجراء مكالمة برمجية باستخدام طريقة "رقم الطلب" للكائن العام "أدوات الهاتف". قبل الاتصال بالطريقة، يُنصح بشدة بالتحقق من إمكانية إجراء مكالمة:

إذا كانت أدوات الهاتف.SupportedDialing() ثم أدوات الهاتف.DialNumber(PhoneNumber, CallImmediately); إنهاء إذا؛

معامل " اتصل فورا» يؤثر على أداء الاتصال. عندما يتساوى " حقيقي"، يتم إجراء الاتصال تلقائيًا من خلال تطبيق الاتصال القياسي. إذا تم التعيين على False، فسوف يرى المستخدم أيضًا واجهة الاتصال القياسية، ولكن سيحتاج إلى الضغط على الزر " لإجراء مكالمة يتصل».

سجل المكالمات

تسمح منصة الهاتف المحمول للمطور بالتفاعل مع سجل المكالمات. على سبيل المثال، يمكنك بسهولة الحصول على قائمة بالمكالمات الصادرة أو الفائتة أو الواردة. هذه الميزة مدعومة فقط على نظام Android:

سجل المكالمات = أدوات الهاتف.GetCall Log(); Selection = NewDataCompositionSelection; Selection Element = Selection.Elements.Add(Type("DataCompositionSelection Element")); SelectionElement.LeftValue = NewDataCompositionField("CallType"); SelectionElement.ComparisonView = ComparisonTypeDataLayout.Equals; SelectionElement.RightValue = CallLogCallType.Missed; SelectionElement.Use = True; قائمة إدخالات CallLog = CallLog.FindRecords(Selection); // ستحتوي قائمة إدخالات سجل المكالمات على مجموعة من الإدخالات

تحديد المواقع الجغرافية

يحتوي أي هاتف ذكي حديث تقريبًا على وظائف تحديد الموقع الجغرافي. يمكنك استخدام هذه الوظيفة من لغة 1C المدمجة. يمكن تقسيم الحصول على الإحداثيات الحالية للجهاز إلى مرحلتين: اختيار مزود تحديد الموقع الجغرافي ومعالجة الإحداثيات المستلمة:

// لنوفر خيار الموفر للمنصة IdealProvider = Geopositioning Tools.GetMost AccurateProvider(); الإحداثيات = GeoPositioningTools.GetLastLocation(IdealProvider); // إذا تم استلام الإحداثيات منذ وقت طويل، فقم بتحديث إذا كانت الإحداثيات = غير محددة أو CurrentDate () - الإحداثيات. التاريخ> 3600 ثم أدوات تحديد المواقع الجغرافية.UpdateLocation(IdealProvider, 60); الإحداثيات = GeoPositioningTools.GetLastLocation(IdealProvider); إنهاء إذا؛

العمل مع ميزات الوسائط المتعددة

يتمتع المطور بفرصة التقاط الصور ومقاطع الفيديو والتسجيلات الصوتية باستخدام اللغة المدمجة: التقاط صورة(), قم بعمل تسجيل فيديو(), قم بعمل تسجيل صوتي().

ما هو نظام التشغيل المحمول الأفضل لتطويره على 1C؟

على الرغم من حبي لتكنولوجيا Apple، فمن الأفضل إنشاء تطبيقات الهاتف المحمول باستخدام منصة 1C لنظام Android. هناك عدة أسباب لذلك، ولكن السبب الأكثر أهمية هو الوظائف المدعومة. لسوء الحظ، العديد من الأشياء الضرورية غير مدعومة في نظام التشغيل iOS. على سبيل المثال، عدم القدرة على الاشتراك برمجياً في رسائل SMS أو التفاعل مع سجلات المكالمات قد يجعل من المستحيل تنفيذ بعض الأفكار. Android أكثر ودية في هذا الصدد. لا تنسى تكلفة الأجهزة نفسها. لن تكون كل شركة مستعدة للتفاخر بشراء الأجهزة المحمولة من شركة Apple.

بدلا من الانتهاء

منصة " 1ج: المؤسسة 8» أثبتت في الممارسة العملية استعدادها لتصبح أداة بسيطة لتطوير تطوير الشركات. تطبيقات لمنصات المحمول. الأمثلة التي تمت مناقشتها في المقالة هي تأكيد إضافي على ذلك. ليس من الضروري على الإطلاق إنفاق الموارد على دراسة الأدوات الأصلية إذا كانت وظائف التطبيق تتناسب مع إمكانيات النظام الأساسي للهاتف المحمول وكانت منتجات 1C تهيمن على الشركة.

هذه المقالة مخصصة لأولئك المهتمين بعميل الهاتف المحمول. سننظر في تثبيت عميل الهاتف المحمول على نظام Android، وربط تصحيح الأخطاء وتجميع تطبيق APK في تكوين "Mobile Application Builder".

أخيرًا، ظهرت منصة اختبار الهاتف المحمول 8.3.12، ويمكننا الآن اختبار تشغيل عميل الهاتف المحمول. لا أعرف عنك، لكن العديد من المطورين الذين أعرفهم كانوا ينتظرون ذلك منذ نشر المقال عن "1C: من خلال النظرة الزجاجية" (عميل الهاتف المحمول).

أفترض أنك على دراية بتثبيت تطبيق الهاتف المحمول ومنشئ تطبيقات الهاتف المحمول، وأن لديك بالفعل Android SDK وApache Ant وما إلى ذلك مثبتين. هناك بالفعل الكثير من المقالات حول هذا الموضوع.

بالنسبة لتجاربنا، فلنأخذ التكوين التجريبي "للتطبيق المُدار"، ولنحاول أولاً توصيله بعميل الهاتف المحمول الجاهز. في حالتي، توزيع العميل هو الملف "1cem-client-arm.apk". يجب أولاً تمكين القدرة على تثبيت التطبيقات من مصادر غير معروفة على هاتفك الذكي. بالنسبة لي يبدو مثل هذا:

يعد عميل الهاتف المحمول بمثابة نظير لعميل الويب، لذلك، للوصول إلى قاعدة البيانات، يجب نشره على خادم الويب. كل شيء قياسي هنا، أقوم بالنشر على خادم ويب IIS المسمى "demo". تعتمد قاعدة البيانات الخاصة بي على الملفات، لذا أحتاج إلى منح حقوق الدليل لمستخدم IUSR. أنا سعيد لأن النظام نفسه ذكرني بهذا.

قم بتوصيل قاعدة البيانات في العميل المحمول:

بالطبع، لم يكن من الممكن الدخول على الفور إلى قاعدة البيانات، بيت القصيد هو أن المسؤول يفتح المعالجة للعمل مع البريد الإلكتروني ويحاول تعيين رمز لشريط المهام غير موجود في عميل الهاتف المحمول. نظرًا لأن هذه الوظيفة غير متوفرة أيضًا في عميل الويب، فقد تم وضع التعليمات البرمجية في إطار توجيهات التجميع "#If Not WebClient ثم". نحتاج فقط إلى العثور على جميع الأماكن التي يتم فيها استخدام هذا التوجيه وتغييره إلى "#If Not WebClient AND Not MobileClient إذن". بالنسبة للمبتدئين، هذا يكفي تمامًا، ويمكننا أخيرًا رؤية عميل الهاتف المحمول يعمل. تبدو واجهة الأوامر كما يلي:

وفيما يلي قائمة الأطراف المقابلة:

بالطبع، هذه ليست كل الأماكن التي تحتاج إلى تكييفها مع عميل الهاتف المحمول. يمكنك التحقق من التكوين باستخدام "القائمة الرئيسية - التكوين - --- التحقق من التكوين":

لقد وجدت 84 خطأ، بما في ذلك كائنات بيانات التعريف غير المدعومة. بالإضافة إلى تلك الأماكن الثلاثة في الكود التي قمت بتحديدها بالفعل بالتوجيهات. لذلك لا يزال يتعين عليك العمل على التكيف، ولكن هذا بالتأكيد ليس مثل كتابة تطبيق جوال من الصفر.

يحدث الإطلاق ضمن أدوار أخرى بنفس الطريقة، ما عليك سوى تعيين الحق في تشغيل عميل الهاتف المحمول.

إذا لم نفهم ما هو الخطأ، فإن تصحيح الأخطاء سيساعدنا. وهو متوفر في عميل الهاتف المحمول، ولكن يتم استخدام تصحيح أخطاء HTTP فقط. لدي قاعدة بيانات للملفات، لذا سأستخدم خادم تصحيح الأخطاء المحلي ("أدوات - خيارات - تصحيح الأخطاء") وقم بإعداد اتصال تلقائي لعميل الهاتف المحمول ("تصحيح الأخطاء - الاتصال - الاتصال التلقائي"):

حدد المعلمات وبذلك تكون قد انتهيت:

اكتمل الإعداد لعميل apk المُعد مسبقًا من 1C.

لنقم الآن ببناء ملف APK الخاص بنا باستخدام أداة إنشاء تطبيقات الهاتف المحمول. بصراحة، قضيت عدة ساعات في محاولة إنشاء التطبيق في المرة الأولى. تمت متابعة التجميع، ولكن تم فتح قائمة فارغة بقواعد البيانات.

وهكذا، لدينا أرشيف للنسخة المحمولة من المنصة. نقوم بتحميله إلى دليل "إصدارات الجوال":

في إعدادات المجمع، ظهر عنصر منفصل لـ SDK 26 والإصدارات الأحدث (لأولئك، مثلي، الذين لم يقوموا بالتحديث لفترة طويلة، قم بتشغيل مدير SDK وتنزيل الحزم الجديدة):

بعد ذلك تحتاج إلى إعداد ملف التكوين. مع هذه الخطوة واجهت مشاكل في البداية. ثم فتحت الوثائق وأصبح كل شيء أكثر وضوحًا. يوضح دليل المطور ما يلي حول هذا الأمر: "يحتوي كل تكوين يمكن أن يعمل في عميل الهاتف المحمول على بعض المعلومات المساعدة التي تسمح لك بتتبع استبدال التكوين."
يجب توقيع ملف التكوين. في هذه الحالة، يتم إنشاء مفتاح خاص لكل تكوين، ويتم تحميل المفتاح العام (حقل DSAKey) إلى ملف 1cemca.xml، الذي تتم مقارنة توقيع التكوين به.

لإنشاء مفتاح وتوقيع، انتقل إلى خصائص تكوين "توقيع العميل المحمول" (مباشرة ضمن الأذونات المطلوبة، إذا كانت خصائصك مقسمة حسب الفئة وليس حسب الترتيب الأبجدي) وراجع إعدادات التوقيع:

أولاً، نقوم بإنشاء مفتاح خاص وإخفائه عن الجواسيس والأعداء. بعد ذلك، نقوم بإنشاء توقيع التكوين. بالنسبة للمستقبل، ينصح الدليل بالانتقال إلى "القائمة الرئيسية - التكوين - العميل المحمول - إعداد استخدام العميل المحمول". في مربع الحوار، حدد خانة الاختيار "التحقق من توقيع العميل المحمول عند تحديث تكوين قاعدة البيانات" وانقر فوق الزر "موافق". وفقًا للدليل، سيتغير التوقيع إذا قمنا بتغيير تكوين أو أسماء أنواع كائنات البيانات الوصفية، بالإضافة إلى أسماء و/أو تكوين مفاتيح إدخال السجل. أولئك. من المؤكد أن تغيير النماذج لا يؤثر على التوقيع، وإذا حكمنا من خلال الوصف، فإن تغيير تكوين تفاصيل الدلائل والمستندات الموجودة (لكن هذا ليس مؤكدًا).

التوقيع جاهز، يمكننا الاستمرار. دعني أخبرك على الفور أن العمليات الخلفية غير متوفرة في عميل الهاتف المحمول، لذا يجب تعطيلها في أذونات عميل الهاتف المحمول. مشاركة الملفات من جهاز كمبيوتر غير متاحة أيضًا. بالإضافة إلى ذلك، قمت بتعطيل تحديد الموقع الجغرافي بحيث لا يكون هناك أي خطأ أثناء التجميع بسبب عدم وجود مفتاح للعمل مع الخرائط. انتهى بي الأمر بقائمة الأذونات التالية:

في الآونة الأخيرة، تم توزيع منصة الهاتف المحمول 1C Enterprise 8.3 بواسطة 1C فقط بين المشتركين المدفوعين. ولكن منذ وقت ليس ببعيد، قامت شركة 1C بمراجعة سياستها بشأن هذه المسألة والآن يتم توزيع النسخة الإلكترونية من منصة الهاتف المحمول مجانًا.

ما هي منصة الهاتف المحمول 1C 8.3؟

من الممكن أنك تعلم بالفعل أن النظام الأساسي 1C Enterprise 8.3 نفسه يسمح لك بتطوير تطبيقات الهاتف المحمول. في هذه الحالة، يتم تطوير تطبيق الهاتف المحمول بنفس الطريقة تمامًا مثل تطوير التكوين "العادي". ولكن كيف يمكن تشغيل التكوين الذي تم تطويره بهذه الطريقة على هاتف ذكي أو جهاز لوحي؟ لهذه الأغراض، سنحتاج إلى منصة الهاتف المحمول 1C Enterprise 8.3.

منصة الهاتف المحمول 1C إنتربرايز 8.3هي مجموعة من البرامج التي تسمح لك بتثبيت وتشغيل التكوينات (التطبيقات) على الهواتف الذكية والأجهزة اللوحية التي تعمل بنظام Google Android أو Apple iOS.

الميزة الأكثر أهمية لمنصة الهاتف المحمول 1C هي أن التطبيق (التكوين) تم تطويره لكلا نظامي تشغيل الهاتف المحمول في وقت واحد، ثم تم تثبيته ببساطة على الجهاز المحمول. وبالتالي، بعد كتابة تطبيق الهاتف المحمول في 1C، يمكننا تثبيته على الفور لجميع موظفي الشركة، بغض النظر عن نظام التشغيل (Android أو iOS) الذي يعمل عليه هاتفهم أو جهازهم اللوحي.

مهم! لتطوير تطبيقات الهاتف المحمول، نوصي بشدة باستخدام إصدار النظام الأساسي 1C الذي لا يقل عن 8.3.4.482. تم تضمين الإصدار التعليمي لمنصة 1C Enterprise 8.3.4.482 في هذا التوزيع لمنصة 1C المتنقلة. يمكنك التعرف على قيود الإصدار التعليمي للمنصة

لذلك نأتي إلى 1C: Enterprise في شكل تطبيق للهاتف المحمول -لمحة مختصرة عن تطبيق الهاتف المحمول من الداخل.

تطبيق الهاتف المحمول هو تطبيق قائم بذاته وله قاعدة بيانات خاصة به للتعامل مع معلومات المستخدم. في الوقت الراهن, يمكن تشغيل تطبيقات الهاتف المحمول من 1C على الأنظمة الأساسية الثلاثة الأكثر شيوعًا - Android وApple iOS وWindows.


يتم تثبيت تطبيق الهاتف المحمول من "الأسواق" على هذه المنصات. إذا لم يتم نشر التطبيق، فيمكنك تثبيته عن طريق نقل ملف التوزيع إلى جهازك المحمول.

يمكنك تكوين وبرمجة تطبيق الهاتف المحمول نفسه فقط في وضع Configurator الكامل، ثم تجميعه باستخدام التكوين الخاص Mobile Application Builder.
تعد هذه إضافة كبيرة، نظرًا لأن تطوير تطبيق الهاتف المحمول يمكن أن يتم بواسطة مطور تكوين 1C الذي يحافظ على برنامج 1C: Enterprise الخاص بك.
بالطبع، يتمتع تطبيق الهاتف المحمول بقدرات أقل من النظام الأساسي لسطح المكتب: على سبيل المثال، لا توجد كائنات مثل التقارير وسجلات المحاسبة والعمليات التجارية.




ناقص آخر - لن تتمكن من الاتصال بقاعدة بيانات 1C التي تعمل على نظام أساسي لسطح المكتب في إصدار ملف أو خادم.


ولكن هناك وظيفة لاستخدام مزايا الهاتف المحمول: عند تطوير تطبيق الهاتف المحمول، يمكنك استخدام دفتر جهات الاتصال، وإجراء مكالمة من التطبيق من خلال "ت الهاتف"، والحصول على بيانات الموقع من خلال تحديد المواقع الجغرافية.

أنت تسأل: " كيفية العمل مع قاعدة بيانات 1C العادية؟ لماذا هناك حاجة لمثل هذا التطبيق؟

للتواصل مع "العالم الخارجي" هناك عدة طرقآليات، مثل خطط التبادل. إنها تسمح لك بربط قاعدة بيانات 1C كاملة وقاعدة بيانات تطبيقات الهاتف المحمول - بنفس الطريقة التي تعمل بها قواعد البيانات الموزعة.

يجب أن يؤدي تطبيق الهاتف المحمول وظيفة تطبيق الهاتف المحمول والوظيفة المقابلة، لذلك لا تتم مزامنة جميع البيانات من قاعدة بيانات إلى أخرى بشكل كامل، ولا يمكن ذلك بسبب قيود الكائن الموضحة أعلاه.
يتوفر تطبيق التبادل هذا، على سبيل المثال، في مجموعة من برامج 1C: Enterprise 8 Trade Management rev. 11 وتطبيق الهاتف المحمول "1C: الطلبات" . تقوم قواعد البيانات بتبادل المعلومات حول الأطراف المقابلة وطلبات العملاء ونطاقات المنتجات والأسعار. وفي الوقت نفسه، يمكن أن يعمل تطبيق الهاتف المحمول دون اتصال بالإنترنت، ويتبادل البيانات إذا كان الإنترنت متاحًا.
يبدو تطبيق الهاتف المحمول لائقًا، وهناك نمط يمكن التعرف عليه بصريًا مقارنة بإصدار سطح المكتب من 1C، بالإضافة إلى مجموعة من العمليات القياسية التي يتم إجراؤها باستخدام الكائنات، مثل: "التمرير"، و"وضع علامة للحذف" وما شابه. لذلك، سيكون مستخدمو تطبيق الهاتف المحمول على دراية بسياق العمل.

وهذا ما تبدو عليه واجهة التطبيق في أحدث الإصدارات:


الطريقة الشعبية الثانية للتواصل بين تطبيق الهاتف المحمول ونظام المحاسبة
1ج:Enterprise 8 يعمل من خلال خدمات الويب

مخطط التنظيم العام هو كما يلي: في حل التطبيق 1C: Enterprise 8، أو ببساطة - في التكوين، يتم وصف خدمة ويب تؤدي بعض الوظائف على الجانب حيث يتم نشر الخدمة ويمكنها نقل البيانات.

ببساطة: من خلال تطبيق الهاتف المحمول عبر الإنترنت، يمكنك الوصول إلى نظام المحاسبة 1C: Enterprise 8، وتنفيذ أي وظيفة موصوفة في الخدمة - على سبيل المثال، الحصول على بيانات في تقرير أو إنشاء طرف مقابل جديد

المزيد من التفاصيل:

يجوز للخدمة إرسال البيانات بالتنسيق الموضح في XDTO الحزمة، ويصف المطور نفسه نموذج البيانات هذا. يمكنك نقل الأنواع البدائية: الأرقام والسلاسل والتواريخ. يمكنك نقل أنواع معقدة، يمكنك نقل البيانات الثنائية - على سبيل المثال، الصور أو مستندات PDF أو XLS. سنعرض مثالاً بسيطًا حيث يتم وصف حزمة المهام - رقم المهمة وعنوانها. مثال على ما تبدو عليه الحزمة:

بدوره فيفي تطبيق الهاتف المحمول، يتم إنشاء كائن من النوع WS-Link. ويحدد عنوان خدمة الويب، وبعد ذلك يتم تحميل أنواع البيانات والأساليب التي تعمل بها الخدمة تلقائيًا:

كل شيء جاهز! في تطبيق الهاتف المحمول، يمكنك الآن الاتصال بوظيفة خدمة 1C: Enterprise 8 أو تلقي البيانات اللازمة.

ماذا عن تراخيص تطبيقات الهاتف المحمول من 1C؟

تمت تغطية هذه المشكلة في الرسالة الإعلامية من 1C. المقتطف أدناه.

توصياتنا:
تعد تطبيقات الهاتف المحمول من 1C منتجًا جديدًا إلى حد ما، ولكن في "الغلاف" المعتاد - يمكن إجراء التطوير بواسطة متخصص بدوام كامل في 1C. إنها تفتح آفاقًا جديدة لتوسيع التفاعل مع النظام المحاسبي وتوحيد البيانات للمحاسبة الإدارية. نوصي باستخدام هذا الخيار عندما لا يكون الخيار الثابت للعمل مع 1C مناسبًا وتكون وظائف الهاتف المحمول كافية، على سبيل المثال، الوصول إلى جزء فقط من البيانات أو جزء من العملية.

وحسب التقليد فإن القضية:

مهمة:

العميل لديه المكتب المركزي وعدة نقاط في شبكة التوزيع الخاصة به. يوجد في كل نقطة العديد من مديري المبيعات ومحطة عمل واحدة لبيع البضائع باستخدام برنامج محاسبة.

حيث ، المكتب المركزي يعطي تعليمات للبائعين- على سبيل المثال، جمع طلب لنقطة أخرى من بقايا الطعام الخاصة بك أو تفكيك المنتج المحدد.

لتعيين المهام، استخدم العميل أولاً البريد الإلكتروني والمكالمات الهاتفية، ولكن -لم تكن هناك سوى محطة عمل آلية واحدة ولم يتمكن العمال من تلقي المهام والرد عليها بسرعة. واجه المكتب المركزي صعوبات في مراقبة مثل هذه المهام، لأنه عند تعيينها عبر الهاتف، لم يتم تدوين المهمة في أي مكان، وكان من الصعب مراجعة البريد بحثًا عن المهام غير المكتملة.

حل:

اقترحنا الحل التالي. قم بتطوير الوظائف اللازمة لتحديد المهام للموظفين استنادًا إلى تطبيق الهاتف المحمول 1C: Orders ودمجه مع نظام المحاسبة المركزي.

يمكن لموظف منفذ البيع بالتجزئة استخدام هاتفه المحمول كمنصة لإطلاق تطبيق الهاتف المحمول والعمل معه، وأولئك الذين لم يكن لديهم هاتف محمول، قام المكتب المركزي بشراء هواتف ذكية رخيصة الثمن لهم.

نظرًا لأن تطبيق الهاتف المحمول ونظام المحاسبة المركزي يعملان في نفس مساحة المعلومات، فقد تم تحديد المهام بسرعة وتوجيهها بالضبط إلى الموظف الذي كانت مخصصة له.

لقد زادت دقة نقل المعلومات - إذا كتب المدير في المكتب سابقًا عبر البريد الإلكتروني - "قم بإعداد البضائع وفقًا للأمر رقم ___"، والآن في المهمة أشار ببساطة إلى رابط للأمر المطلوب، وهو ما يشير إليه موظف النقطة يمكن أن تفتح على الهاتف.

زاد مستوى التحكم في المهام - فهي لم تختف في أي مكان وكان لها الوضع الذي تم تعيينه لها من قبل الموظف أثناء إكمال المهمة. ويمكن للمكتب المركزي دائمًا التحكم في المهمة.

اناتولي نيكولين

منصة الهاتف المحمول 1C:Enterprise 8 هي اسم التقنية التي تتيح لك تطوير الحلول التي تعمل على الهواتف الذكية والأجهزة اللوحية التي تعمل بنظام Google Android أو Apple iOS. من المزايا المهمة لمنصة 1C أنه يتم تطوير الحلول في إصدار واحد لكل من أنظمة تشغيل الأجهزة المحمولة ثم تصديرها ببساطة إلى ذكري المظهرولل دائرة الرقابة الداخليةدون أي تعديل إضافي وكتابة كود البرنامج المعتمد على النظام الأساسي.

يتم تثبيت كل من النظام الأساسي 1C:Enterprise وقاعدة المعلومات نفسها (التكوين، بمصطلحات 1C) على الفور على الجهاز المحمول. تحتوي قاعدة المعلومات الموجودة على الجهاز على خيار قاعدة بيانات الملفات (لتخزين البيانات المختلفة التي يعمل بها المستخدم أو سيعمل معها) والتطبيق نفسه (الرمز الثانوي للبرنامج الذي يعمل على جهاز لوحي أو هاتف ذكي).

مثال على عميل الهاتف المحمول لنظام EDMS "Corporate Document Flow" الذي تم إنشاؤه على منصة الهاتف المحمول "1C:Enterprise 8.3"

تدعم المنصة تنزيل ونشر التطبيقات من قبل المستخدمين على أجهزتهم من App Store أو Google Play. تحتوي مجموعة التوزيع على كافة المكونات الضرورية للبدء.

يمكن إنشاء حلول مختلفة استنادًا إلى منصة الهاتف المحمول 1C، ولكن خيار الحل الرئيسي هو عملاء الأجهزة المحمولة غير المتصلة بالإنترنت لأنظمة المحاسبة. تم تصميم هذه الحلول لدعم مستخدمي الهاتف المحمول في أماكن العمل البعيدة. يتم تبادل البيانات من خلال المزامنة المنتظمة مع قاعدة البيانات المركزية. يمكن تبادل البيانات من خلال الآليات التالية:

  • خدمات الويب
  • مشاركة الملفات
  • بريد إلكتروني
  • وغيرها من الآليات
    الخيار البديل هو العمل عبر الإنترنت باستخدام عميل الويب.

يعد تطبيق الهاتف المحمول الذي تم تطويره منتجًا برمجيًا منفصلاً وكاملاً ويمكنه تبادل البيانات مع عدة قواعد بيانات مركزية في وقت واحد. على سبيل المثال، في أحد تطبيقات الهاتف المحمول، يمكنك تنفيذ الوصول والعمل مع المستندات من قاعدة بيانات المحاسبة والمهام من نظام إدارة مستندات المؤسسة.