|
Обход таблицы значений | ☑ | ||
---|---|---|---|---|
0
prilforreal
13.10.17
✎
12:28
|
Добрый день! 1С8.3 конфигурация самописная. Пишу обработку для рассылки почты контрагентам, осталось дело за малым, одна процедура отправить письма, но никак не могу дать ей ума, как мне организовать обход списка получателей и отправку им письма с прикрепленным вложением?
|
|||
1
VladZ
13.10.17
✎
12:29
|
(0) И в чем проблема?
|
|||
2
Мимохожий Однако
13.10.17
✎
12:29
|
(0) Сделай запрос к списку получателей.
|
|||
3
prilforreal
13.10.17
✎
12:32
|
Не хватает ума как заново написать все, так и переработать код из семерки, направленный на те же нужды...
Пока на этом остановился Процедура ОтправитьНажатие() КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество(); Если КоличествоСтрок <> 0 тогда //Если ВыбДилеры<>0 тогда ВыбДилеры.Выбратьстроку(); // //Формируем ВыбФайл ВыбФайл=""; ВыбФайлы.Выбратьстроку(); Пока ВыбФайлы.Получитьстроку()=1 Цикл Если Выбфайл=0 тогда ВыбФайл=ВыбФайл+";"; конецесли; Выбфайл=ВыбФайл+ВыбФайлы.Путь; конеццикла; пока Выбдилеры.Получитьстроку()=1 цикл конеццикла; конецесли; // Процедура ОтправитьПисьма() // Если ВыбДилеры.Количествострок()<>0 тогда // ВыбДилеры.Выбратьстроки(); // // //Формируем ВыбФайл // ВыбФайл=""; // ВыбФайлы.Выбратьстроки(); // Пока ВыбФайлы.Получитьстроку()=1 Цикл // Если Пустоезначение(Выбфайл)=0 тогда // ВыбФайл=ВыбФайл+";"; // конецесли; // Выбфайл=ВыбФайл+ВыбФайлы.Путь; // конеццикла; // пока Выбдилеры.Получитьстроку()=1 цикл // Тема=ТемаПисьма; // Тема=СтрЗаменить(Тема,"[Дилер]",Выбдилеры.Дилер); // Тема=СтрЗаменить(Тема,"[Фамилия]",Выбдилеры.Дилер.Фамилия); // Тема=СтрЗаменить(Тема,"[Имя]",Выбдилеры.Дилер.Имя); // Тема=СтрЗаменить(Тема,"[Отчество]",Выбдилеры.Дилер.Отчество); // ТекстП=ТекстПисьма; // ТекстП=СтрЗаменить(ТекстП,"[Дилер]",Выбдилеры.Дилер); // ТекстП=СтрЗаменить(ТекстП,"[Фамилия]",Выбдилеры.Дилер.Фамилия); // ТекстП=СтрЗаменить(ТекстП,"[Имя]",Выбдилеры.Дилер.Имя); // ТекстП=СтрЗаменить(ТекстП,"[Отчество]",Выбдилеры.Дилер.Отчество); // Сообщить("Отправка письма дилеру - "+ВыбДилеры.Дилер); // глОтправитьОтчетПоПочте(ВыбФайл,ВыбДилеры.Дилер,Тема,ВыдСообщения,ТекстП,ВыбТипПисьма-1); // // конеццикла; // конецесли; //КонецПроцедуры КонецПроцедуры |
|||
4
spiller26
13.10.17
✎
12:32
|
(0) Начнем с того, что за список.
Массив СписокЗначений Соответствие ?????? |
|||
5
spiller26
13.10.17
✎
12:34
|
(3) Ииии берешь книжечку и прям с основ программирования в 1с 8.3
|
|||
6
spiller26
13.10.17
✎
12:35
|
Вы точно программист?
|
|||
7
prilforreal
13.10.17
✎
12:38
|
(4) Точно, список получателей и вложений в таблицах значений
|
|||
8
Филиал-msk
13.10.17
✎
12:40
|
(4) Судя по Не удается прочитать файл. это поле ввода
|
|||
9
craxx
13.10.17
✎
12:41
|
(7) Обратитесь к специалисту
|
|||
10
0xFFFFFF
13.10.17
✎
12:41
|
Письмо.Получатели.Добавить(адрес)
|
|||
11
NSSerg
13.10.17
✎
12:42
|
(7) Вместо выбратьстроки()
где-то написано выбратьстроку(), а где-то выборка вообще не открывается. В восьмерке выборку делают через Для каждого строкаТаблицы из ТаблицыЗначений цикл КонецЦикла; |
|||
12
prilforreal
13.10.17
✎
12:42
|
||||
13
prilforreal
13.10.17
✎
12:43
|
(11) Спасибо, на выбратьстроку() метод и не находился
|
|||
14
VladZ
13.10.17
✎
12:45
|
(13) Нда.. Как все запущено.
Вызывай специалиста. |
|||
15
spiller26
13.10.17
✎
12:56
|
(13) WTF
читайте разбирайтесь, за вас никто код не напишет здесь. https://helpf.pro/faq83/view/468.html |
|||
16
prilforreal
13.10.17
✎
12:59
|
(15) Понимаю, обычно когда человек в теме подкованный объясняет информация дается легче и понятней.
выборка получилась такая: КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество(); Если КоличествоСтрок <> 0 тогда Для каждого строкаТаблицы из ВыбДилеры цикл ВыбФайл=""; КонецЦикла; КонецЕсли; Для каждого строкаТаблицы из ВыбФайлы цикл Если Выбфайл=0 тогда ВыбФайл=ВыбФайл+";"; Выбфайл=ВыбФайл+ВыбФайлы.Путь; КонецЕсли; КонецЦикла; |
|||
17
Филиал-msk
13.10.17
✎
13:03
|
Т-щ, программист, а как у вас в голове уживается одновременно ВыбФайл="" и Если Выбфайл=0 ?
|
|||
18
prilforreal
13.10.17
✎
13:05
|
(15) Сама процедура отправки уже есть, мне нужно лишь подготовить к ней письмо, а ее указываю в конце процедуры ОтправитьПисьма.
|
|||
19
craxx
13.10.17
✎
13:06
|
(16) Вы точно программист?
|
|||
20
craxx
13.10.17
✎
13:07
|
(17) ну так-то все норм. если Выбфайл<>0 Тогда ВыбФайл="". чего такого? правда практического смысла там ровно 0
|
|||
21
spiller26
13.10.17
✎
13:09
|
(16) 8-ка это вам не 7-ка, разница между ними расстоянием в пропасть.
Написание кода просто убивает. Это по ходу смесь кода обычного приложения и ещё травы какой то. Вы еще не столкнулись с выполнением &НаСервере и &НаКлиенте, особенно если будете вложения отправлять. |
|||
22
Филиал-msk
13.10.17
✎
13:24
|
(20) Чойта? Там наоборот, сначала именно ВыбФайл="", причем в цикле, а потом сравнение его же с нулем...
Ну а дальше вообще сложение числа со строкой: Если Выбфайл=0 тогда ВыбФайл=ВыбФайл+";"; |
|||
23
Филиал-msk
13.10.17
✎
13:24
|
(0) Геодезист?
|
|||
24
prilforreal
13.10.17
✎
13:37
|
(21) У нас файловая 1С, в серверной я девственник)
|
|||
25
prilforreal
13.10.17
✎
13:38
|
Выборка работает, письма отправляются, правда пока из состава письма передается только тема.
|
|||
26
spiller26
13.10.17
✎
13:44
|
(25) Что я скажу - УДАЧИ. Поиск в инете наше всё.
|
|||
27
prilforreal
13.10.17
✎
13:56
|
(26) Спасибо) Как закончу поделюсь впечатлениями)
|
|||
28
Красно-желтый
13.10.17
✎
14:03
|
(3) в рот компот...
|
|||
29
prilforreal
13.10.17
✎
15:39
|
(22) Нейролингвист
|
|||
30
Филиал-msk
13.10.17
✎
15:43
|
(29) Сиськи
|
|||
31
Chameleon1980
13.10.17
✎
19:10
|
(24) да по-ходу не только так дело обстоит.
|
|||
32
breezee
13.10.17
✎
21:46
|
(0) А как должен работать ваш алгоритм? У вас довольно странный код в (3), не понятно что вы хотите, может, если вы распишете по пунктам будет легче помочь
|
|||
33
prilforreal
19.10.17
✎
15:23
|
(26) Удача пришла и обработка готова, минус только один, письма с вложениями больше 4.5мб не отправляются, или отправляются но по каким то причинам не доходят до получателя, в остальном все работает так, как и задумывалось)
Процедура ОтправитьНажатие() КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество(); Если КоличествоСтрок <> 0 тогда Сообщить (КоличествоСтрок); Для каждого СтрокаТаблицы из ВыбДилеры цикл Текст=ТекстПисьма; ТемаОтправки=ТемаПисьма; ФайлыСтрокой=""; Для каждого СтрФайл из ВыбФайлы цикл ФайлыСтрокой=ФайлыСтрокой+СтрФайл.Путь+";"; КонецЦикла; глОтправитьОтчетПоПочте(ФайлыСтрокой,СтрокаТаблицы.Дилер,ТемаОтправки,0,Текст,2); КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
34
prilforreal
19.10.17
✎
15:24
|
(32) Спасибо, уже разобрался сам)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |