Оповещение по SMS через GSM-модем из 1С

Опубликовал Александр (tvixeg) в раздел Обмен - SMS рассылки

Данная обработка и исполняемый файл позволяют организовать SMS-рассылку клиентам через любой USB-модем (Мегафон, Билайн, МТС). Сам пишу службу доставки для одной из сетей быстрого питания и решил использовать такой способ SMS-оповещения клиентов.

При запуске исполняемый файл GSM_SMS.exe считывает номер COM-порта модема из файла option.ini. Этот номер нужно туда записать самостоятельно, посмотрев в списке оборудования COM-порт вашего модема. Затем программа считывает файл sms.txt, в котором хранится номер телефона и текст сообщения. Формат файла: #79121234567;Текст сообщения. Пока не работает с текстом сообщения больше 60 символов, работаю над этой проблемой. После отправки сообщения программа сразу закрывается. Мы увидим только окошко "Отправка сообщения" на доли секунды. Таким образом в 1С нам нужно просто сформировать текстовый файл sms.txt, описанного выше формата (Файл.Записать("C:\sms.txt",КодировкаТекста.ANSI) необходимо прописать кодировку ANSI, т.к. по умолчанию 1С сохраняет в кодировке UTF-8) и запустить файл GSM_SMS.exe на выполнение (ЗапуститьПриложение("C:\GSM_SMS.exe")). Файлы option.ini и sms.txt размещайте в одном каталоге с файлом GSM_SMS.exe.

Встречал на этом сайте несколько платных вариантов SMS-рассылки из 1С, решил сделать попроще, но бесплатную:)

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

Наименование Файл Версия Размер
Архив исполняемого файла
.zip 221,21Kb
25.10.12
85
.zip 221,21Kb 85 Скачать
Пример обработки на управляемых формах
.epf 6,02Kb
25.10.12
36
.epf 6,02Kb 36 Скачать

См. также

Комментарии
1. Dmitry Dmitry (Dimasik2007) 378 25.10.12 23:39 Сейчас в теме
Поднимаем сервис на smsd (работает под windows), подключаем модем и расшариваем папку по сети.
Любое ПО пишет в файл в эту папку в формате

телефон
текст...

и смс-ка уходит. Просто и бесплатно)
2. Александр (tvixeg) 398 26.10.12 08:49 Сейчас в теме
Служба постоянно висит и мониторит эту папку на наличие нового текстового файла?
3. DenisCh Гейтс (DenisCh) 26.10.12 08:50 Сейчас в теме
(1) Dimasik2007, прямо таки бесплатно? И за модем платить не надо?
4. Александр (tvixeg) 398 26.10.12 14:39 Сейчас в теме
(3) DenisCh, стоимость смс в любом случае зависит от выбранного тарифа, как будто бы ты ее с телефона отправил
5. Александр (tvixeg) 398 26.10.12 14:41 Сейчас в теме
нужен тарифный план с дешевыми смс
6. Антон Рощин (wolfsoft) 2413 31.10.12 10:43 Сейчас в теме
(1) Dimasik2007, вот бы кто подробную статью про этот способ написал... ;)
7. Данила Елистратов (CagoBHuK) 25 01.11.12 09:49 Сейчас в теме
Чем отличается от других подобных разработок?
8. Евгений Рачковский (eugen91) 04.12.12 20:17 Сейчас в теме
Присоединяюсь к предыдущему комментарию. В чем преимущество над любой другой подобной обработкой ?
9. Александр (tvixeg) 398 05.12.12 08:12 Сейчас в теме
(7) CagoBHuK, (8) eugen91, какой другой ? не нашел тут другой бесплатной написал
11. Den Denis (dk666dk) 32 04.02.13 08:59 Сейчас в теме
добрый день, попытался воспользоватся вашей обработкой из 1С при отправке пишет что файл не найден и висит окно причем с портом 16 а в ини файле я прописал другой, а если просто запустить этот файлик то смски уходят
12. Александр (tvixeg) 398 04.02.13 09:25 Сейчас в теме
(11) dk666dk, по умолчанию стоит Com-порт 16. Если у вашего модема другой Com-порт, то его номер надо прописать в option.ini. Вот код:
assignfile(f1,'option.ini');
reset(f1);
readln(f1,stroka1);
seCom.Value:=StrToInt(stroka1);
13. Александр (tvixeg) 398 04.02.13 09:29 Сейчас в теме
(11) dk666dk, а тут он считывает файл sms.txt должен лежать там же где и GSM_SMS.exe
assignfile(f,'sms.txt');
reset(f);

while not eof(f) do
begin
readln(f,stroka);
nomer:=Pos('#',stroka);
stroka:=Copy(stroka,nomer+1,length(stroka));
nomer:=Pos(';',stroka);
str_nomer:=Copy(stroka,1,nomer-1);
str_message:=Copy(stroka,nomer+1,length(stroka));
// ShowMessage(str_message);
end;
LabeledEdit2.Enabled := False;
LabeledEdit2.Text := '';
LabeledEdit1.Text := str_nomer;
Memo1.Text := str_message;
//ShowModal;
Result.Number := LabeledEdit1.Text;
Result.Text := Memo1.Text;
14. Den Denis (dk666dk) 32 04.02.13 10:03 Сейчас в теме
ну я закинул все файлы в одном месте и порт прописал, а проблема именно когда из 1С вызываешь этот GSM_SMS.exe а если просто его запускаешь он все нормально отправляет.
15. Александр (tvixeg) 398 04.02.13 10:28 Сейчас в теме
(14) dk666dk, может у тебя семерка, контроль учетных записей какой нить стоит
16. Александр (tvixeg) 398 04.02.13 10:29 Сейчас в теме
(14) dk666dk, а лучше назначь своему модему 16 com порт
17. Александр (tvixeg) 398 04.02.13 10:36 Сейчас в теме
(14) dk666dk, просто там из 1с-ки все прямо на диск С записывается и все файлы должны быть прямо в корне диска С. Может прав нету туда записывать из 1с.
18. Den Denis (dk666dk) 32 04.02.13 10:49 Сейчас в теме
права есть т.к. файл с смсками сздается без проблем, вот такая ерунда выходит при запуске (в файле)
Прикрепленные файлы:
19. Александр (tvixeg) 398 04.02.13 11:04 Сейчас в теме
ну это ж не моя обработка. у меня на управляемых формах. Может ты сначала запускаешь программу а потом уже файл записываешь? т.к пишет что файл не найден
20. Den Denis (dk666dk) 32 04.02.13 11:07 Сейчас в теме
взял вашу да чуть переделал в обычную форму и код подправил:
Файл=Новый ТекстовыйДокумент;
Если Рез.Количество()<>0 Тогда
Для каждого стр из рез Цикл
Если СтрДлина(СокрЛП(стр.Представление))<>11 Тогда
Сообщить("У клиента "+Строка(стр.клиент)+" неверный номер телефон");
Иначе
Файл.ВставитьСтроку(1,"#"+Строка(стр.Представление)+";"+текстсообщения);
Файл.Записать("C:\temp\sms.txt",КодировкаТекста.ANSI);
Файл = неопределено;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ЗапуститьПриложение("C:\temp\GSM_SMS.exe");
пробовал на прямую на диск С писать и в каталоге, права на каталог раздал всеравно тоже самое
21. Den Denis (dk666dk) 32 04.02.13 11:10 Сейчас в теме
(19) tvixeg, пробовал чисто вашу из управляемой формы тоже самое
22. Александр (tvixeg) 398 04.02.13 11:11 Сейчас в теме
23. Александр (tvixeg) 398 04.02.13 11:22 Сейчас в теме
могу еще исходники этой программы на delphi выложить если надо.
24. Den Denis (dk666dk) 32 04.02.13 11:28 Сейчас в теме
(23) tvixeg, скиньте если не сложно на почту dk666dk@gmail.com
25. Александр (tvixeg) 398 04.02.13 11:32 Сейчас в теме
26. Den Denis (dk666dk) 32 04.02.13 12:11 Сейчас в теме
27. Александр (tvixeg) 398 04.02.13 12:17 Сейчас в теме
еще раз отправил если не дойдет другой адрес напиши не gmail.
28. Александр (tvixeg) 398 04.02.13 12:18 Сейчас в теме
This is the mail system at host yandex.ru.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

Please, do not reply to this message.


<dk666dk@gmail.com>: host gmail-smtp-in.l.google.com[2a00:1450:4010:c04::1a]
said: 552-5.7.0 Our system detected an illegal attachment on your message.
Please 552-5.7.0 visit
http://support.google.com/mail/bin/answer.py?answer=6590 to 552 5.7.0
review our attachment guidelines. oq7si7403823lab.72 - gsmtp (in reply to
end of DATA command)
29. Den Denis (dk666dk) 32 04.02.13 14:15 Сейчас в теме
(28) tvixeg, все я получил ..спс погляжу на досуге :)
31. jack eee (UJF) 31.08.15 14:44 Сейчас в теме
Добрый день, а есть ли возможность управлять голосовым звонком с GSM модема ? например получать из модема и отправлять в сип и наоборот?
насколько я понимаю голос с пк успешно передается из 1с в сип протокол , а можем ли мы получить этот голос из модема ?
Оставьте свое сообщение