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

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

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

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

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

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

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