Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Обход таблицы значений

Обход таблицы значений
Я
   prilforreal
 
13.10.17 - 12:28
Добрый день! 1С8.3 конфигурация самописная. Пишу обработку для рассылки почты контрагентам, осталось дело за малым, одна процедура отправить письма, но никак не могу дать ей ума, как мне организовать обход списка получателей и отправку им письма с прикрепленным вложением?
 
 
   VladZ
 
1 - 13.10.17 - 12:29
(0) И в чем проблема?
   МимохожийОднако
 
2 - 13.10.17 - 12:29
(0) Сделай запрос к списку получателей.
   prilforreal
 
3 - 13.10.17 - 12:32
Не хватает ума как заново написать все, так и переработать код из семерки, направленный на те же нужды...

Пока на этом остановился
Процедура ОтправитьНажатие()
    КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество();
    Если КоличествоСтрок <> 0 тогда
    //Если ВыбДилеры<>0 тогда  

        ВыбДилеры.Выбратьстроку();  
//        //Формируем ВыбФайл   

        ВыбФайл="";
        ВыбФайлы.Выбратьстроку();
        Пока ВыбФайлы.Получитьстроку()=1 Цикл
            Если Выбфайл=0 тогда
                ВыбФайл=ВыбФайл+";";
            конецесли;
            Выбфайл=ВыбФайл+ВыбФайлы.Путь;    
        конеццикла;
        пока Выбдилеры.Получитьстроку()=1 цикл  
            
        конеццикла;
    конецесли;
//    Процедура ОтправитьПисьма()                   

//    Если ВыбДилеры.Количествострок()<>0 тогда  
//        ВыбДилеры.Выбратьстроки();  

//        
//        //Формируем ВыбФайл   

//        ВыбФайл="";
//        ВыбФайлы.Выбратьстроки();

//        Пока ВыбФайлы.Получитьстроку()=1 Цикл
//            Если Пустоезначение(Выбфайл)=0 тогда

//                ВыбФайл=ВыбФайл+";";
//            конецесли;

//            Выбфайл=ВыбФайл+ВыбФайлы.Путь;    
//        конеццикла;

//        пока Выбдилеры.Получитьстроку()=1 цикл  
//            Тема=ТемаПисьма;

//            Тема=СтрЗаменить(Тема,"[Дилер]",Выбдилеры.Дилер);
//            Тема=СтрЗаменить(Тема,"[Фамилия]",Выбдилеры.Дилер.Фамилия); 

//            Тема=СтрЗаменить(Тема,"[Имя]",Выбдилеры.Дилер.Имя);
//            Тема=СтрЗаменить(Тема,"[Отчество]",Выбдилеры.Дилер.Отчество); 

//            ТекстП=ТекстПисьма;
//            ТекстП=СтрЗаменить(ТекстП,"[Дилер]",Выбдилеры.Дилер);

//            ТекстП=СтрЗаменить(ТекстП,"[Фамилия]",Выбдилеры.Дилер.Фамилия); 
//            ТекстП=СтрЗаменить(ТекстП,"[Имя]",Выбдилеры.Дилер.Имя);

//            ТекстП=СтрЗаменить(ТекстП,"[Отчество]",Выбдилеры.Дилер.Отчество);
//            Сообщить("Отправка письма дилеру - "+ВыбДилеры.Дилер);

//            глОтправитьОтчетПоПочте(ВыбФайл,ВыбДилеры.Дилер,Тема,ВыдСообщения,ТекстП,ВыбТипПисьма-1); 
//            

//        конеццикла;
//    конецесли;

//КонецПроцедуры
КонецПроцедуры
   spiller26
 
4 - 13.10.17 - 12:32
(0) Начнем с того, что за список.
Массив
СписокЗначений
Соответствие
??????
   spiller26
 
5 - 13.10.17 - 12:34
(3) Ииии берешь книжечку и прям с основ программирования в 1с 8.3
   spiller26
 
6 - 13.10.17 - 12:35
Вы точно программист?
   prilforreal
 
7 - 13.10.17 - 12:38
(4) Точно, список получателей и вложений в таблицах значений
   Филиал-msk
 
8 - 13.10.17 - 12:40
(4) Судя по Не удается прочитать файл. это поле ввода
   craxx
 
9 - 13.10.17 - 12:41
(7) Обратитесь к специалисту
   0xFFFFFF
 
10 - 13.10.17 - 12:41
Письмо.Получатели.Добавить(адрес)
 
 Рекламное место пустует
   NSSerg
 
11 - 13.10.17 - 12:42
(7) Вместо выбратьстроки()
где-то написано выбратьстроку(), а где-то выборка вообще не открывается.
В восьмерке выборку делают через
Для каждого строкаТаблицы из ТаблицыЗначений цикл
КонецЦикла;
   prilforreal
 
12 - 13.10.17 - 12:42
   prilforreal
 
13 - 13.10.17 - 12:43
(11) Спасибо, на выбратьстроку() метод и не находился
   VladZ
 
14 - 13.10.17 - 12:45
(13) Нда.. Как все запущено.

Вызывай специалиста.
   spiller26
 
15 - 13.10.17 - 12:56
(13) WTF
читайте разбирайтесь, за вас никто код не напишет здесь.
https://helpf.pro/faq83/view/468.html
   prilforreal
 
16 - 13.10.17 - 12:59
(15) Понимаю, обычно когда человек в теме подкованный объясняет информация дается легче и понятней.

выборка получилась такая:

КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество();
    Если КоличествоСтрок <> 0 тогда
        Для каждого строкаТаблицы из ВыбДилеры цикл
        ВыбФайл="";
        КонецЦикла;
    КонецЕсли;
        Для каждого строкаТаблицы из ВыбФайлы цикл
    Если Выбфайл=0 тогда
             ВыбФайл=ВыбФайл+";";
             Выбфайл=ВыбФайл+ВыбФайлы.Путь;
    КонецЕсли;
    КонецЦикла;
   Филиал-msk
 
17 - 13.10.17 - 13:03
Т-щ, программист, а как у вас в голове уживается одновременно ВыбФайл="" и Если Выбфайл=0 ?
   prilforreal
 
18 - 13.10.17 - 13:05
(15) Сама процедура отправки уже есть, мне нужно лишь подготовить к ней письмо, а ее указываю в конце процедуры ОтправитьПисьма.
   craxx
 
19 - 13.10.17 - 13:06
(16) Вы точно программист?
   craxx
 
20 - 13.10.17 - 13:07
(17) ну так-то все норм. если Выбфайл<>0 Тогда ВыбФайл="". чего такого? правда практического смысла там ровно 0
   spiller26
 
21 - 13.10.17 - 13:09
(16) 8-ка это вам не 7-ка, разница между ними расстоянием  в пропасть.

Написание кода просто убивает.
Это по ходу смесь кода обычного приложения и ещё травы какой то.

Вы еще не столкнулись с выполнением &НаСервере и &НаКлиенте, особенно если будете вложения отправлять.
   Филиал-msk
 
22 - 13.10.17 - 13:24
(20) Чойта? Там наоборот, сначала именно ВыбФайл="", причем в цикле, а потом сравнение его же с нулем...
Ну а дальше вообще сложение числа со строкой:
Если Выбфайл=0 тогда
             ВыбФайл=ВыбФайл+";";
   Филиал-msk
 
23 - 13.10.17 - 13:24
(0) Геодезист?
   prilforreal
 
24 - 13.10.17 - 13:37
(21) У нас файловая 1С, в серверной я девственник)
   prilforreal
 
25 - 13.10.17 - 13:38
Выборка работает, письма отправляются, правда пока из состава письма передается только тема.
   spiller26
 
26 - 13.10.17 - 13:44
(25) Что я скажу - УДАЧИ. Поиск в инете наше всё.
   prilforreal
 
27 - 13.10.17 - 13:56
(26) Спасибо) Как закончу поделюсь впечатлениями)
   Красно-желтый
 
28 - 13.10.17 - 14:03
(3) в рот компот...
   prilforreal
 
29 - 13.10.17 - 15:39
(22) Нейролингвист
   Филиал-msk
 
30 - 13.10.17 - 15:43
(29) Сиськи
   Chameleon1980
 
31 - 13.10.17 - 19:10
(24) да по-ходу не только так дело обстоит.
   breezee
 
32 - 13.10.17 - 21:46
(0) А как должен работать ваш алгоритм? У вас довольно странный код в (3), не понятно что вы хотите, может, если вы распишете по пунктам будет легче помочь
   prilforreal
 
33 - 19.10.17 - 15:23
(26) Удача пришла и обработка готова, минус только один, письма с вложениями больше 4.5мб не отправляются, или отправляются но по каким то причинам не доходят до получателя, в остальном все работает так, как и задумывалось)

Процедура ОтправитьНажатие()
    КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество();
    Если КоличествоСтрок <> 0 тогда
        Сообщить (КоличествоСтрок);
        Для каждого СтрокаТаблицы из ВыбДилеры цикл
            Текст=ТекстПисьма;
            ТемаОтправки=ТемаПисьма;
            ФайлыСтрокой="";
            Для каждого СтрФайл из ВыбФайлы цикл
                ФайлыСтрокой=ФайлыСтрокой+СтрФайл.Путь+";";
            КонецЦикла;    
            глОтправитьОтчетПоПочте(ФайлыСтрокой,СтрокаТаблицы.Дилер,ТемаОтправки,0,Текст,2);
        КонецЦикла;
    КонецЕсли;
    КонецПроцедуры
 
 
   prilforreal
 
34 - 19.10.17 - 15:24
(32) Спасибо, уже разобрался сам)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует