8.х Взаимодействие с 1С по почте

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем andryxa85, 5 мар 2009.

  1. TopicStarter Overlay
    andryxa85
    Offline

    andryxa85 Опытный в 1С

    Регистрация:
    7 июн 2008
    Сообщения:
    108
    Симпатии:
    0
    Баллы:
    26
    Хотелось бы узнать возможность реализации следующих возможностей в 1с.
    При проведении документа "перемещение товара" пользователю (чей склад является получателем) приходит письмо с просьбой подтвердить перемещение. Можно ли сделать так, чтобы пользователь ответив на письмо подтверждал перемещение, т.е изменение значения реквизита документа при получении письма?
    УТ 10.3.2.11
    Заранее спасибо
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Можно, смотрите работу с почтой, в частности можно посмотреть в типовой обработку менеджер контактов.
  3. TopicStarter Overlay
    andryxa85
    Offline

    andryxa85 Опытный в 1С

    Регистрация:
    7 июн 2008
    Сообщения:
    108
    Симпатии:
    0
    Баллы:
    26
    Спасибо. Но посмотрев данную обработку не смог найти подключение к серверу и считывание писем. Если можно то ткните в нужную процедуру. Получается что нужно будет сделать подключение к профилю и считывание писем с ящика. С помощью чего можно в определённый момент времени запускать эту процедуру?
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Организовать периодичное получение почты можно через Регламентные задания или периодический вход в систему пользователя на процедуре входа которого будет висеть обработка получения почты и расставление галочек в документы.

    На код получения почты можно вот здесь глянуть:
    http://www.1c-pro.ru/index.php?showtopic=16363
    Там код кривоватый(и мне, признаться, лень его править ), но позволяет в общих чертах сориентироваться в том, как работает ИнтернетПочта...
  5. TopicStarter Overlay
    andryxa85
    Offline

    andryxa85 Опытный в 1С

    Регистрация:
    7 июн 2008
    Сообщения:
    108
    Симпатии:
    0
    Баллы:
    26
    Код:
    	Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераPOP3 = "192.168.2.2";
    Профиль.Пользователь = "1C-info";
    Профиль.Пароль = "info";
    
    Попытка
    АПочта = Новый ИнтернетПочта;
    АПочта.Подключиться(Профиль);
    
    // получаем все сообщения из почтового ящика
    МассивСообщений = Новый Массив;
    МассивСообщений = АПочта.Выбрать(Ложь);
    Исключение
    Сообщить("Ошибка при подключении или приёме. " + ОписаниеОшибки());
    Возврат;
    КонецПопытки;
    
    Если МассивСообщений.Количество() = 0 Тогда
    Возврат;	
    КонецЕсли;
    
    Для сч = 0 По МассивСообщений.Количество() - 1 Цикл
    Ном = ПоискНомераПеремещенияВОтвете(МассивСообщений[сч]);
    Элем = МассивСообщений[сч];
    Если Ном <> Неопределено <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда			</span>
    
    Запрос = Новый Запрос("ВЫБРАТЬ
    |	ПеремещениеТоваров.Ссылка,
    |	ПеремещениеТоваров.Номер
    |ИЗ
    |	Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
    |ГДЕ
    |	ПеремещениеТоваров.Номер = &Номер
    |	И ПеремещениеТоваров.Дата > &ТекДата");
    
    Запрос.УстановитьПараметр("Номер", Ном);
    Запрос.УстановитьПараметр("ТекДата", НачалоГода(ТекущаяДата()));
    
    Рез = Запрос.Выполнить();
    
    Если Не Рез.Пустой() Тогда
    Выборка = Рез.Выбрать();
    Выборка.Следующий();
    Док = Выборка.Ссылка;
    ДокОбъект = Док.ПолучитьОбъект();
    ДокОбъект.ПодтверждаюПеремещение = Истина;
    ДокОбъект.Записать();
    КонецЕсли;			
    Иначе
    Сообщить("В теме '" + МассивСообщений[сч].Тема + " ' не распознан номер!");
    КонецЕсли;
    КонецЦикла;
    
    АПочта.Отключиться();
    
    На регламентное задание поставил эту процедуру. Только вот при её срабатывании у меня в Аутлуке пропадают все входящие письма. Подскажите в чём проблема?
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Это где используется?
    Код:
    Элем = МассивСообщений[сч];
    
    Покажи код это процедуры:
    Код:
    ПоискНомераПеремещенияВОтвете(МассивСообщений[сч]);
    
  7. TopicStarter Overlay
    andryxa85
    Offline

    andryxa85 Опытный в 1С

    Регистрация:
    7 июн 2008
    Сообщения:
    108
    Симпатии:
    0
    Баллы:
    26
    Код:
    Функция ПоискНомераПеремещенияВОтвете(Сообщ)
    
    ПодстрокаПоиска = "Перемещение";
    
    Если Найти(Сообщ.Тема, ПодстрокаПоиска) <> 0 Тогда
    Возврат Прав(СокрЛП(Сообщ.Тема), 11);	
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    
    КонецФункции
    
    Насколько я понимаю эта функция никак не отвечает за то что входящие сообщения пропадают

    Код:
    Элем = МассивСообщений[сч];
    
    нигде не используется, просто забыл удалить
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Проверьте настройки аутглюка и сервера почты, сам код верный.
  9. TopicStarter Overlay
    andryxa85
    Offline

    andryxa85 Опытный в 1С

    Регистрация:
    7 июн 2008
    Сообщения:
    108
    Симпатии:
    0
    Баллы:
    26
    Проблема решилась следующим образом - в 1с в справочнике "Учётные записи электронной почты" в своей учётной записи поставил галочку "Оставлять копии писем на сервере". Т.е по ходу 1сный клиент заходил всё таки под моей учётной записью и выбирал письма как те, которые предназначались 1Ске так и те, которые предназначались мне, и удалял с сервера. Непонятно одно - если я авторизуюсь на поп сервере под профилем 1Ски то должен получить письма, которые пользователи отослали 1ске. Но я получаю также и свои письма!

Поделиться этой страницей