|   |   | 
| 
 | Обход таблицы значений | ☑ | ||
|---|---|---|---|---|
| 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) Спасибо, уже разобрался сам)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |