1с электронное письмо добавить вложение
При работе с почтой разделяют два способа доступа к почтовому ящику, почтовому клиенту:
объект "Почта" и объект "Интернет почта", каждый из объектов имеет свои достоинства.
Почта - предоставляет доступ к почте через встроенный почтовый клиент, работает по технологии MAPI.
Интернет почта - объект открывает возможности по доступу непосредственно к почтовым ящикам и учетным записям находящимися на почтовом сервере, использование и работа данного объекта не зависит от установленных в системе почтовых клиентов, даже если почтовый клиент установлен в системе "ИнтернетПочта" будет работать параллельно с ним, объект использует интернет-протоколы SMTP, POP3.
Для работы с объектом Почта необходимо наличие установленного на компьютере почтового клиента с описанными учетными записями.
Для подключения к почтовому клиенту у объекта есть метод "Подключиться".
Код 1C v 8.х
Первый параметр - имя профиля, к примеру, если в системе установлен MS Outlook, то как правило его профиль называется Outlook. Следовательно при подключении строка выглядела бы так:
Код 1C v 8.х
Второй параметр отвечает за пароль к учетной записи.
//Выбираем все письма, со всеми вложениями.
Код 1C v 8.х
(иногда при взаимодействии с Outlook 2003 возникает проблема, при которой 1С 8 просто аварийно завершает работу с ошибкой, именно на данной строке кода, это лечится установкой пакета обновления SP2 для MS Office 2003).
Перед подключением к почтовому серверу, для объекта ИнтернетПочта необходимо заполнить данные Профиля учетной записи, и затем передать эти данные в метод "Подключиться".
При переборе вложений, данные полученные из письма сохраняются в реквизит типа ХранилищеЗначения, заранее созданного справочника "СправочникВложения" в конфигураторе, т.к. данные первоначально сохраняются на диск, а затем загружаются в справочник, то, после загрузки в соответствующий реквизит справочника данные можно удалить. Не рекомендуется хранить данные типа ХранилищеЗначения в Табличных частях справочников, т.к. при больших объемах данных это затормаживает работу конфигурации.
Удобно подключить автополучение/автоотправку почты командой "ПодключитьОбработчикОжидания(,)". Первый параметр в команде отвечает за наименование вызываемой процедуры, и второй, период ожидания процедуры в секундах, обычно обработчик ожидания вставляется в глобальный модуль системы (например, в процедуру ПриНачалеРаботыСистемы()) и указывает на процедуру с пометкой Экспорт.
Например, можно создать процедуру ПроверитьПочту, в которую вставить загрузку писем из почтового ящика и вставить ее в следующую строку:
После использования нескольких или сразу всех способов работы с электронной почтой, образуется полноценный почтовый клиент с возможностью хранения и обработки писем с вложениями на базе 1С предприятие 8.0.
Всем привет, подскажите как сделать или где пример посмотреть.
Нужно при отправке письма прикрепить заказ, желательно в pdf.
Спасибо
1. Подготовить список значений вложений. Где: Значение - путь к файлу, Представление - Имя файла.
2. Добавить в массив (или список значений, не вспомню) данные с п.1. а как приложить внутренний документ в ЭДО (не на диске компа) ?
Допустим из Справочника.ВнутренниеДокументы.НайтиПоРеквизиту("Регномер","7898"); (4)Вам же не сам документ нужно приложить, а его печатную форму, верно? Сформировать табличный документ, например, сохранить как временный файл, и его уже вкладывать.
понаворочено х*р пойми что. как этим говном пользоваться не понятно.
Как-будто нельзя было один одну процедуру/функцию в платформе зашить и всё.
допустим: ПриложитьФайл(СДиска,ИзВрмеменногоХранилища,ИзСправочникаИлиДокументов)
помощи в 1С хрен с маслом дождёшься.
кому надо вот решение:
//добавляем вложения - файл
Док = Справочники.ВнутренниеДокументы.НайтиПоКоду("0000-0000000021");
//получаем все прикреплённые файлы к этому Док. получается массив.
ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Док, Ложь);
//Получаем Двоичные данные ОДНОГО файла (первого в массиве). если их там куча делаем цикл.
ДДФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ВсеФайлыДокумента[0].Ссылка,Ложь);
//прикручиваем файл к письму и даём ему любое название. я просто скопировал имеющееся.
Письмо.Вложения.Добавить(ДДФайла,ВсеФайлыДокумента[0].Наименование);
ВНИМАНИЕ вопрос:
как их достать на принимающей стороне из письма и прикрутить новому созданному внутр.док-ту .
всё это надо сделать в допобработчике события Получение входящего письма в 1с ЭДО.
Я не пойму что является ХерЗнаетЧТО = Событие.Источник. это массив писем или каждое письмо отдельно. или может ещё что. где вообще такие вещи расписаны в справке 1С .
это не платформа для программирования ,а угадай мелодию.
что за контора такая дебильная. понаписали говна за деньги и ещё справку за деньги покупать что-ли.
При работе с почтой разделяют два способа доступа к почтовому ящику, почтовому клиенту:
объект "Почта" и объект "Интернет почта", каждый из объектов имеет свои достоинства.
Почта - предоставляет доступ к почте через встроенный почтовый клиент, работает по технологии MAPI.
Интернет почта - объект открывает возможности по доступу непосредственно к почтовым ящикам и учетным записям находящимися на почтовом сервере, использование и работа данного объекта не зависит от установленных в системе почтовых клиентов, даже если почтовый клиент установлен в системе "ИнтернетПочта" будет работать параллельно с ним, объект использует интернет-протоколы SMTP, POP3.
Для работы с объектом Почта необходимо наличие установленного на компьютере почтового клиента с описанными учетными записями.
Для подключения к почтовому клиенту у объекта есть метод "Подключиться".
Код 1C v 8.х
Первый параметр - имя профиля, к примеру, если в системе установлен MS Outlook, то как правило его профиль называется Outlook. Следовательно при подключении строка выглядела бы так:
Код 1C v 8.х
Второй параметр отвечает за пароль к учетной записи.
//Выбираем все письма, со всеми вложениями.
Код 1C v 8.х
(иногда при взаимодействии с Outlook 2003 возникает проблема, при которой 1С 8 просто аварийно завершает работу с ошибкой, именно на данной строке кода, это лечится установкой пакета обновления SP2 для MS Office 2003).
Перед подключением к почтовому серверу, для объекта ИнтернетПочта необходимо заполнить данные Профиля учетной записи, и затем передать эти данные в метод "Подключиться".
При переборе вложений, данные полученные из письма сохраняются в реквизит типа ХранилищеЗначения, заранее созданного справочника "СправочникВложения" в конфигураторе, т.к. данные первоначально сохраняются на диск, а затем загружаются в справочник, то, после загрузки в соответствующий реквизит справочника данные можно удалить. Не рекомендуется хранить данные типа ХранилищеЗначения в Табличных частях справочников, т.к. при больших объемах данных это затормаживает работу конфигурации.
Удобно подключить автополучение/автоотправку почты командой "ПодключитьОбработчикОжидания(,)". Первый параметр в команде отвечает за наименование вызываемой процедуры, и второй, период ожидания процедуры в секундах, обычно обработчик ожидания вставляется в глобальный модуль системы (например, в процедуру ПриНачалеРаботыСистемы()) и указывает на процедуру с пометкой Экспорт.
Например, можно создать процедуру ПроверитьПочту, в которую вставить загрузку писем из почтового ящика и вставить ее в следующую строку:
После использования нескольких или сразу всех способов работы с электронной почтой, образуется полноценный почтовый клиент с возможностью хранения и обработки писем с вложениями на базе 1С предприятие 8.0.
Если УдалитьСоединение <> Неопределено Тогда
ПараметрыОтправки . Вставить ( "Соединение" , УдалитьСоединение );
КонецЕсли;
Если Не ПустаяСтрока ( УдалитьПротоколПочты ) Тогда
ПараметрыОтправки . Вставить ( "ПротоколПочты" , УдалитьПротоколПочты );
КонецЕсли;
Если ТипЗнч ( УчетнаяЗапись ) <> Тип ( "СправочникСсылка.УчетныеЗаписиЭлектроннойПочты" )
Или НЕ ЗначениеЗаполнено ( УчетнаяЗапись ) Тогда
ВызватьИсключение НСтр ( "ru = 'Учетная запись не заполнена или заполнена неправильно.'" );
КонецЕсли;
Если ПараметрыОтправки = Неопределено Тогда
ВызватьИсключение НСтр ( "ru = 'Не заданы параметры отправки.'" );
КонецЕсли;
ТипЗнчКому = ?( ПараметрыОтправки . Свойство ( "Кому" ), ТипЗнч ( ПараметрыОтправки . Кому ), Неопределено);
ТипЗнчКопии = ?( ПараметрыОтправки . Свойство ( "Копии" ), ТипЗнч ( ПараметрыОтправки . Копии ), Неопределено);
СкрытыеКопии = ОбщегоНазначенияКлиентСервер . СвойствоСтруктуры ( ПараметрыОтправки , "СкрытыеКопии" );
Если ТипЗнчКому = Неопределено И ТипЗнчКопии = Неопределено И СкрытыеКопии = Неопределено Тогда
ВызватьИсключение НСтр ( "ru = 'Не указано ни одного получателя.'" );
КонецЕсли;
Если ТипЗнчКому = Тип ( "Строка" ) Тогда
ПараметрыОтправки . Кому = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( ПараметрыОтправки . Кому );
ИначеЕсли ТипЗнчКому <> Тип ( "Массив" ) Тогда
ПараметрыОтправки . Вставить ( "Кому" , Новый Массив );
КонецЕсли;
Если ТипЗнчКопии = Тип ( "Строка" ) Тогда
ПараметрыОтправки . Копии = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( ПараметрыОтправки . Копии );
ИначеЕсли ТипЗнчКопии <> Тип ( "Массив" ) Тогда
ПараметрыОтправки . Вставить ( "Копии" , Новый Массив );
КонецЕсли;
Если ТипЗнч ( СкрытыеКопии ) = Тип ( "Строка" ) Тогда
ПараметрыОтправки . СкрытыеКопии = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( СкрытыеКопии );
ИначеЕсли ТипЗнч ( СкрытыеКопии ) <> Тип ( "Массив" ) Тогда
ПараметрыОтправки . Вставить ( "СкрытыеКопии" , Новый Массив );
КонецЕсли;
Если ПараметрыОтправки . Свойство ( "АдресОтвета" ) И ТипЗнч ( ПараметрыОтправки . АдресОтвета ) = Тип ( "Строка" ) Тогда
ПараметрыОтправки . АдресОтвета = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( ПараметрыОтправки . АдресОтвета );
КонецЕсли;
Если ПараметрыОтправки . ОшибочныеПолучатели . Количество () > 0 Тогда
ТекстОшибки = НСтр ( "ru = 'Следующие почтовые адреса не были приняты почтовым сервером:'" );
Для Каждого ОшибочныйПолучатель Из ПараметрыОтправки . ОшибочныеПолучатели Цикл
ТекстОшибки = ТекстОшибки + Символы . ПС + СтроковыеФункцииКлиентСервер . ПодставитьПараметрыВСтроку ( "%1: %2" ,
ОшибочныйПолучатель . Ключ , ОшибочныйПолучатель . Значение );
КонецЦикла;
ВызватьИсключение ТекстОшибки ;
КонецЕсли;
Читайте также: