Как восстановить пропавшую системную учетную запись почты в 1С:Документооборот

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

В работе с конфигурацией 1С:Документооборот (1С:ДО) пользователи часто сталкиваются с ситуацией, когда перестают приходить уведомления о новых задачах, просроченных процессах или других событиях системы. Причиной часто становится внезапное исчезновение так называемой Системной учетной записи в справочнике УчетныеЗаписиЭлектроннойПочты. Рассмотрим подробнее, почему это происходит и как восстановить функционал рассылок, если объект считается неудаляемым, но в базе отсутствует.

Анализ проблемы: почему исчезает предопределенный элемент

Системная учетная запись в 1С является предопределенным элементом. Это означает, что она создается на уровне метаданных в Конфигураторе. В нормальном состоянии система связывает описание элемента в коде с конкретной записью в таблице базы данных (SQL или файловой). Проблема возникает тогда, когда эта связь разрывается.

Разберем основные причины «исчезновения»:

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

Проанализируем ситуацию: если в «чистой» конфигурации запись есть, а в рабочей — нет, значит, нам нужно заставить систему создать этот объект заново и привязать его к метаданным. Выясним, как это сделать максимально быстро.

Решение 1: Использование механизма «Тестирование и исправление»

Это самый простой и часто наиболее эффективный способ, не требующий написания кода. Рассмотрим его по шагам:

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

Система просканирует метаданные справочника УчетныеЗаписиЭлектроннойПочты, обнаружит, что предопределенному элементу СистемнаяУчетнаяЗаписьЭлектроннойПочты не соответствует ни одна запись в базе, и создаст её автоматически. После этого запись появится в списке, и вы сможете заново ввести в неё настройки SMTP/POP3 сервера.

Решение 2: Обновление предопределенных данных через параметры запуска

В современных версиях 1С:Предприятие 8.3, использующих Библиотеку стандартных подсистем (БСП), предусмотрен программный механизм инициализации данных. Попробуем инициировать обновление через командную строку.

Для этого необходимо запустить 1С:Предприятие с дополнительным ключом:

/C ЗапуститьОбновлениеИнформационнойБазы

При таком запуске система выполнит все регламентные процедуры обновления, включая поиск и создание недостающих предопределенных элементов. Разберем альтернативный вариант: если у вас есть доступ к консоли разработчика или внешним обработкам БСП, можно запустить обработку «Обновление предопределенных данных», которая позволит вручную связать элемент справочника с его идентификатором в конфигурации.

Решение 3: Восстановление с помощью программного кода

Если штатные средства не помогают, мы можем принудительно создать элемент и назначить ему признак предопределенного. Посмотрим на пример кода, который можно выполнить во внешней обработке:


Процедура ВосстановитьСистемнуюУчетку()
    // Получаем имя предопределенного узла из метаданных
    ИмяПредопределенного = "СистемнаяУчетнаяЗаписьЭлектроннойПочты";
    
    // Проверяем, существует ли уже такая ссылка
    СсылкаНаУчетку = Справочники.УчетныеЗаписиЭлектроннойПочты[ИмяПредопределенного];
    
    Если СсылкаНаУчетку.Пустая() Тогда
        // Если ссылки нет, создаем новый объект
        НовыйОбъект = Справочники.УчетныеЗаписиЭлектроннойПочты.СоздатьЭлемент();
        НовыйОбъект.Наименование = "Системная учетная запись (восстановленная)";
        
        // Устанавливаем имя предопределенного для связи с метаданными
        НовыйОбъект.ИмяПредопределенныхДанных = ИмяПредопределенного;
        
        НовыйОбъект.Записать();
        Сообщить("Системная учетная запись успешно создана!");
    Иначе
        Сообщить("Ссылка уже существует в базе данных.");
    КонецЕсли;
КонецПроцедуры

Обратите внимание на использование свойства ИмяПредопределенныхДанных. В платформе 8.3 именно оно отвечает за связь объекта в базе данных с элементом, описанным в Конфигураторе. После выполнения этого кода в справочнике появится элемент с характерной иконкой «шарика».

Решение 4: Анализ структуры данных в других конфигурациях

Иногда полезно посмотреть, как инициализируются такие данные в других типовых решениях. Проанализируем пример процедуры инициализации, встречающийся в типовых конфигурациях (например, ЗУП или ERP):


Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт 
    Элемент = Элементы.Добавить(); 
    Элемент.ИмяПредопределенныхДанных = "СистемнаяУчетнаяЗаписьЭлектроннойПочты"; 
    Элемент.Наименование = "Системная учетная запись"; 
    Элемент.ИмяПользователя = "1С:Предприятие"; 
    Элемент.ИспользоватьДляПолучения = Ложь; 
    Элемент.ИспользоватьДляОтправки = Ложь; 
    Элемент.ВремяОжидания = 30; 
    Элемент.ПортСервераВходящейПочты = 110; 
    Элемент.ПортСервераИсходящейПочты = 25; 
    Элемент.ПротоколВходящейПочты = "POP"; 
КонецПроцедуры

Этот код показывает, что система при первом запуске программно заполняет поля учетной записи по умолчанию. Если ваша запись пропала, вы можете вручную создать аналогичную структуру. Однако помните, что для работы регламентных заданий 1С:Документооборот важен именно статус предопределенного элемента, так как система обращается к нему не по коду или наименованию, а через конструкцию Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты.

Важные рекомендации

После того как вам удастся восстановить запись, выполните следующие действия:

Таким образом, восстановление пропавшей системной записи в 1С:ДО — это задача восстановления связи между метаданными и данными. Рассмотренные методы позволяют решить её как через стандартный интерфейс тестирования, так и с помощью минимального программного вмешательства.

← На главную