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