Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
1C 8.x

Отослать сообщение на почту

24.12.2015, 12:00. Показов 2494. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как можно решить эту проблему
Я так понимаю в папки есть архив а в структуру он не добавлен из за этого выдает ошибку, как можно сделать чтобы отправились только те архивы которые прописаны в структуре

{Форма.Форма.Форма(702)}: Ошибка при вызове метода контекста (Добавить)
Сообщение.Вложения.Добавить(Файл + ?(Прав(Файл,1)="","","") + ФайлВложения);
по причине:
Ошибка доступа к файлу 'C:\Users\goga\Desktop\Реестры\Новая папка'


1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    
    //Пропишем параметры соединения
    //ip адрес или имя SMTP сервера
    Профиль.АдресСервераSMTP = "192.168.2.50"; 
    
    //Порт SMTP сервера
    Профиль.ПортSMTP = 587;
    
    //Имя пользователя почтового ящика
    Профиль.Пользователь = "1234@mail.ru";
    
    //Пароль доступа к почтовому ящику
    Профиль.Пароль = "buh100_TA";
    
    //При необходимости добавляем аутентификацию
    Профиль.АутентификацияSMTP     = СпособSMTPАутентификации.Login;
    Профиль.ПарольSMTP           = "buh100_TA";
    Профиль.ПользовательSMTP     = "1234@mail.ru"; 
    
    // Создаем объект для работы с почтой
    Почта = Новый ИнтернетПочта;
    
    //Выполняем подключение, согласно указанный параметров
    Попытка
        Почта.Подключиться(Профиль);
    Исключение
        //При подключении возникла ошибка, сообщим
        Сообщить("Ошибка при подключении к серверу" + ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    //Создаем новое письмо (сообщение)
    
    СоответствиеФайловАрхивам = Новый Соответствие;
    СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "78978@mail.ru"));
    СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "5675@mail.ru"));
    СоответствиеФайловАрхивам.Вставить("lah.zip", Новый Структура("Архив, Отправитель","sberbank_lah.zip", "234@mail.ru"));
 
    МассивФайлов = НайтиФайлы(Файл, "*.zip");
    
    Для каждого ТекущийФайл Из МассивФайлов Цикл
        Сообщение = Новый ИнтернетПочтовоеСообщение;
        ПолноеИмяФайл = СтрЗаменить(ТекущийФайл.Имя, "_",Символы.ПС);
        ПрефиксФайла = СтрПолучитьСтроку(ПолноеИмяФайл, 2);
        ПрефиксФайла = НРег(ПрефиксФайла);
        
        СтруктураАрхива = СоответствиеФайловАрхивам[ПрефиксФайла];
        Если СтруктураАрхива <> Неопределено Тогда
            
            ФайлВложения=СтруктураАрхива.Архив;
            АдресПолучателя=СтруктураАрхива.Отправитель;
            Сообщение.Получатели.Добавить(АдресПолучателя);
            
        КонецЕсли; 
 
        Сообщение.Вложения.Добавить(Файл + ?(Прав(Файл,1)="","","") + ФайлВложения);
        Сообщение.Тема = "Реестры" + " " + ТекущийФайл.Имя;
        Сообщение.Отправитель = "1234@mail.ru";
        Почта.Послать(Сообщение);
        Сообщить(ТекущийФайл.Имя + " " + "успешно отправлено на адрес:" + " " + СтруктураАрхива.Отправитель);
    
    КонецЦикла;
    
    Почта.Отключиться();
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2015, 12:00
Ответы с готовыми решениями:

Отослать сообщении о свободном месте на почту по расписанию
помогите пожалуйста слабому полу написать скрипт,очень прошу:help: Спланировать задание, производящее рассылку пользователю student...

Обработка формы заказа: отослать анкету на почту
Добрый день столкнулся с такой проблемой. Пытался сам что то сделать нужно на сайте сделать чтобы после заполнения анкеты она отправлялась...

Как с помощью CDONTS отослать с сайта почту в формате HTML?
Как с помощю CDONTS отослать с саита почту в формате HTML. Пробовал ставить Mail.BodyFormat=CdoBodyFormatHTML и в Mail.Body вставлять HTML...

16
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
24.12.2015, 13:51
Цитата Сообщение от Ermak27 Посмотреть сообщение
Ошибка доступа к файлу 'C:\Users\goga\Desktop\Реестры\Новая папка'
Может просто доступа нет к файлам?

А этот код:

1C
1
2
3
4
5
Сообщение.Вложения.Добавить(Файл + ?(Прав(Файл,1)="","","") + ФайлВложения);
        Сообщение.Тема = "Реестры" + " " + ТекущийФайл.Имя;
        Сообщение.Отправитель = "1234@mail.ru";
        Почта.Послать(Сообщение);
        Сообщить(ТекущийФайл.Имя + " " + "успешно отправлено на адрес:" + " " + СтруктураАрхива.Отправитель);
может надо ставить в условие?
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 15:09  [ТС]
Напосарам, в какое например?
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
24.12.2015, 15:32
Ermak27, ну условие у тебя только одно. На сколько я понял, письмо должно отправляться тогда когда "СтруктураАрхива" не равно Неопределено и тогда нам будет известно значение "ФайлВложения"
Цитата Сообщение от Ermak27 Посмотреть сообщение
ФайлВложения=СтруктураАрхива.Архив;
а у тебя в коде получается что если "СтруктураАрхива = Неопределено", то без определения сразу пытаемся вложить файл "ФайлВложения", а "ФайлВложения" неопределен. Если закомментировать строку:

1C
1
Сообщение.Вложения.Добавить(Файл + ?(Прав(Файл,1)="","","") + ФайлВложения);
то будет ругаться, что не указан получатель при отправке.
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 15:49  [ТС]
Напосарам, если за комментировать тогда выдаст ошибку

{Форма.Форма.Форма(706)}: Ошибка при вызове метода контекста (Послать)
Почта.Послать(Сообщение);
по причине:
Не указан ни один получате
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
24.12.2015, 15:51
Цитата Сообщение от Напосарам Посмотреть сообщение
то будет ругаться, что не указан получатель при отправке.
Цитата Сообщение от Ermak27 Посмотреть сообщение
Не указан ни один получате
сбылось предсказание
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
24.12.2015, 15:56
Надо так:


1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
Н = 0;
Для каждого ТекущийФайл Из МассивФайлов Цикл
        Н = Н + 1;
        Сообщение = Новый ИнтернетПочтовоеСообщение;
        ПолноеИмяФайл = СтрЗаменить(ТекущийФайл.Имя, "_",Символы.ПС);
        ПрефиксФайла = СтрПолучитьСтроку(ПолноеИмяФайл, 2);
        ПрефиксФайла = НРег(ПрефиксФайла);
        
        СтруктураАрхива = СоответствиеФайловАрхивам[ПрефиксФайла];
        Если СтруктураАрхива <> Неопределено Тогда
            
            ФайлВложения=СтруктураАрхива.Архив;
            АдресПолучателя=СтруктураАрхива.Отправитель;
            Сообщение.Получатели.Добавить(АдресПолучателя);
            Сообщение.Вложения.Добавить(Файл + ?(Прав(Файл,1)="","","") + ФайлВложения);
            Сообщение.Тема = "Реестры" + " " + ТекущийФайл.Имя;
            Сообщение.Отправитель = "1234@mail.ru";
            Почта.Послать(Сообщение);
            Сообщить(ТекущийФайл.Имя + " " + "успешно отправлено на адрес:" + " " + СтруктураАрхива.Отправитель);
        Иначе
            Сообщить("Ошибка, при отправки письма номер " + Н);
        КонецЕсли; 
 
    
    
    КонецЦикла;
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 16:02  [ТС]
Dethmontt, чем смеяться лучше бы подсказали
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
24.12.2015, 16:03
Ermak27, ну так я что делаю? я же написал куда вставить надо.
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 16:07  [ТС]
Напосарам, Выдала ошибку

Ошибка, при отправки письма номер 1
Ошибка, при отправки письма номер 2
Ошибка, при отправки письма номер 3
sberbank_ptz.zip успешно отправлено на адрес: 5675@mail.ru
Ошибка, при отправки письма номер 5
Ошибка, при отправки письма номер 6

А должен был отправить еще на адрес 78978@mail.ru, так как архив один и тот же что и на этот адрес 5675@mail.ru, в структуре так прописано. Почему тогда не послал?
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
24.12.2015, 16:18
Ermak27, а что делают эти строки, чет я не понял?

1C
1
2
3
ПолноеИмяФайл = СтрЗаменить(ТекущийФайл.Имя, "_",Символы.ПС);
        ПрефиксФайла = СтрПолучитьСтроку(ПолноеИмяФайл, 2);
        ПрефиксФайла = НРег(ПрефиксФайла);
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
24.12.2015, 16:19
Цитата Сообщение от Ermak27 Посмотреть сообщение
СоответствиеФайловАрхивам = Новый Соответствие;
* * СоответствиеФайловАрхивам.Вставить("ptz. zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "78978@mail.ru"));
* * СоответствиеФайловАрхивам.Вставить("ptz. zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "5675@mail.ru"));
* * СоответствиеФайловАрхивам.Вставить("lah. zip", Новый Структура("Архив, Отправитель","sberbank_lah.zip", "234@mail.ru"));
Потому что вот это ЛАЖА!!!

Добавлено через 1 минуту
В "СоответствиеФайловАрхивам" будет всего две записи

1C
1
2
СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "5675@mail.ru"));
СоответствиеФайловАрхивам.Вставить("lah.zip", Новый Структура("Архив, Отправитель","sberbank_lah.zip", "234@mail.ru"));
Первая вставка:
1C
1
СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "78978@mail.ru"));
Перезатирается НИЖЕ
1C
1
СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "5675@mail.ru"));
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 16:23  [ТС]
Dethmontt, а как тогда сделать чтобы отправлял на два адреса?
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
24.12.2015, 16:28
Лучший ответ Сообщение было отмечено Ermak27 как решение

Решение

1C
1
СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", "78978@mail.ru"));
1C
1
2
3
4
Получатели = Новый Массив;
Получатели.Добавить("78978@mail.ru");
Получатели.Добавить("5675@mail.ru");
СоответствиеФайловАрхивам.Вставить("ptz.zip", Новый Структура("Архив, Отправитель","sberbank_ptz.zip", Получатели));
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Если СтруктураАрхива <> Неопределено Тогда
            
            ФайлВложения=СтруктураАрхива.Архив;
            АдресПолучателя=СтруктураАрхива.Отправитель;
            //Отправление нескольким получателям
            Для каждого Получатель из СтруктураАрхива.Отправитель Цикл
                Сообщение.Получатели.Добавить(Получатель);
            КонецЦикла;
            Сообщение.Вложения.Добавить(Файл + ?(Прав(Файл,1)="","","") + ФайлВложения);
            Сообщение.Тема = "Реестры" + " " + ТекущийФайл.Имя;
            Сообщение.Отправитель = "1234@mail.ru";
            Почта.Послать(Сообщение);
            Сообщить(ТекущийФайл.Имя + " " + "успешно отправлено на адрес:" + " " + СтруктураАрхива.Отправитель);
        Иначе
            Сообщить("Ошибка, при отправки письма номер " + Н);
        КонецЕсли;
Добавлено через 1 минуту
Ну и это нужно переделать

1C
1
СоответствиеФайловАрхивам.Вставить("lah.zip", Новый Структура("Архив, Отправитель","sberbank_lah.zip", "234@mail.ru"));
1C
1
2
3
Получатели2 = Новый Массив;
Получатели2.Добавить("234@mail.ru");
СоответствиеФайловАрхивам.Вставить("lah.zip", Новый Структура("Архив, Отправитель","sberbank_lah.zip", Получатели2));
Добавлено через 2 минуты

Не по теме:

Ermak27, когда ты уже научишься сам думать?

1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.12.2015, 16:32  [ТС]
Dethmontt, спасибо большое! Вот учусь
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
24.12.2015, 16:33
Ermak27,

и вот это

1C
1
2
3
4
 
        ПолноеИмяФайл = СтрЗаменить(ТекущийФайл.Имя, "_",Символы.ПС);
        ПрефиксФайла = СтрПолучитьСтроку(ПолноеИмяФайл, 2);
        ПрефиксФайла = НРег(ПрефиксФайла);
я бы заменил на это:

1C
1
ПрефиксФайла =  Сред(ТекущийФайл.Имя, СтрНайти(ТекущийФайл.Имя, "_") + 1)
ну это чисто мое мнение.
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
24.12.2015, 16:50
Цитата Сообщение от Напосарам Посмотреть сообщение
я бы заменил на это:

Не по теме:

Я бы заменил весь этот КОД и автора этого КОДа - тоже чисто мое мнение :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2015, 16:50
Помогаю со студенческими работами здесь

Отослать сообщение всем из бд
Всем доброго времени суток. Есть задание разослать пользователем из бд сообщение. В бд есть таблица с тремя столбцами 1-й id, 2-й Имя,...

Отослать сообщение через viber
Использую программу Tasker для автоматизации некоторых задач. Подскажите, как можно отправить сообщение определённому пользователю через...

IdSMTP, отослать сообщение без учетной записи
Добрый день. Нужно реализовать приложение, которое будет слать сообщение на почту мыла.ру. Чтобы воспользоваться компонентом...

Как можно работать с почтой в Worde (отослать, принять сообщение)?
Есть задачка - отослать по почте из Worda какой-либо текст (активный документ или нет - неважно). Как это сделать попроще, но чтобы...

Как отослать текстовое сообщение другому приложению. .SendMessage. WM_COPYDATA. Delphi
Всем привет. Есть такая программа, отправляющая текстовое сообщение другой программе через sendmessage. Программа отправитель: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru