В этой статье мы расскажем об ошибке доступа к файлу 1с. Как решить возникшую проблему, что это за баг и еще немного об этом.
Ошибка доступа к файлу 1C 8.3
«1С: Предприятие» — система программ для автоматизации, улучшения и упрощения деятельности различных сфер компании, начиная от бухгалтерии и заканчивая учетом. 1С: возможности при правильной настройке безграничны . Для предпринимателя — нужно найти хороших программистов.
Нет ни одной программы в современном мире, как бы хороша она не была без ошибок и проблем. Такое случается и с нашим приложением. В ряде случаев виноват в этом криворукий программист. Многие проблемы вы не сможете решить без его участия, но некоторые, вам подсилу и самому.
Причины возникновения
Случается, что люди, которые используют данную прогу сталкиваются с проблемой при запуске программы.
Способы решения
По наименованию явившегося бага поймем что происходит с системой — нет прав для доступа к файлу. Такое случается если юзер создает копию базы и подключает ее. Также ошибка бывает в результате попытки открыть файл по сетевому доступу.
Первостепенное что мы делаем в таком случае — проверяем доступ к файлу. Правая кнопка мыши по файлу -> проверяем стоит ли галочка на «Общий доступ».
Взгляните на права пользователя под которым вы зашли в систему виндоус. У вас должны быть права и на чтение файлов и на запись.
Когда данные к которым нужно получить доступ (база) находится на удаленном (локальном) персональном компьютере — смотрим закладку «Безопасность». В безопасности вы должны убедиться что у пользователя нет запрета на запись.
Предупреждения о проблемах вылазят когда возмущается брандмауэр. Это касается сетевых объектов. Антивирусные программы препятствуют нормальной работе.
Открываем брандмауэр и антивирус и ищем в списке блокируемых программ 1С. Удаляем из списка.
Почистите кеш, ошибки также возникают из-за кеша.
Большой шанс появления ошибки, когда два синонимичных приложения запускаются вместе. К примеру, ЗУП и Бухгалтерия. Если запустить по очереди, проблема исчезнет
Дополнительный способ
Ничего не помогло — воспользуйтесь следующими методами:
Путь к имени файла должен быть допустимым в каталоге отчетов: щелкните вкладку «Вывод». Перейдите на вкладку «Параметры вывода». В поле Имя файла убедитесь, что путь действителен.
Сколько дискового пространства доступно для файла: Откройте Windows Explorer. Выберите Локальный диск (буква диска:), на котором хранится отчет. Щелкните правой кнопкой мыши на локальном диске (буква диска:) и нажмите Свойства. Откроется окно свойств. Проверьте доступное свободное пространство на этом локальном диске.
Убедитесь, что у пользователя есть разрешения на доступ к папке IO_Data: Откройте проводник Windows. Щелкните правой кнопкой мыши основную папку выберите «Свойства».
Перейдите на вкладку «Безопасность». Убедитесь, что у пользователя есть полные права на эту папку и все подпапки. Если вы не можете проверить права доступа, обратитесь к администратору.
Иногда пользователь программы 1С может столкнуться с сообщениями программы «Ошибка режима доступа к файлу 1С»…
…а также «Ошибка совместного доступа к файлу» 1С 8.3.
Само название ошибки уже говорит пользователю о случившемся: в первом случае – о нарушении прав доступа. Такое сможет случиться, когда пользователь скопировал информационную базу, подключил, а при открытии по сети всплыла такого рода ошибка с указанием сетевого пути к объекту. В этом случае, первое, на что сразу надо обратить внимание – на права доступа, щелкнув правой кнопкой на свойства объекта. Нажав кнопку «Общий доступ», проверить настройки.
Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись.
Если база располагается на локальном ПК, необходимо проверить на закладке «Безопасность», что для пользователя установлено разрешение на запись или не стоит запрет на запись.
Предупреждение о проблемах с совместным доступом с указанием пути к конкретному объекту, кроме сбоя сетевых настроек, может быть следствием предустановок брандмауэра, антивирусных программ, которые стопорят сетевые подключения. Необходимо открыть их настройки и посмотреть, не будет ли 1С в списке заблокированных программ. Если это так, следует удалить ее из списка или добавить файл информационной базы 1С в исключения, предотвратив его блокировку.
Если при возникновении ошибки система указывает на временные файлы, например C:\Users\…\AppData\Local\Temp\, то очистка кэш может решить проблему с ошибкой.
Высока вероятность появления такой ошибки – при одновременном запуске двух программ (ЗУП и Бухгалтерии), одна из которых была базовой версией. Когда программы запустили по очереди, ошибка не появлялась.
Для решения проблемы с ошибкой доступа, как видите, потребуется немного времени, главное – понять причину и исключить ее повторение.
Исправление ошибки доступа к файлу
Во время работы с программами 1С пользователи 1С Бухгалтерия или других типовых конфигураций на базе платформы 1С Предприятие получают сообщение об «Ошибке режима доступа к файлу» либо об «Ошибке совместного доступа к файлу». Это критическая ошибка, которая не позволяет использовать программу в штатном режиме. Но устранить ее достаточно просто не прибегая к услугам 1С-сервисов, которые предоставляют технические консультации по вопросам использования приложений.
Описание ошибки и способ ее устранения
Сама суть ошибки указана в системном сообщение, которое выдает программа. В случае «ошибки режима доступа» имеет место нарушение прав пользователя, прописанных в операционной системе на компьютере. Чаще всего подобное возникает в случае, если база данных была скопирована и подключена, а после запуска на экране появилось сообщение с указанием адреса объекта в локальной сети.
Чтобы исправить права доступна, необходимо открыть окно Свойства файла с базой данных. После этого найти в нем папку «Общий доступ» и проконтролировать сделанные там настройки. Доступ должен быть открыт для текущего пользователя Windows. Причем как на чтение файла, так и на запись изменений в него.
Если база данных находится не в сети, а на локальном компьютере, соответствующие права доступа размещаются на вкладке «Безопасность». Необходимо удостоверится в том, что в правах не отменено разрешение на запись данных в файл.
Кроме того, ошибки могут возникать и по другим причинам:
- Изменение настроек штатного брандмауэра операционной системы или сторонней программы, которая выполняет аналогичные функции;
- Неправильная настройка антивирусных программ, которые могут блокировать сетевые соединения к определенным объектам.
Чтобы устранить проблему, необходимо добавить файл с базой данных в исключения этих приложений, устранив блокировку.
Иногда проблема с программами 1С может быть связана с кэшем. В этом случае в диалоговом окне указывается путь доступа к папке TEMP. Решить проблему помогает удаление файлов из этой папки.
У неопытных пользователей ошибка доступа к файлу может быть обусловлена попыткой запуска сразу двух приложений на базе 1С Предприятие. Например, 1С ЗУП и 1С Бухгалтерия, одна из которых была базовой.
Если попытки справиться с проблемой не привели к положительному результату или у вас появились другие вопросы, связанные с использование программ и обновлением 1С, обращайтесь за помощью к специалистам компании «ГК в Приоритете». Телефоны для связи указаны в разделе «Контакты».
- Permalink
Дорабатывал обработку загрузки прихода из Excel. Обработка изначально была не моя, все хорошо работало, но внезапно клиент в облаке переехал с файловой базы на SQL, потому что файловая тормозила.
И тут 1С начала писать, что файл не обнаружен. Оказывается, код загрузки из Excel был написан только под толстого клиента. Пришлось дорабатывать стандартным образом:
//На клиенте
ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);//На сервере
ПолноеИмяФайла = ПолучитьИмяВременногоФайла(«XLS»);
ДД.Записать(ПолноеИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
Доработал и забыл. Как вдруг новая напасть — попросили доработать обработку, начинаю ее отлаживать, а она не считывает данные из XLSX файла.
Причем выдает ошибку доступа к временному файлу:
Я попробовал записывать во временный каталог, но это не принесло результата:
ТекКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ТекКаталог);
ПолноеИмяФайла = ТекКаталог + «\» + Новый УникальныйИдентификатор() + ТипФайла; //ПолучитьИмяВременногоФайла(«XLS»);ДД.Записать(ПолноеИмяФайла);Ф = Новый Файл(ПолноеИмяФайла);
Сообщить(ПолноеИмяФайла + » Существует: » + Ф.Существует());ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст); //, ТипФайлаТабличногоДокумента.ODS);
Причем 1С писала, что файл существует:
Тогда почему же она не может его считать? Задачу нужно было решить срочно, причем прикладную логику я уже сделал, а споткнулся на мелочи. Я уже было хотел перейти на локальный компьютер для разработки (тем более что на сервере из соображений быстродействия отключена отладка). Но тут мне пришла мысль впервые попробовать использовать не временные файлы, а потоки:
ПотокДанных = Новый ПотокВПамяти();
ЗаписьДД = Новый ЗаписьДанных(ПотокДанных);
ЗаписьДД.Записать(ДД);
ЗаписьДД.Закрыть();
ПотокДанных.Перейти(0, ПозицияВПотоке.Начало);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПотокДанных, СпособЧтенияЗначенийТабличногоДокумента.Текст, ТипФайлаТабличногоДокумента.ODS);
ПотокДанных.Закрыть();
Увы, при этом выдавалась все та же ошибка доступа. Кроме того, в документации я посмотрел, что из памяти можно считывать не все форматы, а только MXL и ODS. Бред, конечно, но такова 1С.
И тут до меня дошло попробовать поменять расширение на XLSX:
//на клиенте
ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
Ф = Новый Файл(ПолноеИмяФайла);
ТипФайла = Ф.Расширение);//на сервере
ТекКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ТекКаталог);
ПолноеИмяФайла = ТекКаталог + «\» + Новый УникальныйИдентификатор() + ТипФайла;
ДД.Записать(ПолноеИмяФайла);ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
И всё заработало. У 1С, как обычно, беда с диагностикой ошибок. Она пишет совсем не ту ошибку, которая вызывает проблему. Доступ к файлу есть, просто формат файла 1С определяет по расширению, а не содержимому файла.
Время факт: 0,5 час. На поиски решения проблемы.
NIGHTHUNTER
05.08.21
✎
14:09
На локальном Пк. Можно прочитать файл.
//
ТДсXLS = Новый ТабличныйДокумент;
ТДсXLS.Прочитать(Объект.ВыборФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
//
Почему его нельзя прочитать на сервере?
Ошибка, —
Доступ к файлу не может быть получен.
ДенисЧ
05.08.21
✎
14:11
Потому что путь указывает на файл у пользователя на рабочем столе.
NIGHTHUNTER
05.08.21
✎
14:12
(1) Подскажите пожалуйста, как это решить?
NIGHTHUNTER
05.08.21
✎
14:13
Я указываю, на файл пользователя, на сервере же. Как тут это решить?
NIGHTHUNTER
05.08.21
✎
14:14
Ложить файл в каталог на диске D: ?
Не на рабочий стол?
acht
05.08.21
✎
14:23
Ложить допустимо только в каталог на диске X:
ДенисЧ
05.08.21
✎
14:27
Читать на сервере в ДД, передавать через ХЗ серверу.
(5) А на Y точно нельзя?
acht
05.08.21
✎
14:29
(6) На Y нельзя. В Y можно.
fisher
05.08.21
✎
14:33
(0) Ты кладешь файл на сервер локально и пытаешься его прочитать в серверном коде?
Тогда проблема может быть в правах доступа. Дефолтный виндовый юзер под которым стартует сервер приложений имеет доступ только к своему каталогу.
Если мое предположение ошибочно, тогда опиши подробнее, что ты делаешь.
Garykom
05.08.21
✎
14:36
«Дата регистрации: 18 августа 2020; Стаж: 11 месяцев 18 дней»
бросай программирование и 1С, не выйдет из тебя ничего
fisher
05.08.21
✎
14:38
Какой бросай! Вообще очумел. В 1С и так никто не идет.
Плюс в 1С очень легко быть успешным, слабо разбираясь в этих ваших компьютерах.
Kassern
05.08.21
✎
14:39
(9) зря вы так
Garykom
05.08.21
✎
14:40
(11) лучше мало хороших спецов, чем толпа плохих
fisher
05.08.21
✎
14:46
(12) Ути-пути. Из Garykom элитизм попер. Держите меня семеро.
Kassern
05.08.21
✎
14:47
(0) вы должны понять, как устроено клиент серверное соединение. Сейчас в упрощенном варианте постараюсь объяснить:
Допустим клиент это ваш рабочий комп, а есть сервер, который представляет с собой отдельный комп в соседней комнате. На этом сервере находится sql сервер с базой и серверная 1ска с кластером. Вот вы берете и пытаетесь на сервере (том компе в кладовке) прочитать файл который находится на вашем компе по пути «C:\documents\ВашФайл.xlsx», задайте себе вопрос, а как сервер получит инфу по данному пути. Сервер пойдет у себя по пути «C:\documents\» искать этот файл и конечно же не найдет. Так вот чтобы сервер получил файл с клиент, необходимо либо его туда передать (через двоичные данные), либо положить в какую то директорию сетевую (\\Share\documents) которая будет доступна для сервера. В первом случае более универсальное решение, на клиенте получаете двоичные данные вашего документа, далее помещаете их во временное хранилище и передаете адрес этого хранилища на сервер, на сервере по этому адресу получаете ДД и сохраняете во временный файл, а далее все просто, читаете этот временный файл, потом удаляете.
1Сергей
05.08.21
✎
14:49
(14) Лучше провести аналогию с фильмом Аватар.
Если твой аватар ест, то ты голодным быть не перестанешь
ДенисЧ
05.08.21
✎
14:49
(0) Надо написать http-сервис на го, который по ссылке будет отдавать прочитанный файл…
Kassern
05.08.21
✎
14:50
(12) все мы когда то были «плохими» спецами, в глазах наших старших коллег. Просто кому то надо месяц чтобы понять, а кому то и года мало. Но важен результат и желание учиться.
acht
05.08.21
✎
14:52
(17) Но-но! Ливингстар уникален! К нему неприменимы стандартные подходы!
acht
05.08.21
✎
14:52
(9) Ты еще его предыдущие ники посчитай
NIGHTHUNTER
05.08.21
✎
14:52
Так, можно на диск D: ?
Garykom
05.08.21
✎
14:53
(13) какой к черту элитаризм
но за почти год в 1С не понять чем клиент от сервера отличается?
Kassern
05.08.21
✎
14:53
(18) вроде бы одно и то же не спрашивает, значит все таки обучаем)
acht
05.08.21
✎
14:53
(21) > почти год в 1С
Да ты оптимист…
Garykom
05.08.21
✎
14:54
(22) нахрена спрашивать когда можно книжки/учебники почитать?
Kassern
05.08.21
✎
14:54
(20) зайдите на сервер и попробуйте открыть файл по вашему пути с диском D, если откроется то все можно)
fisher
05.08.21
✎
14:54
(21) Легко. Если работать на файловой, например.
Kassern
05.08.21
✎
14:55
(24) ну это уже к ТС, видимо у него такой «подход» к обучению…
Garykom
05.08.21
✎
14:56
(26) файловая тоже клиент сервер есть
это так к сведению
тогда уж говори работал только с локальной файловой на одном компе
NIGHTHUNTER
05.08.21
✎
15:10
Да, диск D: нормально пошел.
Я как то сразу в панику ((((. Пробовал не от туда грузить.
Garykom
05.08.21
✎
15:13
муахаха
у него rdp на сервере
но сервер 1С от другого юзера операционки пашет