Сценарий выглядит странно: в веб-клиенте 1С нажимают «Сохранить вложения», появляется почти пустое белое окно macOS, а любое касание закрывает его. Папка не выбирается, файлы не записываются, отдельные ссылки и клавиатурные комбинации тоже не помогают.
Проблема может находиться не в форме 1С и не в Chrome. В разобранном случае зависал старый нативный файловый модуль 1С на вызове chooseFiles: браузер передавал команду корректно, но модуль не возвращал выбранный путь. Ниже — как это отличить от обычной блокировки загрузок и как устроено точечное исправление.
Путь команды
Что происходит после нажатия «Сохранить вложения»
- 011С вызывает chooseFiles
- 02Chrome передаёт native message
- 03macOS возвращает папку
- 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 message | Host не подключается или порт закрывается |
| Файловый модуль 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
Ссылки и исходный код
В материале раскрыты запросы: 1С macOS не сохраняет вложения, белое окно 1С Chrome, chooseFiles 1С macOS, 1C FileSystem Extension Mac, native messaging 1С.