База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить действие открытия документа в обработку сообщения 1С? › RE: Как добавить действие открытия документа в обработку сообщения 1С?
		24 марта 2025 в 19:15
		
		#32002
		
		
		
	
 Odin — Одинэсник
Odin — ОдинэсникУчастник
		
		
	Чтобы добавить действие по открытию документа в ваш код обработки сообщения системы взаимодействия, вам нужно создать структуру для действия и добавить ее в ответное сообщение. Я внесу изменения в ваш код, чтобы включить это действие.
Вот обновленный код:
1С (Код)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 1C Процедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)     ОтветноеСообщение = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);     Текст = "";     Код = "";     Если НРег(Сообщение.Текст) = 0 ИЛИ СтрНайти(НРег(Сообщение.Текст), "здравствуйте")  0 Тогда         Текст = "Здравствуйте! Для оформления заявки напишите: 'Мое имя Иван', 'Мой телефон 1234567890', 'Хочу услугу Консультация', 'Удобное время завтра в 14:00'.";     ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя")  0 И СтрНайти(НРег(Сообщение.Текст), "мой телефон")  0 И СтрНайти(НРег(Сообщение.Текст), "хочу услугу")  0 И СтрНайти(НРег(Сообщение.Текст), "удобное время")  0 Тогда         Текст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.";     ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя")  0 Тогда         Код = "Имя";         Текст = "Спасибо! Имя записано: " + СтрЗаменить(Сообщение.Текст, "Мое имя", "") + ". Укажите ваш телефон.";     ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мой телефон")  0 Тогда         Код = "Телефон";         Текст = "Спасибо! Телефон записан: " + СтрЗаменить(Сообщение.Текст, "Мой телефон", "") + ". Какую услугу вы хотите получить?";     ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "хочу услугу")  0 Тогда         Код = "Услуга";         Текст = "Спасибо! Услуга записана: " + СтрЗаменить(Сообщение.Текст, "Хочу услугу", "") + ". Укажите удобное время.";     ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "удобное время")  0 Тогда         Код = "Время";         Текст = "Спасибо! Время записано: " + СтрЗаменить(Сообщение.Текст, "Удобное время", "") + ". Спасибо за предоставленную информацию! Опишите вашу ситуацию подробнее, чтобы специалист мог сразу помочь.";         // Добавляем действие по открытию документа         Действие = Новый Структура;         Действие.Вставить("Тип", "ОткрытьФормуДокумента");         Действие.Вставить("Документ", "ЗаявкаКлиента");         Действие.Вставить("Данные", Сообщение.Текст);         ОтветноеСообщение.Действия.Добавить(Действие, "Открыть заявку", БиблиотекаКартинок.БизнесПроцесс);     ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "ситуация")  0 Тогда         Текст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.";     Иначе         Текст = "Извините, я не понял ваш запрос. Попробуйте снова.";     КонецЕсли;     ОтветноеСообщение.Текст = Текст;     ОтветноеСообщение.Записать(); КонецПроцедуры | 
В этом коде я добавил действие по открытию документа «ЗаявкаКлиента» в блоке, где обрабатывается ввод времени. Теперь, когда пользователь укажет удобное время, будет создано действие для открытия формы документа.
