Как решить проблему с невидимыми вложениями в электронных письмах в 1С:УПП?

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

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

Анализ проблемы: Вложения есть, но не видны

Мы настроили типовой функционал работы с электронной почтой в 1С:УПП. Создали учетную запись, например, на Яндексе, прописали все необходимые настройки, установили флаги автополучения и отправки писем, указали интервал времени. В целом, базовая отправка и получение писем работают корректно.

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

  1. В списке писем появляется галочка "Есть вложения".
  2. При открытии самого электронного письма появляется новая закладка "Вложения".
  3. Но закладка "Вложения" оказывается пустой. Более того, все кнопки, кроме "Открыть" и "Сохранить", неактивны, и мы не можем даже вручную добавить или увидеть вложения.

Такое поведение системы вызывает недоумение, поскольку 1С:УПП очевидно "видит", что в письме есть вложения, но по какой-то причине отказывается их отображать и предоставлять доступ к ним.

Поиск причины: Где хранятся вложения?

Чтобы понять, что происходит, мы начали исследовать механизм хранения вложений в 1С:УПП. Нашим первым шагом было обращение к справочнику ВложенияЭлектронныхПисем.

К нашему удивлению, мы обнаружили, что вложения, которые должны быть приложены к письму, действительно присутствуют в этом справочнике. Мы смогли найти нужный элемент справочника, соответствующий нашему электронному письму, и убедились, что в поле ИмяФайла записано корректное имя файла, который был приложен к исходному электронному письму.

Это открытие показало, что проблема не в том, что 1С:УПП не сохраняет вложения. Напротив, она их успешно получает и записывает в базу данных. Проблема кроется где-то в механизме их отображения.

Выявление корневой проблемы: Типовой отбор

Дальнейшее изучение конфигурации привело нас к коду, отвечающему за отображение вложений на закладке "Вложения" формы электронного письма. Мы выяснили, что при открытии электронного письма и активации закладки "Вложения" в системе устанавливается типовой отбор, который, как оказалось, является причиной нашей проблемы.

Рассмотрим проблемный фрагмент кода, который мы обнаружили в модуле формы электронного письма:


// Кусок кода отбора
ВложенияПисьма.Отбор.ИДФайлаПочтовогоПисьма.Значение      = "";
ВложенияПисьма.Отбор.ИДФайлаПочтовогоПисьма.Использование = Истина;

Что же делают эти две строки? Они устанавливают отбор для списка вложений (который отображается на закладке "Вложения") таким образом, что система пытается показать только те вложения, у которых поле ИДФайлаПочтовогоПисьма не заполнено (пустое). Использование отбора активируется через установку Использование = Истина.

Однако, как мы уже выяснили ранее, у фактически полученных вложений, которые хранятся в справочнике ВложенияЭлектронныхПисем, поле ИДФайлаПочтовогоПисьма заполнено. Это поле содержит уникальный идентификатор файла, который был прикреплен к почтовому письму.

Таким образом, возникает логическое противоречие: код формы требует, чтобы ИДФайлаПочтовогоПисьма было пустым для отображения вложений, тогда как у всех реально существующих вложений это поле заполнено. Из-за этого отбора, ни одно из вложений не соответствует условию фильтрации, и список вложений на форме остается пустым.

Эта ситуация вызывает вопросы к логике типовой реализации: зачем устанавливать такой отбор, который принудительно скрывает все существующие вложения, особенно если перед этим уже установлен отбор по ссылке на само электронное письмо, гарантирующий, что отображаются только вложения, относящиеся к текущему письму? По всей видимости, это является недоработкой или ошибкой в типовой конфигурации УПП.

Решение проблемы: Корректировка типового кода

Основываясь на проведенном анализе, решение проблемы становится очевидным. Нам необходимо отключить или изменить некорректно работающий типовой отбор.

Пошаговое решение:

  1. Откройте конфигуратор 1С. Для внесения изменений в типовой код нам потребуется доступ к конфигуратору.
  2. Найдите форму документа "Электронное письмо". В дереве конфигурации перейдите к объекту Документы.ЭлектронноеПисьмо.Формы.ФормаДокумента (или аналогичной форме, отвечающей за просмотр электронных писем).
  3. Перейдите в модуль формы. Откройте модуль формы для редактирования.
  4. Найдите проблемный фрагмент кода. Используйте поиск по тексту ИДФайлаПочтовогоПисьма, чтобы найти строки, устанавливающие отбор. Они будут выглядеть так, как показано выше:
    
    ВложенияПисьма.Отбор.ИДФайлаПочтовогоПисьма.Значение      = "";
    ВложенияПисьма.Отбор.ИДФайлаПочтовогоПисьма.Использование = Истина;
    
  5. Закомментируйте или удалите эти строки. Наиболее безопасным методом является комментирование строк, чтобы сохранить их для справки или возможного возврата к типовому поведению. Для комментирования добавьте два слеша // в начале каждой строки:
    
    //ВложенияПисьма.Отбор.ИДФайлаПочтовогоПисьма.Значение      = "";
    //ВложенияПисьма.Отбор.ИДФайлаПочтовогоПисьма.Использование = Истина;
    
  6. Сохраните изменения и обновите конфигурацию базы данных. После внесения изменений необходимо сохранить модуль формы, обновить конфигурацию базы данных и перезапустить 1С:Предприятие в пользовательском режиме.

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

Важные замечания

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

← На главную