Имя: Пароль:
1C
1С v8
ошибка совместного доступа к файлу
0 little_s
 
04.04.12
13:08
в процедуре формируется файл xls.
далее из это процедуры вызываю другую процедуру, которая отправляет письмо на почту с вложением = сформированному файлу.

и возникает ошибка совместного доступа к файлу.
адресатов несколько  ия всем поочередно отправляю
1 Maxus43
 
04.04.12
13:09
код покажи.
один раз надо открыть, а не столько сколько раз отправляеш
2 little_s
 
04.04.12
13:19
Для каждого Получатель из АдресаПолучателей Цикл
       Письмо.Получатели.Очистить();
       Письмо.Получатели.Добавить(СокрЛП(Получатель.АдресПочты));  // .АдресОтправителя
       Попытка
           Письмо.Вложения.Очистить();
           Письмо.Вложения.Добавить(ФайлВложения,РасширениеВложения);        
       Исключение            
       КонецПопытки;
       Почта.Подключиться(ИПП);
       Почта.Послать(Письмо);
       Почта.Отключиться();
       Письмо.Вложения.Очистить();
       //Исключение
       //    Письмо.Вложения.Очистить();
       //КонецПопытки;
   КонецЦикла;
3 little_s
 
04.04.12
13:21
или тут надо перед циклом один раз его прикрепить и всё?
но проблема в том ваще ни на один адрес не приходит.
4 Maxus43
 
04.04.12
13:22
попробуй так

Вложение = Новый ДвоичныеДанные(ПутьКФайлуВложения);

Сообщение.Вложения.Добавить(Вложение,"attach.txt");
5 Maxus43
 
04.04.12
13:23
(4) ну и Вложение = Новый ДвоичныеДанные(ПутьКФайлуВложения); - 1 раз перед циклом
6 Maxus43
 
04.04.12
13:27
>>в процедуре формируется файл xls
ну и проследи чтоб после создания закрывался Эксель, перед вызовом отправки почты. Не сохранялся а именно закрывался, смотря как создаёш
7 Nikitos
 
04.04.12
13:27
Не-не-не. Имхо, исходя из (0), файл после создания еще не закрыт, а его уже пытаются отправить
8 Nikitos
 
04.04.12
13:28
(6) чуть-чуть не успел :)
9 Maxus43
 
04.04.12
13:30
(8) бывает) но (4) - всё равно, так будет по феншую
10 Nikitos
 
04.04.12
13:31
(9) на другом конце провода у людей это вызовет недоумение, как минимум
11 Maxus43
 
04.04.12
13:37
(10) это из толстой книги Простые примеры разработки)
12 little_s
 
04.04.12
15:04
>>ну и проследи чтоб после создания закрывался Эксель, перед вызовом отправки почты. Не сохранялся а именно закрывался, смотря как создаёш    

файл.Quit();

этого не достаточно?
13 Maxus43
 
04.04.12
15:06
(12) ну я ж не видел этого кода.
на всякий ещё можно файл = неопределено; потом.
а с (4) не работает?
14 little_s
 
04.04.12
15:15
узнаю только завтра работает ли с (4).. т.к. в тестовой базе всё работает.. проблема именно с рабочей базой
15 little_s
 
04.04.12
15:20
глупый вопрос наверноt , но всё-таки :))
>>Сообщение.Вложения.Добавить(Вложение,"attach.txt");

"attach.txt" -  если у меня екселевский файл, тоже так писать?
у меня сейчас:

       Письмо.Вложения.Очистить();
       Письмо.Вложения.Добавить(ФайлВложения,РасширениеВложения);        

где РасширениеВложения = "xlsx"
16 little_s
 
04.04.12
15:26
(+14) хотя из тестовой я файл не формирую.. поэтому видимо и работает..
завтра только в любом случае буду знать.
17 Maxus43
 
04.04.12
15:35
да напиши обработку да 1 письмо себе пошли на почту. зачем ждать у моря погоды?
18 Maxus43
 
04.04.12
15:36
з.ы. регл заданием это делается? надо проверять ещё на наличие прав на это всё у юзера под которым 1с работает
19 little_s
 
04.04.12
15:41
(18)да, регламентное задание.
права есть.


письма на мой ящик из моей базы отправляются.
20 elisabet
 
04.04.12
15:48
(0) А зачем отправлять поочередно, когда можно отправить сразу списку получателей 1 раз?
21 Nikitos
 
04.04.12
16:40
(12) теоретически (ну почти из области фантастики) отправка начинается раньше того момента как закроется excel.
Я вот CDO периодически использую для отправки и пока не нарывался на ошибки с этим методом
22 little_s
 
05.04.12
13:31
(20) т.к. мне надо чтобы получатели не видели кому ещё отправляется это письмо
23 little_s
 
05.04.12
13:33
(21) у меня формируется файл Эксель.. затем он архивируется .
и отправляется Екселевский файл по почте.  Важно отправлять именно Ексель.
так что теоретически он может быть ещё занят архивированием наверное.
24 little_s
 
05.04.12
13:36
все вчерашние доработки не помогли :(
файл не отправляется. сейчас код выглядит так:


   Попытка
       Вложение  = Новый ДвоичныеДанные(ФайлВложения);
       Письмо.Вложения.Очистить();
       Письмо.Вложения.Добавить(ФайлВложения);        
   Исключение            
   КонецПопытки;
   Для каждого Получатель из АдресаПолучателей Цикл
       Письмо.Получатели.Очистить();
       Письмо.Получатели.Добавить(СокрЛП(Получатель.АдресПочты));  
       Почта.Подключиться(ИПП);
       Почта.Послать(Письмо);
       Почта.Отключиться();
   КонецЦикла;
   Письмо.Вложения.Очистить();
25 Strobe
 
06.04.12
12:37
Была похожая проблема: формировалась презентация, сохранялась в базу. После того как она уже в базе - она не нужна в локальном каталоге, удаляю...и вот ошибка. Помогло закрывать презентацию после сохранения. Тоесть: SaveAs() -> Close() -> Quit(). Изначально среднего звена не было(Close()). Попробуй в экселе закрыть Рабочую книгу или что-там в моделе...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.