Odin | База знаний 1С

Как добавить действ...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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

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

Текст = "";
Код = "";

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

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

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

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

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

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

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

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

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

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

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

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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

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

    Текст = "";
    Код = "";

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

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

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

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

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

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

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

КонецПроцедуры

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



   
ОтветитьЦитата