Почему неактивно поле ввода текста письма в 1С:УНФ и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой IT и автоматизация бизнеса
← На главную

При работе в конфигурации «1С:Управление нашей фирмой» (1С:УНФ) пользователи часто сталкиваются с неприятной проблемой: при создании нового исходящего электронного письма поле ввода основного текста сообщения и поле редактирования подписи оказываются полностью заблокированными (отображаются серыми, курсор туда поставить невозможно). При этом поле «Тема» и список получателей остаются доступными для редактирования, а само письмо при отправке уходит, но без тела сообщения.

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

---

Причина 1: Инфраструктурный сбой (ограничения движка рендеринга Internet Explorer)

Рассмотрим подробнее, как устроена форма отправки писем в 1С. В версиях платформы «1С:Предприятие» ниже 8.3.14 для отображения и редактирования текста письма с форматированием (различные шрифты, цвета, таблицы) используется специальный объект — ФорматированныйДокумент. На операционных системах семейства Windows этот объект инициализируется и отрисовывается с помощью встроенного системного движка MSHTML, который принадлежит браузеру Internet Explorer.

Если база данных развернута на сервере под управлением Windows Server (2003, 2008, 2012 или более современных версий), и пользователи подключаются к ней через терминальный доступ (RDP), в дело вступают жесткие политики безопасности. По умолчанию в серверных ОС Windows активна функция IE ESC (Enhanced Security Configuration — Конфигурация усиленной безопасности Internet Explorer). Эта функция блокирует выполнение любых активных сценариев (скриптов JavaScript и элементов ActiveX) в целях защиты сервера. Без выполнения этих сценариев визуальный редактор ФорматированныйДокумент просто не может запуститься, в результате чего поле ввода «замораживается».

Способ решения А: Настройка зон безопасности Internet Explorer

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

  1. На сервере, где запущена сессия пользователя (или локально, если база файловая), откройте меню «Пуск» и найдите пункт «Свойства браузера» (в старых версиях ОС — «Свойства обозревателя»). Также эти настройки можно открыть непосредственно из браузера Internet Explorer через меню «Сервис» (значок шестеренки) -> «Свойства браузера».
  2. В открывшемся окне перейдите на вкладку «Безопасность».
  3. Выберите зону безопасности «Интернет» (или «Надежные сайты», если вы планируете добавить адрес базы туда) и нажмите кнопку «Другой...» в нижней части окна.
  4. В появившемся списке параметров найдите группу настроек под названием «Сценарии» (Scripting).
  5. В пункте «Активные сценарии» (Active Scripting) установите переключатель в положение «Включить» (Enable).
  6. Нажмите кнопку «ОК», затем подтвердите изменения кнопкой «Применить».
  7. Перезапустите сеанс работы в 1С и проверьте доступность поля ввода текста письма.

Способ решения Б: Отключение конфигурации усиленной безопасности (IE ESC)

Для системных администраторов более быстрым решением будет полное или частичное отключение IE ESC на сервере:

  1. Откройте консоль «Диспетчер серверов» (Server Manager).
  2. Перейдите в раздел «Локальный сервер» (Local Server).
  3. Найдите пункт «Конфигурация усиленной безопасности Internet Explorer» (IE Enhanced Security Configuration).
  4. Переведите переключатель в режим «Откл.» (Off) для групп Администраторов и/или Пользователей в зависимости от ваших политик безопасности.

Способ решения В: Переход на платформу 1С:Предприятие 8.3.14 и выше

Начиная с релиза платформы 8.3.14, фирма 1С полностью переработала механизм рендеринга HTML-содержимого. Платформа отказалась от использования устаревшего системного MSHTML (Internet Explorer) в пользу современного кроссплатформенного движка WebKit (Chromium).

Переход на актуальную версию платформы полностью решает проблему зависимости от настроек Internet Explorer. Однако при этом следует учитывать несколько важных нюансов:

---

Причина 2: Программный сбой БСП (Идентификаторы событий и Взаимодействия)

Если настройки Internet Explorer верны, платформа обновлена до современной версии, но поле ввода текста письма все равно заблокировано, причина кроется в ошибке внутри кода конфигурации. Почтовый клиент в «1С:УНФ» базируется на подсистеме «Взаимодействия» из состава «Библиотеки стандартных подсистем» (БСП).

Проанализируем программную логику этого механизма. При создании нового исходящего письма система автоматически генерирует для него уникальный идентификатор (GUID). По этому идентификатору программа определяет состояние объекта. Однако после некорректных обновлений конфигурации, переноса данных, распределения распределенных баз данных (РИБ) или слияния баз, механизм генерации может дать сбой.

В результате при создании нового документа «Электронное письмо исходящее» программа генерирует идентификатор, который уже существует в базе данных и жестко привязан к какому-то старому входящему письму. Алгоритмы БСП отрабатывают следующим образом: если идентификатор уже есть в базе и ассоциирован с входящим сообщением, то редактировать его нельзя (ведь полученные письма должны быть защищены от изменений). Система автоматически переводит форму документа в режим «Только чтение» для форматированного текста, блокируя поля ввода текста и подписи, хотя шапка письма (Тема, Важность) может частично оставаться доступной.

Способ решения А: Очистка регистра сведений «Идентификаторы событий»

Для исправления коллизии идентификаторов нам необходимо очистить кэшированные и ошибочные записи в регистрах подсистемы взаимодействий. Посмотрим на последовательность действий:

  1. Откройте 1С в режиме «Предприятие» под учетной записью с правами Администратора.
  2. Перейдите в функции для технического специалиста (или откройте форму через «Все функции», если этот режим доступен в вашей версии платформы).
  3. Найдите регистр сведений «Идентификаторы событий».
  4. Проанализируйте записи. Если база большая, рекомендуется очистить этот регистр. Записи в нем сгенерируются заново при создании новых документов, но дублирование и коллизии исчезнут. Очистку можно провести вручную или программно.
  5. Также рекомендуется проверить смежные регистры сведений, такие как КонтактыВзаимодействий и СостоянияКонтактовВзаимодействий на наличие битых или зацикленных ссылок.

Способ решения Б: Запуск отложенного обновления информационной базы

Часто сбои в идентификаторах метаданных возникают из-за того, что обновление конфигурации было выполнено «накатом» без завершения регламентных процедур. Выясним, как завершить этот процесс:

  1. Перейдите в раздел «НСИ и администрирование» -> «Обслуживание» -> «Результаты обновления программы».
  2. Проверьте, нет ли в списке незавершенных процедур или зависших обработчиков отложенного обновления БСП.
  3. Если обнаружены невыполненные обработчики, запустите их выполнение принудительно и дождитесь окончания процесса.

Способ решения В: Принудительное обновление идентификаторов объектов метаданных

Если регистры очищены, но проблема сохраняется, программисту необходимо обновить справочник идентификаторов метаданных. Для этого можно воспользоваться внешней обработкой «Консоль кода» или написать простой одноразовый скрипт:


// Принудительное обновление идентификаторов объектов метаданных БСП
Попытка
    Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Истина, Истина);
    Сообщить("Обновление идентификаторов метаданных успешно завершено.");
Исключение
    Сообщить("Ошибка при обновлении метаданных: " + ОписаниеОшибки());
КонецПопытки;

Этот код принудительно перезапишет все связи объектов метаданных конфигурации со справочником идентификаторов, устранив возможные логические несоответствия, блокирующие корректное определение типа создаваемого документа «Электронное письмо».

---

Резюме и рекомендации

Мы подробно разобрали две абсолютно разные природы одной и той же проблемы в 1С:УНФ. На практике диагностику следует проводить по следующему алгоритму:

  1. Проверка окружения: Если база работает на сервере через RDP, а версия платформы ниже 8.3.14, в 99% случаев проблема кроется в настройках безопасности Internet Explorer. Применяйте решение с изменением уровня безопасности зоны «Интернет» или отключением IE ESC.
  2. Проверка программной логики: Если платформа современная, а проблема проявилась сразу после обновления конфигурации или переноса данных, дело в коллизии идентификаторов событий. Проведите очистку регистра «Идентификаторы событий» и обновите метаданные с помощью встроенных инструментов БСП.
← На главную