Публикация

Белое окно при сохранении вложений 1С на macOS: причина, диагностика и рабочее исправление

Почему веб-клиент 1С на macOS открывает пустое окно выбора папки и не сохраняет вложения. Разбор native messaging, chooseFiles и безопасного arm64-исправления без замены системных файлов 1С.

1С и macOS 6 мин
Схема исправления диалога выбора папки 1С на macOS через native messaging proxy

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

Проблема может находиться не в форме 1С и не в Chrome. В разобранном случае зависал старый нативный файловый модуль 1С на вызове chooseFiles: браузер передавал команду корректно, но модуль не возвращал выбранный путь. Ниже — как это отличить от обычной блокировки загрузок и как устроено точечное исправление.

Путь команды

Что происходит после нажатия «Сохранить вложения»

  1. 011С вызывает chooseFiles
  2. 02Chrome передаёт native message
  3. 03macOS возвращает папку
  4. 04Штатный модуль записывает файлы
  • Пустое окно появляется до загрузки самих вложений
  • Если нет ответа chooseFiles, 1С не знает каталог назначения
  • Новый диалог можно подставить только для выбора папки
  • Содержимое документов через исправление не проходит

Как отличить этот сбой от настроек загрузки Chrome

При обычной блокировке загрузки Chrome показывает значок, предупреждение или запись в списке скачиваний. Здесь картина другая: 1С открывает системный выбор папки, окно визуально пустое или полупрозрачное, а после клика исчезает без результата. Команда остаётся незавершённой, потому что путь назначения не вернулся в веб-клиент.

Полезный признак — одинаково не работают массовое сохранение, отдельные вложения и попытка выбрать каталог клавиатурой. Это указывает, что проблема ниже страницы браузера: в связке расширения Chrome и нативного приложения, которое показывает системное окно.

  • в загрузках Chrome нет нового файла
  • окно не реагирует как нормальный Finder-диалог
  • после закрытия 1С не показывает успешное сохранение
  • перезагрузка страницы временно ничего не меняет

Где именно ломается цепочка

Файловое расширение 1С для Chrome состоит из двух частей. Расширение браузера получает запрос веб-клиента, а зарегистрированный в macOS native-messaging host выполняет операции с локальной файловой системой. Для массового сохранения сначала вызывается chooseFiles в режиме выбора каталога, затем уже идут проверки существования и получение файлов.

В диагностированном случае расширение Chrome было актуальным, соединение с native host устанавливалось, служебные методы отвечали, но chooseFiles зависал без ответа. Проблемный helper был сборкой x86_64, тогда как исправленный диалог был собран нативно под arm64. Это не доказывает, что архитектура — единственная возможная причина для каждого Mac, но точно локализует сбой в старом диалоге, а не в документах или правах 1С.

Что проверять по слоям
СлойНормальное поведениеПризнак проблемы
Веб-клиент 1СФормирует команду сохраненияКоманда вызывается, но не получает каталог
Расширение ChromeПередаёт native messageHost не подключается или порт закрывается
Файловый модуль 1СПоказывает диалог и возвращает путьБелое окно и нет ответа chooseFiles
Файловая системаПолучает DOCX/PDF после выбораДо записи дело вообще не доходит

Почему обновления расширения Chrome может быть недостаточно

Версия расширения из Chrome Web Store и версия нативного helper — разные вещи. Магазин обновляет JavaScript-часть в браузере, а локальное приложение устанавливается отдельно веб-клиентом или дистрибутивом платформы 1С. Поэтому свежая версия расширения не гарантирует, что рядом установлен совместимый файловый модуль.

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

Как устроено кастомное исправление KMVSG

Проект устанавливает пользовательский native-messaging manifest, который имеет приоритет над системным только для текущего пользователя macOS. Небольшой proxy передаёт штатному helper все сообщения без изменений, кроме chooseFiles в режиме выбора папки. Для этого единственного вызова запускается современный NSOpenPanel, собранный локально под архитектуру компьютера.

После подтверждения каталога proxy возвращает путь веб-клиенту в ожидаемом формате. Дальнейшие команды — проверка файлов и собственно получение вложений — снова выполняются оригинальным модулем 1С. Системный manifest и бинарник под /Library не изменяются, журналирование отсутствует, сетевого кода в исправлении нет.

  • установка только в профиле пользователя
  • резервная копия прежнего user-level manifest
  • отсутствие логов и сетевых запросов
  • открытый исходный код proxy, installer и Swift-диалога
  • полный откат одной командой

Установка, проверка и откат

Для установки нужны macOS, Chrome, уже установленный штатный файловый модуль 1С, Node.js 18+ и Xcode Command Line Tools. Installer находит системный manifest 1С, сохраняет прежнюю пользовательскую настройку, компилирует FolderPicker для текущего Mac и регистрирует proxy. После этого достаточно заново открыть вкладку 1С; иногда требуется перезапуск Chrome.

Проверять лучше на одном письме с небольшими DOCX и PDF: открыть «Сохранить вложения», убедиться, что появился полноценный диалог с боковой панелью Finder, выбрать тестовую папку и проверить типы и размеры файлов. Для удаления запускается uninstall.sh — он убирает proxy и восстанавливает прежний пользовательский manifest, если он существовал.

Ограничения и безопасный порядок действий

Исправление рассчитано на конкретный симптом: зависание выбора папки в веб-клиенте 1С на macOS. Оно не лечит запрет загрузок политиками Chrome, отсутствие прав в 1С, ошибки криптографии, недоступность самого вложения или повреждённый файл. Если native host вообще не подключается, сначала нужно восстановить штатную установку.

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

Короткий чек-лист

  • Проверить, что симптом совпадает с белым окном выбора папки
  • Уточнить версии Chrome extension и native helper отдельно
  • Сначала запросить официальный совместимый установщик
  • Сохранить user-level manifest перед изменением
  • Проверить сохранение на небольших DOCX и PDF
  • После официального обновления удалить кастомный proxy

Ссылки и исходный код