При активной разработке или поддержке конфигураций в среде 1С:Предприятие 8.3 разработчики часто сталкиваются с ситуацией, когда при сохранении модулей или запуске синтаксического контроля система начинает выдавать огромное количество предупреждений и ошибок. Особенно раздражают сообщения с пометкой «(Проверка: Мобильное приложение-клиент)» или «(Проверка: Мобильный клиент)». При этом сама конфигурация может быть исключительно десктопной, и никакая разработка под мобильные устройства в рамках проекта не планируется.
В этой статье мы подробно разберем, почему конфигуратор начинает вести себя подобным образом, выясним причины возникновения таких предупреждений и рассмотрим три практических способа отключения этой проверки в зависимости от ваших текущих задач.
Прежде чем перейти к отключению настроек, давайте проанализируем ситуацию и поймем физику процесса. Платформа 1С:Предприятие активно развивает мобильное направление: разработку мобильных приложений и мобильных клиентов. Однако мобильная операционная система (Android, iOS) и сама мобильная платформа имеют жесткие аппаратные и программные ограничения по сравнению со «стационарным» настольным клиентом.
На мобильной платформе недоступны многие привычные разработчику объекты метаданных, классы, системные процедуры и функции. Например, там нельзя напрямую работать со многими типами документов, планами счетов, сложными бизнес-процессами или специфическими методами операционной системы Windows.
Когда в настройках конфигуратора 1С включена валидация под мобильный контекст, синтаксический анализатор начинает проверять абсолютно весь ваш код на соответствие этим мобильным стандартам. Если система видит использование методов, которые мобильный клиент не сможет переварить, она мгновенно генерирует ошибку. Для баз, которые никогда не будут запускаться на смартфонах, эта проверка абсолютно бесполезна и лишь отвлекает разработчика от реальных ошибок в коде.
Рассмотрим самый распространенный случай. Если ошибки синтаксического контроля начинают лавинообразно появляться прямо в процессе редактирования кода, написания процедур или при сохранении конкретного общего модуля, нам необходимо скорректировать глобальные настройки самого конфигуратора.
Выполним следующие шаги:
Мобильное приложение – клиентМобильное приложение – серверМобильный клиент (в зависимости от конкретного релиза вашей платформы 1С название может слегка отличаться)Проанализируем результат: теперь при динамическом написании кода или сохранении отдельных модулей конфигуратор перестанет анализировать код на применимость в мобильной среде. Ложные предупреждения больше не будут вас беспокоить.
Иногда авторы конфигураций сталкиваются с тем, что при повседневной работе редактор кода ведет себя тихо, но стоит запустить полную проверку всей базы (например, перед обновлением или сдачей проекта), как окно «Служебные сообщения» заполняется сотнями предупреждений о мобильном клиенте.
Давайте разберем по шагам, как исправить настройки глобальной проверки:
Мобильный клиентМобильное приложение – клиентМобильное приложение – серверПосле выполнения этих действий глобальный отчет о проверке конфигурации будет содержать только действительно важные ошибки, относящиеся к вашей целевой платформе (например, тонкому или толстому клиенту на ПК).
Если разрабатываемое или сопровождаемое вами прикладное решение в принципе никогда не будет адаптировано для мобильных устройств, наиболее правильным и системным решением будет полное отключение поддержки мобильных платформ на уровне метаданных конфигурации.
Выполним это кардинальное отключение по шагам:
Мобильное устройство, оставив включенным только Персональный компьютер.Приложение для мобильной платформы, оставив галочку исключительно на Приложение для платформы.Этот способ раз и навсегда решает проблему ложных срабатываний синтаксического контроля. Конфигуратор поймет, что мобильные устройства не являются целевой платформой для этой базы, и больше никогда не предложит вам проверять модули под их ограничения.
Рассмотрим обратную ситуацию: вы действительно разрабатываете решение, которое частично должно функционировать на мобильных устройствах, но при этом содержит большой пласт серверного кода или функционала для ПК. Как в таком случае избежать ошибок синтаксического контроля?
Для этого мы должны использовать механизм условной компиляции и инструкции препроцессора 1С. Мы можем оборачивать участки кода, которые заведомо не поддерживаются на телефонах, в специальные логические конструкции.
Посмотрим на пример правильного оформления кода:
#Если Не МобильноеПриложениеКлиент И Не МобильныйКлиент Тогда
// Данный код будет скомпилирован и выполнен только на настольном ПК
ВыбФайл = Новый Файл("C:\temp\data.xml");
Если ВыбФайл.Существует() Тогда
// Проведение операций с файловой системой Windows
КонецЕсли;
#КонецЕсли
Используя такие конструкции, вы сможете успешно проходить синтаксический контроль для всех видов платформ одновременно, сохраняя при этом работоспособность конфигурации на любых устройствах.
В заключение проанализируем еще одну проблему, часто возникающую при обновлении платформы 1С на сервере. Пользователи могут начать жаловаться на появление системного предупреждения: «Подпись мобильного клиента в приложении на сервере устарела. Необходимо обновить подпись».
Если вы не используете мобильные подключения к вашей базе, это назойливое сообщение можно быстро отключить через административные настройки:
Проверка подписи мобильного клиента.Не выполнять проверку подписи (или снимем соответствующий флаг).Мы пошагово разобрали все возможные варианты отключения проверок мобильного клиента в 1С. Применяйте эти инструкции на практике, чтобы сделать процесс разработки более комфортным и не отвлекаться на ложные предупреждения компилятора!