[РЕШЕНО] Обработка почты из электронного ящика

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

  1. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Только начинаю изучать конфигурирование в 1С, и вот такая задача:
    требуется проводить мониторинг почтового ящика с заданным интервалом времени, проверять письма на уникальность и все новые записывать в ТЧ справочника. Далее в тексте письма требуется найти определённое сочетание символов, которое хранится в ТЧ другого справочника. Если оно найдено, то идёт проверка на наличие после этого сочетания символа ":", и, если он есть, запускается программа по адресу, который идёт после него. Если нет, то выполняется запуск другой программы, которая указана в ТЧ. На данный момент есть вопрос:

    Как решить вторую часть задачи с поиском сочетания символов и последующим вычленением адреса из текста письма?

    Заранее спасибо за помощь.
    Последнее редактирование: 6 июл 2015
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    Сделайте свой модуль/Обработку и напишите в нем, все что угодно.

    Какого вида строка с адресом подвергается обработке?
  3. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Общий вид строки, которая должна обрабатываться: Код запуска программы: С: \..., где "Код запуска программы" - искомое сочетание, а "С: \..." - адрес программы.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    А не проще тупо писать путь к запускаемому файлу, либо не писать его вообще в зависимости от ситуации?
  5. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    А как тогда будет выполняться файл, указанный в письме? Тут же важен смысл именно получения определённой команды в письме.
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    К письму приложен файл для выполнения?
  7. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    В письме только адрес на .bat, который должен выполниться при получении этого письма, либо адрес, по которому должен будет создаваться файл .txt, в зависимости от содержащегося в письме кода.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    Выполняйте поиск по подстрокам ".txt"/".bat" в тексте(или определённой строки текста) полученного письма.
  9. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Поиск должен осуществляться по сочетанию букв, так как расширения и команды могут впоследствии меняться. С поиском по коду из ТЧ более-менее понятно. Но как выделить из письма адрес, по отношению к которому будет выполняться команда?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    Можете наглядно продемонстрировать, что необходимо делать?
    Почему нельзя воспользоваться вложениями(0-го разамера)?
  11. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    К сожалению, только на словах.
    Например, приходит на почту письмо: "Прошу выполнить код запуска: C:\Program Files\1.bat". 1С должен записать это письмо и увидеть, что в тексте есть нужное сочетание: "код запуска". Дальше, он видит, что после кода есть ":", а значит, там идёт адрес, который он должен считать и запустить.
    Если приходит сообщение "Прошу выполнить код запуска" - выдаётся ошибка, так как нет символа ":".
    Аналогично с txt.
    Причём, в письме может быть сразу несколько кодов, которые нужно считать.
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    1. Получаем строку текста.

    2. Ищем в ней "код запуска:".

    3. Если не находим "код запуска:" - сообщение об ошибке.
    4. Если находим, то ищем ".bat", если не находим, то ищем ".txt".

    5. Если находим одно из значений: - все что между искомым значением и "код запуска:" - путь для запуска.
    6. Если не находим ни ".bat", ни ".txt" - сообщение об ошибке.
    7. Новая итерация с п.1.
  13. TopicStarter Overlay
    gamograff
    Offline

    gamograff

    Регистрация:
    6 июл 2015
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Было сделано через функции Лев и Сред, таким образом отсекалось лишнее. Задача решена.

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