Правка формы 1С и мобильный клиент: сравнение выгрузок указало 13 изменений из 13, платформа 8.3.27 отметила 7

27.10.26

Разработка - Инструментарий разработчика

Скрипт form_diff_mobile.py сравнивает две выгрузки конфигурации 1С и показывает, что в формах удалено и переименовано, где на это ещё ссылаются и какой код попадает в мобильные контексты. На «Нано-УТ 2.0» сделано 13 изменений форм: платформа 8.3.27.2130 отметила 7, в остальных шести промолчала, и в четырёх из них скрипт нашёл обращение к удалённому элементу, строку с прежним именем формы, смену директивы или выход формы из мобильной области. На чистой УТ 11.5 сравнение с копией дало 0 находок, а с копией с пятью правками ровно семь. В архивах скрипт, 74 теста, стенд, чек-лист выпуска, журнал выпуска и скрипты опытов на платформе.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Инструмент form_diff_mobile.py: сравнение двух выгрузок конфигурации 1С, ссылки на удалённое и мобильные контексты, 74 теста, «Нано-УТ 2.0» и серия из 13 изменений (версия 1.1, 26.10.2026)
.zip 367,80Kb
0 5 000 руб. Купить
Чек-лист выпуска для мобильного клиента 1С, журнал выпуска, команды платформы, отчёты 13 опытов, скрипты проверки (25.10.2026)
.zip 60,65Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
Разработка 1С
О чём это (в трёх тезисах)
1.Платформа остановила 7 из 13 изменений: два отклонила загрузка выгрузки из файлов («Неверный путь к данным»), пять нашли проверки модулей и конфигурации. В остальных шести она промолчала. Из этих шести в четырёх скрипт нашёл то, что нужно решать до выпуска: обращение к удалённому элементу формы, строку с именем переименованной формы, смену директивы процедуры и форму, ушедшую из мобильной области. Ещё две правки дали только сведения.
2.Мобильные ключи /CheckModules делят код на три контекста: мобильное приложение-клиент, мобильный клиент и мобильное приложение-сервер. Я сняла с платформы таблицу для 44 сочетаний директивы и условия #Если, для шести вариантов директивы в форме и для четырёх общих модулей с разными флагами, а также перечни типов, которых нет в мобильном контексте: 10, 4 и 9 типов. Назначение использования конфигурации и формы на эти проверки не влияет. Платформа приняла выдуманный ключ -FooBar без сообщения, поэтому успешный прогон мобильных ключей нужно подтверждать контрольной ошибкой.
3.На чистой УТ 11.5.22.77 (4850 форм) сравнение выгрузки с её копией дало 0 находок, а сравнение с копией, где внесено пять правок, дало ровно семь находок по этим правкам. Для проверки есть 74 теста инструмента и 22 теста компаньона, работающих без платформы.
Протокол проверки
Что проверялосьскрипт form_diff_mobile.py на 13 изменениях форм «Нано-УТ 2.0»; ответы платформы 8.3.27.2130 на загрузку выгрузки, на /CheckModules с обычными и мобильными ключами и на /CheckConfig; таблицы контекстов, снятые с платформы; прогон на чистой выгрузке УТ 11.5.22.77.
Где и когда25.10.2026, Windows 11 Pro, Intel Core i5-2400, 7,9 ГБ ОЗУ, SATA SSD, при открытых приложениях; 1С:Предприятие 8.3.27.2130 x86, файловая база; Python 3.12.10; «Нано-УТ 2.0» (68 форм) и выгрузка УТ 11.5.22.77 (4850 форм).
Какиз выгрузки «Нано-УТ» скриптом make_series.py собраны 13 вариантов с одним изменением формы; каждый загружен в файловую базу командой /LoadConfigFromFiles, затем выполнены четыре проверки; те же пары выгрузок сравнил form_diff_mobile.py; отдельные опыты на платформе дали таблицы контекстов; на УТ сделана копия на жёстких ссылках, в ней заменены пять файлов.
Результатплатформа отметила 7 вариантов из 13; скрипт указал изменение во всех 13 и ссылки, оставшиеся после 8 из них; на УТ 0 находок на неизменённой копии и 7 на копии с пятью правками.
Границыплатформа даёт синтаксический контроль и проверку конфигурации, мобильное приложение и мобильный клиент на устройстве я не запускала. Опыты выполнены на одной версии платформы, учебной конфигурации и одной типовой выгрузке. Скрипт ищет ссылки по имени и не компилирует код.
Суть статьи

Сравнение двух выгрузок отвечает на вопрос, что изменилось в формах и кто на это ссылается. Платформа отвечает на другой вопрос: компилируется ли код в каждом из мобильных контекстов. Оба ответа нужны, потому что пересекаются они только частично: часть правок платформа отклоняет при загрузке, часть видит только мобильная проверка, а часть не видит никакая.

Ключевые идеи
  • Загрузка выгрузки отклоняет DataPath к удалённому реквизиту формы или объекта, /CheckConfig -HandlersExistence находит команду без обработчика, /CheckModules с мобильными ключами находит типы, которых нет в мобильном контексте.
  • Обращение Элементы.Имя к удалённому элементу, строку ОткрытьФорму с прежним именем формы, смену директивы и выход формы из мобильной области платформа не отмечает.
  • Условие #Если Не МобильноеПриложениеКлиент И Не МобильныйКлиент Тогда убирает код из обоих клиентских мобильных контекстов, и платформа это подтверждает.
Главная мысль

перед выпуском формы, которая работает в мобильном клиенте, нужны оба прохода, сравнение выгрузок и мобильные проверки платформы; журнал решений по найденному делает проверку повторяемой.

Для кого: разработчики и ведущие разработчики 1С, которые выпускают конфигурацию с мобильным приложением или мобильным клиентом и хотят заранее видеть, какие правки форм заденут мобильные контексты.

Форму в основной конфигурации правят каждую неделю: убирают реквизит, переименовывают команду, добавляют процедуру. Если конфигурация работает и в мобильном приложении или мобильном клиенте, правка может сломать их так, что в обычном клиенте этого не видно. Я написала скрипт form_diff_mobile.py, который сравнивает две выгрузки конфигурации и показывает, что в формах удалено и переименовано, где на это ещё ссылаются и какой код попадает в мобильные контексты платформы. Затем сделала на «Нано-УТ 2.0» 13 изменений форм и для каждого записала, что сказал скрипт и что сказала платформа 8.3.27.2130. Ложные находки искала на чистой выгрузке УТ 11.5.22.77.

Стенд и порядок работы

Условие Значение
Платформа 1С:Предприятие 8.3.27.2130 x86, пакетный Конфигуратор (DESIGNER), файловая база
Стенд «Нано-УТ 2.0»: учебная конфигурация, 68 форм, 49 модулей форм; назначение конфигурации PlatformApplication, у форм назначение не задано
Выгрузка УТ 11.5.22.77, 4850 форм; у форм справочников (1199 из 1199) назначение PlatformApplication и MobilePlatformApplication; выгрузка только читалась
Инструмент form_diff_mobile.py, Python 3.12.10, только стандартная библиотека
Компьютер Windows 11 Pro, Intel Core i5-2400, 7,9 ГБ ОЗУ, SATA SSD; рабочая машина с открытыми приложениями
Метод серия из 13 изменений с загрузкой каждого в файловую базу; четыре проверки платформы на вариант; опыты по контекстам; прогон на УТ с пятью заложенными правками

Выводы относятся к платформе 8.3.27.2130, одной небольшой учебной конфигурации и одной выгрузке УТ. Мобильные приложения на телефоне и мобильный клиент в браузере телефона я не запускала.

Что платформа считает мобильным

Платформа проверяет мобильный код в трёх контекстах. В журнале они подписаны так: «Мобильное приложение-клиент» (дальше МПК), «Мобильный клиент» (МК) и «Мобильное приложение-сервер» (МПС). Команды:

Bash UTF-8
1
2
3
DESIGNER /F <база> /CheckModules -MobileAppClient -MobileAppServer
DESIGNER /F <база> /CheckModules -MobileClient
DESIGNER /F <база> /CheckConfig -MobileAppClient -MobileAppServer -MobileClient -HandlersExistence -IncorrectReferences

Команда /CheckModules с выдуманным ключом -FooBar вернула код 0 и сообщение «Синтаксических ошибок не обнаружено!». Поэтому ключи -MobileClient и остальные я подтвердила контрольной ошибкой. В клиентскую процедуру формы добавлен Новый COMОбъект("Excel.Application"). Обычный контроль модулей прошёл чисто, а мобильные проверки вернули код 101 и «Тип не определен (COMОбъект)» с подписью «Проверка: Мобильное приложение-клиент» и «Проверка: Мобильный клиент».

Директивы и общие модули

Опыт platform_probe.py добавляет в форму процедуры с одной и той же строкой Новый COMОбъект("A") и смотрит, в каких контекстах платформа её проверила:

Что содержит код Контексты, где платформа проверила строку
процедура формы с &НаКлиенте МПК, МК
процедура формы с &НаСервере или &НаСервереБезКонтекста МПС
процедура формы без директивы МПС
процедура формы с &НаКлиентеНаСервереБезКонтекста МПК, МК, МПС
процедура формы с &НаКлиентеНаСервере ни в одном
общий модуль с флагом «Клиент (управляемое приложение)» МПК, МК
общий модуль с флагом «Сервер» МПС
общий модуль с обоими флагами МПК, МК, МПС
общий модуль только с «Внешнее соединение» ни в одном

Процедура без директивы в модуле формы компилируется как серверная. Директива &НаКлиентеНаСервере в проверках не получила замечаний ни в одном контексте, поэтому скрипт код такой процедуры не разбирает.

Условия препроцессора

При независимой проверке 26.10 я обнаружила три ошибки первой версии: снятие внешнего #Если не меняло тело процедуры и оставалось без проверки типов; замена только строкового литерала исчезала при сравнении; смена регистра имени обработчика давала ложную ошибку отсутствующей процедуры. В версии 1.1 сравнение хранит значения литералов отдельно от кода, имена BSL сопоставляются без учёта регистра, а для типов сравнивается число вхождений каждой строки в каждом мобильном контексте. Это учитывает смену директивы и флагов общего модуля и не выдаёт прежнюю активную строку за новую при добавлении или удалении защищённого повтора. Тринадцать дополнительных тестов довели набор инструмента до 74. Проверки этих исправлений выполнены на мини-выгрузках и через CLI; телефон и мобильный клиент в них не запускались.

Для 11 флагов и для каждого флага с Не (22 условия) под директивами &НаКлиенте и &НаСервере платформа показала, в каких контекстах строка внутри #Если ... Тогда проверяется. Получилась таблица истинности:

Флаг МПК МК МПС
Клиент да да нет
Сервер нет нет да
МобильноеПриложениеКлиент да нет нет
МобильныйКлиент нет да нет
МобильноеПриложениеСервер нет нет да
ТонкийКлиент, ВебКлиент, ТолстыйКлиентОбычноеПриложение, ТолстыйКлиентУправляемоеПриложение, ВнешнееСоединение, МобильныйАвтономныйСервер нет нет нет

Практический вывод для кода: условие Не МобильноеПриложениеКлиент И Не МобильныйКлиент оставляет клиентский код только для обычных клиентов, а Не МобильноеПриложениеСервер убирает серверный код из мобильного приложения. Проверка этого условия вынесена в серию (вариант s05).

Типы, которых нет в мобильном контексте

Опыт перебирает 62 типа конструктором Новый <Тип> в клиентской и серверной процедурах (124 пробы) и сравнивает ответ мобильного контекста с ответом обычного контекста той же стороны: тонкого клиента для клиентских процедур и сервера для серверных. В список попадает тип, которого нет в мобильном контексте и который есть в обычном.

Контекст Типы
МПК COMОбъект, ТекстовыйДокумент, ГеографическаяСхема, ГрафическаяСхема, WSОпределения, FTPСоединение, ПреобразованиеXSL, СхемаКомпоновкиДанных, ПроцессорКомпоновкиДанных, ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент
МК COMОбъект, ГеографическаяСхема, ГрафическаяСхема, ПреобразованиеXSL
МПС COMОбъект, ТекстовыйДокумент, ГеографическаяСхема, ГрафическаяСхема, FTPСоединение, ПреобразованиеXSL, ПостроительЗапроса, ПостроительОтчета, HTTPСервисОтвет

ТекстовыйДокумент попал в МПК и МПС и не попал в МК: клиентская процедура с ним проходит -MobileClient и не проходит -MobileAppClient. Для остальных 49 типов из перебора мобильные контексты отвечают так же, как обычные. Например, ТабличныйДокумент, ЧтениеXML, ЗаписьJSON, Файл и Структура не получили замечаний ни в одном контексте.

Назначение использования не влияет

В «Нано-УТ» конфигурация назначена только PlatformApplication. Я проверила один и тот же вариант с COMОбъект в четырёх видах: как есть; с добавленным в конфигурацию MobilePlatformApplication; с назначением формы только PlatformApplication; с обоими изменениями. Платформа приняла назначение (обратная выгрузка показала его у формы) и дала в каждом виде одни и те же замечания: по одному в МПК и МК и два в проверке конфигурации. Мобильные проверки /CheckModules идут по всем формам независимо от UsePurposes.

Что делает скрипт

form_diff_mobile.py читает две выгрузки (два каталога или два коммита git) и ничего в них не пишет. Режим --git берёт из ревизий только *.xml и *.bsl, а изменённые файлы узнаёт командой git diff. Запуск:

Bash UTF-8
1
2
python form_diff_mobile.py <старая выгрузка> <новая выгрузка>
python form_diff_mobile.py --git <репозиторий> <выпуск> <кандидат> --subdir src --mobile-only

Скрипт сопоставляет объекты двух выгрузок: реквизиты, команды и элементы формы по id, форму по uuid, реквизиты объекта по uuid, процедуры по имени и по совпадению тела (так находится переименование). Для всего удалённого и переименованного он ищет оставшиеся ссылки: DataPath элементов, идентификаторы и строки в модуле формы, Элементы.Имя и Элементы["Имя"], полное имя формы в строках ОткрытьФорму всех модулей и в свойствах объектов, вызовы удалённой процедуры в том же модуле. Для каждой процедуры он считает мобильные контексты по таблицам из предыдущего раздела и ищет в новых и изменённых строках типы из перечня. Уровни находок: ОШИБКА, если остались ссылки, нет обработчика или платформа не знает тип; ВНИМАНИЕ для удалений и смен без ссылок; СВЕДЕНИЯ для добавлений и изменений свойств. Коды находок описаны в README.md архива.

Чего скрипт не делает: он не компилирует BSL, не видит вызовы методов, которых нет в мобильной платформе, ищет ссылки по имени без разбора областей видимости и не разбирает расширения, модули объектов и менеджеров, макеты и права.

Серия из 13 изменений «Нано-УТ»

Скрипт make_series.py собирает из выгрузки «Нано-УТ 2.0» 13 вариантов. В каждом ровно одно изменение формы. Загрузка варианта и четыре проверки платформы заняли от 36 до 45 секунд на каждый вариант, который загрузился.

Скрипт на варианте с COMОбъект

Рисунок 1. Вариант s04: скрипт нашёл Новый COMОбъект в клиентской процедуре и указал два контекста, МК и МПК.

Платформа на варианте с COMОбъект

Рисунок 2. Тот же вариант на платформе: обычный контроль модулей чист, мобильные проверки и проверка конфигурации возвращают код 101.

Вариант Изменение Скрипт Платформа
s01 Удалён реквизит формы СправкаОбУчете, на него ссылаются элемент и модуль ОШИБКА ATTR_REMOVED, 2 ссылки Загрузка отклонена: «Неверный путь к данным»
s02 Удалена кнопка СоздатьЗакрытиеЗаказа, модуль обращается к Элементы.СоздатьЗакрытиеЗаказа ОШИБКА ITEM_REMOVED, 1 ссылка Все проверки чисты
s03 Команда переименована вместе с действием, процедура в модуле осталась со старым именем ОШИБКА HANDLER_MISSING, ВНИМАНИЕ CMD_RENAMED /CheckConfig: «Отсутствует обработчик»; контроль модулей чист
s04 Новый COMОбъект в клиентской процедуре ОШИБКА MOBILE_TYPE (МК, МПК), СВЕДЕНИЯ PROC_ADDED Мобильные проверки: «Тип не определен (COMОбъект)»; обычный контроль чист
s05 Тот же код под #Если Не МобильноеПриложениеКлиент И Не МобильныйКлиент Тогда СВЕДЕНИЯ PROC_ADDED Все проверки чисты
s06 Новый ТекстовыйДокумент в серверной функции ОШИБКА MOBILE_TYPE (МПС), СВЕДЕНИЯ PROC_ADDED МПС: «Тип не определен (ТекстовыйДокумент)»; обычный контроль и мобильный клиент чисты
s07 Команда Печать переведена с &НаКлиенте на &НаСервере ВНИМАНИЕ PROC_DIRECTIVE (МК, МПК, МПС) Все проверки чисты
s08 Удалён реквизит документа Комментарий, элемент с DataPath остался ОШИБКА OBJATTR_REMOVED, 1 ссылка Загрузка отклонена: «Неверный путь к данным»
s09 Переименована форма возврата, форма продажи открывает её по прежнему имени ОШИБКА FORM_RENAMED, 1 ссылка Все проверки чисты
s10 У формы возврата убрано мобильное назначение, её открывает форма продажи ОШИБКА FORM_PURPOSE, 1 ссылка Все проверки чисты
s11 Добавлено десять элементов других видов СВЕДЕНИЯ: 10 элементов и 10 реквизитов Все проверки чисты
s12 Удалена процедура ЗаполнитьЦены, команда на неё ссылается ОШИБКА HANDLER_MISSING, ВНИМАНИЕ PROC_REMOVED /CheckConfig: «Отсутствует обработчик»; контроль модулей чист
s13 Удалена серверная процедура, которую вызывает другая процедура формы ОШИБКА PROC_REMOVED, 1 ссылка (вызов) Все четыре проверки: «Процедура или функция с указанным именем не определена»

Что остановила загрузка

Варианты s01 и s08: удалён реквизит формы СправкаОбУчете и реквизит документа Комментарий, а элементы с DataPath к ним остались. /LoadConfigFromFiles вернул код 1 и сообщение «Неверный путь к данным» с именем файла Form.xml. После такой загрузки мобильные проверки уже не нужны: выгрузка не принимается. Скрипт в обоих случаях дал ОШИБКУ со ссылкой на элемент, а в s01 ещё и на строку модуля, где реквизит присваивается.

Что нашла проверка

Варианты s03 и s12: у команды нет обработчика (команда переименована вместе с действием, процедура осталась со старым именем; процедура удалена, а команда осталась). Такое находит только /CheckConfig с ключом -HandlersExistence («Отсутствует обработчик»); обычный и мобильный контроль модулей оставались чистыми. Вариант s13: удалена процедура, которую вызывает другая процедура формы. Её нашли все четыре проверки: «Процедура или функция с указанным именем не определена».

Варианты s04 и s06 показали мобильную специфику. Новый COMОбъект в клиентской процедуре отмечают МПК и МК, а обычный контроль нет. Новый ТекстовыйДокумент в серверной функции отмечает только МПС: клиентские мобильные проверки и обычный контроль чисты. Вариант s05 повторяет s04 под условием Не МобильноеПриложениеКлиент И Не МобильныйКлиент: все проверки чисты, скрипт отметил только добавленную процедуру.

Где платформа молчит

В варианте s02 из формы заказа удалена кнопка, а модуль в ПриСозданииНаСервере продолжает обращаться к Элементы.СоздатьЗакрытиеЗаказа. Все проверки чисты, скрипт даёт ОШИБКУ со строкой модуля. В s09 переименована форма возврата, а форма продажи открывает её по прежнему имени строкой: платформа молчит, скрипт указывает вызов. В s10 у формы возврата убрано мобильное назначение, при этом её открывает форма продажи: платформа не реагирует, скрипт связывает смену назначения с вызывающим кодом. В s07 команда Печать переведена с &НаКлиенте на &НаСервере: платформа чиста, скрипт отмечает смену директивы и три контекста, в которых процедура теперь компилируется. Вариант s11 добавил десять элементов других видов (HTML-поле, календарь, индикатор, ползунок и другие): форма загрузилась, проверки прошли, скрипт перечислил добавления как сведения. Поддерживаются ли эти виды элементов на телефоне, платформенные проверки не показывают; для таких правок в чек-листе остаётся открытие формы на тестовом клиенте.

Скрипт на варианте с удалённым элементом

Рисунок 3. Вариант s02: все проверки платформы чисты, скрипт указывает обращение к удалённой кнопке.

Чистая УТ 11.5: ложные находки и заложенные правки

Для скрипта, который сравнивает две выгрузки, ложной находкой считается любая находка там, где ничего не менялось. Проверка в двух шагах. Первый: выгрузка УТ 11.5.22.77 сравнивается с копией на жёстких ссылках, и находок должно быть 0. Второй: в копии заменены пять файлов, и скрипт должен найти ровно эти правки.

Правка Ожидаемые находки
Удалён реквизит РазрешитьРедактированиеВладельца формы РазблокированиеРеквизитов (справочник БанковскиеСчетаКонтрагентов); на него ссылаются элемент и две строки модуля ATTR_REMOVED со ссылками
Команда КомандаОК формы РеквизитыБанка переименована вместе с действием CMD_RENAMED, HANDLER_MISSING
В модуль формы элемента справочника АктыОтбораПробЗЕРНО добавлена клиентская процедура с Новый COMОбъект MOBILE_TYPE, PROC_ADDED
У формы РазблокированиеРеквизитов справочника БанковскиеСчетаОрганизаций убрано мобильное назначение FORM_PURPOSE
Удалена кнопка ТолькоДействующие формы списка БанковскиеСчетаКонтрагентов; на неё ссылаются три строки модуля ITEM_REMOVED со ссылками

Сравнение выгрузки с копией на жёстких ссылках дало 0 находок за 8,3 с. Первая версия скрипта читала содержимое всех форм, модулей и объектов, и то же сравнение у неё заняло 318 с (журнал ut-edits-v1.txt в архиве-компаньоне). Теперь файл, который в обеих выгрузках одна и та же жёсткая ссылка, пропускается без чтения, и в режиме --git список изменённых файлов приходит из git diff. Ускорение по размеру и времени изменения файла я сначала пробовала и отвергла: тест на переименовании той же длины (Печать и Выдать) показал, что при одинаковых размере и времени записи правка остаётся незамеченной.

В прогоне версии 1.0 от 25.10 сравнение с копией, где заменены пять файлов, заняло 11,1 с, включая поиск вызовов формы с изменённым назначением по всем 4850 формам и общим модулям. Находок семь, по одной группе на правку, и других нет. У формы РазблокированиеРеквизитов справочника БанковскиеСчетаОрганизаций нет вызовов по имени, поэтому смена назначения получила уровень ВНИМАНИЕ без ссылок. Удалённый реквизит получил три ссылки (элемент и две строки модуля), удалённая кнопка списка тоже три (три строки модуля).

Повтор версии 1.1 от 26.10 также дал 0 находок на неизменённой копии и ровно 7 на копии с пятью правками. Создание копии на жёстких ссылках заняло 53,8 с, сравнение без изменений 11,0 с, с правками 430,3 с. Во время повтора шли другие локальные проверки; причину отличия от прежних 11,1 с я не установила. Эти прогоны не служат сравнением скорости версий. Новый журнал revision-1.1/ut-recheck.txt приложен отдельно от исторического.

Скрипт на УТ с пятью правками

Рисунок 4. Сравнение выгрузки УТ 11.5.22.77 с копией, где заменены пять файлов: семь находок.

Как применить перед выпуском

Чек-лист из архива-компаньона ведёт по порядку: сравнить выгрузки скриптом, собрать базу кандидата, выполнить четыре проверки платформы, закрыть то, что платформа не видит, и записать решение. К чек-листу приложена таблица «находка, что сделать, чем закрыть». Находка FORM_RENAMED закрывается правкой строк ОткрытьФорму, потому что имя формы в строке платформа не проверяет. Находка MOBILE_TYPE закрывается вынесением кода на сервер или условием #Если, и результат подтверждает мобильный контроль модулей.

В конвейер скрипт включается скриптом ci/check_mobile.cmd: он принимает репозиторий и две ревизии, пишет report.txt и возвращает код 1 при находках уровня ОШИБКА. Заполненный журнал выпуска по серии из 13 изменений показывает, как записать решение по каждой находке.

Файлы к статье

К статье приложены два архива.

Инструмент mobile-forms-25-3-tool.zip содержит form_diff_mobile.py, README с таблицами находок и контекстов, 74 теста и выгрузку «Нано-УТ 2.0» со скриптом stand/make_series.py. Запуск из корня распакованного архива:

Bash UTF-8
1
2
3
python stand/make_series.py stand/nano-ut/src series
python form_diff_mobile.py stand/nano-ut/src series/s04-com-client
python -m unittest discover -s tests -v

Компаньон mobile-forms-25-3-companion.zip содержит чек-лист выпуска, заполненный журнал выпуска, команды платформы, отчёты по 13 вариантам (изменение, ответ скрипта, ответ платформы), скрипты опытов на платформе (platform_series.py, platform_probe.py, platform_purposes.py), скрипт проверки на УТ (ut_edits.py), ci/check_mobile.cmd, журналы запусков и 22 теста. Тесты компаньона не запускают платформу: они сверяют журналы между собой.

Тесты из распакованных архивов

Рисунок 5. Тесты обоих архивов из чистой распаковки: 74 у инструмента и 22 у компаньона.

Итог

На 13 изменениях форм «Нано-УТ» платформа 8.3.27.2130 отметила 7: два отклонила загрузка, пять нашли проверки модулей и конфигурации. Скрипт указал все 13 изменений и ссылки, которые остались после 8 из них. Из шести изменений, которые платформа пропустила, четыре скрипт отнёс к уровням ОШИБКА и ВНИМАНИЕ. Мобильные проверки платформы полезны там, где важен тип: COMОбъект и ТекстовыйДокумент они находят в тот же день, когда код добавлен. Обращения к элементам, строки с именами форм и смену назначения форм сравнение выгрузок находит, а платформа нет.

Практический смысл: между выпусками стоит сравнивать выгрузки скриптом и прогонять четыре команды платформы, а решение по каждой находке записывать в журнал. Всё, что платформа не проверяет, остаётся на ручную проверку формы на тестовом клиенте.

Выводы относятся к платформе 8.3.27.2130, файловой базе, учебной конфигурации и одной выгрузке УТ. Устройства, клиент-серверный режим, расширения и другие версии платформы в проверку не вошли; таблицы контекстов и типов для другой версии нужно снимать заново скриптами компаньона.

 
Нинель Адольевна Щербакова
Нинель Адольевна Щербакова (Ninel_S)
Архитектор • SRE & DevOps инженер • HighLoad 1С
Автор технических публикаций на Infostart. Разработчик NOPik, SRE-Suite-for-1C и мультиагентных ассистентов для экосистемы 1С:Предприятие.

Вступайте в нашу телеграмм-группу Инфостарт

1С:Предприятие Мобильное приложение Управляемые формы Выпуск конфигурации Сравнение конфигураций УТ 11.5

См. также

Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)

Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.

50000 руб.

10.09.2026    13220    104    0    

78

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    83157    431    171    

361

Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    285464    1606    423    

1219

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    16667    63    62    

73

Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    44110    122    54    

135

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    76706    147    41    

154

Разработка Инструментарий разработчика Разработчик Руководитель проекта 1С 8.3 Платные (руб)

Pilot 1C превращает задачу, поставленную обычными словами, в техническое задание, код на встроенном языке и сценарии проверки. Прежде чем что-то предложить, он сверяется с устройством вашей конфигурации через граф Analyzer 1C: существует ли объект, из чего он состоит, кто его вызывает, какие роли дают права. Чего найти не удалось – спрашивает, а не выдумывает. Готовый код проходит более полутора сотен проверок по справочнику языка и стандартам разработки, который приезжает вместе с продуктом. Модель – ваша: любой сервер, совместимый с программным интерфейсом OpenAI, в том числе локальный. Правки в конфигурацию Pilot не вносит – их применяет разработчик.

18300 руб.

11.09.2026    3656    5    0    

10

Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    28689    103    46    

107
Для отправки сообщения требуется регистрация/авторизация