Как добавить действие открытия документа в обработку сообщения 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как добавить действие открытия документа в обработку сообщения 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32001
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Процедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)

        ОтветноеСообщение = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);

        Текст = «»;
        Код = «»;

        Если НРег(Сообщение.Текст) = 0 ИЛИ СтрНайти(НРег(Сообщение.Текст), «здравствуйте») 0 Тогда
        Текст = «Здравствуйте! Для оформления заявки напишите: ‘Мое имя Иван’, ‘Мой телефон 1234567890’, ‘Хочу услугу Консультация’, ‘Удобное время завтра в 14:00’.»;

        ИначеЕсли СтрНайти(НРег(Сообщение.Текст), «мое имя») 0 И СтрНайти(НРег(Сообщение.Текст), «мой телефон») 0 И СтрНайти(НРег(Сообщение.Текст), «хочу услугу») 0 И СтрНайти(НРег(Сообщение.Текст), «удобное время») 0 Тогда
        Текст = «Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.»;

        ИначеЕсли СтрНайти(НРег(Сообщение.Текст), «мое имя») 0 Тогда
        Код = «Имя»;
        Текст = «Спасибо! Имя записано: » + СтрЗаменить(Сообщение.Текст, «Мое имя», «») + «. Укажите ваш телефон.»;

        ИначеЕсли СтрНайти(НРег(Сообщение.Текст), «мой телефон») 0 Тогда
        Код = «Телефон»;
        Текст = «Спасибо! Телефон записан: » + СтрЗаменить(Сообщение.Текст, «Мой телефон», «») + «. Какую услугу вы хотите получить?»;

        ИначеЕсли СтрНайти(НРег(Сообщение.Текст), «хочу услугу») 0 Тогда
        Код = «Услуга»;
        Текст = «Спасибо! Услуга записана: » + СтрЗаменить(Сообщение.Текст, «Хочу услугу», «») + «. Укажите удобное время.»;

        ИначеЕсли СтрНайти(НРег(Сообщение.Текст), «удобное время») 0 Тогда
        Код = «Время»;
        Текст = «Спасибо! Время записано: » + СтрЗаменить(Сообщение.Текст, «Удобное время», «») + «. Спасибо за предоставленную информацию! Опишите вашу ситуацию подробнее, чтобы специалист мог сразу помочь.»;

        Действие = Новый Структура;
        Действие.Вставить(«Тип», «ОткрытьФормуДокумента»);
        Действие.Вставить(«Документ», «ЗаявкаКлиента»);
        Действие.Вставить(«Данные», Сообщение.Текст);

        Текст.Действия.Добавить(Действие, «Открыть заявку», БиблиотекаКартинок.БизнесПроцесс);

        ИначеЕсли СтрНайти(НРег(Сообщение.Текст), «ситуация») 0 Тогда
        Текст = «Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.»;

        Иначе
        Текст = «Извините, я не понял ваш запрос. Попробуйте снова.»;
        КонецЕсли;

        ОтветноеСообщение.Текст = Текст;
        ОтветноеСообщение.Записать();

        КонецПроцедуры
        Вот мой код, сюда добавь действие по открытию документа

      • #32002
        bot_avaOdin — Одинэсник
        Участник

          Чтобы добавить действие по открытию документа в ваш код обработки сообщения системы взаимодействия, вам нужно создать структуру для действия и добавить ее в ответное сообщение. Я внесу изменения в ваш код, чтобы включить это действие.

          Вот обновленный код:

          1C
          Процедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)
          
              ОтветноеСообщение = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);
          
              Текст = "";
              Код = "";
          
              Если НРег(Сообщение.Текст) = 0 ИЛИ СтрНайти(НРег(Сообщение.Текст), "здравствуйте")  0 Тогда
                  Текст = "Здравствуйте! Для оформления заявки напишите: 'Мое имя Иван', 'Мой телефон 1234567890', 'Хочу услугу Консультация', 'Удобное время завтра в 14:00'.";
          
              ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя")  0 И СтрНайти(НРег(Сообщение.Текст), "мой телефон")  0 И СтрНайти(НРег(Сообщение.Текст), "хочу услугу")  0 И СтрНайти(НРег(Сообщение.Текст), "удобное время")  0 Тогда
                  Текст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.";
          
              ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя")  0 Тогда
                  Код = "Имя";
                  Текст = "Спасибо! Имя записано: " + СтрЗаменить(Сообщение.Текст, "Мое имя", "") + ". Укажите ваш телефон.";
          
              ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мой телефон")  0 Тогда
                  Код = "Телефон";
                  Текст = "Спасибо! Телефон записан: " + СтрЗаменить(Сообщение.Текст, "Мой телефон", "") + ". Какую услугу вы хотите получить?";
          
              ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "хочу услугу")  0 Тогда
                  Код = "Услуга";
                  Текст = "Спасибо! Услуга записана: " + СтрЗаменить(Сообщение.Текст, "Хочу услугу", "") + ". Укажите удобное время.";
          
              ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "удобное время")  0 Тогда
                  Код = "Время";
                  Текст = "Спасибо! Время записано: " + СтрЗаменить(Сообщение.Текст, "Удобное время", "") + ". Спасибо за предоставленную информацию! Опишите вашу ситуацию подробнее, чтобы специалист мог сразу помочь.";
            
                  // Добавляем действие по открытию документа
                  Действие = Новый Структура;
                  Действие.Вставить("Тип", "ОткрытьФормуДокумента");
                  Действие.Вставить("Документ", "ЗаявкаКлиента");
                  Действие.Вставить("Данные", Сообщение.Текст);
                  
                  ОтветноеСообщение.Действия.Добавить(Действие, "Открыть заявку", БиблиотекаКартинок.БизнесПроцесс);
            
              ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "ситуация")  0 Тогда
                  Текст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.";
            
              Иначе
                  Текст = "Извините, я не понял ваш запрос. Попробуйте снова.";
              КонецЕсли;
          
              ОтветноеСообщение.Текст = Текст;
              ОтветноеСообщение.Записать();
          
          КонецПроцедуры
          

          В этом коде я добавил действие по открытию документа «ЗаявкаКлиента» в блоке, где обрабатывается ввод времени. Теперь, когда пользователь укажет удобное время, будет создано действие для открытия формы документа.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С