Обновлено 15.10.2020
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Рунета Pyatilistnik.org. В прошлый раз мы с вами разобрали, что из себя представляет файловая система raw, и как ее исправить, чтобы восстановить свои данные. Двигаемся дальше и поговорим сегодня на тему капризности 1С, точнее на капризную работу в рамках Windows Server 2016. Я рассмотрю причину и устранение периодически повторяющейся ошибки на сервере 1С 8.3 «Ошибка при выполнении файловой операции«. Ее я стал встречать после обновления с Windows Server 2012 R2 д 2016. Думаю мой опыт сэкономит вам часик серфинга по интернету.
Описание проблемы
В моей компании заканчивается обновление операционных систем у виртуальных серверов, с Windows Server 2012 R2 на Windows Server 2016, я понимаю, что поддержка первых еще будет несколько лет, но хочется уже не делать это в последний момент, а слегка опережать, да и уже давно пора стремиться к Windows Server 2019. Сервера 1С не были исключением, обновление происходило по быстрому варианты. Тут подразумевается накатывание более новой версии ОС по верх старой, тут мы убивали двух зайцев:
- Получали свежую версию ОС
- Оставляли весь софт на сервере, и не требовалась его переустановка
В случае чего всегда можно было откатиться из снапшота на момент проведения работ, благо ESXI 6.5 это помогает делать в два клика. Все прекрасно обновилось и сервер зажил новой жизнью. В какой-то момент при запуске клиента 1С 8.3 на RDS ферме, стала появляться ошибка:
Ошибка при выполнении файловой операции
Устранение проблемы
Начав изучать данный вопрос мы не стали откатываться к бэкапу, так как данная проблема возникала не постоянно, а через некоторые промежутки и была вызвана явно не переходом на более новую версию операционной системы. Подняв исторические данные в системе заявок, я нашел похожую, где решением ошибки был перенос базы данных 1С на другой диск. Меня это заинтересовало и я стал прикидывать, что же могло быть в той ситуации. Через минут 20 я нашел одну закономерность, что на всех проблемных хостах был установлен компонент Windows дедупликации, как раз на тех дисках, где располагались базы данных 1С.
Я для тестирования отключил дедупликацию и вернул все в исходное состояние, и о чудо ошибка при выполнении файловой операции больше не появлялась. Все те же действия я произвел и на остальных серверах.
Вывод: Windows Дедупликация и 1С просто не совместимы друг с другом, это нужно запомнить
Из дополнительных методов я могу вам посоветовать еще очистку кэша 1С. Еще в на умных сайтах советуют на серверах, где используется 1С отключать протокол IPv6 на сетевых интерфейсах, но лично я не понимаю этого прикола, так как сама Microsoft советует по возможности этого не делать, в виду того, что очень многие ее сервисы и компоненты Windows в приоритете используют именно его, меньше будет проблем с DNS и Active Directory.
Вообще если у вас виртуальные сервера лежат на системе хранения данных, то у нее должна быть своя функция дедупликации и использовать лучше и правильнее ее. Если у вас есть другие варианты решения данной проблемы, то пишите их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Ошибка чтения ТабДок.Прочитать() |
Я |
09.11.20 — 14:03
При открытии файла XLS через ТабДок.Прочитать()
Ошибка при выполнении файловой операции . Формат файла не поддерживается.
Если исходный файл открыть в Excel и сохранить, ошибки нет.
Мне надо читать его программно. Кто-нибудь решал эту проблемку?
1 — 09.11.20 — 14:05
(0) попробуй переименовать в *.xlsx, экселю пофигу а 1С такую ошибку выдает если формат не соответствует расширению
2 — 09.11.20 — 14:18
(0) сколько листов в файле? примечания есть?
3 — 09.11.20 — 14:20
(2) Лист один. Примечаний нет
(1) Расширение *.xls . В свойствах тип файла Лист Microsoft Excel 97–2003 (.xls)
4 — 09.11.20 — 14:24
(3) у xls и xlsx внутренняя структура. Если файл с новым форматом сохранить с расширением xls, то эксель его откроет, а не 1С нет. Просто попробуй, нет — будешь искать варианты дальше
5 — 09.11.20 — 14:31
Откуда файл взялся? С интернета каким-нибудь пых-скриптом создан?
Такое в таких случаях бывает, это же опенсорц, там делают на ХХП…
6 — 09.11.20 — 14:34
В 8.3.17.1549 пофиксили
7 — 09.11.20 — 14:42
(5) Файл прислан по почте. Создается регламентом у контрагентов. Как-не знаю. Скорее всего ХХП
(6) 1С:Предприятие 8.3 (8.3.18.1128)
(4) Попробую.
8 — 09.11.20 — 14:45
(0) Через ком-объект прочитай.
9 — 09.11.20 — 14:52
(8) Этот вариант я оттягиваю до последнего )
10 — 09.11.20 — 15:04
(4) Переименование с другим расширением даёт тот же результат:»Формат не поддерживается»
11 — 09.11.20 — 15:06
Это формат Excel 95, неподдерживается.
12 — 09.11.20 — 15:06
(10) А файл то открывал, может там вообще csv внутри
13 — 09.11.20 — 15:07
(10) выложи файл, если не секретный
14 — 09.11.20 — 15:11
(12) Экселем файл открывается без проблем. Сохраняю его без каких либо изменений. После этого он открывается из 1С без ошибок.
15 — 09.11.20 — 15:12
(14) открой блокнотом
16 — 09.11.20 — 15:15
17 — 09.11.20 — 15:16
(15) В блокноте с кракозябрами
18 — 09.11.20 — 15:16
была недавно эта проблема, файл формировали какой то приблудой, в свойствах файла должно быть название, какой то там xl
19 — 09.11.20 — 15:16
(18) Как решили эту проблему?
20 — 09.11.20 — 15:18
тему поднимал «малоопытный» человек, наверно никак, но было ясно, что при формировании получаем файл не совсем той структуры, которая получается из самого экселя, типа как какого то оглавления не хватает или еще чего то подобного
21 — 09.11.20 — 15:22
22 — 09.11.20 — 15:23
проблема не совсем такая, но причина может быть аналогичная. Excelize во.
23 — 09.11.20 — 15:26
(16) Да, внутри похож на xls… похоже без экселя 1С его не съест.
(21) С таким тоже сталкивался, победить не смог.
24 — 09.11.20 — 15:28
(23) велосипед наверно только, как xml может или еще что
ну факт в том, что штатный механизм в таком случае не работает
25 — 09.11.20 — 15:34
эмммм… звиняйте за «малоопытного»)
ras27
26 — 09.11.20 — 15:40
(24) Так старый формат (xls) вроде не xml внутри и закрыт. И парсить xml это та ещё задача, ТС как раз ищет лёгких путей))). Здравой выглядит идея пересохранять файл экселем или сервисом каким, а потом читать штатно табличным документом
27 — 09.11.20 — 15:45
(26) кстати о сервисах) можно дать сервис поставщику файла и пусть льет напрямую
МимохожийОднако
28 — 13.11.20 — 07:56
Повторное сохранение файла через открытие файла в Excel позволяет привести его формат к виду, который читается из 1С.
Может быть, подскажете командную строку или набор команд, который делает это без участия пользователя?
Тогда можно будет запустить обработку, которая читает файл с некорректным для 1С форматом и сохраняет обратно в хранилище.
У меня эти файлы лежат до времени в хранилище значений в регистре сведений.
Ошибка 1С при выполнении файловой операции или Ошибка операции с файлом базы данных, возникает когда 1С не может получить доступ к файлу базы данных, не может найти папку с базой или создать в ней необходимые служебные файлы.
Ошибка 1C при выполнении файловой операции |
Здесь мы видим частный и явно описанный случай проблемы. После обновления Windows на компьютере с базой, бухгалтер со второй машины не смог зайти в базу. Программа выдала ошибку как на скриншоте.
Описание: «Вход пользователя не выполнен из-за ограничений учётной записи. Например, пустые пароли не разрешены; ограничено число входов или включено ограничение политики».
В рассматриваемом примере 1С явно указывает на возможные источники проблемы. После установки патча винда сбросила некоторые настройки сетевой политики безопасности, и по умолчанию перестала пускать пользователей с учёткой без пароля.
Чтобы починить, нужно на ПК с базой зайти в Панель управлени — Центр управления сетями и общим доступом — Изменить дополнительные параметры общего доступа — Все сети — Общий доступ с парольной защитой — установить флаг Отключить общий доступ с парольной защитой.
Если не хочется бродить в недрах панели управления, можно открыть редактор политик напрямую:
Пуск — Выполнить (или Win+R) — secpol.msc;
Переходим в Локальные политики — Параметры безопасности — Учетные записи: разрешить использование пустых паролей только при консольном входе устанавливаем значение Отключен.
Какие ещё причины могут вызвать появление подобной ошибки:
- Некорректная работа антивируса. Обычно этим периодически грешит Касперский: нужно добавить приложение 1С и папки с базами в исключение. Иногда помогает только полная переустановка антивируса.
- Некорректная настройка общего доступа к папке с базой: нет прав у конкретного пользователя или прав на запись/изменение в папку. Проверить это очень просто: нужно перейти в папку (можно скопировать путь из окна запуска 1С) и попробовать создать в ней любой файл. Хотя бы обычный текстовый документ. Если не получается или папка не открывается — скорее всего оно.
Рекламы в блоге нет, заметки я пишу из чистого энтузиазма. Но если статья оказалась полезной, вы можете поддержать блог, отправив символическую сумму через форму ниже. Ваша поддержка вдохновляет меня на создание новых статей.
Алексанов |
|
||
---|---|---|---|
Господа эксперты, подскажите. 1С:Предприятие 8.2 (8.2.19.83), УТ 10.3 (10.3.25.1) У меня моргнул свет при включенном 1С, и запоролась внешняя обработка.При открытии пишет:Ошибка при выполнении файловой операции ‘C:Bases 1CВнешние формыZagr.epf’по причине:Неверный формат хранилища данных ‘file://C:/Bases 1C/Внешние формы/Zagr.epf’ Существует ли возможность ее восстановления? На этом сайте нашел ссылку, но для 8.0, а для 8.2 ? |
Yandex |
|
||
---|---|---|---|
DJ_Serega |
|
||
---|---|---|---|
Так 8.0 можно легко конвертнуть в 8.2. Откройте обработку в конфигураторе 8.2. Конвертировать можно только вверх. Обратно нельзя. |
E_Migachev |
|
||
---|---|---|---|
если есть копия обработки то можно попробовать сравнить их внутренности и попытаться откорректировать hex редактором. так же попробуй сторонние программы или плагин для totalcommander, far — с помощью их может откроется эта обработка — получишь код и описание формы |
Подсказка: Вы получили ответ на свой вопрос — закройте вопрос! |
Ошибка при вызове метода контекста (Прочитать)
Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент.
Скрин сообщения
Здесь мы видим частный и явно описанный случай проблемы. После обновления Windows на компьютере с базой, бухгалтер со второй машины не смог зайти в базу. Программа выдала ошибку как на скриншоте.
Описание: «Вход пользователя не выполнен из-за ограничений учётной записи. Например, пустые пароли не разрешены; ограничено число входов или включено ограничение политики».
В рассматриваемом примере 1С явно указывает на возможные источники проблемы. После установки патча винда сбросила некоторые настройки сетевой политики безопасности, и по умолчанию перестала пускать пользователей с учёткой без пароля.
Чтобы починить, нужно на ПК с базой зайти в Панель управлени — Центр управления сетями и общим доступом — Изменить дополнительные параметры общего доступа — Все сети — Общий доступ с парольной защитой — установить флаг Отключить общий доступ с парольной защитой.
Если не хочется бродить в недрах панели управления, можно открыть редактор политик напрямую:
Пуск — Выполнить (или Win+R) — secpol.msc;
Переходим в Локальные политики — Параметры безопасности — Учетные записи: разрешить использование пустых паролей только при консольном входе устанавливаем значение Отключен.
Какие ещё причины могут вызвать появление подобной ошибки:
- Некорректная работа антивируса. Обычно этим периодически грешит Касперский: нужно добавить приложение 1С и папки с базами в исключение. Иногда помогает только полная переустановка антивируса.
- Некорректная настройка общего доступа к папке с базой: нет прав у конкретного пользователя или прав на запись/изменение в папку. Проверить это очень просто: нужно перейти в папку (можно скопировать путь из окна запуска 1С) и попробовать создать в ней любой файл. Хотя бы обычный текстовый документ. Если не получается или папка не открывается — скорее всего оно.
Рекламы в блоге нет, заметки я пишу из чистого энтузиазма. Но если статья оказалась полезной, вы можете поддержать блог, отправив символическую сумму через форму ниже. Ваша поддержка вдохновляет меня на создание новых статей.
Алексанов |
|
||
---|---|---|---|
Господа эксперты, подскажите. 1С:Предприятие 8.2 (8.2.19.83), УТ 10.3 (10.3.25.1) У меня моргнул свет при включенном 1С, и запоролась внешняя обработка.При открытии пишет:Ошибка при выполнении файловой операции ‘C:Bases 1CВнешние формыZagr.epf’по причине:Неверный формат хранилища данных ‘file://C:/Bases 1C/Внешние формы/Zagr.epf’ Существует ли возможность ее восстановления? На этом сайте нашел ссылку, но для 8.0, а для 8.2 ? |
Yandex |
|
||
---|---|---|---|
DJ_Serega |
|
||
---|---|---|---|
Так 8.0 можно легко конвертнуть в 8.2. Откройте обработку в конфигураторе 8.2. Конвертировать можно только вверх. Обратно нельзя. |
E_Migachev |
|
||
---|---|---|---|
если есть копия обработки то можно попробовать сравнить их внутренности и попытаться откорректировать hex редактором. так же попробуй сторонние программы или плагин для totalcommander, far — с помощью их может откроется эта обработка — получишь код и описание формы |
Подсказка: Вы получили ответ на свой вопрос — закройте вопрос! |
Ошибка при вызове метода контекста (Прочитать)
Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент.
Скрин сообщения
Данный объект 1C умеет не только записывать в Excel, но возможна и обратная операция с ограничениями, свойственными табличному документу.
В чем плюсы такой методики чтения
- Всё производится встроенными средствами;
- достаточно быстро;
- код в 2 строки
- данные не требуется преобразовывать, обычно всё считывается достаточно корректно, их можно проверить средствами 1С.
- возможно считывать значения ячеек как текст (без авто-преобразования),
- доступно на сервере, где excel вообще нельзя установить (linux, OSx).
Причина ошибки
Отличительной особенностью, вызывающей данную ошибку, является то, что 1С нужен монопольный доступ на время считывания.
Если же документ открыт, то выходит ошибка при выполнении файловой операции чтения.
COM-Объекта Excel.Application в данном ситуации просто открывает еще один экземпляр, а также в нём можно скрыть отображение сообшения о режиме «чтения».
Другой причиной может быть: отсутствие прав на чтение этого файла
Решение:
Закрыть открытую в Excel (или другой программе) книгу, проверить права на файл (возможность открытия в его в Excel, косвенный признак его наличия)
Реклама должна объяснить нам, без каких излишеств мы не можем прожить.