Внешняя компонента для отсылки СМС через телефон, подключенный к компьютеру

Опубликовал Владимир Стахорский (rockford) в раздел Программирование - Внешние компоненты

Внешняя компонента для отсылки СМС через телефон, подключенный к компьютеру

Компонента AddInSendSMS предназначена для рассылки СМС через телефон, подключенный к компьютеру.

Поддерживается передача как сообщений на латинице (максимальная длина 39015 символов) так и на кириллице (максимальная длина 17085 символов)

Для использования компоненты необходимо скопировать файл AddInSendSMS в каталог программы 1C или базы данных.

Описание методов:

SendSMS(НомерАбонента, ТекстСообщения, Кодировка, Отчет);

Параметры:

  • НомерАбонента:  

Номер получателя (в международном формате без лидирующего "+"). Например "380671234567"

  • ТекстСообщения:  

Текст сообщения.

  • Кодировка

Формат кодирования сообщения:

        0 - Допускаются только символы латинского алфавита. Максимальная длина текстового сообщения 39015 символов.
        1 - Допускаются любые символы. Максимальная длина текстового сообщения 17085 символов.

  • Отчет: Получать отчет о доставке

        0 - Нет
        1 - Да


Возвращает:
  1   Успешный вызов
-1    Не могу открыть COM порт
-2    Не поддерживается SMS (команда AT+CSMS=0 вернула ошибку)
-3    Не могу установить режим PDU (команда AT+CMGF=0 вернула ошибку)
-4    Ошибка при передаче сообщения
-10  Не установлен телефон сервис-центра передачи СМС

Примеры использования:

Для 1С 7.7

ЗагрузитьВнешнююКомпоненту("AddInSendSMS.dll");
AddinSendSMS=СоздатьОбъект("AddIn.SendSMS");
AddinSendSMS.PortNumber=1;
AddinSendSMS.PortTimeout=10000;
AddinSendSMS.PortBaudRate=19200;
AddinSendSMS.SMSCenter ="380672020000";

НомерАбонента="380671234567";
ТекстСообщения = "Тестовое сообщение";

Рез=AddinSendSMS.SendSMS(НомерАбонента,ТекстСообщения,1,0);
Если
Рез=1 Тогда
   
Сообщить("Сообщение успешно послано абоненту : "+ НомерАбонента);
Иначе
   
Сообщить("Ошибка при посылке сообщения абоненту : "+ НомерАбонента);
КонецЕсли;

Для 1с 8.х

ЗагрузитьВнешнююКомпоненту("AddInSendSMS.dll")
AddinSendSMS=Новый ("AddIn.SendSMS");
AddinSendSMS.PortNumber=2;
AddinSendSMS.PortTimeout=10000;
AddinSendSMS.PortBaudRate=19200;
AddinSendSMS.SMSCenter ="380672020000";

НомерАбонента="380671234567";
ТекстСообщения = "Тестовое сообщение";

Рез=AddinSendSMS.SendSMS(НомерАбонента,ТекстСообщения,1,1);
Если
Рез=1 Тогда
   
Сообщить("Сообщение успешно послано абоненту : "+ НомерАбонента);
Иначе
   
Сообщить("Ошибка при посылке сообщения абоненту : "+ НомерАбонента);
КонецЕсли;

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

Наименование Файл Версия Размер
Внешняя компонента + демонстрационная обработка 7.7
.1249550349 107,77Kb
25.09.09
206
.1249550349 107,77Kb 206 Скачать
Демонстрационная обработка 8.1 (без компоненты)
.1249560960 7,19Kb
25.09.09
40
.1249560960 7,19Kb 40 Скачать

См. также

Комментарии
1. Андрей Межов (mini_root) 130 06.08.09 13:30 Сейчас в теме
Маленький совет: добавь в текст код с примером использования и опиши как функционирует компонента и чего требует.

2. Андрей Межов (mini_root) 130 06.08.09 13:34 Сейчас в теме
Исходников, как я понимаю, не будет?
3. Den (dance000) 06.08.09 14:29 Сейчас в теме
Странная компонента, у меня вырубился комп при попытке протестировать ее! ((
4. Владимир Стахорский (rockford) 33 06.08.09 14:38 Сейчас в теме
(3) Тестировалось на WinXp Sp2 вроде все нормально. Опишите подробней
5. Serj (Serj1C) 460 06.08.09 15:29 Сейчас в теме
regsrv32 AddInSendSMS.dll

8.1:

{Форма.Форма(3)}: Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается
AddinSendSMS=новый COMОбъект("AddIn.SendSMS");
по причине:
Интерфейс не поддерживается

Или как надо объект создать?
6. Владимир Стахорский (rockford) 33 06.08.09 15:35 Сейчас в теме
(5) Пример для 8.х добавил в описание
7. Serj (Serj1C) 460 06.08.09 15:52 Сейчас в теме
(6) неа, не канает...

{Форма.Форма(4)}: Тип не определен (AddIn.SendSMS)
AddinSendSMS=Новый ("AddIn.SendSMS");

Вот, добавил еще в начало:
ПодключитьВнешнююКомпоненту("AddIn.SendSMS");

вроде пошло дальше, но Рез = 0 пока...
8. Serj (Serj1C) 460 06.08.09 15:55 Сейчас в теме
точнее результат -2.
А что значат параметры 1 и 0 в SendSMS ??
9. Андрей Межов (mini_root) 130 06.08.09 16:03 Сейчас в теме
автору: лучше заведи в компоненте метод через который можно получить текстовое описание ошибки, а то -2 как -29345345 ни о чем не говорят
10. Андрей Межов (mini_root) 130 06.08.09 16:07 Сейчас в теме
или бросай исключение(из COIM компонента на шарпе в 8.x вполне нормально перехватываются)
11. Андрей Межов (mini_root) 130 06.08.09 16:07 Сейчас в теме
12. Владимир Стахорский (rockford) 33 06.08.09 16:10 Сейчас в теме
(8,9) добавил описание метода SendSMS и кодов ошибок
13. Андрей Межов (mini_root) 130 06.08.09 16:15 Сейчас в теме
еще одна тонкость: здесь не очень хороший редактор в плане вставки кода - воспользуйся внешней обработкой "Разукрашка" http://infostart.ru/projects/4014/ (она сгенерит тебе HTML, который можно вставить в режиме прямого редактирования HTML в здешнем редакторе).
14. Андрей Межов (mini_root) 130 06.08.09 16:19 Сейчас в теме
0 и 1 для задания кодировки лучше заменить на свойство, тогда будет:

.....
x.UseUnicode=1;
.....

15. Вячеслав Н. Бойко (boy13) 166 06.08.09 17:44 Сейчас в теме
Интересно узнать, как надо подключать телефон к компьютеру и что за телефон должен быть. (Смарт/Комунникатор/Обычный). Интересно было бы узнать принцип действия и поглядеть исходный код. Но за разработку - однозначно плюс!
16. dushelov (Душелов) 06.08.09 17:48 Сейчас в теме
(15) Любой телефон, подключенный через компорт/эмулятор компорта. Работа с телефоном осуществляется обычной передачей АТ-команд. Ничего сложного.
17. Александр Калиновский (kalinovsky) 31 06.08.09 17:49 Сейчас в теме
(14) на мой взгляд не логично... а если при каждом отправлении кодировка меняется?... каждый раз свойство менять?... а с точки зрения прграммирования ВК - это не один вызов функций...
18. Андрей Межов (mini_root) 130 06.08.09 17:53 Сейчас в теме
19. Сергей (Che) Коцюра (CheBurator) 3369 07.08.09 10:58 Сейчас в теме
неинтересно.. если бы была отправка СМС без мобилы....
20. dushelov (Душелов) 07.08.09 11:08 Сейчас в теме
21. Евгений Мартыненков (JohnyDeath) 290 07.08.09 11:24 Сейчас в теме
(20) уже заждались компоненты по этой теме! ))
22. dushelov (Душелов) 07.08.09 13:04 Сейчас в теме
23. Invaa Invaa (Invaa) 283 12.08.09 16:32 Сейчас в теме
Присоединил коммуникатор с использованием ActiveSync'a и bluetooth, COM-порт 8. В параметрах демонстрационной обработки изменил только порт (т.к. оператор как и в примере Киевстар). При попытке отправки выдает результат "-1". В чем может быть проблема?
24. Владимир Стахорский (rockford) 33 15.08.09 10:14 Сейчас в теме
(23) Возможно ActiveSync и виноват. Попробуйте его выключить
25. Invaa Invaa (Invaa) 283 20.08.09 16:25 Сейчас в теме
(24) Попробовал, тот же результат, для коммуникатора недоступен сервис "Bluetooth Serial Port". Попробую через usb.
26. Саня Пупкин (pupkinSana) 19 21.08.09 14:37 Сейчас в теме
Хорошая вещь в теории, но у меня все настроено как описано и телефон все поддерживает, а не отправляет никак пишет ошибку -4. А у себя на фирме давно прикрутил утилитку с сайта simplesms.ru для пакетной отправки уведомлений клиентам из 1С 77. Хоть 1000 штук отправляй, правда 2-3 сек. на одну смс приходится...
27. Владимир Стахорский (rockford) 33 23.08.09 12:25 Сейчас в теме
(26) Попробуйте увеличить таймаут
28. Саня Пупкин (pupkinSana) 19 24.08.09 09:07 Сейчас в теме
(27) Увеличивал и уменьшал таймаут и скорость - бесполезно.
29. Роман Мельников (Sabron) 16.09.09 04:45 Сейчас в теме
Что включает в себя "-4 Ошибка при передаче сообщения" и как с ней бороться?
30. artem2922 (pizhenkov) 01.10.09 17:05 Сейчас в теме
Выходит Ошибка при посылке сообщения абоненту

-4 Ошибка при передаче сообщения

И что делать куда рыть не знаю :o
31. Олег Бушев (DrMabuzo) 25.11.09 10:33 Сейчас в теме
смотрю коменты тут старенькие - как она ведет себя после изменения правил набора, я из Украины и у нас теперь номера набираются без 8 впереди............
32. Владимир Стахорский (rockford) 33 26.11.09 10:20 Сейчас в теме
(31) номер набирается в международном формате, а в нем никто 8 не отменял.
33. Олег Бушев (DrMabuzo) 26.11.09 12:55 Сейчас в теме
не работает............................
Ошибка при посылке сообщения абоненту :
34. urban_a urban_a (urb) 27.11.09 20:27 Сейчас в теме
постоянно ошибка -4. Если текст сообщения оставлять пустым, что пишет, что сообщение отправлено. Реально ничего не приходит. Автор, отзовитесь. На двух телефонах провобовал
aleksandrananiev; +1 Ответить
35. Дмитрий Геннадьевич (dmitrytop) 25.03.10 09:30 Сейчас в теме
Если номер получателя состоит из 11 цифр(в России), а не из 12, то ошибка -4
36. Сергей NSerget (NSerget) 4 27.08.10 17:02 Сейчас в теме
Обработка работает отлично. Есть только одно: При превышениии длины 70 символов, то выдает ошибку -4. В то время как на латинице отсылает длинные смс.
формат номера получателя для Украины 38ХХХ ХХ ХХ ХХХ (12 символов)

Хотя ошибался - не получаться отправить смс длиной больше 62 символа :o
У Киевстара смс центр "380672021111"
37. Олег Бушев (DrMabuzo) 27.08.10 20:08 Сейчас в теме
(36) У меня отправляется намного больше символов (сопряженное сообщение из трех). Только я пишу в латинице

отправляю тоже с киевстара и с такого же смс центра

да, вспомнил почему у меня такая трабла была - если отправляешь цифры, то преобразуй их в строку, символ разделения разрядов не поддерживается тут (т.е. надо отправлять не 10 000, а 10000)
38. Олег Бушев (DrMabuzo) 27.08.10 20:34 Сейчас в теме
отправляю тоже с киевстара и с такого же смс центра

да, вспомнил почему у меня такая трабла была - если отправляешь цифры, то преобразуй их в строку, символ разделения разрядов не поддерживается тут (т.е. надо отправлять не 10 000, а 10000)
39. Константин Семичев (konstantin-semichev) 30.08.10 18:56 Сейчас в теме
Идея супер, реализация недоделана, поскольку на сервере
ЗагрузитьВнешнююКомпоненту("AddInSendSMS.dll")

не рабоает, то ипользовать не очень удобно, хочетья чтобы сервер смски отправлял, а для этого надо сом объектделать (панель упр>админ>Службы компонентов.), а тут засада. новое СОМ приложение создать не удается,

Пишет "Часть компонентов установить не удалось: AddInConnection Ошибка DllRegisterService при установке компонента.
:?: развитие темы есть ?
Windows XP Sp3
40. Олег Бушев (DrMabuzo) 30.08.10 19:00 Сейчас в теме
у меня компонента работает на 2003 сервере, работала и на висте в свое время...
41. mimos 26.01.12 23:39 Сейчас в теме
попробовал на модемчике wavecom fastrack - смс не отправляет.
42. Сергей Дьяченко (sergfox) 15.02.12 15:05 Сейчас в теме
Добрый день

а подтверждение получения СМС планируется реализовать, и работа с входящими СМС?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа