1с табличный документ записать xls ошибка доступа к файлу

Таблица.Записать- ошибка доступа к файлу

Я
   arkada

31.10.16 — 05:16

Здравствуйте. Подскажите, пожалуйста.

Пытаюсь таблицу сохранить в excel с помощью

ТабДок.Записать(«c:1.xls»,1)

, а выдется по причине:

Ошибка доступа к файлу ‘c:1.xls’

   DDwe

1 — 31.10.16 — 05:48

(0) А, что подсказать-то?

   arkada

2 — 31.10.16 — 05:59

поему такая ошибка? По идее должен файл сам создаться

   arkada

3 — 31.10.16 — 06:00

Почему таблица не записывается в файл

   DDwe

4 — 31.10.16 — 06:00

(2) По какой идее? Ты уверен, что у тебя есть доступ на запись в корень диска «С:»?

   arkada

5 — 31.10.16 — 06:10

Потому что машина локальная, сеанс администратора

   shadow_sw

6 — 31.10.16 — 06:12

создай файл на С не средствами 1с

   DDwe

7 — 31.10.16 — 06:14

(5) Ерунда, если права есть, всё запишет.

   arkada

8 — 31.10.16 — 06:15

так вот, ручками и сделал и все равно ошибка

   DDwe

9 — 31.10.16 — 06:15

(8) Какими ручками?

   arkada

10 — 31.10.16 — 06:16

создать файл, лист excel

   DDwe

11 — 31.10.16 — 06:16

Почему из людей всё нужно клещами вытягивать… точно это мы к нему пришли и вопросам его достаем.

   DDwe

12 — 31.10.16 — 06:16

(10) Значит прав нет или места на диске. 1С не причем.

   arkada

13 — 31.10.16 — 06:20

(12) Девушка, если файл сам могу создать руками, логично, что и место есть и права есть

   Sammo

14 — 31.10.16 — 06:27

1. Запись с клиента или с сервера. Если сервера — проверить права на пользователя, под которым запущенна служба 1с.

   Sammo

15 — 31.10.16 — 06:29

2. Под «таблицей» понимается табличный документ?

3. Возможно сам файл заблокирован (например, открыт в чем-то, что блокирует запись)

   Sammo

16 — 31.10.16 — 06:32

Ну и так, к слову, я не помню использование числа во втором параметре функции Записать. Возможно так можно — но мне как-то ближе использование ТипФайлаТабличногоДокумента.

   DDwe

17 — 31.10.16 — 06:42

(13) Молодой человек, вы уж или внятно пишите, что у вас

В начале:

(8) так вот, ручками и сделал и все равно ошибка

(10) создать файл, лист excel

Затем:

(13) (12) Девушка, если файл сам могу создать руками, логично, что и место есть и права есть

Вы определитесь  вы можете руками файл создать или нет. Или вы просто не в состоянии внятно формулировать свои мысли.

   DDwe

18 — 31.10.16 — 06:44

Понаберут на мисту по объявлению.

   DDwe

20 — 31.10.16 — 06:51

(16)

Записать(<?>,);

Синтаксис:

Записать(<ИмяФайла>,<ТипФайла>)

Назначение:

Записать таблицу в файл.

Параметры:

<ИмяФайла> — имя файла.

<ТипФайла> — необязательный параметр. Числовое или строковое выражение, определяющее тип файла:

· отсутствует, 0 или »MXL» — формат 1C;

· 1 или »XLS» — формат Ms Excel;

· 2 или »HTM» или »HTML» — формат HTML;

· 3 или »TXT» — формат TXT.

Замечание:

Метод может использоваться при работе с таблицей в режиме ввода данных.

   darius357

21 — 31.10.16 — 09:04

ну как всегда побакланили, и нифига толку

  

arkada

22 — 31.10.16 — 10:26

не, никто не бакланил. Очень большой толк и огромное спасибо SAMMO. Его совет с учеткой под которой запускается служба 1с и было прямо в цель. А то, что дама DDwe пофыркала тут, это так ;)

Дорабатывал обработку загрузки прихода из Excel. Обработка изначально была не моя, все хорошо работало, но внезапно клиент в облаке переехал с файловой базы на SQL, потому что файловая тормозила.

И тут 1С начала писать, что файл не обнаружен. Оказывается, код загрузки из Excel был написан только под толстого клиента. Пришлось дорабатывать стандартным образом:

//На клиенте
ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);//На сервере
ПолноеИмяФайла = ПолучитьИмяВременногоФайла(«XLS»);
ДД.Записать(ПолноеИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

Доработал и забыл. Как вдруг новая напасть — попросили доработать обработку, начинаю ее отлаживать, а она не считывает данные из XLSX файла.

Причем выдает ошибку доступа к временному файлу:

Я попробовал записывать во временный каталог, но это не принесло результата:

ТекКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ТекКаталог);
ПолноеИмяФайла = ТекКаталог + «» + Новый УникальныйИдентификатор() + ТипФайла; //ПолучитьИмяВременногоФайла(«XLS»);ДД.Записать(ПолноеИмяФайла);Ф = Новый Файл(ПолноеИмяФайла);
Сообщить(ПолноеИмяФайла » Существует: » + Ф.Существует());ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст); //, ТипФайлаТабличногоДокумента.ODS);

Причем 1С писала, что файл существует:

Тогда почему же она не может его считать? Задачу нужно было решить срочно, причем прикладную логику я уже сделал, а споткнулся на мелочи. Я уже было хотел перейти на локальный компьютер для разработки (тем более что на сервере из соображений быстродействия отключена отладка). Но тут мне пришла мысль впервые попробовать использовать не временные файлы, а потоки:

ПотокДанных = Новый ПотокВПамяти();
ЗаписьДД = Новый ЗаписьДанных(ПотокДанных);
ЗаписьДД.Записать(ДД);
ЗаписьДД.Закрыть();
ПотокДанных.Перейти(0, ПозицияВПотоке.Начало);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПотокДанных, СпособЧтенияЗначенийТабличногоДокумента.Текст, ТипФайлаТабличногоДокумента.ODS);
ПотокДанных.Закрыть();

Увы, при этом выдавалась все та же ошибка доступа. Кроме того, в документации я посмотрел, что из памяти можно считывать не все форматы, а только MXL и ODS. Бред, конечно, но такова 1С.

И тут до меня дошло попробовать поменять расширение на XLSX:

//на клиенте
ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
Ф = Новый Файл(ПолноеИмяФайла);
ТипФайла = Ф.Расширение);//на сервере
ТекКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ТекКаталог);
ПолноеИмяФайла = ТекКаталог + «» + Новый УникальныйИдентификатор() + ТипФайла;
ДД.Записать(ПолноеИмяФайла);ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

И всё заработало. У 1С, как обычно, беда с диагностикой ошибок. Она пишет совсем не ту ошибку, которая вызывает проблему. Доступ к файлу есть, просто формат файла 1С определяет по расширению, а не содержимому файла.

Время факт: 0,5 час. На поиски решения проблемы.

Таблица.Записать- ошибка доступа к файлу

Я

  

arkada

31.10.16 — 05:16

Здравствуйте. Подскажите, пожалуйста.

Пытаюсь таблицу сохранить в excel с помощью

ТабДок.Записать(«c:1.xls»,1)

, а выдется по причине:

Ошибка доступа к файлу ‘c:1.xls’

  

DDwe

1 — 31.10.16 — 05:48

(0) А, что подсказать-то?

  

arkada

2 — 31.10.16 — 05:59

поему такая ошибка? По идее должен файл сам создаться

  

arkada

3 — 31.10.16 — 06:00

Почему таблица не записывается в файл

  

DDwe

4 — 31.10.16 — 06:00

(2) По какой идее? Ты уверен, что у тебя есть доступ на запись в корень диска «С:»?

  

arkada

5 — 31.10.16 — 06:10

Потому что машина локальная, сеанс администратора

  

shadow_sw

6 — 31.10.16 — 06:12

создай файл на С не средствами 1с

  

DDwe

7 — 31.10.16 — 06:14

(5) Ерунда, если права есть, всё запишет.

  

arkada

8 — 31.10.16 — 06:15

так вот, ручками и сделал и все равно ошибка

  

DDwe

9 — 31.10.16 — 06:15

(8) Какими ручками?

  

arkada

10 — 31.10.16 — 06:16

создать файл, лист excel

  

DDwe

11 — 31.10.16 — 06:16

Почему из людей всё нужно клещами вытягивать… точно это мы к нему пришли и вопросам его достаем.

  

DDwe

12 — 31.10.16 — 06:16

(10) Значит прав нет или места на диске. 1С не причем.

  

arkada

13 — 31.10.16 — 06:20

(12) Девушка, если файл сам могу создать руками, логично, что и место есть и права есть

  

Sammo

14 — 31.10.16 — 06:27

1. Запись с клиента или с сервера. Если сервера — проверить права на пользователя, под которым запущенна служба 1с.

  

Sammo

15 — 31.10.16 — 06:29

2. Под «таблицей» понимается табличный документ?

3. Возможно сам файл заблокирован (например, открыт в чем-то, что блокирует запись)

  

Sammo

16 — 31.10.16 — 06:32

Ну и так, к слову, я не помню использование числа во втором параметре функции Записать. Возможно так можно — но мне как-то ближе использование ТипФайлаТабличногоДокумента.

  

DDwe

17 — 31.10.16 — 06:42

(13) Молодой человек, вы уж или внятно пишите, что у вас

В начале:

(8) так вот, ручками и сделал и все равно ошибка

(10) создать файл, лист excel

Затем:

(13) (12) Девушка, если файл сам могу создать руками, логично, что и место есть и права есть

Вы определитесь  вы можете руками файл создать или нет. Или вы просто не в состоянии внятно формулировать свои мысли.

  

DDwe

18 — 31.10.16 — 06:44

Понаберут на мисту по объявлению.

  

DDwe

20 — 31.10.16 — 06:51

(16)

Записать(<?>,);

Синтаксис:

Записать(<ИмяФайла>,<ТипФайла>)

Назначение:

Записать таблицу в файл.

Параметры:

<ИмяФайла> — имя файла.

<ТипФайла> — необязательный параметр. Числовое или строковое выражение, определяющее тип файла:

· отсутствует, 0 или ''MXL'' - формат 1C;
· 1 или ''XLS'' - формат Ms Excel;
· 2 или ''HTM'' или ''HTML'' - формат HTML;
· 3 или ''TXT'' - формат TXT.

Замечание:

Метод может использоваться при работе с таблицей в режиме ввода данных.

  

darius357

21 — 31.10.16 — 09:04

ну как всегда побакланили, и нифига толку

  

arkada

22 — 31.10.16 — 10:26

не, никто не бакланил. Очень большой толк и огромное спасибо SAMMO. Его совет с учеткой под которой запускается служба 1с и было прямо в цель. А то, что дама DDwe пофыркала тут, это так ;)

Автор leklerk85, 14 июн 2021, 20:01

0 Пользователей и 1 гость просматривают эту тему.

Добрый день! Подскажите пожалуйста, как можно решить проблему. В регл. задании формируется файл Excel и записывается, но при записи ошибка «Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно». В файле Excel 2 листа, в каждом из которых в среднем около 50-60 тысяч строк.


Решить проблему можно отказом от OLE и формированием и сохранением файла средствами 1С.


Вы имеете в виду сформировать через табличный документ и записать через ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX)? Сегодня попробовал, всё равно ошибка «Ошибка при вызове метода контекста (Записать): Ошибка доступа к файлу ‘мой_путьмой_ файл.xlsx’». Папка «мой_путь» на момент записи файла была создана.


Цитата: leklerk85 от 16 июн 2021, 08:08
Вы имеете в виду сформировать через табличный документ и записать через ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX)? Сегодня попробовал, всё равно ошибка «Ошибка при вызове метода контекста (Записать): Ошибка доступа к файлу ‘мой_путьмой_ файл.xlsx’». Папка «мой_путь» на момент записи файла была создана.

а на сервере доступна эта созданная папка?


На другом форуме подсказали — на папку, куда сохраняется Эксель, надо дать права пользователю, под которым выполняется регл. задание (USR1CV8). Скорее всего, из-за этого ошибка.


Цитата: leklerk85 от 16 июн 2021, 12:56
На другом форуме подсказали — на папку, куда сохраняется Эксель, надо дать права пользователю, под которым выполняется регл. задание (USR1CV8). Скорее всего, из-за этого ошибка.

Да, причина была именно в этом — всё заработало сегодня, когда дали права на папку!


  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Ошибка при сохранении файла Excel из регламентного задания

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

В этой статье мы расскажем об ошибке доступа к файлу 1с. Как решить возникшую проблему, что это за баг и еще немного об этом.

Ошибка доступа к файлу 1C 8.3

«1С: Предприятие» — система программ для автоматизации, улучшения и упрощения деятельности различных сфер компании, начиная от бухгалтерии и заканчивая учетом. 1С: возможности при правильной настройке безграничны . Для предпринимателя — нужно найти хороших программистов.

Нет ни одной программы в современном мире, как бы хороша она не была без ошибок и проблем. Такое случается и с нашим приложением. В ряде случаев виноват в этом криворукий программист. Многие проблемы вы не сможете решить без его участия, но некоторые, вам подсилу и самому.

Ошибка доступа к файлу 1C решение

Причины возникновения

Случается, что люди, которые используют данную прогу сталкиваются с проблемой при запуске программы.

Способы решения

По наименованию явившегося бага поймем что происходит с системой — нет прав для доступа к файлу. Такое случается если юзер создает копию базы и подключает ее. Также ошибка бывает в результате попытки открыть файл по сетевому доступу.

Первостепенное что мы делаем в таком случае — проверяем доступ к файлу. Правая кнопка мыши по файлу -> проверяем стоит ли галочка на «Общий доступ».

Ошибка доступа к файлу 1C решение

Ошибка доступа к файлу 1C решение

Взгляните на права пользователя под которым вы зашли в систему виндоус. У вас должны быть права и на чтение файлов и на запись.

Ошибка доступа к файлу 1C решение

Когда данные к которым нужно получить доступ (база) находится на удаленном (локальном) персональном компьютере — смотрим закладку «Безопасность». В безопасности вы должны убедиться что у пользователя нет запрета на запись.

Ошибка доступа к файлу 1C решение

Предупреждения о проблемах вылазят когда возмущается брандмауэр. Это касается сетевых объектов. Антивирусные программы препятствуют нормальной работе.

Открываем брандмауэр и антивирус и ищем в списке блокируемых программ 1С. Удаляем из списка.

Ошибка доступа к файлу 1C решение

Почистите кеш, ошибки также возникают из-за кеша.

Большой шанс появления ошибки, когда два синонимичных приложения запускаются вместе. К примеру, ЗУП и Бухгалтерия. Если запустить по очереди, проблема исчезнет

Дополнительный способ

Ничего не помогло — воспользуйтесь следующими методами:

Путь к имени файла должен быть допустимым в каталоге отчетов: щелкните вкладку «Вывод». Перейдите на вкладку «Параметры вывода». В поле Имя файла убедитесь, что путь действителен.

Сколько дискового пространства доступно для файла: Откройте Windows Explorer. Выберите Локальный диск (буква диска:), на котором хранится отчет. Щелкните правой кнопкой мыши на локальном диске (буква диска:) и нажмите Свойства. Откроется окно свойств. Проверьте доступное свободное пространство на этом локальном диске.

Убедитесь, что у пользователя есть разрешения на доступ к папке IO_Data: Откройте проводник Windows. Щелкните правой кнопкой мыши основную папку выберите «Свойства».

Перейдите на вкладку «Безопасность». Убедитесь, что у пользователя есть полные права на эту папку и все подпапки. Если вы не можете проверить права доступа, обратитесь к администратору.

65938

Анна Викулина

Руководитель Центра
сопровождения 1С

28 февраля 2019

Обслуживание 1С

Актуальность проверена: 26.01.2023

Получить консультацию
Бесплатно

Обслуживание 1С

Обслуживание 1С

Помощь персонального менеджера, оперативность сдачи отчетности, соответствие законодательству РФ

Иногда пользователь программы 1С может столкнуться с сообщениями программы «Ошибка режима доступа к файлу 1С»…

Рис.1 Ошибка режима доступа к файлу 1С

Рис.1 Ошибка режима доступа к файлу 1С

…а также «Ошибка совместного доступа к файлу» 1С 8.3.

Рис.2 Ошибка совместного доступа к файлу

Рис.2 Ошибка совместного доступа к файлу

Само название ошибки уже говорит пользователю о случившемся: в первом случае – о нарушении прав доступа. Такое сможет случиться, когда пользователь скопировал информационную базу, подключил, а при открытии по сети всплыла такого рода ошибка с указанием сетевого пути к объекту. В этом случае, первое, на что сразу надо обратить внимание – на права доступа, щелкнув правой кнопкой на свойства объекта. Нажав кнопку «Общий доступ», проверить настройки.

Рис.3 Нажав кнопку «Общий доступ», проверить настройки

Рис.3 Нажав кнопку «Общий доступ», проверить настройки

Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись.

Рис.4 Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись

Рис.4 Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись

Если база располагается на локальном ПК, необходимо проверить на закладке «Безопасность», что для пользователя установлено разрешение на запись или не стоит запрет на запись.

Рис.5 Разрешение прав

Рис.5 Разрешение прав

Предупреждение о проблемах с совместным доступом с указанием пути к конкретному объекту, кроме сбоя сетевых настроек, может быть следствием предустановок брандмауэра, антивирусных программ, которые стопорят сетевые подключения. Необходимо открыть их настройки и посмотреть, не будет ли 1С в списке заблокированных программ. Если это так, следует удалить ее из списка или добавить файл информационной базы 1С в исключения, предотвратив его блокировку.

Рис.6 Блокированные и разрешенные приложения

Рис.6 Блокированные и разрешенные приложения

Если при возникновении ошибки система указывает на временные файлы, например C:Users…AppDataLocalTemp, то очистка кэш может решить проблему с ошибкой.

Высока вероятность появления такой ошибки – при одновременном запуске двух программ (ЗУП и Бухгалтерии), одна из которых была базовой версией. Когда программы запустили по очереди, ошибка не появлялась.

Для решения проблемы с ошибкой доступа, как видите, потребуется немного времени, главное – понять причину и исключить ее повторение.

Другие статьи по теме

Обновления 1С

Обновления 1С

Как обновить 1С самостоятельно. Рассмотрим пошаговые действия для обновления типовой конфигурации 1С:Предприятия 8 на примере 1С:Бухгалтерии 3.0.

Настройка 1С Бухгалтерия 8.3 с нуля

Настройка 1С Бухгалтерия 8.3 с нуля

Настройка 1С:Бухгалтерия позволят задать программе конкретную функциональность, выбрать варианты ведения учета, ввести ряд конкретных значений и параметров.

Установка 1С

Установка 1С

Начинающие пользователи программ, разработанных на платформе «1С:Предприятие», подойдя к моменту покупки «коробки» или уже приобретя ее, естественно задаются вопросом: «Как установить 1С Предприятие?»…

Исправление ошибки доступа к файлу

Во время работы с программами 1С пользователи 1С Бухгалтерия или других типовых конфигураций на базе платформы 1С Предприятие получают сообщение об «Ошибке режима доступа к файлу» либо об «Ошибке совместного доступа к файлу». Это критическая ошибка, которая не позволяет использовать программу в штатном режиме. Но устранить ее достаточно просто не прибегая к услугам 1С-сервисов, которые предоставляют технические консультации по вопросам использования приложений. 

Описание ошибки и способ ее устранения

Сама суть ошибки указана в системном сообщение, которое выдает программа. В случае «ошибки режима доступа» имеет место нарушение прав пользователя, прописанных в операционной системе на компьютере. Чаще всего подобное возникает в случае, если база данных была скопирована и подключена, а после запуска на экране появилось сообщение с указанием адреса объекта в локальной сети. 

Чтобы исправить права доступна, необходимо открыть окно Свойства файла с базой данных. После этого найти в нем папку «Общий доступ» и проконтролировать сделанные там настройки. Доступ должен быть открыт для текущего пользователя Windows. Причем как на чтение файла, так и на запись изменений в него. 

Если база данных находится не в сети, а на локальном компьютере, соответствующие права доступа размещаются на вкладке «Безопасность». Необходимо удостоверится в том, что в правах не отменено разрешение на запись данных в файл. 

Кроме того, ошибки могут возникать и по другим причинам:

  • Изменение настроек штатного брандмауэра операционной системы или сторонней программы, которая выполняет аналогичные функции;
  • Неправильная настройка антивирусных программ, которые могут блокировать сетевые соединения к определенным объектам. 

 Чтобы устранить проблему, необходимо добавить файл с базой данных в исключения этих приложений, устранив блокировку. 

Иногда проблема с программами 1С может быть связана с кэшем. В этом случае в диалоговом окне указывается путь доступа к папке TEMP. Решить проблему помогает удаление файлов из этой папки. 

У неопытных пользователей ошибка доступа к файлу может быть обусловлена попыткой запуска сразу двух приложений на базе 1С Предприятие. Например, 1С ЗУП и 1С Бухгалтерия, одна из которых была базовой. 

Если попытки справиться с проблемой не привели к положительному результату или у вас появились другие вопросы, связанные с использование программ и обновлением 1С, обращайтесь за помощью к специалистам компании «ГК в Приоритете». Телефоны для связи указаны в разделе «Контакты».

  • Permalink

Ошибка работы 1С 8 с Excel: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу

Описание ошибки:
Проявила себя в клиент-серверной базе. Релиз платформы 1С: Предприятие 8.3.13.1644.

Найденные решения:

Полная формулировка ошибки:

{Доработки Документ.УстановкаЦенНоменклатуры.Форма.Доп_ФормаИмпортXLS.Форма(83)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу ‘C:1C_ArhivТест загрузка прайсов[имя_файла].xlsx’. Это может быть вызвано одной из следующих причин.

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

1C 8 Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу .xlsx

1С 8 работа с Excel Ошибка при вызове метода контекста (Open)

При доработке в расширении для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая должна загружать данные из файлов Excel и при попытке выполнения в коде РабочаяКнига = ExcelПриложение.WorkBooks.Open(ФормаИмпортXLS.ИмяФайла);. Что удивительно, но в более ранней редакции Комплексной, 1.1, эта проблема не возникала в этом же коде, хотя обе базы на одном сервере.

Проблема оказалась нова для автора этого текста только в 2020 году, хотя самой проблеме достаточно много времени (более 5 лет на момент написания). В обсуждении данной ошибки на сайте infostart.ru «Ошибка открытия файла Excel на сервере» обсуждается несколько предложений по решению проблемы, среди которых наиболее популярный вариант решения. Так же там много попутных предложений по настройке прав на стороне сервера, если вдруг популярный вариант окажется не актуальным.

1C 8

Популярность этого варианта подтверждается исчерпывающим обсуждением и вот на этом ресурсе: «v8.x: [РЕШЕНО] Ошибка при вызове метода контекста (Open) при работе с Excel»

1C 8.2 8.3 Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу

Проблема была рещена данным простым решением, но обращу внимание на то, что данное действие должно быть выполнено на сервере, а не на локальном рабочем месте.

1C 8 Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

23-09-2020

Журавлев А.С.
(Сайт azhur-c.ru)

Здравствуйте. Подскажите, пожалуйста. Пытаюсь таблицу сохранить в excel с помощью ТабДок.Записать(«c:1.xls»,1) , а выдется по причине: Ошибка доступа к файлу ‘c:1.xls’

поему такая ошибка? По идее должен файл сам создаться

Почему таблица не записывается в файл

По какой идее? Ты уверен, что у тебя есть доступ на запись в корень диска «С:»?

Потому что машина локальная, сеанс администратора

создай файл на С не средствами 1с

Ерунда, если права есть, всё запишет.

так вот, ручками и сделал и все равно ошибка

Почему из людей всё нужно клещами вытягивать… точно это мы к нему пришли и вопросам его достаем.

Значит прав нет или места на диске. 1С не причем.

Девушка, если файл сам могу создать руками, логично, что и место есть и права есть

1. Запись с клиента или с сервера. Если сервера — проверить права на пользователя, под которым запущенна служба 1с.

2. Под «таблицей» понимается табличный документ? 3. Возможно сам файл заблокирован (например, открыт в чем-то, что блокирует запись)

Ну и так, к слову, я не помню использование числа во втором параметре функции Записать. Возможно так можно — но мне как-то ближе использование ТипФайлаТабличногоДокумента.

Молодой человек, вы уж или внятно пишите, что у вас В начале: так вот, ручками и сделал и все равно ошибка создать файл, лист excel Затем: Девушка, если файл сам могу создать руками, логично, что и место есть и права есть Вы определитесь  вы можете руками файл создать или нет. Или вы просто не в состоянии внятно формулировать свои мысли.

Понаберут на мисту по объявлению.

Записать(<?>,); Синтаксис: Записать(<ИмяФайла>,<ТипФайла>) Назначение: Записать таблицу в файл. Параметры: <ИмяФайла> — имя файла. <ТипФайла> — необязательный параметр. Числовое или строковое выражение, определяющее тип файла: · отсутствует, 0 или »MXL» — формат 1C; · 1 или »XLS» — формат Ms Excel; · 2 или »HTM» или »HTML» — формат HTML; · 3 или »TXT» — формат TXT. Замечание: Метод может использоваться при работе с таблицей в режиме ввода данных.

ну как всегда побакланили, и нифига толку

не, никто не бакланил. Очень большой толк и огромное спасибо SAMMO. Его совет с учеткой под которой запускается служба 1с и было прямо в цель. А то, что дама DDwe пофыркала тут, это так ;)

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Дорабатывал обработку загрузки прихода из Excel. Обработка изначально была не моя, все хорошо работало, но внезапно клиент в облаке переехал с файловой базы на SQL, потому что файловая тормозила.

И тут 1С начала писать, что файл не обнаружен. Оказывается, код загрузки из Excel был написан только под толстого клиента. Пришлось дорабатывать стандартным образом:

//На клиенте
ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);//На сервере
ПолноеИмяФайла = ПолучитьИмяВременногоФайла(«XLS»);
ДД.Записать(ПолноеИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

Доработал и забыл. Как вдруг новая напасть — попросили доработать обработку, начинаю ее отлаживать, а она не считывает данные из XLSX файла.

Причем выдает ошибку доступа к временному файлу:

Я попробовал записывать во временный каталог, но это не принесло результата:

ТекКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ТекКаталог);
ПолноеИмяФайла = ТекКаталог + «» + Новый УникальныйИдентификатор() + ТипФайла; //ПолучитьИмяВременногоФайла(«XLS»);ДД.Записать(ПолноеИмяФайла);Ф = Новый Файл(ПолноеИмяФайла);
Сообщить(ПолноеИмяФайла » Существует: » + Ф.Существует());ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст); //, ТипФайлаТабличногоДокумента.ODS);

Причем 1С писала, что файл существует:

Тогда почему же она не может его считать? Задачу нужно было решить срочно, причем прикладную логику я уже сделал, а споткнулся на мелочи. Я уже было хотел перейти на локальный компьютер для разработки (тем более что на сервере из соображений быстродействия отключена отладка). Но тут мне пришла мысль впервые попробовать использовать не временные файлы, а потоки:

ПотокДанных = Новый ПотокВПамяти();
ЗаписьДД = Новый ЗаписьДанных(ПотокДанных);
ЗаписьДД.Записать(ДД);
ЗаписьДД.Закрыть();
ПотокДанных.Перейти(0, ПозицияВПотоке.Начало);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПотокДанных, СпособЧтенияЗначенийТабличногоДокумента.Текст, ТипФайлаТабличногоДокумента.ODS);
ПотокДанных.Закрыть();

Увы, при этом выдавалась все та же ошибка доступа. Кроме того, в документации я посмотрел, что из памяти можно считывать не все форматы, а только MXL и ODS. Бред, конечно, но такова 1С.

И тут до меня дошло попробовать поменять расширение на XLSX:

//на клиенте
ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
Ф = Новый Файл(ПолноеИмяФайла);
ТипФайла = Ф.Расширение);//на сервере
ТекКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ТекКаталог);
ПолноеИмяФайла = ТекКаталог + «» + Новый УникальныйИдентификатор() + ТипФайла;
ДД.Записать(ПолноеИмяФайла);ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

И всё заработало. У 1С, как обычно, беда с диагностикой ошибок. Она пишет совсем не ту ошибку, которая вызывает проблему. Доступ к файлу есть, просто формат файла 1С определяет по расширению, а не содержимому файла.

Время факт: 0,5 час. На поиски решения проблемы.

Ошибка при вызове метода контекста (Записать) ТабДокумент.Записать(ПолныйПутьСРасширением,ТипФайлаТабличногоДокумента.XLS); по причине: Ошибка доступа к файлу ‘D:export.’. -2147287035(0x80030005): Отказано в доступе. Права на каталог есть у всех пользователей, в чем может быть беда ?

Проверь имя файла. Возможно там какая-то беда.

ПолныйПутьСРасширением = «D:exportФайл.xls»

Значит с правами проблема. Еще раз проверь.

Проверь где она этот каталог ищет, на сервере, на машине клиента или ещё где.

говорят, что при вызове Записать на сервере и указании локального диска, платформа пишет файл на локальный диск сервера )

+ и все это под учеткой, под которой стартует 1с сервер, конечно

тада стопудова проблема в том, что на сервере пытаешь записать…пиши на клиенте, все будет гут…

гм.. разве в линуксе пути имеют вид «D:123.txt»?

Что-то ничего не получилось; Я так понимаю, указывая папку винды он находит, но не может записать, а линукса вообще не видит, права на папку на всех, может есть предложения какие ?

«Что-то ничего не получилось; » — что делал? Что именно не получилось?

Пробовал на папку линукса ему скормить, новую папку сделал, расшарил права, изменил название файла.

Сохраняй на стороне клиента.

Происходит все в общем модуле, далее будет вообще регл.заданием, не думаю что клиент тут найдется.

Текстовый файл сохраняется, эксель нет.

есть подозрения что линуксовая библиотечка не заточена под эксель. На клиент перегоняй и там сохраняй.

+, например, регистр файлов…открывать все в 1с-ке с обратным преобразованием… а вообще попробуй сохранять на виндовую шару с полными правами для всех…

Сделал так: Вначале тестировал в ручном режиме, без регл.задания, ошибки были, сохранил в каталог временных файлов, затем ПеретитьФайл в папку, которая писала отказано в доступе, прошло нормально. Регламентным заданием указал расшаренную папку линукса, в винде — также прошло успешно.

Тэги:

Комментарии доступны только авторизированным пользователям

Автор leklerk85, 14 июн 2021, 20:01

0 Пользователей и 1 гость просматривают эту тему.

Добрый день! Подскажите пожалуйста, как можно решить проблему. В регл. задании формируется файл Excel и записывается, но при записи ошибка «Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно». В файле Excel 2 листа, в каждом из которых в среднем около 50-60 тысяч строк.


Решить проблему можно отказом от OLE и формированием и сохранением файла средствами 1С.


Вы имеете в виду сформировать через табличный документ и записать через ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX)? Сегодня попробовал, всё равно ошибка «Ошибка при вызове метода контекста (Записать): Ошибка доступа к файлу ‘\мой_путьмой_ файл.xlsx'». Папка «мой_путь» на момент записи файла была создана.


Цитата: leklerk85 от 16 июн 2021, 08:08
Вы имеете в виду сформировать через табличный документ и записать через ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX)? Сегодня попробовал, всё равно ошибка «Ошибка при вызове метода контекста (Записать): Ошибка доступа к файлу ‘\мой_путьмой_ файл.xlsx'». Папка «мой_путь» на момент записи файла была создана.

а на сервере доступна эта созданная папка?


На другом форуме подсказали — на папку, куда сохраняется Эксель, надо дать права пользователю, под которым выполняется регл. задание (USR1CV8). Скорее всего, из-за этого ошибка.


Цитата: leklerk85 от 16 июн 2021, 12:56
На другом форуме подсказали — на папку, куда сохраняется Эксель, надо дать права пользователю, под которым выполняется регл. задание (USR1CV8). Скорее всего, из-за этого ошибка.

Да, причина была именно в этом — всё заработало сегодня, когда дали права на папку!


  • Форум База

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Ошибка при сохранении файла Excel из регламентного задания

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

  • 1с сообщить пользователю об ошибке
  • 1с сообщить ошибки пользователю
  • 1с сообщить об ошибке платформы
  • 1с сообщить об ошибке описание ошибки
  • 1с сообщение об ошибке программно