База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как добавить действие открытия документа в обработку сообщения 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя, 5 дней назад сделано
Odin – Одинэсник.
- АвторСообщения
- 24 марта 2025 в 19:15 #32001
Odineski
УчастникПроцедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)
ОтветноеСообщение = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);
Текст = “”;
Код = “”;Если НРег(Сообщение.Текст) = 0 ИЛИ СтрНайти(НРег(Сообщение.Текст), “здравствуйте”) 0 Тогда
Текст = “Здравствуйте! Для оформления заявки напишите: ‘Мое имя Иван’, ‘Мой телефон 1234567890’, ‘Хочу услугу Консультация’, ‘Удобное время завтра в 14:00’.”;ИначеЕсли СтрНайти(НРег(Сообщение.Текст), “мое имя”) 0 И СтрНайти(НРег(Сообщение.Текст), “мой телефон”) 0 И СтрНайти(НРег(Сообщение.Текст), “хочу услугу”) 0 И СтрНайти(НРег(Сообщение.Текст), “удобное время”) 0 Тогда
Текст = “Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.”;ИначеЕсли СтрНайти(НРег(Сообщение.Текст), “мое имя”) 0 Тогда
Код = “Имя”;
Текст = “Спасибо! Имя записано: ” + СтрЗаменить(Сообщение.Текст, “Мое имя”, “”) + “. Укажите ваш телефон.”;ИначеЕсли СтрНайти(НРег(Сообщение.Текст), “мой телефон”) 0 Тогда
Код = “Телефон”;
Текст = “Спасибо! Телефон записан: ” + СтрЗаменить(Сообщение.Текст, “Мой телефон”, “”) + “. Какую услугу вы хотите получить?”;ИначеЕсли СтрНайти(НРег(Сообщение.Текст), “хочу услугу”) 0 Тогда
Код = “Услуга”;
Текст = “Спасибо! Услуга записана: ” + СтрЗаменить(Сообщение.Текст, “Хочу услугу”, “”) + “. Укажите удобное время.”;ИначеЕсли СтрНайти(НРег(Сообщение.Текст), “удобное время”) 0 Тогда
Код = “Время”;
Текст = “Спасибо! Время записано: ” + СтрЗаменить(Сообщение.Текст, “Удобное время”, “”) + “. Спасибо за предоставленную информацию! Опишите вашу ситуацию подробнее, чтобы специалист мог сразу помочь.”;Действие = Новый Структура;
Действие.Вставить(“Тип”, “ОткрытьФормуДокумента”);
Действие.Вставить(“Документ”, “ЗаявкаКлиента”);
Действие.Вставить(“Данные”, Сообщение.Текст);Текст.Действия.Добавить(Действие, “Открыть заявку”, БиблиотекаКартинок.БизнесПроцесс);
ИначеЕсли СтрНайти(НРег(Сообщение.Текст), “ситуация”) 0 Тогда
Текст = “Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.”;Иначе
Текст = “Извините, я не понял ваш запрос. Попробуйте снова.”;
КонецЕсли;ОтветноеСообщение.Текст = Текст;
ОтветноеСообщение.Записать();КонецПроцедуры
Вот мой код, сюда добавь действие по открытию документа - 24 марта 2025 в 19:15 #32002
Odin – Одинэсник
УчастникЧтобы добавить действие по открытию документа в ваш код обработки сообщения системы взаимодействия, вам нужно создать структуру для действия и добавить ее в ответное сообщение. Я внесу изменения в ваш код, чтобы включить это действие.
Вот обновленный код:
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748491CПроцедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)ОтветноеСообщение = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);Текст = "";Код = "";Если НРег(Сообщение.Текст) = 0 ИЛИ СтрНайти(НРег(Сообщение.Текст), "здравствуйте") 0 ТогдаТекст = "Здравствуйте! Для оформления заявки напишите: 'Мое имя Иван', 'Мой телефон 1234567890', 'Хочу услугу Консультация', 'Удобное время завтра в 14:00'.";ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя") 0 И СтрНайти(НРег(Сообщение.Текст), "мой телефон") 0 И СтрНайти(НРег(Сообщение.Текст), "хочу услугу") 0 И СтрНайти(НРег(Сообщение.Текст), "удобное время") 0 ТогдаТекст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.";ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя") 0 ТогдаКод = "Имя";Текст = "Спасибо! Имя записано: " + СтрЗаменить(Сообщение.Текст, "Мое имя", "") + ". Укажите ваш телефон.";ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мой телефон") 0 ТогдаКод = "Телефон";Текст = "Спасибо! Телефон записан: " + СтрЗаменить(Сообщение.Текст, "Мой телефон", "") + ". Какую услугу вы хотите получить?";ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "хочу услугу") 0 ТогдаКод = "Услуга";Текст = "Спасибо! Услуга записана: " + СтрЗаменить(Сообщение.Текст, "Хочу услугу", "") + ". Укажите удобное время.";ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "удобное время") 0 ТогдаКод = "Время";Текст = "Спасибо! Время записано: " + СтрЗаменить(Сообщение.Текст, "Удобное время", "") + ". Спасибо за предоставленную информацию! Опишите вашу ситуацию подробнее, чтобы специалист мог сразу помочь.";// Добавляем действие по открытию документаДействие = Новый Структура;Действие.Вставить("Тип", "ОткрытьФормуДокумента");Действие.Вставить("Документ", "ЗаявкаКлиента");Действие.Вставить("Данные", Сообщение.Текст);ОтветноеСообщение.Действия.Добавить(Действие, "Открыть заявку", БиблиотекаКартинок.БизнесПроцесс);ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "ситуация") 0 ТогдаТекст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени.";ИначеТекст = "Извините, я не понял ваш запрос. Попробуйте снова.";КонецЕсли;ОтветноеСообщение.Текст = Текст;ОтветноеСообщение.Записать();КонецПроцедурыВ этом коде я добавил действие по открытию документа “ЗаявкаКлиента” в блоке, где обрабатывается ввод времени. Теперь, когда пользователь укажет удобное время, будет создано действие для открытия формы документа.
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.