При работе с платформой 1С:Предприятие разработчики иногда сталкиваются с неожиданными ошибками в конфигураторе, которые могут быть вызваны некорректной работой или настройкой Мобильного Клиента. Это может проявляться в виде ошибок при проверке общих модулей, когда система "не видит" код, предназначенный для Мобильного Клиента, или, наоборот, ругается на несовместимый код, даже если вы не используете мобильное приложение. В этой статье мы подробно разберем, как отключить Мобильного Клиента или правильно настроить его параметры, чтобы избежать подобных проблем и обеспечить стабильную работу вашей конфигурации.
Давайте вместе проанализируем различные сценарии и найдем эффективные решения для устранения ошибок, связанных с Мобильным Клиентом в 1С.
Прежде чем перейти к решениям, выясним причину возникновения ошибок. Мобильный Клиент в 1С – это специализированный клиент, который позволяет запускать управляемое приложение на мобильных устройствах (смартфонах, планшетах). Он имеет свои особенности и ограничения по функциональности по сравнению с тонким или веб-клиентом. Если в вашей конфигурации есть код, который предназначен только для мобильного клиента, или наоборот, код, который несовместим с ним, это может вызывать ошибки при проверке конфигурации, если система ожидает или обрабатывает мобильный контекст.
Часто ошибки возникают, когда:
Теперь рассмотрим подробнее, как мы можем решить эти проблемы.
Если вы не планируете использовать Мобильный Клиент и хотите полностью исключить его влияние на конфигурацию, мы можем отключить связанные с ним проверки и очистить его подпись. Это один из наиболее радикальных, но эффективных способов избавиться от ошибок, если Мобильный Клиент вам действительно не нужен.
Начнем с отключения проверки подписи, которая может вызывать ошибки при публикации или обновлении мобильных приложений.
Мы выполним следующие шаги в конфигураторе:
Очистка подписи может потребоваться, если вы ранее подписывали мобильное приложение, а теперь хотите удалить эту информацию или изменить подпись.
Действия будут следующими:
Эти шаги помогут полностью убрать все следы ранее настроенной подписи, что может решить некоторые проблемы, связанные с Мобильным Клиентом.
Если ошибки связаны с синтаксисом кода или логикой выполнения, которые предназначены для Мобильного Клиента (или, наоборот, не должны на нём выполняться), нам потребуется адаптировать конфигурацию. Это более тонкая настройка, которая позволяет обеспечить корректную работу приложения во всех клиентских режимах.
Для начала, давайте проведем полную проверку конфигурации, чтобы выявить все проблемные места, связанные с Мобильным Клиентом. Для поиска проблем в коде и модулях также можно использовать инструмент для анализа конфигураций и выявления ошибок.
Мы выполним следующие действия:
Директивы препроцессора – это мощный инструмент, который позволяет нам управлять компиляцией кода в зависимости от клиентского приложения. Это критически важно для общих модулей, которые могут использоваться разными типами клиентов (тонкий, веб, мобильный, сервер).
Предположим, у нас есть код в общем модуле, который должен выполняться только на тонком или веб-клиенте, но не на Мобильном Клиенте. Мы можем использовать условие И НЕ МобильныйКлиент:
#Если НЕ ТонкийКлиент И НЕ МобильныйКлиент Тогда
// Этот код будет компилироваться и выполняться только если это не ТонкийКлиент и не МобильныйКлиент
// Например, для ВебКлиента или Сервера
// ...
#КонецЕсли;
#Если Клиент Тогда
// Этот код выполняется на любом клиенте (Тонкий, Веб, Мобильный)
// ...
#Если НЕ МобильныйКлиент Тогда
// А этот блок только на Тонком или Веб клиенте
// ...
#КонецЕсли;
#КонецЕсли;
#Если Сервер Тогда
// Код, выполняемый только на сервере
// ...
#КонецЕсли;
Рассмотрим еще один пример: если определенная функция доступна только на обычных клиентах (тонкий, веб), но не на мобильном, мы можем ее обернуть так:
Функция МояФункцияДляОбычныхКлиентов()
#Если НЕ МобильныйКлиент Тогда
// Здесь размещаем код, который не должен выполняться на Мобильном Клиенте
Сообщить("Эта функция работает только на тонком или веб-клиенте.");
Возврат Истина;
#Иначе
// Код для Мобильного Клиента, если таковой необходим
Сообщить("Эта функция не поддерживается на Мобильном Клиенте.");
Возврат Ложь;
#КонецЕсли;
КонецФункции
Использование директив #Если, #ИначеЕсли, #Иначе, #КонецЕсли с условиями ТонкийКлиент, ВебКлиент, МобильныйКлиент, Сервер, Клиент, ВнешнееСоединение позволяет нам точно контролировать, какой код будет компилироваться и выполняться в каждом конкретном контексте. Это помогает избежать ошибок "Метод объекта не обнаружен" или "Не определено" при работе с Мобильным Клиентом.
Каждый общий модуль в 1С имеет свойства, которые определяют, в каком контексте он может быть использован. Если модуль содержит код, несовместимый с Мобильным Клиентом, мы можем просто отключить его использование для этого типа клиента.
Действия будут следующими:
Эта настройка позволяет ограничить область видимости и компиляции кода модуля, предотвращая ошибки, связанные с неподдерживаемой функциональностью на Мобильном Клиенте.
Иногда ошибки могут возникать из-за того, что основной режим запуска конфигурации по умолчанию установлен как "Мобильное приложение", хотя вы используете другие клиенты.
Мы должны убедиться, что основной режим запуска соответствует вашим потребностям:
Это простая, но иногда очень важная настройка, которая может предотвратить ряд ошибок на начальном этапе работы с конфигурацией.
Иногда проблемы с Мобильным Клиентом могут быть вызваны особенностями или ошибками в конкретной версии технологической платформы 1С:Предприятие. Производители постоянно выпускают обновления, исправляя баги и добавляя новые функции, но иногда эти изменения могут вызывать непредвиденные проблемы.
Что мы можем сделать в этом случае?
Прежде всего, рассмотрим возможность обновления платформы до последней стабильной версии. Разработчики 1С часто исправляют известные проблемы, связанные с мобильной платформой и клиентом, в новых релизах. Проверим актуальные версии на Портале 1С:ИТС и обновим платформу до рекомендованной.
В редких случаях, если после обновления платформы (или при использовании определенной версии) возникли новые ошибки, связанные с Мобильным Клиентом, может помочь временный откат на предыдущую, проверенную и стабильно работающую версию платформы. Это крайняя мера, но она иногда позволяет продолжить работу до выхода исправлений.
Важно: Перед любыми изменениями версии платформы всегда создавайте резервную копию информационной базы.
Чтобы избежать путаницы и правильно применять решения, давайте уточним терминологию:
В контексте обсуждаемых ошибок мы чаще всего говорим именно о Мобильном Клиенте, который является одним из способов запуска управляемого приложения 1С на мобильных устройствах.
Ошибки, связанные с Мобильным Клиентом в 1С, могут быть вызваны различными причинами, от некорректных настроек до несовместимости кода. Мы рассмотрели комплексный подход к их устранению:
Применяя эти методы пошагово, вы сможете локализовать и устранить большинство проблем, связанных с Мобильным Клиентом, обеспечив стабильную и бесперебойную работу вашей конфигурации 1С.