1С Клиент-Сервер ошибка доступа

1. Гость 30.11.16 10:49
Добрый день форумчане!
Не кто не сталкивался с проблемой доступа к Excel (2007) из 1с УФ (клиент-серверный) ?
Стоит ЗУП 3.0 Win 2012 (64)
Есть обработка которая грузит данные из Excel. Так вот при попытки выполнения кода Excel.WorkBooks.Open(ИмяФайла); вылетает ошибка

Ошибка. Возможно неверно указан номер листа книги Excel.{ВнешняяОбработка.ЗагрузкаИзExcel.Форма.Форма.Форма(166)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу '\\shara\Volume_1\azat\oit-zapis\doc-otdela\зп.xlsx'. Это может быть вызвано одной из следующих причин.

• Имени файла или пути не существует.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.

Папочки C:\Windows\SysWOW64\config\systemprofile\Desktop и C:\Windows\System32\config\systemprofile\Desktop существуют, права на них полные всем.
Если указать локальный путь то все проходит норм. но этот вариант не подходит.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. vovan_victory 65 02.12.16 08:48 Сейчас в теме
(1)а если попробовать так:
&НаКлиенте
Процедура ПолучитьФайлИзСети()
    ФайлИсточник = "\\shara\Volume_1\azat\oit-zapis\doc-otdela\зп.xlsx";
    ИмяФайла= ПолучитьИмяВременногоФайла("xlsx");
    КопироватьФайл(ФайлИсточник, ИмяФайла);
    Прочитатьxls(ИмяФайла);
КонецПроцедуры

&НаКлиенте
Процедура Прочитатьxls(ИмяФайла)
.............................
Попытка
   Excel.WorkBooks.Open(ИмяФайла);
Исключение
УдалитьФайл(ИмяФайла);
КонецПопытки;
КонецПроцедуры
Показать


Так же для обработки можно передать на сервер, но, если на сервере не установлен офис, то работать не будет
Или еще так:
&НаКлиенте
Процедура ПолучитьФайлИзСети()
	ФайлИсточник =  "\\shara\Volume_1\azat\oit-zapis\doc-otdela\зп.xlsx";
    ДвоичныеДанные = Новый ДвоичныеДанные(ФайлИсточник);

	АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ПолучитьАдресНаСервере());

	
    Прочитатьxls(АдресХранилища);
КонецПроцедуры

&НаСервере
Процедура Прочитатьxls(АдресХранилища)
ДвоичныйФайл = ПолучитьИзВременногоХранилища(АдресХранилища);	

ИмяФайла= ПолучитьИмяВременногоФайла("xlsx");
ДвоичныйФайл.Записать(ИмяФайла);

.............................
Попытка
   Excel.WorkBooks.Open(ИмяФайла);
Исключение
УдалитьФайл(ИмяФайла);
КонецПопытки;
КонецПроцедуры

&НаСервере
Функция ПолучитьАдресНаСервере()

Возврат Новый УникальныйИдентификатор()); 

КонецФункции

Показать
8. Черный Плащ 174 02.12.16 15:43 Сейчас в теме
(5) Да не нашел другого и быстрого решения как
КопироватьФайл(ФайлИсточник, ИмяФайла);

9. vovan_victory 65 02.12.16 16:05 Сейчас в теме +1 $m
(8)вариант сработал или нет? Второй вариант с временным хранилищем пробовали?
10. Черный Плащ 174 05.12.16 08:08 Сейчас в теме
(9) КопироватьФайл(ФайлИсточник, ИмяФайла); делаю копию файла на сервер читаю ее там после этого уничтожаю.
12. vovan_victory 65 05.12.16 09:03 Сейчас в теме
(10) вариант 2 тоже должен сработать.
2. Vovanches 30.11.16 11:33 Сейчас в теме
Если чтение выполняется на стороне сервера, то доступность сетевого каталога нужно проверять с сервера (с клиента он может быть доступен, а с сервера нет). Также учитывать юзера от имени которого работает 1С на сервере.

Создай отдельную папку, расшарь её, дай всем права на эту шару, положи туда копию файла и попробуй открыть обработкой.
1. Это исключит проблему с правами.
2. Это исключит вероятность, что кто-то открыл твой файл и работает с ним.

А ещё, как ни банально, перезагрузись) Может файл уже открывался и не был корректно закрыт.
3. Черный Плащ 174 30.11.16 13:43 Сейчас в теме +1 $m
(2) Испробовал все методы... перечел ДАХ статей не помогло.решил задачу методом копировать файл на сервер.
4. jobtorn 01.12.16 10:23 Сейчас в теме
Так все же, из под какого пользователя запущена служба сервера 1с? Может там LocalSystem и никакого доступа в сеть?
6. ImHunter 333 02.12.16 08:53 Сейчас в теме
Если файл выбирается на клиенте, а читается на сервере. То... Нужно надежно передать его (файл) на сервер. Я обычно его во врем хранилище помещаю и на сервер передаю адрес.
А можно и прямо двоичными данными передать (вроде бы).
7. vovan_victory 65 02.12.16 09:05 Сейчас в теме
А можно и прямо двоичными данными передать (вроде бы).

опередил... тоже хотел предложить этот вариант
11. ImHunter 333 05.12.16 08:53 Сейчас в теме
На клиенте получается создать двоичные данные из ФайлИсточник?
Оставьте свое сообщение

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