gifts2017

Оповещение по 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С, решил сделать попроще, но бесплатную:)

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

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

См. также

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

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

и смс-ка уходит. Просто и бесплатно)
2. Александр (tvixeg) 26.10.12 08:49
Служба постоянно висит и мониторит эту папку на наличие нового текстового файла?
3. DenisCh Гейтс (DenisCh) 26.10.12 08:50
(1) Dimasik2007, прямо таки бесплатно? И за модем платить не надо?
4. Александр (tvixeg) 26.10.12 14:39
(3) DenisCh, стоимость смс в любом случае зависит от выбранного тарифа, как будто бы ты ее с телефона отправил
5. Александр (tvixeg) 26.10.12 14:41
нужен тарифный план с дешевыми смс
6. Антон Рощин (wolfsoft) 31.10.12 10:43
(1) Dimasik2007, вот бы кто подробную статью про этот способ написал... ;)
7. Данила Елистратов (CagoBHuK) 01.11.12 09:49
Чем отличается от других подобных разработок?
8. Евгений Рачковский (eugen91) 04.12.12 20:17
Присоединяюсь к предыдущему комментарию. В чем преимущество над любой другой подобной обработкой ?
9. Александр (tvixeg) 05.12.12 08:12
(7) CagoBHuK, (8) eugen91, какой другой ? не нашел тут другой бесплатной написал
11. Den Denis (dk666dk) 04.02.13 08:59
добрый день, попытался воспользоватся вашей обработкой из 1С при отправке пишет что файл не найден и висит окно причем с портом 16 а в ини файле я прописал другой, а если просто запустить этот файлик то смски уходят
12. Александр (tvixeg) 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) 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) 04.02.13 10:03
ну я закинул все файлы в одном месте и порт прописал, а проблема именно когда из 1С вызываешь этот GSM_SMS.exe а если просто его запускаешь он все нормально отправляет.
15. Александр (tvixeg) 04.02.13 10:28
(14) dk666dk, может у тебя семерка, контроль учетных записей какой нить стоит
16. Александр (tvixeg) 04.02.13 10:29
(14) dk666dk, а лучше назначь своему модему 16 com порт
17. Александр (tvixeg) 04.02.13 10:36
(14) dk666dk, просто там из 1с-ки все прямо на диск С записывается и все файлы должны быть прямо в корне диска С. Может прав нету туда записывать из 1с.
18. Den Denis (dk666dk) 04.02.13 10:49
права есть т.к. файл с смсками сздается без проблем, вот такая ерунда выходит при запуске (в файле)
Прикрепленные файлы:
19. Александр (tvixeg) 04.02.13 11:04
ну это ж не моя обработка. у меня на управляемых формах. Может ты сначала запускаешь программу а потом уже файл записываешь? т.к пишет что файл не найден
20. Den Denis (dk666dk) 04.02.13 11:07
взял вашу да чуть переделал в обычную форму и код подправил:
Файл=Новый ТекстовыйДокумент;
Если Рез.Количество()<>0 Тогда
Для каждого стр из рез Цикл
Если СтрДлина(СокрЛП(стр.Представление))<>11 Тогда
Сообщить("У клиента "+Строка(стр.клиент)+" неверный номер телефон");
Иначе
Файл.ВставитьСтроку(1,"#"+Строка(стр.Представление)+";"+текстсообщения);
Файл.Записать("C:\temp\sms.txt",КодировкаТекста.ANSI);
Файл = неопределено;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ЗапуститьПриложение("C:\temp\GSM_SMS.exe");
пробовал на прямую на диск С писать и в каталоге, права на каталог раздал всеравно тоже самое
21. Den Denis (dk666dk) 04.02.13 11:10
(19) tvixeg, пробовал чисто вашу из управляемой формы тоже самое
22. Александр (tvixeg) 04.02.13 11:11
23. Александр (tvixeg) 04.02.13 11:22
могу еще исходники этой программы на delphi выложить если надо.
24. Den Denis (dk666dk) 04.02.13 11:28
(23) tvixeg, скиньте если не сложно на почту dk666dk@gmail.com
25. Александр (tvixeg) 04.02.13 11:32
26. Den Denis (dk666dk) 04.02.13 12:11
27. Александр (tvixeg) 04.02.13 12:17
еще раз отправил если не дойдет другой адрес напиши не gmail.
28. Александр (tvixeg) 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) 04.02.13 14:15
(28) tvixeg, все я получил ..спс погляжу на досуге :)
31. jack eee (UJF) 31.08.15 14:44
Добрый день, а есть ли возможность управлять голосовым звонком с GSM модема ? например получать из модема и отправлять в сип и наоборот?
насколько я понимаю голос с пк успешно передается из 1с в сип протокол , а можем ли мы получить этот голос из модема ?