Как настроить почтовую рассылку и интерфейс 1С 7.7 при переезде на Windows Server 2022?

Системный администратор 1С v7.7 IT и автоматизация бизнеса
← На главную

Перенос устаревших систем на современные операционные системы часто сопровождается техническими сложностями. В случае с 1С:Предприятие 7.7 и Windows Server 2022 основные проблемы возникают в двух плоскостях: безопасность почтовых протоколов и визуальное отображение интерфейса. Рассмотрим пошагово, как решить эти задачи и обеспечить стабильную работу программы.

Проблема подключения к SMTP через SSL/TLS

Разберем ситуацию с почтой. При использовании внешних компонент, таких как dialmail.dll или rom-mail.dll, на новых ОС часто возникает ошибка подключения. Это происходит из-за того, что Windows Server 2022 по умолчанию блокирует устаревшие протоколы безопасности (TLS 1.0 и 1.1), требуя использования TLS 1.2 или 1.3.

Проанализируем доступные способы решения:

  1. Обновление внешних компонент. Первым делом проверим версии используемых библиотек. Разработчики специализированных компонент выпускают обновления, поддерживающие современные версии OpenSSL. Необходимо заменить старые файлы ssleay32.dll и libeay32.dll на более новые версии (ветка 1.1.x), которые поддерживают актуальные протоколы шифрования.
  2. Использование прокси-утилиты Stunnel. Если компонента не поддерживает TLS 1.2, применим обходной путь. Мы можем настроить Stunnel — программу-посредник, которая будет принимать от 1С почту без шифрования на localhost, упаковывать её в защищенный TLS-туннель и передавать на целевой SMTP-сервер.
  3. Переход на системный объект CDO. Рассмотрим вариант отказа от сторонних библиотек в пользу системного объекта CDO.Message. Он использует настройки самой ОС, что избавляет от проблем с регистрацией DLL. Пример инициализации объекта:

Почта = СоздатьОбъект("CDO.Message");
Конфиг = СоздатьОбъект("CDO.Configuration");
Конфиг.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2;
Конфиг.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = "smtp.yandex.ru";
Конфиг.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value = 465;
Конфиг.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = 1;
Конфиг.Fields.Update();
Почта.Configuration = Конфиг;

Настройка интерфейса и устранение избыточной яркости

Выясним причину дискомфорта при работе с окнами. В современных версиях Windows полностью удалена «Классическая тема», к которой привыкли пользователи 1С 7.7. Стандартный интерфейс Aero Lite делает фон таблиц и панелей слишком белым, что утомляет глаза.

Для исправления ситуации выполним следующие действия:

  1. Корректировка системных цветов через реестр. Мы можем принудительно изменить цвет окон, не меняя тему целиком. Для этого разберем работу с веткой реестра: HKEY_CURRENT_USER\Control Panel\Colors. Параметр Window отвечает за фон (по умолчанию 255 255 255). Попробуем установить значение 240 240 240 для получения мягкого серого оттенка. Также стоит обратить внимание на параметры ButtonFace и AppWorkspace.
  2. Использование компоненты FormEx. Посмотрим на возможности внешней компоненты FormEx. Она позволяет программно управлять цветами форм и элементов управления непосредственно из кода 1С, игнорируя системные ограничения Windows. Это наиболее гибкий метод настройки визуальной части.
  3. Настройка сглаживания шрифтов. Часто проблема заключается не только в цвете, но и в четкости текста. Рекомендуем запустить мастер настройки ClearType в панели управления и подобрать оптимальный вариант отображения шрифтов для конкретного монитора.

Дополнительные системные настройки

Для предотвращения внезапных сбоев при работе с внешними библиотеками, выполним настройку DEP (Data Execution Prevention). Проанализируем системные параметры и добавим исполняемый файл 1cv7s.exe в список исключений предотвращения выполнения данных. Это поможет избежать беспричинных вылетов программы при вызове функций из dialmail.dll.

Также не забудем про кодировки таблиц. На современных ОС при запуске 1С 7.7 часто возникает ошибка «Порядок сортировки, установленный для базы данных, отличается от системного». Для решения этой проблемы создадим пустой файл с названием dbfsort.chk в каталоге базы данных или воспользуемся специальным патчем реестра для игнорирования проверки кодировки.

← На главную