Получить адрес электронной почты пользователя 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.
Задача: нужно получить адрес электронной почты из контактной информации контрагента (юр. лицо) в Бухгалтерия предприятия, редакция 2.0 (2.0.40.10). Исходный код функции, в которой эту задачу не могу выполнить:
// Функция находит актуальное значение адреса электронной почты в контакной информации.
//
// Параметры:
// Объект - СправочникСсылка, объект контактной информации
//
// Возвращаемое значение
// Строка - представление найденного адреса эл.почты
//
Функция ПолучитьАдресЭлектроннойПочтыИзКонтактнойИнформации(Объект)
Если ТипЗнч(Объект) = Тип("СправочникСсылка.Организации") Тогда
Если Объект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
ВидАдреса = Справочники.ВидыКонтактнойИнформации.EmailФизЛица;
Иначе
ВидАдреса = Справочники.ВидыКонтактнойИнформации.EmailОрганизации;
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("СправочникСсылка.Контрагенты") Тогда
ВидАдреса = Справочники.ВидыКонтактнойИнформации.ДругаяИнформацияКонтрагента;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Объект", Объект);
Запрос.УстановитьПараметр("Тип" , Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
Запрос.УстановитьПараметр("Вид" , ВидАдреса);
Если ТипЗнч(Объект) = Тип("СправочникСсылка.Организации") Тогда
Если Объект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
Запрос.УстановитьПараметр("Объект", Объект.ИндивидуальныйПредприниматель);
//Запрос.УстановитьПараметр("Вид" , Справочники.ВидыКонтактнойИнформации.EmailФизЛица);
КонецЕсли;
КонецЕсли;
Если РезультатЗапроса.Пустой() Тогда
Возврат "";
Иначе
Возврат РезультатЗапроса.Выгрузить()[0].Представление;
КонецЕсли;
(1)У меня в наличии есть только БП 2.0.37.14, так что нужно конечно проверить на твоём релизе, но скорее всего дело в том, что при записи в регистр КонтактнаяИнформация для вида ДругаяИнформацияКонтрагента устанавливается тип Перечисления.ТипыКонтактнойИнформации.Другое, а у тебя в параметрах закреплён Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты.
(2)Учти ещё, что в поле Другое(любая другая контактная информация) может оказаться всё что угодно, помимо адреса электронной почты, так что нужно ещё обработать результат, вытянув из него конткретно электронку
(4)Там вся прочая информация хранится в одной строке валом, так что одного условия будет мало, оно не не гарантирует, что на выходе будет только email. Нужно смотреть, по каким правилам заполняется это поле в конкретной базе и потом уже писать "разборщик" строки.
Получить строку, найти позицию символа "@", если не найден - это не адрес, иначе парсить посимвольно влево до первого запрещенного символа(не буква/цифра/_/-/./ т.е. вхождение в диапазон в аски кодов), запомнить позицию начала адреса. Затем аналогично парсить вправо. Сред(СтрокаКонтИнформации, ЛеваяПозиция, ПраваяПозиция) и будет адресом.
Уже был такой вопрос. Почему бы не сделать проще?
(8)У него запрос не работает потому что он отбирает по неверному типу контактной информации а вы ему отбор с тем же типом советуете. Стоит наверное читать то что выше написано?
У него запрос не работает потому что он отбирает по неверному типу контактной информации а вы ему отбор с тем же типом советуете. Стоит наверное читать то что выше написано?
Я лишь предложил код короче. У него известно, что юр лицо, он может напрямую указать без условий вид и тип.
(8) nikolayD, это не вариант, делать поиск нужной записи по коду, т.к. решение не будет универсальным, работающим в других базах без правки кодов справочника. нашел решение сам, сделал поиск нужной записи справочника через запрос. вот что получилось:
// Функция находит актуальное значение адреса электронной почты в контакной информации.
//
// Параметры:
// Объект - СправочникСсылка, объект контактной информации
//
// Возвращаемое значение
// Строка - представление найденного адреса эл.почты
//
Функция ПолучитьАдресЭлектроннойПочтыИзКонтактнойИнформации ( Объект )
Если ТипЗнч ( Объект ) = Тип ( "СправочникСсылка.Организации" ) Тогда
Если Объект . ЮрФизЛицо = Перечисления . ЮрФизЛицо . ФизЛицо Тогда
ВидАдреса = Справочники . ВидыКонтактнойИнформации . EmailФизЛица ;
Иначе
ВидАдреса = Справочники . ВидыКонтактнойИнформации . EmailОрганизации ;
КонецЕсли;
ИначеЕсли ТипЗнч ( Объект ) = Тип ( "СправочникСсылка.Контрагенты" ) Тогда
Запрос = Новый Запрос ;
Запрос . УстановитьПараметр ( "Тип" , Перечисления . ТипыКонтактнойИнформации . АдресЭлектроннойПочты );
Запрос . УстановитьПараметр ( "ВидОбъектаКонтактнойИнформации" , Перечисления . ВидыОбъектовКонтактнойИнформации . Контрагенты );
Запрос . УстановитьПараметр ( "Наименование" , "Рабочий" );
РезультатЗапроса = Запрос . Выполнить ();
Если РезультатЗапроса . Пустой () Тогда
ВидАдреса = Справочники . ВидыКонтактнойИнформации . ПустаяСсылка ();;
Иначе
ВидАдреса = РезультатЗапроса . Выгрузить ()[ 0 ]. Ссылка ;
КонецЕсли;
Запрос = Новый Запрос ;
Запрос . УстановитьПараметр ( "Объект" , Объект );
Запрос . УстановитьПараметр ( "Тип" , Перечисления . ТипыКонтактнойИнформации . АдресЭлектроннойПочты );
Запрос . УстановитьПараметр ( "Вид" , ВидАдреса );
Если ТипЗнч ( Объект ) = Тип ( "СправочникСсылка.Организации" ) Тогда
Если Объект . ЮрФизЛицо = Перечисления . ЮрФизЛицо . ФизЛицо Тогда
Запрос . УстановитьПараметр ( "Объект" , Объект . ИндивидуальныйПредприниматель );
//Запрос.УстановитьПараметр("Вид" , Справочники.ВидыКонтактнойИнформации.EmailФизЛица);
КонецЕсли;
КонецЕсли;
Запрос . Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| КонтактнаяИнформация.Представление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Объект = &Объект
| И
| КонтактнаяИнформация.Тип = &Тип
| И
| КонтактнаяИнформация.Вид = &Вид
|" ;
РезультатЗапроса = Запрос . Выполнить ();
Если РезультатЗапроса . Пустой () Тогда
Возврат "" ;
Иначе
Возврат РезультатЗапроса . Выгрузить ()[ 0 ]. Представление ;
КонецЕсли;
Я не буду первооткрывателем ошибки, но возможно добавлю в в свою карму чужого сэкономленного времени. Я мучился с этой ошибкой полгода.
Умер ноутбук бухгалтера. На нем был установлен СБИС (и запрещенный к копированию ключ ГазПромБанка), и ключи, как любит делать ТП СБИСа был.
Многим рассказываю про такую штуку, и многие хотят, реализуя под каждого я нашел несколько вариантов у каждого есть свои плюсы и минусы.
Стояла задача найти Конрагента в справочнике по ИНН и КПП (кто знает, что такое обособленное подразделение, поймет). Логика проста - найти .
Эти фотографии уже встречались ранее, но не было описано как это сделано. На этот раз я напишу, не много, но будет понятно. И возможно.
Давным давно, почти три года назад звонит мне знакомая, со старой работы: -"Привет, я разбила матрицу на своем нетбуке, за сколько ег.
Всем добра. Задача: В некую таблицу скопировать все значения из столбца другой таблицы где значение справа равно некоторому. Мысли: .
Встала задача - перед записью документа произвести некоторые проверки и задать вопрос пользователю, в зависимости от ответа - провести доку.
С каждым днем все больше внедряются системы видеонаблюдения, в связи с этим системы удешевляются, и появляется оборудование работающее .
Многие используют сервисы облачного хранения файлов для резервных копий. Одним из приоритетов является Яндекс.Диск, из-за изначального о.
Эта статья — шпаргалка об архитектуре и использовании «Контактная информация» из инструментария разработчика 1С:БСП (Библиотека стандартных подсистем). По моему мнению, основная задача этой подсистемы организовать простой с точки зрения заполнения и обмена, единый подход к управлению контактной информацией. Хотел бы обратить внимание, что подсистема очень хорошо и подробно описана на сайте ИТС.
Архитектура
В справочник или документ, который предполагает наличие контактной информации добавляется одноименная табличная часть. Поле «Тип» перечисление, которое может принимать следующие значения:
Поле «Вид» реквизит типа справочник «Виды контактной информации». Реквизит «ЗначенияПолей» — это строка, которая содержит XML, сформированный по схеме XDTO, реквизит «Значение» — это строка во внутреннем формате JSON. Как правило для всех типов документов есть предопределенные элементы. Все поля схемы XDTO (кроме составных) являются либо целыми либо строками, проверки на тип и корректность должны быть реализованы на уровне кода.
Такая структура довольна универсальна, хорошо подходит для обмена, но за счет вложенности сделать запрос вида: контрагенты с одинаковым номером дома становится сложнее, а скорость поиска увеличивается. Для решения такой задачи можно обратится к функции «АдресПоИдентификатору» общего модуля «РаботаСАдресами».
А также для работы с контактной информацией предусмотрено много функций в общих модулях БСП, например, функция общего модуля «УправлениеКонтактнойИнформацией»:
Для редактирования контактной информации используется обработка РасширенныйВводКонтактнойИнформации и ВводКонтактнойИнформации, для разбора записи используется функция из общего модуля БСП «УправлениеКонтактнойИнформациейСлужебный»
Пример возвращаемой структуры:
При преобразовании контактной информации в XDTO «АдресныйКлассификаторСлужебный» функция «ТипыОбъектовАдресацииАдресаРФ» преобразует Типы элементов адреса, уточняющих
местоположение адресуемого объекта (ДопАдрЭл) согласно Приказу от 31.08.2011 № ММВ-7-1/525.
При работе с почтой разделяют два способа доступа к почтовому ящику, почтовому клиенту:
объект "Почта" и объект "Интернет почта", каждый из объектов имеет свои достоинства.
Почта - предоставляет доступ к почте через встроенный почтовый клиент, работает по технологии 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.
Читайте также: