СМС2 - эрзац-мессенджер в вашей конфигурации 1С

17.12.18

Интеграция - Мессенджеры и боты

Обработка предоставит вам некоторый функционал мессенджера внутри используемой конфигурации. Вложения с файлами и ссылками, аватары у пользователей, всё это можно и в 1С.

Скачать файлы

Наименование Файл Версия Размер
СМС2 - эрзац-мессенджер для вашей конфигурации 1С:
.cf 157,40Kb
12
.cf 157,40Kb 12 Скачать
Внимание! Никакого отношения к технологии сотовой связи SMS эта подсистема не имеет!

Немного предыстории

Несколько лет назад, работая на заводе администратором БД, я неимоверно страдал от общения с пользователями УПП по телефону (ха-ха), которые постоянно просили посмотреть какой-то документ, исправить какую-нибудь ссылку. На предприятии никаких мессенджеров официально не поддерживалось; то, что было полуофициально (spark и т.п.) - работало кое-как, а поддерживалось ещё хуже. Пришло озарение и в итоге была написана небольшая подсистема отправки-получения сообщений прямо внутри 1С: УПП. Уж этого добра было достаточно у каждого пользователя!

В итоге на текущий момент с марта 2017 года (когда в первый и последний раз чистился регистр с данными) через подсистему прошло более 170 тысяч пользовательских сообщений, т.е. можно уверенно говорить об успехе и востребованности разработки. Её функционал используется для автоматических рассылок и генерации целевых оповещений об определенных событиях в базе.

Недавно была полностью переделана визуальная составляющая подсистемы, приближена к современным стандартам. В таком виде её и представляю вашему вниманию.

 

Что-то про свой Лунапарк с блекджеком и шлюхами

"Если нельзя в Телеграм, то давайте напишем свой."

 

Применимость

Подсистема реализована на управляемых формах, при интеграции обработки в конфигурацию доступна и в обычном приложении. СМС2 разрабатывалась для использования внутри конфигурации 1С: УПП версии 1.3.113, тем не менее перенос в любую другую конфигурацию не должен вызвать каких-то трудностей. Использованная платформа - 1С:Предприятие 8.3.13.1513.

Тестировалось на клиентах Windows XP и 7. Работает даже с установленным Internet Explorer 6, но лучшее впечатление - начиная с 9-й версии. На клиентах Linux-систем не запускал, тут ничего сказать не могу.

Режим совместимости конфигурации был выставлен в 8.2.16, интерфейс - 8.2, в более прогрессивных режимах тоже всё функционирует и вроде бы не расползается.

 

Как это работает

В подсистеме используется два собственных регистра сведений. Первый, у_СМС, содержит непосредственно сообщения пользователей. Есть некоторая избыточность в ресурсах регистра, это оставлено на Новый Год для развития уже запланированного, но пока нереализованного функционала. Во втором регистре у_СМС_Профили хранятся настройки пользователя СМС и их аватары. Доступно как предварительное, так и кэширование "на лету" в аватары, если у пользователей базы привязаны физические лица с фотографиями - актуально для УПП.

Обработка СМС2 предоставляет пользователю интерфейс отправки и получения сообщений. В левой панели окна содержится список всех диалогов, отсортированный по времени создания последнего сообщения, справа выводится непосредственно сами сообщения, сформатированные для вывода в поле HTML-документа в виде диалога.

Для оперативного уведомления о поступающих сообщениях в модуле обычного (можно адаптировать и для управляемого) приложения запускается обработчик ожидания. Образец кода будет приложен.

N.B.: Почему же эрзац-мессенджер? Пользователь не увидит новых сообщений в самой обработке, пока не нажмет кнопку "Обновить". Пока лишь тестирую другое поведение, при положительных результатах выложу обновлённую версию обработки.

 

Порядок установки

  1. Запустите "Сравнить и объединить..." своей конфигурации со скачанным файлом смс2.cf
  2. В окне сравнения/объединения конфигураций снимите отметку с корневого элемента конфигурации
  3.  Отметьте для объединения
  • Регистры сведения у_СМС и у_СМС_Профили
  • Обработка СМС2
  • Общий модуль укбп_Общий
  1. Выполните объединение конфигураций
  2. Добавьте в модуль обычного приложения следующий код (содержится в приложенной конфигурации):
Процедура ПриНачалеРаботыСистемы()
	
	// НачалоВставки СМС2
	ПодключитьОбработчикОжидания("у_СМС2_СлушатьСообщения", 60);
	// КонецВставки СМС2
КонецПроцедуры

// НачалоВставки СМС2
Процедура у_СМС2_СлушатьСообщения() Экспорт
	ТекстЗапроса =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	у_СМС.Отправитель,
	|	у_СМС.Текст,
	|	у_СМС.Время
	|ИЗ
	|	РегистрСведений.у_СМС КАК у_СМС
	|ГДЕ
	|	у_СМС.Адресат = &Адресат
	|	И НЕ у_СМС.Прочитано
	|	И (у_СМС.Срок = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
	|			ИЛИ у_СМС.Срок >= &ТекущаяДата)
	|	И у_СМС.Отправитель <> &Адресат";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("Адресат", ПараметрыСеанса.ТекущийПользователь);
	Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Если Выборка.Следующий() Тогда
		Адрес = укбп_Общий.ПолучитьАватарССервера(Выборка.Отправитель);
		
		Портрет = ?(ЗначениеЗаполнено(Адрес), Новый Картинка(ПолучитьИзВременногоХранилища(Адрес)), БиблиотекаКартинок.Сотрудники48);
		
		Если НЕ Выборка.Отправитель.Пустая() Тогда
			ОткрытьТаблоСМС2 = Новый ОписаниеОповещения("ОткрытьСМС2", укбп_Общий, Новый Структура ("Абонент", Выборка.Отправитель));
			ПоказатьОповещениеПользователя("Новое сообщение!", ОткрытьТаблоСМС2, "Автор: " + Выборка.Отправитель, Портрет);
		Иначе
			ПараметрыЗапуска = Новый Структура("Отправитель", Выборка.Отправитель);
			ПараметрыЗапуска.Вставить("Адресат", ПараметрыСеанса.ТекущийПользователь);
			ПараметрыЗапуска.Вставить("Время", Выборка.Время);
			
			ОткрытьТаблоРассылки = Новый ОписаниеОповещения("ОткрытьТаблоРассылкиСМС2", укбп_Общий, ПараметрыЗапуска);
			ПоказатьОповещениеПользователя("Внимание!", ОткрытьТаблоРассылки, Выборка.Текст, Портрет);
		КонецЕсли;	
	КонецЕсли;
КонецПроцедуры
// КонецВставки СМС2
  1. PROFIT

Для кэширования аватар из фотографий применяется Imagemagick. Его можно бесплатно скачать с сайта разработчика. Установка программы на сервере приложений 1С не требует никаких комментариев.

 

Заключение

Подсистема СМС2 остаётся в процессе доработки, периодически буду публиковать версии с обновлённым функционалом.

STAY TUNED!

обработка чат мессенджер IM сообщения мгновенные

См. также

SALE! 25%

Конструктор ботов Телеграм, редакция 2

Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С.

15000 11250 руб.

18.06.2021    58727    291    255    

345

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33313    80    157    

174

Легкий документооборот (+чат-бот для Telegram)

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в конфигурациях "1С: Бухгалтерия 3.0", "Управление нашей фирмой", "1С ERP Управление предприятием", "Бухгалтерия государственного учреждения". Ролевая адресация, условная маршрутизация, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    27799    25    48    

57

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    83642    40    191    

127

Интеграция 1С с телефонией и чатами WhatsApp и Telegram

Телефония, SIP Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Интеграция 1С с телефонией и чатами WhatsApp и Telegram автоматизирует работу оператора со звонками и чатами и добавит вашей 1С элементы CRM системы. Храните всю историю взаимоотношений в 1С, не теряйте звонки, скачивайте, прослушивайте в любое время из карточки клиента или журнала звонков, держите руку на пульсе, используя блок отчетов по звонкам. Интегрируйте вашу 1С и чатами WhatsApp и Telegram, общайтесь с клиентами с единого номера и в одном окне. Теперь чаты с клиентами хранятся в карточке партнера в 1С, а не в личных мобильных ваших менеджеров.

4100 руб.

28.04.2022    13862    11    6    

36

Отправка в Telegram отчетов, печатных форм, присоединённых файлов и произвольных вложений. Загрузка получателей. Хранение истории отправок.

Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Универсальное расширение для отправки (напрямую и через прокси) печатных форм, отчетов, присоединённых файлов, табличных документов и произвольных вложений в чат Telegram прямо из 1С. Ручная и автоматическая фоновая загрузка по расписанию идентификаторов получателей Telegram. Хранение истории отправок сообщений с ограничением по времени хранения и с автоматической очисткой по мере истечения срока хранения.

4800 руб.

26.12.2023    2213    1    0    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. TODD22 18 17.12.18 23:23 Сейчас в теме
Зачем выборку из результата запроса заворачивать в попытку?
for_sale; +1 Ответить
2. semagin@gmail.com 47 18.12.18 07:02 Сейчас в теме
(1) Ну, положим, не выборку, а ряд сомнительных функций типа получения аватара и т.п. Теоретически можно убрать, но для отладки удобно.
3. TODD22 18 18.12.18 09:12 Сейчас в теме
(2)на ИТС есть раздел "соглашение по написанию кода" там есть рекомендации как правильно использовать "попытку". Смысл рекомендации в том что не нужно весь код помещать в попытку. А только те строки которые могут вызвать ошибку.
semagin@gmail.com; for_sale; +2 Ответить
4. semagin@gmail.com 47 18.12.18 09:38 Сейчас в теме
5. shard 279 18.12.18 10:47 Сейчас в теме
поддерживаются ли конференции?
6. semagin@gmail.com 47 18.12.18 11:45 Сейчас в теме
(5) В этой версии нет. В следующей итерации уже запланированы.
7. kembrik 10 18.12.18 15:45 Сейчас в теме
Пишут люди "Систему взаимодействия", встраивают в типовые, а пользователи "Вигвамы рисуют"
8. shard 279 18.12.18 15:53 Сейчас в теме
(7) мнение программистов может отличаться от мнения (и самое главное - потребностей) пользователей
semagin@gmail.com; +1 Ответить
9. semagin@gmail.com 47 18.12.18 16:28 Сейчас в теме
(7) "Система взаимодействия" появилась вместе с 8.3.10.2168 - это вроде бы 2017 год. Моя подсистема крутится на предприятии с 2014 года. Про разную "стоимость" развертывания вроде бы нет даже смысла распространяться.

В конце концов, как насчёт "Пусть расцветают сто цветов, пусть соперничают сто школ"?
10. for_sale 971 18.12.18 17:17 Сейчас в теме
Обычные формы?? Серьёзно???
11. semagin@gmail.com 47 19.12.18 06:57 Сейчас в теме
(10) Не читали, но осуждаете? Это несерьёзно.
SITR-utyos; +1 Ответить
12. for_sale 971 19.12.18 09:16 Сейчас в теме
(11)
Если написано на управляемых, то что мешает и скрины сделать на управляемых?
А уж куча действий, всунутых в попытку - вот это действительно несерьёзно.
13. semagin@gmail.com 47 19.12.18 09:25 Сейчас в теме
(12) Вы всё ещё не прочитали, но упорно продолжаете задавать вопросы, на которые уже есть ответы в тексте. Ладно, повторюсь: "... было разработано как подсистема для использования внутри УПП 1.3". И зачем мне делать скрины в управляемом приложении?
SITR-utyos; +1 Ответить
14. for_sale 971 19.12.18 09:31 Сейчас в теме
(13)
Я видел это в тексте, спасибо.

И зачем мне делать скрины в управляемом приложении?

Ну не знаю. Может быть затем, что 90% конфигураций уже работают на управляемом приложении и человек, посмотрев на скрины обычного приложения, даже читать это не захочет, не то, что скачивать?

Огромное вас спасибо за совет, я-то думал, что сейчас все бросятся качать эту штуку за 5 стартмани со скринами на устаревших системах и с без стеснения выложенным примером Г-кода из неё, но только теперь понял, почему не качают!

Да не за что, обращайтесь, был рад помочь!
15. semagin@gmail.com 47 19.12.18 09:49 Сейчас в теме
Может быть затем, что 90% конфигураций уже работают на управляемом приложении и человек, посмотрев на скрины обычного приложения, даже читать это не захочет, не то, что скачивать?
Значит, это ему и не нужно. Всегда можно выбрать варианты по душе - со скринами из управляемого приложения. ))))
16. palamars 02.09.21 01:27 Сейчас в теме
Скажите, а ссылки на объекты базы поддерживаются?
17. semagin@gmail.com 47 02.09.21 11:51 Сейчас в теме
(16) Да, хотя здесь в статье уже устаревшая версия движка. Сейчас использую изрядно дописанную и улучшенную. Если интересует, то после скачивания, могу скинуть файлы.
Прикрепленные файлы:
18. NGPhoenix 8 25.12.21 14:17 Сейчас в теме
Скачал для БГУ еще 1.0. Самое главное - работает. Автор - благодарю. А то кругом эти боты для мессенджеров, а обычной корпоративной болталки нет. До этого использовал https://infostart.ru/public/415859/ с перепилом по получению списка пользователей и приспособил под систему оповещения. Теперь она к сожалению не работает ввиду перехода 1с на WebKit. Достойная замена. Вот еще бы поле ввода было бы тоже в html, чтобы можно было сразу писать сообщения с оформлением или просто таблички отправлять. Тут что-то подобное тоже есть в виде отправки вложений, но пока еще не пробовал. На файловой базе почему-то не видит пользователей в активных. Посмотрим, как будут дела обстоять в серверной.
semagin@gmail.com; +1 Ответить
19. NGPhoenix 8 25.12.21 22:49 Сейчас в теме
Переписал процедуру получения активности пользователя, т.к. в исходном виде сравнивались разные идентификаторы. В моих базах во всех, уникальный идентификатор пользователя информационной базы, не совпадает с идентификатором справочника пользователи.

 КС = Новый КвалификаторыСтроки(200);
        Массив = Новый Массив;
        Массив.Добавить(Тип("Строка"));
        ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
        СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы();
        АктивныеПользователиТЗ = Новый ТаблицаЗначений;

        АктивныеПользователиТЗ.Колонки.Добавить("ИмяПользователя",ОписаниеТиповС);
		Для каждого Соединение Из СоединенияИнформационнойБазы Цикл
            Если НЕ Соединение.ИмяПриложения="1CV8" Тогда
                Продолжить;
            КонецЕсли; 
            АктивныйПользователь=АктивныеПользователиТЗ.Добавить();                                       
            АктивныйПользователь.ИмяПользователя=Соединение.Пользователь.Имя;  		
        КонецЦикла; 
        АктивныеПользователиТЗ.Свернуть("ИмяПользователя");
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ РАЗРЕШЕННЫЕ
			|	Пользователи.Код КАК Имя,
			|	Пользователи.Наименование КАК ПолноеИмя,
			|	Пользователи.ИдентификаторПользователяИБ КАК УникальныйИдентификатор,
			|	Пользователи.Ссылка
			|ИЗ
			|	Справочник.Пользователи КАК Пользователи
			|ГДЕ
			|	Пользователи.ПометкаУдаления = ЛОЖЬ";			
		МассивПользователей = Запрос.Выполнить().Выгрузить();
		
		
		ТЗПользователи = Новый ТаблицаЗначений;
        ТЗПользователи.Колонки.Добавить("Имя",ОписаниеТиповС);
        ТЗПользователи.Колонки.Добавить("Наименование",ОписаниеТиповС);
        ТЗПользователи.Колонки.Добавить("ИдентификаторПользователяИБ",ОписаниеТиповС);
		Для каждого СтрокаМассива Из МассивПользователей Цикл
			СтрокаПользователь = ТЗПользователи.Добавить();
            СтрокаПользователь.Имя = СОКРЛП(СтрокаМассива.Имя);
            СтрокаПользователь.Наименование = СОКРЛП(СтрокаМассива.ПолноеИмя);
            СтрокаПользователь.ИдентификаторПользователяИБ = СтрокаМассива.УникальныйИдентификатор;
        КонецЦикла;  

	
		
		 Запрос = Новый Запрос;
        Запрос.Текст = 
            "ВЫБРАТЬ
            |    АктивныеПользователи.ИмяПользователя,
            |    ""Активный"" КАК Статус
            |ПОМЕСТИТЬ ВТАктивныеПользователи
            |ИЗ
            |    &ТЗАктивныеПользователи КАК АктивныеПользователи
            |;
            |
            |////////////////////////////////////////////////////////////­////////////////////
            |ВЫБРАТЬ
            |    Пользователи.Имя,
            |    Пользователи.Наименование,
            |    Пользователи.ИдентификаторПользователяИБ
            |ПОМЕСТИТЬ ВТПользователи
            |ИЗ
            |    &МассивПользователи КАК Пользователи
            |;
            |
            |////////////////////////////////////////////////////////////­////////////////////
            |ВЫБРАТЬ
            |    Пользователи.Имя КАК Наименование,
            |    Пользователи.Наименование КАК ПолноеНаименование,
            |    ЕСТЬNULL(АктивныеПользователи.Статус, ""Неактивный"") КАК Статус,
            |    Пользователи.ИдентификаторПользователяИБ КАК id
            |ИЗ
            |    ВТПользователи КАК Пользователи
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВТАктивныеПользователи КАК АктивныеПользователи
            |        ПО Пользователи.Имя = АктивныеПользователи.ИмяПользователя
            |ГДЕ
            |    НЕ Пользователи.Имя = &ТекущийПользователь
            |
            |СГРУППИРОВАТЬ ПО
            |    Пользователи.Имя,
            |    Пользователи.Наименование,
            |    Пользователи.ИдентификаторПользователяИБ,
            |    ЕСТЬNULL(АктивныеПользователи.Статус, ""Неактивный"")
            |
            |УПОРЯДОЧИТЬ ПО
            |    Статус,
            |    Наименование";
            Запрос.УстановитьПараметр("ТЗАктивныеПользователи",АктивныеПользователиТЗ);
            Запрос.УстановитьПараметр("МассивПользователи",ТЗПользователи);
            Запрос.УстановитьПараметр("ТекущийПользователь",ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
        СписокКонтактов = Запрос.Выполнить().Выгрузить();
		Если СписокКонтактов.Найти(Строка(СсылкаАбонент.ИдентификаторПользователяИБ),"id") <> неопределено тогда
			Возврат истина;
		иначе
			Возврат неопределено;
		КонецЕсли;	
Показать


Можно было сразу поставить отбор запросом, но в предыдущем варианте чата, нужно было получать именно список пользователей одновременно с их состоянием.
semagin@gmail.com; +1 Ответить
Оставьте свое сообщение