Руководство администратора

  1. Главная
  2. Документы
  3. Руководство администратора
  4. Обмен с 1С
  5. Обмен данными по электронной почте

Обмен данными по электронной почте

Для использования электронной почты в обмене данными нужно в настройках узлов выбрать «Обмен по электронной почте». Для двух узлов, участвующих в обмене, публичный адрес обмена должен быть одинаков. В качестве иллюстрации использования электронной почты был выбран план обмена УдаленныеСклады.

При выгрузке данных формируется файл с именем, в котором указывается отправляющий и принимающий узлы, а также порядковый номер сообщения обмена. Это имя также указывается в теме электронного письма с префиксом «СООБЩЕНИЕ_ОБМЕНА».

Копировать в буфер обмена

// Формируем сообщение обмена
Сообщение = Новый ИнтернетПочтовоеСообщение; 
Сообщение.Тема = "СООБЩЕНИЕ_ОБМЕНА: " + ИмяФайлаСообщения;

Сформированный файл прикрепляется к письму и отправляется на указанный в поле «Адрес обмена» адрес.

Копировать в буфер обмена

ФайлСообщения = Новый Файл(ИмяФайлаСообщения);

// Создаем вложение с файлом обмена
Сообщение.Вложения.Добавить(ИмяФайла, ФайлСообщения.Имя);

Почта = Новый ИнтернетПочта;

Попытка

	Почта.Подключиться(Профиль);
	// Отправляем сообщение с файлом обмена
	Почта.Послать(Сообщение);

Исключение

	Сообщить(ОписаниеОшибки());

КонецПопытки;

Почта.Отключиться();

Для приема сообщений обмена из почтового ящика выбираются все письма без удаления их с сервера.

Копировать в буфер обмена

// Получаем все сообщения из почтового ящика
МассивСообщений = Почта.Выбрать(Ложь); // Ложь = без удаления сообщений с сервера

Далее, по теме письма ищутся письма с префиксом «СООБЩЕНИЕ_ОБМЕНА», которые проверяются на принадлежность этого сообщения участвующих в обмене узлов. Все эти сообщения копируются в отдельный массив (МассивСообщенийОбмена) для последующего удаления их с сервера. Данный метод гарантирует сохранность личных писем, а также сообщений обмена относящихся к другим узлам, что позволяет использовать один и тот же почтовый ящик, как для личной переписки, так и для обмена данными с разными узлами.

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

Копировать в буфер обмена

// Записываем файл обмена во временный файл
МассивСообщений[ИндексСообщения].Вложения[0].Данные.Записать(ИмяФайла);

// Удаляем все сообщения обмена с сервера для узлов, участвующих в обмене
Почта.УдалитьСообщения(МассивСообщенийОбмена);
Почта.Отключиться();

Перед загрузкой данных происходит выборочное удаление отобранных писем с сервера.

Был ли данный материал полезен вам? Да Нет