|
v7: Отправка отчета по СМС | ☑ | ||
---|---|---|---|---|
0
Enlighted
29.04.15
✎
11:30
|
Доброго времени суток обитатели.
Возникла необходимость отправлять смс рассылку списку клиентов сформированному в некоем отчете. Но в процессе выполнения возникли некоторые сложности. После формирования отчета оператор хочет просмотреть его и иметь возможность удалить некоторых клиентов из списка отчета. Только после этого должна состояться рассылка. Возникло 2 идеи реализации: 1) создать редактируемый отчет, и кнопкой на панели 1с после редактирования разослать его 2) или создать документ в котором будет формироваться таблица отчета и кнопкой из документа будет осуществляться рассылка. на данный момент имеется 2 функционирующих модуля: 1) отчет (уже формируется как надо) 2) модуль отправки СМС - функционирует как надо но проблема в следующем как при нажатии на кнопке отправить на инструментальной панели 1С 7.7 выбрать окно отчёта, передать ему фокус и считать из него данные. ЛИБО если это документ, как в табличную форму документа вывести содержимое отчёта. Опыта в 1с мало. Спасибо. |
|||
1
anatoly
29.04.15
✎
11:33
|
сделайте документ или справочник с ТЧ которая заполняется - потом ставятся галки кому не отправлять, потом отправка - после чего док/спр блокируется на возможные следующие изменения (для следующей рассылки - новый)
будете за одно всю историю видеть. |
|||
2
Enlighted
29.04.15
✎
11:43
|
ну тогда вот и вопрос как выводить значения в ТЧ. В отчет то я выводить умею создать об. таблица типа "такого" и по ячеечно заполнять строку потом выводить её. А в ТЧ как это реализовывать.
И соответственно второй момент как добавить галочки в столбец ТЧ? ну а блокировку документа после проведения я найду как сделать. |
|||
3
NikVars
29.04.15
✎
11:50
|
(2) Отчет или документ. Все зависит от того, нужно ли тебе фиксировать факт отправки отчета на конкретную дату. Если да, то документ. Хотя факт отправки можно фиксировать в исходящих в почтовом клиенте, заодно и фиксируем чего именно отправлялось. Посоветовать точнее сложно, так как необходимость, важность, этапность, крупность задачи - за рамками данного топика.
|
|||
4
Enlighted
29.04.15
✎
11:52
|
Выбор зависит от того какие знания я получу раньше и проще реализуемы: поиск окна отчета, передача ему фокуса и считывание из него данных, или вывод данных отчёта в ТЧ документа. Ни того ни того я пока делать не умею.
|
|||
5
NikVars
29.04.15
✎
11:57
|
(4) Я реализовывал массовую отправку акта выполненных работ и сф в формате pdf контагентам с периодичностью в месяц. Количество контрагентов около 6 тыс. Пытаюсь навесить твои требования на то, что делал я - получается абсурд. Ибо в базе акты и сф в своем формате, pdf лежал мимо базы (дублировать в базе глупо) и отправка выполнялась не из базы (было пофик, получит контрагент все это или нет, да и емайлы были битые и кривые или с бесплатных почтовых ящиков).
Тут еще много чего нужно оговаривать или озвучивать... |
|||
6
Wirtuozzz
29.04.15
✎
12:12
|
Настроить отборы отчета не предлагать?
|
|||
7
VoditelKobyly
29.04.15
✎
12:13
|
Как вариант:
1. пусть правят отчет и сохраняют в файл (в этом случае ничего править в программе не нужно) 2. подработать модуль отправки СМС чтобы делал рассылку из файла. (тут ты ничего не написал, как он работает, поэтому тяжело сказать сколько времени на доработку) |
|||
8
Enlighted
29.04.15
✎
12:26
|
спасибо за то что быстро откликнулись.
(5) отправка ежедневная около 50 смс в день проверка верности телефонных номеров целиком проблема оператора (если он в базу вносит корявый номер это его "косяк"). Программа отправки смс оставляет лог файл с отчётом об отправке по каждому номеру - так-что это тоже не проблема. текст отправки всёравно сохраняться в документе не будет ибо генерируется непосредственно при передаче на программу рассылки, а в документе фио, тел, сумма, номердок, срок. (6) Честно говоря вопроса не понял. (7) Не вариант, ибо заказчик не хочет позволять пользователю вмешиваться в процесс генерации текста сообщения. А модуль отправки СМС и так делает рассылку из файла. Но файл после отправки сразу удаляется. остаётся только лог |
|||
9
NikVars
29.04.15
✎
12:31
|
(8) Тогда делай документом. Ибо уже через месяц не разгребешься что-кому отправлено.
|
|||
10
Enlighted
29.04.15
✎
12:42
|
(9) Ну хорошо документом, тогда вопрос уже описан в посте номер два.
|
|||
11
VoditelKobyly
29.04.15
✎
13:16
|
А формирование файла для рассылки у тебя вопросов не вызывает?
|
|||
12
NikVars
29.04.15
✎
13:18
|
||||
13
Enlighted
29.04.15
✎
13:37
|
(11) формат файла определен требованиями программы рассылки, простой тхт, телефон и текст сообщения. запись в тхт построчно выглядит так:
... СтрокаДляЗаписи = СтрЗаменить(Константа.СМС, "ФИО", ТаблКонтрагенты); СтрокаДляЗаписи = СтрЗаменить(СтрокаДляЗаписи, "Долг", ТаблОбщийДолг); СтрокаДляЗаписи = СтрЗаменить(СтрокаДляЗаписи, "Дата погашения", ТаблДатаДок); СтрокаДляЗаписи = ТаблТелефон + "=" + СтрокаДляЗаписи; Текст.ДобавитьСтроку(СтрокаДляЗаписи); ... КонецЦыкла; Текст.Записать("c:\1\Phone.txt"); Это построчное считывание из ТЧ с внесением в тхт файл, там же реализую проверку на наличие галочки в строке. как добавить галочки мне подсказал (12) + яндекс :) за что обоим спасибо. Остаётся вопрос как вывести данные в ТЧ документа. |
|||
14
VoditelKobyly
29.04.15
✎
13:50
|
По твоему примеру:
Док.Новый(); Док.НоваяСтрока(); Док.ФИО = СтрЗаменить(Константа.СМС, "ФИО", ТаблКонтрагенты); Док.Долг = СтрЗаменить(СтрокаДляЗаписи, "Долг", ТаблОбщийДолг); Док.ДатаПогашения = СтрЗаменить(СтрокаДляЗаписи, "Дата погашения", ТаблДатаДок); Док.Телефон = ТаблТелефон + "=" + СтрокаДляЗаписи; КонецЦикла; Док.Записать(); |
|||
15
Enlighted
29.04.15
✎
14:07
|
(14) тоесть обращение к табличной части документа происходит не по имени таблицы а просто по имени документа и реквезиту?
тогда считывание циклом из ТЧ документа через ПолучитьСтроку? |
|||
16
VoditelKobyly
29.04.15
✎
14:13
|
Не совсем понял. Скорее да, чем нет. Рыба следующая:
ДокСМС=СоздатьОбъект("Документ.РассылкаСМС"); //делаем новый ДокСМС.Новый(); Пока ... Цикл ДокСМС.НоваяСтрока(); ДокСМС.ФИО=... ... ДокСМС.Телефон=... КонецЦикла; ДокСМС.Записать(); Выборка циклом через ПолучитьСтроку() Пока ДокСМС.ПолучитьСтроку()=1 Цикл ФИО=ДокСМС.ФИО; ... Телефон=ДокСМС.Телефон; КонецЦИкла; |
|||
17
Enlighted
29.04.15
✎
14:19
|
(16) Спасибо большое сейчас попробую реализовать
|
|||
18
Cap_1977
29.04.15
✎
14:26
|
(17) Только не через документ а через справочник.
|
|||
19
Enlighted
29.04.15
✎
15:31
|
(18) А почему именно через справочник, у меня в текущем документе должен сформироваться список, и из текущего документа по кнопке отправить он должен уйти на модем. Зачем мне подцеплять справочник?
|
|||
20
Enlighted
29.04.15
✎
16:39
|
Док = СоздатьОбъект ("Документ.УведомлениеКлиентов");
Док.ТекущийДокумент(); Сообщить (Док.Вид()); >> УведомлениеКлиентов Док.Записать(); >> {Документ.УведомлениеКлиентов.Форма.Модуль(119)}: Не выбран документ! Вроде выбрал текущий документ, а он всё равно матюкается |
|||
21
Попытка1С
29.04.15
✎
16:40
|
(20) Док.НайтиДокумент
или док.выбратьдокументы, пока док.получитьдокумент че там у тебя |
|||
22
LazyStranger
29.04.15
✎
16:44
|
Док = СоздатьОбъект ("Документ.УведомлениеКлиентов");
Док.Новый(); // тут заполняем документ Док.Записать(); |
|||
23
Enlighted
29.04.15
✎
16:46
|
(22) Зачем мне создавать новый если я его уже открыл и работаю в нём. Мне нужно выбрать текущий и заполнять его из его же модуля.
|
|||
24
Enlighted
29.04.15
✎
16:49
|
принцип получается такой: открываю новый документ типа "УведомлениеКлиентов" из меню программы и уже в нем заполняется всё что надо.
|
|||
25
Enlighted
29.04.15
✎
17:35
|
На данный момент встала проблема с выбором текущего документа чтобы заполнять его поля пробовал следующие варианты:
1) Док = СоздатьОбъект ("Документ.УведомлениеКлиентов"); Док.ТекущийДокумент(); - пишет что документ не выбран 2) Док = СоздатьОбъект ("Документ.УведомлениеКлиентов"); Док.НайтиДокумент( ТекущийДокумент()); - пишет что "Недопустимая операция" |
|||
26
NikVars
29.04.15
✎
17:48
|
(25) Сначала запиши - потом - ТекущийДокумент()
|
|||
27
Enlighted
29.04.15
✎
18:06
|
(26) Тоесть не сохранив текущий документ я не смогу его заполнять программно?
|
|||
28
NikVars
29.04.15
✎
18:19
|
(27) Заполняй, только не используй термин "текущий"
|
|||
29
NikVars
29.04.15
✎
18:20
|
Примеры тут
http://www.mista.ru/tutor_1c/docs.htm |
|||
30
Enlighted
30.04.15
✎
11:11
|
(29) Спасибо большое документ помог всем откликнувшимся спасибо. Задача решена.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |