Работа в среде 1C:Enterprise Development Tools (EDT) на операционных системах семейства Linux, в частности на Ubuntu, имеет свои специфические особенности. Одной из наиболее неприятных проблем, с которой сталкиваются разработчики, является внезапный отказ системы принимать учетные данные пользователя информационной базы. При попытке импорта конфигурации или синхронизации проекта возникает критическая ошибка: java.util.concurrent.ExecutionException: com._1c.g5.v8.dt.platform.services.core.runtimes.execution.InfobaseUserAuthenticationException: Журнал процесса платформы [код ошибки 1]: Пользователь ИБ не идентифицирован.
При этом самое странное заключается в том, что обычный «Толстый клиент» или «Конфигуратор» платформы 1С:Предприятие на той же машине работают абсолютно корректно и принимают те же самые логин и пароль. В этой статье мы подробно разберем, почему возникает этот конфликт и как настроить вашу рабочую среду так, чтобы навсегда забыть об этой ошибке.
Проанализируем ситуацию с технической точки зрения. 1C:EDT построена на базе открытой платформы Eclipse. Для хранения конфиденциальных данных (паролей от информационных баз, ключей SSH, токенов репозиториев) Eclipse использует механизм под названием Secure Storage (Защищенное хранилище). В среде Linux это хранилище пытается интегрироваться с системными сервисами управления ключами, такими как Gnome Keyring или libsecret.
Конфликт возникает в тот момент, когда EDT пытается записать или прочитать пароль пользователя ИБ. Если системная «связка ключей» заблокирована, недоступна из-за отсутствия нужных библиотек или возникла ошибка в мастере-пароле хранилища, EDT передает платформе 1С пустую строку вместо пароля или некорректный токен. В результате платформа выдает закономерный ответ: пользователь не идентифицирован.
Рассмотрим самый простой и эффективный метод, который помогает большинству пользователей. Нам необходимо отключить автоматическую интеграцию с системным хранилищем.
infobaseBinding. Именно здесь хранятся привязки ваших проектов к информационным базам и их учетные данные.Linux integration (64 bit)), оставив только базовые способы генерации пароля.После этого рекомендуется перезагрузить EDT. При следующей попытке обращения к базе среда снова спросит пароль. Введите его и проверьте работоспособность.
Если манипуляции с оглавлением не помогли, разберем более радикальный метод — полную очистку кэша защиты. Посмотрим на вкладку Защищенное хранилище (Secure Storage) еще раз.
Нажмите кнопку Очистить пароли (Clear Passwords). Это действие сбросит текущую сессию доступа к хранилищу. Однако иногда этого недостаточно, так как поврежденный файл хранилища физически остается в вашей домашней папке. Выполним «жесткий сброс» через файловую систему:
cd ~/.eclipse/org.eclipse.equinox.security/.rm secure_storage.При запуске или первом обращении к базе EDT предложит создать новое хранилище и задать мастер-пароль. Важный совет: задайте надежный пароль, чтобы обеспечить безопасность ваших данных.
Если графический интерфейс не позволяет решить проблему, проанализируем возможность настройки через конфигурационные файлы. У EDT есть файл параметров запуска 1cedt.ini, который находится в папке с установленной программой.
Мы можем добавить специальные инструкции для виртуальной машины Java (JVM), чтобы заставить EDT игнорировать системные службы защиты. Найдите в файле секцию -vmargs и добавьте в её конец следующую строку:
-Dorg.eclipse.equinox.security.skipMasterPassword=true
-Dorg.eclipse.equinox.security.storage.priority=passwordProvider
Параметр skipMasterPassword заставляет среду использовать упрощенный механизм хранения, что крайне полезно, когда в Ubuntu возникают конфликты с Gnome Keyring. Также полезно убедиться, что EDT запущена под правильной версией Java. Напомним, что для актуальных версий EDT (2022.x и выше) настоятельно рекомендуется использовать BellSoft Liberica JDK 11 (Full версия).
Иногда ошибка «Пользователь ИБ не идентифицирован» возникает из-за того, что EDT пытается использовать способ аутентификации OS (операционной системы), даже если вы явно вводили логин. Разберем, как это исправить в настройках проекта:
secure_storage).В качестве временного решения (обходного пути) можно попробовать указать параметры непосредственно в дополнительных параметрах запуска информационной базы в EDT:
/N"Администратор" /P"ВашПароль"
Проанализируем еще один неочевидный аспект. Для отрисовки диалоговых окон аутентификации EDT использует внутренний браузер, который в Linux базируется на библиотеке WebKit2GTK. В современных версиях Ubuntu (22.04, 23.04) по умолчанию устанавливаются более новые версии этой библиотеки, которые могут быть несовместимы со старыми модулями Eclipse.
Проверьте наличие библиотеки в системе. Выполните команду в терминале:
sudo apt install libwebkit2gtk-4.0-37
Если в вашей системе установлена только версия 4.1, EDT может некорректно обрабатывать формы ввода пароля, что приведет к тому, что платформа 1С получит пустые данные аутентификации.
Подводя итог, можно сказать, что связка EDT + Linux абсолютно работоспособна, но требует внимательного отношения к механизмам безопасности среды Eclipse. Большинство проблем с идентификацией пользователя решаются именно через Параметры -> Защита -> Защищенное хранилище.
Золотое правило для работы на Ubuntu: если вы столкнулись с ошибкой «Пользователь не идентифицирован», первым делом очистите secure_storage и попробуйте отключить провайдеры мастер-пароля, связанные с ОС. Это гарантирует, что EDT будет хранить пароли в своем локальном файле, не пытаясь взаимодействовать с иногда капризными службами GNOME.