Excel сохраняется из файловой, а из серверной нет и процесс не заканчивается

1. user647572 27.04.24 09:42 Сейчас в теме
Здравствуйте! Прошу помощи:
- ЗУП 2.5 перепиленный;
- Сервер 1С, файловая база, Excel - все на одном компе и на одном диске
1. создаю Excel и записываю его на диск из файловой - Excel-файл создается и записывается
2. делаю то же самое из серверного варианта:
2.1. программа крутится, не вылетает, не заканчивает действие. Если прервать выполнение - сеанс в консоле 1С и соединение остается активным (последняя активность - всегда текущее время), при попытке удалить в консоле 1С сеанс и соединение - удаляется, но при обновлении данных восстанавливается.
2.2. в коде создания Excel при открытии COM при добавлении Книги, при записи - везде через Попытку в Исключение добавил ВызватьИсключение() - не вылетает, не останавливается по ошибке, не зацикливается - все время что-то делает и процесс не заканчивается.

В чем может быть проблема?
По теме из базы знаний
Найденные решения
9. nomad_irk 76 27.04.24 10:56 Сейчас в теме
(8)если можно перетащить на клиент - перетащите
user1880116; +1 Ответить
7. nomad_irk 76 27.04.24 10:43 Сейчас в теме
(5)Попробуйте
Excel.DisplayAlerts = 0;

шырПуть должен быть доступен серверу 1С для записи.
8. user647572 27.04.24 10:55 Сейчас в теме
(7) (5) Сервер - это та же машина, тот же диск. Все разрешения есть. Сисадмин уверяет, что все разрешено.
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	...    
    Если Диалог.Выбрать() Тогда
        шырПуть = Диалог.ПолноеИмяФайла;

(5) за
Excel.DisplayAlerts = 0;
спасибо, попробую.
...
Я тут подумал: я на автомате засунул процесс создания и сохранения Excel-файла в серверную процедуру, но можно это сделать и на клиенте (только что попробовал - сработало на файловой). Может это поможет...
13. user647572 27.04.24 11:22 Сейчас в теме
(12) Спасибо за замечание - проверю
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 27.04.24 09:57 Сейчас в теме
(1)
В чем может быть проблема?

1. проблемы могут быть в файле, который вы открываете, изменяете и потом записываете
2. проблемы могут быть в сообщении, которое EXCEL выводит перед самой записью файла
3. user647572 27.04.24 10:13 Сейчас в теме
(2) 1. - Файл я не открываю - создаю
2. - что за сообщение ("...сообщении, которое EXCEL выводит перед самой записью файла..."), когда файловая версия записывает созданный файл, никаких сообщений не появляется ...
4. nomad_irk 76 27.04.24 10:18 Сейчас в теме
(3)Сообщения могут быть разные - зависит от настроек Excel.
В файловом варианте все выполняется на машине, где запущена 1С, в клиент-серверном варианте - EXCEL можно на сервере запустить.

Код покажите, может чего посоветую.
5. user647572 27.04.24 10:30 Сейчас в теме
(4)
&НаСервере
Процедура СохрФайлНаСервере()
	Попытка
		Excel = Новый COMОбъект("Excel.Application");
	Исключение
		Excel.Quit();	        
		
		ВызватьИсключение("COMОбъект(Excel) не создан. Возможно, Excel не установлен на компьютере!");
	КонецПопытки;	
	
	//Создание книги   
	Попытка
		Книга = Excel.WorkBooks.Add();
	Исключение
		Книга.Close();
		Excel.Quit();
		
		ВызватьИсключение("COMОбъект(Excel) создан, но книга НЕ ДОБАВЛЕНА!");
	КонецПопытки;
	
	Лист = Книга.WorkSheets(1);      
	
	Лист.Cells(1, 1).Value = "ФИО";
	
	стрНом = 2;
	Для каждого стрКон Из ДанныеДляКонсоли Цикл
		Лист.Cells(стрНом, 1).Value = стрКон.ФИО;
		
		стрНом = стрНом + 1;
	КонецЦикла;	
	
	//Сохранение книги
	Попытка
		Книга.SaveAs(шырПуть);  
		
		Книга.Close();
		Excel.Quit();	

		Сообщить("Файл успешно сохранен: " + шырПуть,СтатусСообщения.Информация);
	Исключение
		Книга.Close();
		Excel.Quit();	

		Сообщить("ОШИБКА сохранения файла!", СтатусСообщения.ОченьВажное);
		
		Ошибка = ОписаниеОшибки(); 
		ЗаписьЖурналаРегистрации("ОШИБКА сохранения файла!", УровеньЖурналаРегистрации.Ошибка,,,
		Ошибка);
	КонецПопытки;	
КонецПроцедуры
Показать
6. lefthander 27.04.24 10:42 Сейчас в теме
(5)а что такое - шырПуть? где и как он определяется?
7. nomad_irk 76 27.04.24 10:43 Сейчас в теме
(5)Попробуйте
Excel.DisplayAlerts = 0;

шырПуть должен быть доступен серверу 1С для записи.
8. user647572 27.04.24 10:55 Сейчас в теме
(7) (5) Сервер - это та же машина, тот же диск. Все разрешения есть. Сисадмин уверяет, что все разрешено.
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	...    
    Если Диалог.Выбрать() Тогда
        шырПуть = Диалог.ПолноеИмяФайла;

(5) за
Excel.DisplayAlerts = 0;
спасибо, попробую.
...
Я тут подумал: я на автомате засунул процесс создания и сохранения Excel-файла в серверную процедуру, но можно это сделать и на клиенте (только что попробовал - сработало на файловой). Может это поможет...
9. nomad_irk 76 27.04.24 10:56 Сейчас в теме
(8)если можно перетащить на клиент - перетащите
user1880116; +1 Ответить
12. user1880116 27.04.24 11:21 Сейчас в теме
(8)
Сервер - это та же машина, тот же диск
А пользователь процесса другой.
13. user647572 27.04.24 11:22 Сейчас в теме
(12) Спасибо за замечание - проверю
11. user1880116 27.04.24 11:20 Сейчас в теме
(3)
когда файловая версия записывает созданный файл, никаких сообщений не появляется
А вот когда серверная - появляется. Например, об отсутствии доступа, не найденном или недоступном пути и т.п.

Ну и все фичи с наличием каталога рабочего стола для пользователя процесса..
10. starjevschik 27.04.24 11:13 Сейчас в теме
Попытка
        Книга = Excel.WorkBooks.Add();
    Исключение
        Книга.Close();

если при создании книги ошибка, то при закрытии тоже будет ошибка.
Проблема не в этом, но так, для порядка.
14. user647572 02.05.24 08:21 Сейчас в теме
Всем привет и спасибо - все работает!

- перенес формирование Excel на клиента
- запретил в коде сообщения для Excel (
Excel.DisplayAlerts = 0;
)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот