Переходный период между почтой и 1С:Документооборотом: как закрывать дублирование каналов
Каждый, кто внедрял 1С:Документооборот в организации, где десятилетиями работали через почту, сталкивался с «переходным периодом» — временем, когда параллельно функционируют два канала: электронная почта и внутренний документооборот. Инструкции обычно советуют «постепенно отключать почту» или «настроить автоимпорт писем». Но реальная ловушка лежит глубже: дублирование документов – не техническая ошибка, а системный сбой управления процессами. Эта статья не пересказывает справку. Она показывает, как автоматически дедуплицировать письма, внедрить уникальные идентификаторы и закрыть переходный период без потерь данных.
Ловушка автоматического импорта: почему ручная сверка бесполезна
Самая распространённая ошибка – довериться ручной проверке писем и уже созданных из них документов. При потоке 50–200 входящих ежедневно сотрудник быстро теряет концентрацию, и дубли неизбежны. Но главное даже не человеческий фактор: дублирование закладывается в момент настройки автоимпорта. Типичный сценарий: почтовое сообщение обрабатывается обработчиком входящих писем, создаётся входящий документ, но само письмо остаётся в почтовом ящике. При следующем сканировании (или ручном повторном импорте) система создаёт второй документ. Почему? Потому что нет ключа, однозначно связывающего одно письмо с одним документом.
Механика дублирования: одно письмо — два входящих
Рассмотрим стандартный обработчик почты. В нём часто используется проверка «если такой номер входящего уже есть – пропустить». Но номер входящего присваивается документу после записи, а не до. Пока документ не записан, у него нет номера. Поэтому проверка по номеру бессмысленна до первого создания. Другой распространённый подход – проверка по теме письма. Но тема может совпадать у разных контрагентов (например, «Счёт на оплату»). Результат – либо пропуск важного документа, либо дубль.
Тестовый стенд: не отключайте автоимпорт на работающей базе без предварительной настройки дедупликации. Лучше потерять одно письмо на этапе отладки, чем получить 200 дублей, которые придётся чистить вручную.
Технический разбор: механизм уникального идентификатора письма
У каждого электронного письма есть свой уникальный идентификатор – Message-ID (заголовок RFC 5322). Он генерируется почтовым сервером отправителя и не повторяется (теоретически). 1С позволяет получить этот заголовок при разборе входящего письма. Сохранив его в регистр сведений СоответствиеПисемИДокументов, вы получите надёжный ключ для дедупликации.
Получение Message-ID и проверка дубля
Функция ПисьмоУжеОбработано(Письмо)
MessageID = Письмо.Свойства.Заголовки.Получить("Message-ID");
Если ПустаяСтрока(MessageID) Тогда
Возврат Ложь; // старые письма без Message-ID – риск дубля
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Первые 1
| СоответствиеПисемИДокументов.СсылкаНаДокумент КАК Ссылка
|ИЗ
| РегистрСведений.СоответствиеПисемИДокументов КАК СоответствиеПисемИДокументов
|ГДЕ
| СоответствиеПисемИДокументов.MessageID = &MessageID";
Запрос.УстановитьПараметр("MessageID", MessageID);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Этот фрагмент вставляется в обработчик входящих писем до создания документа. Если письмо уже обработано – пропускаем. Если нет – записываем документ, и сразу сохраняем запись в регистр сведений:
Процедура ПослеЗаписиДокумента(Документ, Письмо)
MessageID = Письмо.Свойства.Заголовки.Получить("Message-ID");
Если Не ПустаяСтрока(MessageID) Тогда
Запись = РегистрыСведений.СоответствиеПисемИДокументов.СоздатьМенеджерЗаписи();
Запись.MessageID = MessageID;
Запись.СсылкаНаДокумент = Документ.Ссылка;
Запись.Записать();
КонецЕсли;
КонецПроцедуры
Альтернатива для писем без Message-ID
Часть устаревших почтовых клиентов не отправляет Message-ID. В таких случаях можно добавить в письмо свой уникальный идентификатор – например, вставить в тему письма код UID-метки. Сделать это можно через макет письма-приглашения (для внешних контрагентов) или через автоответчик. Но это уже организационное решение, требующее согласования с контрагентами.
Стратегия постепенного перехода: двухконтурная работа
После реализации дедупликации можно приступать к самому переходному периоду. Не отключайте почту полностью – оставьте её как резервный канал для тех контрагентов, кто ещё не перешёл на 1С:Документооборот. Ведите учёт доли обработанных через ДО документов.
| Признак | Почту ещё рано отключать | Пора отключать |
|---|---|---|
| Доля входящих через ДО | менее 80% от общего числа | более 95% в течение месяца |
| Количество дублированных за неделю | более 5 | 0 при отключённой проверке по Message-ID |
Наличие Message-ID у всех новых писем |
не у всех | 100% писем содержат заголовок |
Поэтапное отключение почтовых ящиков с контролем
- Неделя 1–2: Внедрите дедупликацию по Message-ID. Включите логирование – каждое срабатывание записи в регистр. Вручную проверяйте отсутствие дублей.
- Неделя 3–4: Переведите часть входящих ящиков в режим «только приём без обработчика» (письма копятся, но не импортируются). Ручная выгрузка писем из этих ящиков запрещена – все документы создаются только через ДО.
- Неделя 5–6: Убедитесь, что ни один контрагент не жалуется на отсутствие ответа. Отключите ящик на стороне почтового сервера (перенаправление в ДО).
Важно: Даже после отключения ящика храните архив писем не менее 6 месяцев. По требованию ФНС (согласно действующему порядку) вы обязаны предоставлять подлинники электронных сообщений. В 1С:Документообороте подлинник – это файл письма, прикреплённый к документу. Убедитесь, что все вложения сохранены корректно.
Типичные ошибки и их последствия
- Удаление писем из почты без проверки в ДО. Результат: потеря вложений, если письмо не было обработано системой.
- Отключение почты до настройки маршрутов документов. Результат: документы попадают в ДО, но не доходят до адресата, поскольку маршрут не настроен.
- Игнорирование заголовка Message-ID. Результат: дубли и последующие ручные сверки, которые отнимают часы.
- Создание документов из писем без проверки подписи. Результат: юридически недействительные документы в ДО. Все внешние входящие должны быть подписаны КЭП, иначе они не имеют силы.
Что делать прямо сейчас: план действий
- Добавьте регистр сведений
СоответствиеПисемИДокументовс измерениямиMessageID(строка, 255) иСсылкаНаДокумент(любой документ-корреспондент). - Модифицируйте обработчик входящих писем: перед созданием документа вызывайте проверку
ПисьмоУжеОбработано(). - Настройте автоматическую запись в регистр после успешного создания документа.
- Запустите недельный мониторинг: все ли письма с
Message-IDобрабатываются однократно. Зафиксируйте количество дублей до и после. - Начните постепенное отключение почтовых ящиков, используя табличный контроль доли.
Переходный период – это не техническая задача, а управленческий инструмент. Правильно построенная система дедупликации на основе Message-ID избавит вас от ручной сверки и позволит закрыть почтовые каналы безболезненно. Помните: главное – не перекрыть кислород контрагентам. Оставьте им один надёжный канал, а не два дублирующих.
Попробовать НОПик →