Содержание:
1. Об ошибке при выполнении файловой операции
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
1. Об ошибке при выполнении файловой операции
Приветствую, коллеги! В данной статье будет описана ошибка «Ошибка при выполнении файловой операции», и подробно рассмотрены способы ее устранения.
Когда происходит обновление конфигураций в 1С 8, по завершении обновления, часто появляется ошибка, которая гласит «Ошибка при выполнении файловой операции – файл не содержит доступных обновлений».
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
Рассмотрим методы, при помощи которых, можно устранить ошибку при выполнении файловой операции в 1С.
Итак, первый способ – это попробовать сделать обновление при помощи файлов по обновлению вида «релиз 1с*.cfu». Если это не помогло, то можно попробовать обновить систему при помощи общего файла вида «полный релиз 1С*.cf».
Вторым способом будет проверка на соответствие общей версии системы 1С с минимальными требованиями версии конфигурации 1С, которую обновляем.
Третий способ устранения ошибки при выполнении файловой операции в 1С – более сложный, но действенный. Необходимо открыть в конфигурацию от поставщика в режиме Конфигуратора. Если ошибка всё так же появляется, то необходимо удалить конфигурацию поставщика, а затем опять установить. По сути, в данном варианте «вытягивается» последняя, рабочая версия данной конфигурации и обновление будет завершено без ошибок.
Рассмотрим подробнее третий способ. Пусть у нас уже есть некоторая конфигурация 1С KORG 1-ой версии, которая работает, но нужно поставить 2-ю версию, то есть обновить версию конфигурации 1С 8.3. Когда происходит обновление, всплывает ошибка «Ошибка при выполнении файловой конфигурации». Порядок действий в этом случае:
1. скачать релиз 1С KORG с версией 1*.cf;
2. копируем нашу базу данных;
3. в конфигураторе, который соответствует обновляемой базе, переходим по пути: «Конфигурация → Поддержка → Настройки поддержки → Снять с поддержки». В случае, если кнопка для снятия с поддержки недоступна, необходимо сперва включить возможные изменения. После этого нужно дать согласие, если система 1С будет уточнять что-либо или подтверждать действия;
4. Далее переходим по следующему пути: «Конфигурация → Сравнить и объединить с конфигурацией из файла…». Здесь необходимо выбрать файл «полный релиз 1С KORG версии 1*.cf»;
5. Далее перед нами появится окно, в котором система 1С будет запрашивать постановление на учёт для поддержки, на это уведомление обязательно отвечаем согласием;
6. В случае, если наша конфигурация является типовой, откроется окно по сравнению конфигураций. В нем обязательно убираем все «галочки». Далее последует объединение конфигураций;
7. В новом окне кликаем на «Сохранить изменения»;
8. Ещё раз сохраняем базу данных;
9. Обновляем конфигурацию 1С стандартным способом.
Если всё сделать, согласно инструкции выше, то в вашей конфигурации 1С 8.3 «Ошибка при выполнении файловой операции» больше не возникнет. Спасибо за внимание!
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Обновлено 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.
8.2.19.106
УПП. Клиент-серверный вариант. Достаточно приличное количество изменений. При попытке перейти с 1.3.60.1 на 1.3.60.3 после окна со сличением обновления (даже если убрать все галки в измененных объектах)
При нажатии кнопки «Сохранить» до реструктуризации выскакивает ошибка:
Ошибка при выполнении файловой операции ‘v8srvr://1c_server/dmi_test/configsave/ada14b12-452d-4f85-9d71-99554e8fc6c0.21759086-e639-43ef-8527-ae2c967c81a0.new’
по причине:
Ошибка при выполнении файловой операции ‘ada14b12-452d-4f85-9d71-99554e8fc6c0.21759086-e639-43ef-8527-ae2c967c81a0.new’
по причине:
Соединение с сервером баз данных разорвано администратором
Microsoft SQL Server Native Client 10.0: Поставщик TCP: Удаленный хост принудительно разорвал существующее подключение.
HRESULT=80004005, HRESULT=80004005, SQLSrvr: SQLSTATE=08S01, state=1, Severity=10, native=10054, line=0
В окне настройки правил поддержки все переключатели на «Объект редактируется с сохранением поддержки»
Кэш чистил. Пробовал как в терминале так и напрямую. Так же исключил проблемы сети: Поставил агент сервера 1С и скуль на отдельную (одну машину). Та же ошибка.
Гуглеж решение подсказал: снять с поддержки, накатить полный релиз, сохранить, поставить назад на поддержку. Что, собственно сделано было.
Но сегодня вышел 61,1 релиз. И там выскочила та же ошибка. Накатывать через пласяки с бубном каждый релиз как-то не улыбает… Есть какое-либо удекватное решение? Ну или куда копать подскажите.
При обновлении ошибка «ошибка файловой операции» |
Я |
EvgKolivagin
28.12.21 — 14:31
Добрый день!
При обновлении БУХ с версии 3.0.105.45 на версию 3.0.106.40 получаю «ошибка файловой операции». Более никаких сообщений конфигуратор не выдает.
Чистка кэша не не помогла, тестирование исправление не посогло, выгрузка в файловую и обновление там дает тот же результат.
Пробовал на версии платформы 8.3.18.1289 и 8.3.17.1989
Поиск по форуму вроде бы дал результат, но его еще не успел опробовать Ошибка при выполнении файловой операции (попытка обновления)
В обсуждении строка 19
Кто-нибудь сталкивался?
EvgKolivagin
1 — 28.12.21 — 14:50
Подскажите кто-нибудь обновлял с БУХ с версии 3.0.105.45 на версию 3.0.106.40 или на последнюю еще никто не обновлялся?
ДенисЧ
2 — 28.12.21 — 14:55
Конфигуратор 64бит, надеюсь?
Доминошник
3 — 28.12.21 — 14:55
(1) Обновлял
И «руками» и через обновлятор.
На платформе 8.3.16.1814 (для теста — заработают ли «требования к минимальной версии платформы») и на 8.3.19.1351 (и то, и другое — x64)
Проблем — не было (конфигурация БП — типовая, полностью на поддержке)
EvgKolivagin
4 — 28.12.21 — 14:58
(2) Да Конфигуратор х64
EvgKolivagin
5 — 28.12.21 — 14:58
(3) Правда у меня не типовая, но не думаю что это как-то влияет
vtolga
6 — 28.12.21 — 15:38
Проверь место на диске
EvgKolivagin
7 — 28.12.21 — 16:02
(6) Места достаточно
EvgKolivagin
8 — 28.12.21 — 16:04
Думаю дело в том, что есть вот такое ограничение, на которое я не обратил внимания до обновления:
Внимание! Текущая версия конфигурации «Бухгалтерия предприятия» предназначена для использования с версиями технологической платформы 1С:Предприятие 8 не ниже 8.3.18.1732, 8.3.19.1458, 8.3.20.1661.
Сейчас попробую на файловой обновиться.
EvgKolivagin
9 — 28.12.21 — 17:29
После установки платформы 8.3.18.1741 и обновления базы с версии БП 3.0.103.12 на 3.0.105.45 а с нее уже на 3.0.106.40 процесс обновления начался
MWWRuza
10 — 28.12.21 — 17:59
(1) Я сегодня обновлял базовую. По сути, можно было не обновлять, до обновления падала при запуске с похожей ошибкой(только более подробно писала, что именно не может сделать), и после обновления ничего не поменялось. Оказалась проблема с каким-то из патчей, он его куда-то пытался скопировать и это не получалось. Решилось удалением патчей(расширений), на которые ругалось, через дополнительные параметры в окне запуска, так, как версия базовая, просто из конфигуратора удалить патчи нельзя.
MWWRuza
11 — 28.12.21 — 18:02
MWWRuza
12 — 28.12.21 — 18:05
И в статье не полный текст ошибки приведен, у меня в конце было именно про ошибку файловой операции.
PS Обновление платформы до удаления патчей, мне не помогло…
EvgKolivagin
13 — 28.12.21 — 21:12
(10) У меня отсутствуют какие-либо патчи или расширения в моей конфигурации, так что думаю эти проблемы не связаны
МимохожийОднако
14 — 28.12.21 — 21:25
(8) В данном случае надо без раздумий сначала обновить платформу до минимально необходимой
kubik_live
15 — 28.12.21 — 22:30
Обновлялся 3.0.106.40 на платформе 8.3.17.2231 (х64) — файловая, типовая
всё прошло штатно
kubik_live
16 — 28.12.21 — 22:32
(8) В 3.0.106.40 — режим совместимости 8.3.16 стоит…
На чтение 2 мин. Опубликовано 15.12.2019
При открытии 1С система вываливает ошибку с сообщением «Ошибка при выполнении файловой операции…».Наиболее вероятная причина этому — неверно настроенные права данного пользователя на каталог с БД.
Если база находится на удаленном компьютере, попробуйте перепрописать путь к ней, скорее всего удаленный компьютер запросит логин и пароль.
Если же каталог с базой находится на локальном компьютере, то проверьте, имеется ли у данного пользователя права на доступ к нему.
При подключении к базе в версий 1С, иногда возникает ошибка доступа к файлу 1Cv8.cdn. Причин этой ошибки несколько.
Первая, она же самая распространенная — база 1С расположена не на отдельном сервере, а на одном из компьютеров локальной сети. Естественно, никакого ДНС-сервера на нем нет, права на папку с базой могут слетать при обыкновенном обновлении Windows — поэтому и теряется сетевой доступ к базе данных.
Остальные причины можно объединить в одну — проблемы с сетью на уровне роутеров, коннекторов, настройки антивируса и брандмауэра, блокирующие сетевые подключения.
Для устранения этой ошибки первым делом надо проверить все сетевые соединения и сетевое оборудование, затем права на папку с базой 1C, сетевые настройки компьютера, настройки антивируса и брандмауэра.
Если проблема будет возникать снова, стоит попробовать установить на компьютер с базой ДНС-сервер стороннего производителя, например Posadis DNS server и настроить его. Затем на других компьютерах локальной сети прописать статичные ip-адреса, а как основной ДНС-сервер указать свежеустановленный, если сеть управляются шлюзом или роутером со своим ДНС-сервером — прописать его адрес в качестве альтернативного.
Ну а на будущее спланировать размещение своей базы 1С на серверной операционной системе, на таких ОС этой ошибки при правильных настройках сети не возникает. Даже необязательно покупать сервер — можно разместить базу 1С в облачном хранилище.
Возникает следующая ошибка с текстом: «Ошибка при выполнении файловой операции RuntimeCacheVersions»
Почистить кэш в appdata, перенести файл базы в чистую папку, почистил temp, из списка соответственно тоже удалить и добавить обратно. Выполнить chdbfl ошибок не показал.
В итоге с 12 платформы открылся документ, а более поздние это 13 и 14 они 64 бита, винда 7, может быть как то с этим связано.
Ошибка обновления базы в режиме 1С: Предприятие: Ошибка при выполнении файловой операции ‘v8srvr://server/Config/’ по причине: Ошибка при выполнении файловой операции Попытка поместить указатель на файл перед началом файла
Описание ошибки:
При обновлении конфигурации 1С: Комплексная автоматизация, ред. 1.1 при установке релиза 1.1.104.1 и запуска серверной базы в режиме 1С: Предприятие для завершения обновления релиза после согласия лицензионного соглашения возникла ошибка, которая фатально прерывала дальнейшую работу с базой:
Ошибка при выполнении файловой операции ‘v8srvr://ECO-SERVER2/1C-ECO82/Config/7ad7a83c-ceed-4eaf-871f-23830205ec2f.0’
по причине:
Ошибка при выполнении файловой операции ‘C:Usersadmin1CAppDataLocalTempv8_EBA6_7.tmp’. 131(0x00000083): Попытка поместить указатель на файл перед началом файла.
Найденные решения:
После подтверждения на продолжение обновления практически сразу же, в ближайшие секунды, долго ждать не приходилось.
Возникала ошибка. При повторном запуске базы в режиме 1С: Предприятие повторялось то же самое. Скрин не совсем тот, а уже сделанный позднее, когда ошибка себя проявила повторно, после обновления конфигурации другим релизом (об этом подробнее см. в конце публикации), но в точности иллюстрирующий ситуацию. Разница лишь в том, какой текст следует после «‘v8srvr://<имя_сервера>/<имя_базы>/Config/»
Вот полный текст ошибки
Сразу же при виде формулировки «Ошибка при выполнении файловой операции ‘v8srvr://<имя_сервера>/<имя_базы>/Config/7ad7a83c-ceed-4eaf-871f-23830205ec2f.0’ по причине:» рука потянулась выполнить «Тестирование и исправление базы данных»
Но, увы, тестирование не повлияло на ситуацию. Ошибка вновь возникала. И тут внимание обратилось ко второй половине формулировки ошибки: «Ошибка при выполнении файловой операции ‘C:Usersadmin1CAppDataLocalTempv8_EBA6_7.tmp’. 131(0x00000083): Попытка поместить указатель на файл перед началом файла.»
В этом пути явно присутсвует папка со временными файлами базы. Тогда было решено выполнить простую операцию удаления и добавления базы в списке баз, чтобы очистить пользовательские временные файлы, связанные с базой.
И это дало положительный результат. Обновление базы после этого было выполнено успешно.
P.S.
P.S.: ситуация имела повторное возникновение еще позднее (т.к. выполнялось продолжительное обновление конфигурации 1С: Комплексная автоматизация 1.1, было пропущено чуть более 20 релизов) но в сопряжении с ошибкой, очень похожей по формулировке на ту, что описана в описании ошибки Ошибка разбора XML: -[1,202] Фатальная ошибка: expected ‘>’ . Но, если ознакомиться с похожей ошибкой, то можно увидеть, что она тоже решилась в свое время удалением/добавлением базы в списке баз 1С: Предприятия 8, что очистило пользовательские файлы, связанные с базой и нормализовало дальнейшую работу без дополнительных действий, кроме тех, что описаны выше.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
24-04-2019
Журавлев А.С.
(Сайт azhur-c.ru)
Ошибка 1С при выполнении файловой операции или Ошибка операции с файлом базы данных, возникает когда 1С не может получить доступ к файлу базы данных, не может найти папку с базой или создать в ней необходимые служебные файлы.
Ошибка 1C при выполнении файловой операции |
Здесь мы видим частный и явно описанный случай проблемы. После обновления Windows на компьютере с базой, бухгалтер со второй машины не смог зайти в базу. Программа выдала ошибку как на скриншоте.
Описание: «Вход пользователя не выполнен из-за ограничений учётной записи. Например, пустые пароли не разрешены; ограничено число входов или включено ограничение политики».
В рассматриваемом примере 1С явно указывает на возможные источники проблемы. После установки патча винда сбросила некоторые настройки сетевой политики безопасности, и по умолчанию перестала пускать пользователей с учёткой без пароля.
Чтобы починить, нужно на ПК с базой зайти в Панель управлени — Центр управления сетями и общим доступом — Изменить дополнительные параметры общего доступа — Все сети — Общий доступ с парольной защитой — установить флаг Отключить общий доступ с парольной защитой.
Если не хочется бродить в недрах панели управления, можно открыть редактор политик напрямую:
Пуск — Выполнить (или Win+R) — secpol.msc;
Переходим в Локальные политики — Параметры безопасности — Учетные записи: разрешить использование пустых паролей только при консольном входе устанавливаем значение Отключен.
Какие ещё причины могут вызвать появление подобной ошибки:
- Некорректная работа антивируса. Обычно этим периодически грешит Касперский: нужно добавить приложение 1С и папки с базами в исключение. Иногда помогает только полная переустановка антивируса.
- Некорректная настройка общего доступа к папке с базой: нет прав у конкретного пользователя или прав на запись/изменение в папку. Проверить это очень просто: нужно перейти в папку (можно скопировать путь из окна запуска 1С) и попробовать создать в ней любой файл. Хотя бы обычный текстовый документ. Если не получается или папка не открывается — скорее всего оно.
Рекламы в блоге нет, заметки я пишу из чистого энтузиазма. Но если статья оказалась полезной, вы можете поддержать блог, отправив символическую сумму через форму ниже. Ваша поддержка вдохновляет меня на создание новых статей.
Автор Executioner, 16 янв 2015, 12:32
0 Пользователей и 1 гость просматривают эту тему.
В сети 6 компов и server 2008. Все в одной группе. Ранее работали через удаленный стол на сервере. Стал переделывать на клиент-сервер. 5 компов подключились без проблем. Но шестой,с Windows 7, выдает ошибку
«Ошибка при выполнении файловой операции ServerbuhБаза 1С1cv8.cdn»
Понимаю,что проблема в доступе к папке База на серваке. Но не знаю, где еще смотреть. Проблема точно на клиентском компе. Папка расшарена по всем правилам. Подскажите,пожалуйста, какие нужно политики смотреть или что еще? Удаленный стол ведь работал. Стоит учетка Администратора, как и у остальных.
Дело в том, что я работаю здесь лишь неделю и бухгалтер сказал, что раньше в этом компе копался другой «мастер». Наверняка он что-то где-то прикрыл.
Спасибо.
Executioner, когда вы говорите «клиент-сервер» я подразумеваю, что вы настраиваете сервер 1С в связке с MS-SQL, но судя по вашему описанию это не так. Вы как и раньше настраиваете файловую версию 1С, только пытаетесь расшарить ее по сети.
Попробуйте в этой папке на сервера с неработающей машины создать и удалить какой-нибудь текстовый файл. Если система не даст, то проблема в правах на папку. Соответственно нужно смотреть как у вас в сети назначаются права. Варианта может быть два: подключение по рабочим группам, раздача прав через подключение к доменам.
Цитата: MuI_I_Ika от 16 янв 2015, 12:47
Executioner,
Попробуйте в этой папке на сервера с неработающей машины создать и удалить какой-нибудь текстовый файл. Если система не даст, то проблема в правах на папку. Соответственно нужно смотреть как у вас в сети назначаются права. Варианта может быть два: подключение по рабочим группам, раздача прав через подключение к доменам.
Не SQL. Просто база лежит на сервере. Папка не видна в сети. Я просто прописываю путь к ней «ServerbuhБаза 1С»
У нас создана рабочая группа,домена нет.
Добавлено: 16 янв 2015, 14:33
Вот настройка папки (во вложении)
Ну а манипуляция с файлом удалась или нет?
Судя по картинке права назначены администраторам компьютера serverbuh. Но пользователь, когда работает со своего компьютера использует свою локальную учетную запись и учетки serverbuh ему недоступны.
Цитата: MuI_I_Ika от 16 янв 2015, 21:12
Ну а манипуляция с файлом удалась или нет?Судя по картинке права назначены администраторам компьютера serverbuh. Но пользователь, когда работает со своего компьютера использует свою локальную учетную запись и учетки serverbuh ему недоступны.
Я с файлом ничего не делал, т.к. сервер не виден с локальных машин.
Поясните, пожалуйста, что значит «использует свою локальную учетную запись и учетки serverbuh ему недоступны». Компьютер имеет имя buh1. Что нужно поменять,чтоб сервер был доступен?
Спасибо.
Ну вот поэтому ничего и не получается. Для того чтобы работало папка должна быть расшарена и нельзя ограничивать пользователями, поскольку вы не используете доменные учетные записи.
То есть грубо говоря сделать надо вот так:
Хотел бы вернуться к теме сообщения.
Пытаюсь перенести 1С с одного «сервера» на другой (железо мощнее)
При запуске с «клиента» та же ошибка, но вроде все разрешения выданы правильно. В свойствах общего доступа папки оставил количество одновременных подключений 20.
Сама папка и все вложенные структуры замечательно видна при выполнении команды с клиентской машины «192.168.1.10Имя_папки»
В пути к базе пробовал ставить и IP-адрес, и имя машины-сервера, без разницы.
На сервере и на клиенте W7Prof x64. 1С Предприятие 8,3.
Ранее сервером являлась машина под WinXPProf SP3 — проблем не было и нет.
Текстовый файл дает создавать, редактировать и удалять в любом месте иерархии.
Цитата: Ujin07 от 27 фев 2017, 18:01
Хотел бы вернуться к теме сообщения.
Пытаюсь перенести 1С с одного «сервера» на другой (железо мощнее)
При запуске с «клиента» та же ошибка
Ну, если к теме, то в изначальной теме была клиент-серверная база 1С
И в свойствах базы (кнопка Изменить в списке баз) не переключили с радио-кнопки:
«На данном компьютере или на компьютере в локальной сети» на «На сервере 1С:Предприятия» и просматривать в расшаренной папке что-то было незачем, т.к. последнее имело смысл только для файловой базы
Сори что поднимаю тему, но в 2020 году она как оказалось актуальна. Так же поймал на терминальнике данную ошибку «Ошибка при выполнении файловой операции», 1с 8.3, где я могу посмотреть логи или события которые мне помогут понять проблему, саму 1ску не обновляли, админы только делали обслуживание сервера пару недель назад
Теги:
- Форум 1С
- ►
ОБЩИЙ ТЕМАТИЧЕСКИЙ ФОРУМ 1С - ►
1С Сервер, железо, локальные сети - ►
Ошибка при выполнении файловой операции 1cv8.cdn
Похожие темы (5)
Поиск
Содержание:
1. Об ошибке при выполнении файловой операции
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
1. Об ошибке при выполнении файловой операции
Приветствую, коллеги! В данной статье будет описана ошибка «Ошибка при выполнении файловой операции», и подробно рассмотрены способы ее устранения.
Когда происходит обновление конфигураций в 1С 8, по завершении обновления, часто появляется ошибка, которая гласит «Ошибка при выполнении файловой операции – файл не содержит доступных обновлений».
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
Рассмотрим методы, при помощи которых, можно устранить ошибку при выполнении файловой операции в 1С.
Итак, первый способ – это попробовать сделать обновление при помощи файлов по обновлению вида «релиз 1с*.cfu». Если это не помогло, то можно попробовать обновить систему при помощи общего файла вида «полный релиз 1С*.cf».
Вторым способом будет проверка на соответствие общей версии системы 1С с минимальными требованиями версии конфигурации 1С, которую обновляем.
Третий способ устранения ошибки при выполнении файловой операции в 1С – более сложный, но действенный. Необходимо открыть в конфигурацию от поставщика в режиме Конфигуратора. Если ошибка всё так же появляется, то необходимо удалить конфигурацию поставщика, а затем опять установить. По сути, в данном варианте «вытягивается» последняя, рабочая версия данной конфигурации и обновление будет завершено без ошибок.
Рассмотрим подробнее третий способ. Пусть у нас уже есть некоторая конфигурация 1С KORG 1-ой версии, которая работает, но нужно поставить 2-ю версию, то есть обновить версию конфигурации 1С 8.3. Когда происходит обновление, всплывает ошибка «Ошибка при выполнении файловой конфигурации». Порядок действий в этом случае:
1. скачать релиз 1С KORG с версией 1*.cf;
2. копируем нашу базу данных;
3. в конфигураторе, который соответствует обновляемой базе, переходим по пути: «Конфигурация → Поддержка → Настройки поддержки → Снять с поддержки». В случае, если кнопка для снятия с поддержки недоступна, необходимо сперва включить возможные изменения. После этого нужно дать согласие, если система 1С будет уточнять что-либо или подтверждать действия;
4. Далее переходим по следующему пути: «Конфигурация → Сравнить и объединить с конфигурацией из файла…». Здесь необходимо выбрать файл «полный релиз 1С KORG версии 1*.cf»;
5. Далее перед нами появится окно, в котором система 1С будет запрашивать постановление на учёт для поддержки, на это уведомление обязательно отвечаем согласием;
6. В случае, если наша конфигурация является типовой, откроется окно по сравнению конфигураций. В нем обязательно убираем все «галочки». Далее последует объединение конфигураций;
7. В новом окне кликаем на «Сохранить изменения»;
8. Ещё раз сохраняем базу данных;
9. Обновляем конфигурацию 1С стандартным способом.
Если всё сделать, согласно инструкции выше, то в вашей конфигурации 1С 8.3 «Ошибка при выполнении файловой операции» больше не возникнет. Спасибо за внимание!
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Ошибка при выполнении файловой операции |
Я |
zoran
09.06.21 — 15:35
Приветствую, уважаемые форумчане.
Поделитесь, пожалуйста, опытом, может кто сталкивался. Из-за чего может возникать ошибка: «Ошибка при выполнении файловой операции ‘C:UsersUSR1CV8AppDataLocalTempv8_1BF4_352.mxl’». Ошибка происходит при попытке открыть элемент справочника. Ошибка не постоянная, может появиться, а может и нет. База на SQL. Сервер виртуальный. Очень напрягает такая ситуация, особенно, если непонятная причина.
mikecool
1 — 09.06.21 — 15:37
смотри, что у тебя при открытии происходит, видимо коряво отчет формируется
zoran
2 — 10.06.21 — 11:05
(1) При открытии нашел место кода, где пишется в этот временный файл. Но проблема то несколько в ином, в том, что в один момент времени все без ошибок, а в другой момент времени выдает эту ошибку. Вот и хотим понять, на чьей стороне ошибка: диск виноват (хоть и виртуальный), права на каталог «тупят» (хотя всем дали полные) или что-то другое, неизвестное пока. Может был у кого прецедент и выяснили причину?
1Сергей
3 — 10.06.21 — 12:56
(2) Места хватает на сервере?
zoran
4 — 10.06.21 — 13:03
(3) Не зависит особо от этого. Бывает достаточно места, бывает мало остается, но ошибка в обоих случаях может появляться. Да и файл этот совсем небольшого размера же, для него уж места предостаточно.
Kassern
5 — 10.06.21 — 13:04
(0) может файл занят а с ним какие то манипуляции хотите сделать. Когда он не занят, то работает, когда не успевает его освободить, тогда ошибку ловите.
zoran
6 — 10.06.21 — 13:06
(5) Так он вроде только при данном событии создается (при открытии элемента справочника, в смысле), а затем тут же удаляется.
1Сергей
7 — 10.06.21 — 13:08
(6) всегда с одним и тем же именем? А если двое отчет откроют?
ДенисЧ
8 — 10.06.21 — 13:10
(7) Видно же, что это временный файл…
Kassern
9 — 10.06.21 — 13:11
(6) ругается при создании, или при удалении?
Kassern
10 — 10.06.21 — 13:13
(6) если не секрет, для чего вы временный файл создаете, что там такого специфического, чего нельзя во временное хранилище пихнуть?
zoran
11 — 10.06.21 — 13:25
(7) Разный
zoran
12 — 10.06.21 — 13:26
(9) Пишет, что при вызове Write
zoran
13 — 10.06.21 — 13:27
(10) Конфигурация специализированная, 1С Отель. Разработчики так сделали
Kassern
14 — 10.06.21 — 13:29
(13) а что на это говорят разработчики этого чудо решения?
Kassern
15 — 10.06.21 — 13:32
(12) если код не большой, где этот временный файл создается, пишется и удаляется, то можете сюда кусок скинуть, либо на пастебин ссылкой. Возможно там где-нить в коде косяк.
zoran
16 — 10.06.21 — 13:58
(14) Отмалчиваются
zoran
17 — 10.06.21 — 13:58
(15)
Function cmGetAbsoluteColor(pColor) Export
If pColor.Type = ColorType.Absolute Then
Return pColor;
EndIf;
vSD = New SpreadsheetDocument;
vSD.Area(«R1C1»).BackColor = pColor;
vTF = GetTempFileName(«mxl»);
vSD.Write(vTF, SpreadsheetDocumentFileType.MXL7);
vSD.Read(vTF);
vColor = vSD.Area(«R1C1»).BackColor;
vSD = Undefined;
DeleteFiles(vTF);
Return vColor;
EndFunction
1Сергей
18 — 10.06.21 — 13:59
(17) расстрелять!
Kassern
19 — 10.06.21 — 14:11
(17) И это все, для того чтобы вернуть цвет ячейки… Может у вас ошибка каждый раз когда pColor.Type <> ColorType.Absolute?
DrZombi
20 — 10.06.21 — 14:18
(0) Предлагаю, не писать этот файл
DrZombi
21 — 10.06.21 — 14:21
(17) Этот ужас, где пишется?
На клиенте или Сервере?
1Сергей
22 — 10.06.21 — 14:23
(15)
Function cmGetAbsoluteColor(pColor) Export
//If pColor.Type = ColorType.Absolute Then
// Return pColor;
//EndIf;
//vSD = New SpreadsheetDocument;
//vSD.Area(«R1C1»).BackColor = pColor;
//vTF = GetTempFileName(«mxl»);
//vSD.Write(vTF, SpreadsheetDocumentFileType.MXL7);
//vSD.Read(vTF);
//vColor = vSD.Area(«R1C1»).BackColor;
//vSD = Undefined;
//DeleteFiles(vTF);
//Return vColor;
Возврат Новый Цвет(255, 255, 255);
EndFunction
С Вас сто рублёв
1Сергей
23 — 10.06.21 — 14:23
(22) -> (17)
zoran
24 — 10.06.21 — 14:30
(19) Проверил в отладчике. Когда не равен, проскакивает без ошибок.
Kassern
25 — 10.06.21 — 14:32
(23) New Color() же)
zoran
26 — 10.06.21 — 14:32
(21) Это в общем модуле, на сервере
1Сергей
27 — 10.06.21 — 14:36
(25) не скрепно
DrZombi
28 — 10.06.21 — 14:39
(0) Ну народ, уже давно не пишут, все через память :)))
&НаСервере
Function cmGetAbsoluteColor(pColor) Export
If pColor.Вид = ВидЦвета.Абсолютный Then
Return pColor;
EndIf;
Поток = Новый ПотокВПамяти();
vSD = Новый ТабличныйДокумент;
vSD.Область(«R1C1»).ЦветФона = pColor;
vTF = ПолучитьИмяВременногоФайла («mxl»);
vSD.Записать(Поток, ТипФайлаТабличногоДокумента.MXL7);
Поток.Перейти(0,ПозицияВПотоке.Начало);
vSD.Прочитать(Поток, СпособЧтенияЗначенийТабличногоДокумента.Значение);
vColor = vSD.Область(«R1C1»).BackColor;
vSD = Неопределено;
//УдалитьФайлы(vTF);
Return vColor;
EndFunction
DrZombi
29 — 10.06.21 — 14:39
+(28) Ну поток уж сам закроешь
DrZombi
30 — 10.06.21 — 14:40
+ (0) Вот получше так…
&НаСервере
Function cmGetAbsoluteColor(pColor) Export
If pColor.Вид = ВидЦвета.Абсолютный Then
Return pColor;
EndIf;
Поток = Новый ПотокВПамяти();
vSD = Новый ТабличныйДокумент;
vSD.Область(«R1C1»).ЦветФона = pColor;
vSD.Записать(Поток, ТипФайлаТабличногоДокумента.MXL7);
Поток.Перейти(0,ПозицияВПотоке.Начало);
vSD.Прочитать(Поток, СпособЧтенияЗначенийТабличногоДокумента.Значение);
vColor = vSD.Область(«R1C1»).BackColor;
Поток.Закрыть();
Поток = Неопределено;
vSD = Неопределено;
//УдалитьФайлы(vTF);
Return vColor;
EndFunction
Kassern
31 — 10.06.21 — 14:42
(29) ну это ладно, что mxl, а если бы xlsx был то в потоке уже так просто табдок не прочитаешь…
DrZombi
32 — 10.06.21 — 14:43
(31) У нас не ексель
DrZombi
33 — 10.06.21 — 14:43
+ Вот будет ексель, тогда и поговорим про скорость
Kassern
34 — 10.06.21 — 14:44
(33) я одного понять не могу, чем создателей webцвета не устроили или различные типовые стили?
DrZombi
35 — 10.06.21 — 14:45
(34) Ненаю, где там это используется, я вот еще не пойму, нак-зачемой по англиски писать
DrZombi
36 — 10.06.21 — 14:46
+ Потом даже модифицировать не могут
Kassern
37 — 10.06.21 — 14:47
(35) может у индусов заказывали конфу?))
zoran
38 — 10.06.21 — 14:47
(35) Там вся конфа такая. Специально похоже, чтобы сложнее было понять, что они там разработали)
DrZombi
39 — 10.06.21 — 14:51
(38) Соболезную, держи пример, не мучайся хоть со справочником
zoran
40 — 10.06.21 — 14:53
Кстати, не только mxl пишут. Есть внешний ресурс Travelline, к которому 1С коненктится, забирает инфу и создает брони в 1С. При этом так же периодически ошибки вываливаются такого типа: «Failed to create reservation: Ошибка при выполнении файловой операции ‘C:UsersUSR1CV8AppDataLocalTempБронь_9719.pdf’; Booking №:20210613-19260-96172841».
zoran
41 — 10.06.21 — 14:54
Вопрос изначальный по идее так и остается. По какой причине то проходит запись в Temp, то нет. Бред какой-то происходит.
DrZombi
42 — 10.06.21 — 14:54
(40) Подвиг за день не должен превышать больше одного… Это вы дальше сами
zoran
43 — 10.06.21 — 14:54
(42)
DrZombi
44 — 10.06.21 — 14:55
(41) Если оба юзвера или много считывают, то может быть так, что у всех одно и тоже временное имя, 1С… что сказать
Kassern
45 — 10.06.21 — 14:56
(40) тоже наверное можно без создания временного файла обойтись.
zoran
46 — 10.06.21 — 14:58
(44) Интересное предположение. Может так и происходит на самом деле
DrZombi
47 — 10.06.21 — 14:59
(46) Код покажи, вот этого (40) — Чисто в познавательных целях
Kassern
48 — 10.06.21 — 14:59
(46) создайте свою папочку на серваке и дайте к ней доступ. Сами контролируйте уникальность файлов. Либо вообще поправьте код, чтобы избыточные временные файлы не создавались.
SSSSS_AAAAA
49 — 10.06.21 — 15:00
(41) Про антивирус уже писали?
Kassern
50 — 10.06.21 — 15:00
(47) скорее всего возвращается ссылка на pdf брони созданной, а ее пытаются во временном файле записать)
DrZombi
51 — 10.06.21 — 15:01
+(46) Вот тебе генератор имен.
Функция УникальноеИмя(расширение)
Возврат «» + КаталогВременныхФайлов() + СокрЛП(Новый УникальныйИдентификатор())+».»+расширение;
КонецФункции
Kassern
52 — 10.06.21 — 15:06
(51) а вот тут почитаешь и 1ска тебе тыкает, что так делать не надо, только для веб клиента)
https://its.1c.ru/db/v8std/content/542/hdoc
Kassern
53 — 10.06.21 — 15:07
(52) тут понимаешь ли 1ской все гарантируется и должно работать)
DrZombi
54 — 10.06.21 — 15:09
(52) Если по каким-то причинам прикладной код не удалит созданный файл (например, между блоками создания и удаления временного файла возникнет штатное или нештатное исключение), этот файл так и останется в каталоге временных файлов.
…
А теперь вопрос, какой метод от 1С, удалит все временные файлы на сервере?
На сервере, где так же есть такая вещь, как КЭШ сервера
Kassern
55 — 10.06.21 — 15:10
(54) вроде бы перезапуск службы 1с это делать должен)
DrZombi
56 — 10.06.21 — 15:11
(54) >>> Если по каким-то причинам прикладной код не удалит созданный файл
Файл в любом случаи останется
…Или 1С так же повторно заюзает этот файл?
DrZombi
57 — 10.06.21 — 15:11
(55) Что? Вы хотите сказать, что при рестарте службы, у многих пользователей автоматом гарантировано все ляжет? :)))
DrZombi
58 — 10.06.21 — 15:13
+(55) и тут же 1С разрешает этот код в (51) для вэба :))))
3.1. При выполнении кода веб-клиентом метод ПолучитьИмяВременногоФайла недоступен. Поэтому для формирования имен временных файлов и каталогов необходимо использовать функцию КаталогВременныхФайлов и объект УникальныйИдентификатор.
Неправильно:
Каталог = КаталогВременныхФайлов();
ИмяФайла = «TempDataFile.xml»;
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);
Правильно:
Каталог = КаталогВременныхФайлов();
ИмяФайла = Строка(Новый УникальныйИдентификатор) + «.xml»;
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);
zoran
59 — 10.06.21 — 15:16
(47) Вот этот кусок кода:
vConfirmationFileName = StrReplace(vDocObj.Ref.Metadata().Presentation() + » » + Format(vDocObj.GuestGroup.Code, «ND=12; NFD=0; NG=»), » «, «_») + «.pdf»;
vConfirmationFilePath = cmGetFullFileName(vConfirmationFileName, TempFilesDir());
vConfirmationSpreadsheet.Write(vConfirmationFilePath, SpreadsheetDocumentFileType.PDF);
Kassern
60 — 10.06.21 — 15:16
(58) я про это и пишу, что для только для вэба и можно. По идее, когда сеанс перезапускается, который создавал временный файлы, то они подчищаются. Если же перезапустить службу 1ски, то все сеансы схлопнутся, все временные файлы созданные в этих сеансах должны удалиться платформой.
Kassern
61 — 10.06.21 — 15:18
(59) а где гарантия, что vConfirmationFileName уникально? Если к примеру 2 человека одновременно этот кусок кода выполнят.
Kassern
62 — 10.06.21 — 15:20
(59) может у вас действительно, что то с правами на серваке? Пробовали на другой машинке базу развернуть?
zoran
63 — 10.06.21 — 15:39
(62) К сожалению нет такой возможности.
DrZombi
64 — 10.06.21 — 17:12
(59) Проблемы, т.к. нам тут не видно.
1. Что это за код и до какой степени он уникален? «vDocObj.GuestGroup.Code»
2. Для чего это пишут в формате PDF?
3. Вопрос из (61), а где гарантия?
DrZombi
65 — 10.06.21 — 17:12
(60) Сколько раз перезапускал, такого не замечал
DrZombi
66 — 10.06.21 — 17:15
+(60) Если Автор (0) гарантирует, что будет удалять такие файлы САМ, то вероятность зависших файлов равна ничтожному проценту.
Т.е. парочка файлов просочится, но не более.
Учитывая, сколько раз мне приходилось чистить папку темп на сервере, для восстановления работоспособности баз, после динамической.обновы. и др. сбоев.
Вот все что там пишется, зависает, не стоит и ломаной десятины…
Главное Серверу 1С не жадничать дискового пространства под его временные файлы
DrZombi
67 — 10.06.21 — 17:17
+(59) А проверки на то, что файл уже есть, тоже присутствуют?
DrZombi
68 — 10.06.21 — 17:18
Кода мало, давай под 1000 строк
DrZombi
69 — 10.06.21 — 17:18
Не жадничай
Kassern
70 — 10.06.21 — 17:58
(67) да какая там проверка, все же тут есть:
vConfirmationFilePath = cmGetFullFileName(vConfirmationFileName, TempFilesDir()); создали путь во временном каталоге
vConfirmationSpreadsheet.Write(vConfirmationFilePath, SpreadsheetDocumentFileType.PDF); записали табдок по этому пути в формате пдф.
DrZombi
71 — 11.06.21 — 06:34
(70) Если так, то это жесть :)))
zoran
72 — 22.06.21 — 09:02
Всем спасибо за обсуждение. В итоге, после общения с ТП конфигурации выяснилось, что запись на диск требуется для отправки печатных форм документов (бронирования, в частности) клиентам. И в настройках есть возможность отключить данную опцию. Далее понаблюдаем, исчезнут ли ошибки.
На чтение 2 мин. Опубликовано 15.12.2019
При открытии 1С система вываливает ошибку с сообщением «Ошибка при выполнении файловой операции…».Наиболее вероятная причина этому — неверно настроенные права данного пользователя на каталог с БД.
Если база находится на удаленном компьютере, попробуйте перепрописать путь к ней, скорее всего удаленный компьютер запросит логин и пароль.
Если же каталог с базой находится на локальном компьютере, то проверьте, имеется ли у данного пользователя права на доступ к нему.
При подключении к базе в версий 1С, иногда возникает ошибка доступа к файлу 1Cv8.cdn. Причин этой ошибки несколько.
Первая, она же самая распространенная — база 1С расположена не на отдельном сервере, а на одном из компьютеров локальной сети. Естественно, никакого ДНС-сервера на нем нет, права на папку с базой могут слетать при обыкновенном обновлении Windows — поэтому и теряется сетевой доступ к базе данных.
Остальные причины можно объединить в одну — проблемы с сетью на уровне роутеров, коннекторов, настройки антивируса и брандмауэра, блокирующие сетевые подключения.
Для устранения этой ошибки первым делом надо проверить все сетевые соединения и сетевое оборудование, затем права на папку с базой 1C, сетевые настройки компьютера, настройки антивируса и брандмауэра.
Если проблема будет возникать снова, стоит попробовать установить на компьютер с базой ДНС-сервер стороннего производителя, например Posadis DNS server и настроить его. Затем на других компьютерах локальной сети прописать статичные ip-адреса, а как основной ДНС-сервер указать свежеустановленный, если сеть управляются шлюзом или роутером со своим ДНС-сервером — прописать его адрес в качестве альтернативного.
Ну а на будущее спланировать размещение своей базы 1С на серверной операционной системе, на таких ОС этой ошибки при правильных настройках сети не возникает. Даже необязательно покупать сервер — можно разместить базу 1С в облачном хранилище.
Возникает следующая ошибка с текстом: «Ошибка при выполнении файловой операции RuntimeCacheVersions»
Почистить кэш в appdata, перенести файл базы в чистую папку, почистил temp, из списка соответственно тоже удалить и добавить обратно. Выполнить chdbfl ошибок не показал.
В итоге с 12 платформы открылся документ, а более поздние это 13 и 14 они 64 бита, винда 7, может быть как то с этим связано.
Ошибка 1С при выполнении файловой операции или Ошибка операции с файлом базы данных, возникает когда 1С не может получить доступ к файлу базы данных, не может найти папку с базой или создать в ней необходимые служебные файлы.
Ошибка 1C при выполнении файловой операции |
Здесь мы видим частный и явно описанный случай проблемы. После обновления Windows на компьютере с базой, бухгалтер со второй машины не смог зайти в базу. Программа выдала ошибку как на скриншоте.
Описание: «Вход пользователя не выполнен из-за ограничений учётной записи. Например, пустые пароли не разрешены; ограничено число входов или включено ограничение политики».
В рассматриваемом примере 1С явно указывает на возможные источники проблемы. После установки патча винда сбросила некоторые настройки сетевой политики безопасности, и по умолчанию перестала пускать пользователей с учёткой без пароля.
Чтобы починить, нужно на ПК с базой зайти в Панель управлени — Центр управления сетями и общим доступом — Изменить дополнительные параметры общего доступа — Все сети — Общий доступ с парольной защитой — установить флаг Отключить общий доступ с парольной защитой.
Если не хочется бродить в недрах панели управления, можно открыть редактор политик напрямую:
Пуск — Выполнить (или Win+R) — secpol.msc;
Переходим в Локальные политики — Параметры безопасности — Учетные записи: разрешить использование пустых паролей только при консольном входе устанавливаем значение Отключен.
Какие ещё причины могут вызвать появление подобной ошибки:
- Некорректная работа антивируса. Обычно этим периодически грешит Касперский: нужно добавить приложение 1С и папки с базами в исключение. Иногда помогает только полная переустановка антивируса.
- Некорректная настройка общего доступа к папке с базой: нет прав у конкретного пользователя или прав на запись/изменение в папку. Проверить это очень просто: нужно перейти в папку (можно скопировать путь из окна запуска 1С) и попробовать создать в ней любой файл. Хотя бы обычный текстовый документ. Если не получается или папка не открывается — скорее всего оно.
Рекламы в блоге нет, заметки я пишу из чистого энтузиазма. Но если статья оказалась полезной, вы можете поддержать блог, отправив символическую сумму через форму ниже. Ваша поддержка вдохновляет меня на создание новых статей.
Содержание:
1. Об ошибке при выполнении файловой операции
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
1. Об ошибке при выполнении файловой операции
Приветствую, коллеги! В данной статье будет описана ошибка «Ошибка при выполнении файловой операции», и подробно рассмотрены способы ее устранения.
Когда происходит обновление конфигураций в 1С 8, по завершении обновления, часто появляется ошибка, которая гласит «Ошибка при выполнении файловой операции – файл не содержит доступных обновлений».
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
Рассмотрим методы, при помощи которых, можно устранить ошибку при выполнении файловой операции в 1С.
Итак, первый способ – это попробовать сделать обновление при помощи файлов по обновлению вида «релиз 1с*.cfu». Если это не помогло, то можно попробовать обновить систему при помощи общего файла вида «полный релиз 1С*.cf».
Вторым способом будет проверка на соответствие общей версии системы 1С с минимальными требованиями версии конфигурации 1С, которую обновляем.
Третий способ устранения ошибки при выполнении файловой операции в 1С – более сложный, но действенный. Необходимо открыть в конфигурацию от поставщика в режиме Конфигуратора. Если ошибка всё так же появляется, то необходимо удалить конфигурацию поставщика, а затем опять установить. По сути, в данном варианте «вытягивается» последняя, рабочая версия данной конфигурации и обновление будет завершено без ошибок.
Рассмотрим подробнее третий способ. Пусть у нас уже есть некоторая конфигурация 1С KORG 1-ой версии, которая работает, но нужно поставить 2-ю версию, то есть обновить версию конфигурации 1С 8.3. Когда происходит обновление, всплывает ошибка «Ошибка при выполнении файловой конфигурации». Порядок действий в этом случае:
1. скачать релиз 1С KORG с версией 1*.cf;
2. копируем нашу базу данных;
3. в конфигураторе, который соответствует обновляемой базе, переходим по пути: «Конфигурация → Поддержка → Настройки поддержки → Снять с поддержки». В случае, если кнопка для снятия с поддержки недоступна, необходимо сперва включить возможные изменения. После этого нужно дать согласие, если система 1С будет уточнять что-либо или подтверждать действия;
4. Далее переходим по следующему пути: «Конфигурация → Сравнить и объединить с конфигурацией из файла…». Здесь необходимо выбрать файл «полный релиз 1С KORG версии 1*.cf»;
5. Далее перед нами появится окно, в котором система 1С будет запрашивать постановление на учёт для поддержки, на это уведомление обязательно отвечаем согласием;
6. В случае, если наша конфигурация является типовой, откроется окно по сравнению конфигураций. В нем обязательно убираем все «галочки». Далее последует объединение конфигураций;
7. В новом окне кликаем на «Сохранить изменения»;
8. Ещё раз сохраняем базу данных;
9. Обновляем конфигурацию 1С стандартным способом.
Если всё сделать, согласно инструкции выше, то в вашей конфигурации 1С 8.3 «Ошибка при выполнении файловой операции» больше не возникнет. Спасибо за внимание!
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Обновлено 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.
Ошибка при выполнении файловой операции |
Я |
zoran
09.06.21 — 15:35
Приветствую, уважаемые форумчане.
Поделитесь, пожалуйста, опытом, может кто сталкивался. Из-за чего может возникать ошибка: «Ошибка при выполнении файловой операции ‘C:UsersUSR1CV8AppDataLocalTempv8_1BF4_352.mxl’». Ошибка происходит при попытке открыть элемент справочника. Ошибка не постоянная, может появиться, а может и нет. База на SQL. Сервер виртуальный. Очень напрягает такая ситуация, особенно, если непонятная причина.
mikecool
1 — 09.06.21 — 15:37
смотри, что у тебя при открытии происходит, видимо коряво отчет формируется
zoran
2 — 10.06.21 — 11:05
(1) При открытии нашел место кода, где пишется в этот временный файл. Но проблема то несколько в ином, в том, что в один момент времени все без ошибок, а в другой момент времени выдает эту ошибку. Вот и хотим понять, на чьей стороне ошибка: диск виноват (хоть и виртуальный), права на каталог «тупят» (хотя всем дали полные) или что-то другое, неизвестное пока. Может был у кого прецедент и выяснили причину?
1Сергей
3 — 10.06.21 — 12:56
(2) Места хватает на сервере?
zoran
4 — 10.06.21 — 13:03
(3) Не зависит особо от этого. Бывает достаточно места, бывает мало остается, но ошибка в обоих случаях может появляться. Да и файл этот совсем небольшого размера же, для него уж места предостаточно.
Kassern
5 — 10.06.21 — 13:04
(0) может файл занят а с ним какие то манипуляции хотите сделать. Когда он не занят, то работает, когда не успевает его освободить, тогда ошибку ловите.
zoran
6 — 10.06.21 — 13:06
(5) Так он вроде только при данном событии создается (при открытии элемента справочника, в смысле), а затем тут же удаляется.
1Сергей
7 — 10.06.21 — 13:08
(6) всегда с одним и тем же именем? А если двое отчет откроют?
ДенисЧ
8 — 10.06.21 — 13:10
(7) Видно же, что это временный файл…
Kassern
9 — 10.06.21 — 13:11
(6) ругается при создании, или при удалении?
Kassern
10 — 10.06.21 — 13:13
(6) если не секрет, для чего вы временный файл создаете, что там такого специфического, чего нельзя во временное хранилище пихнуть?
zoran
11 — 10.06.21 — 13:25
(7) Разный
zoran
12 — 10.06.21 — 13:26
(9) Пишет, что при вызове Write
zoran
13 — 10.06.21 — 13:27
(10) Конфигурация специализированная, 1С Отель. Разработчики так сделали
Kassern
14 — 10.06.21 — 13:29
(13) а что на это говорят разработчики этого чудо решения?
Kassern
15 — 10.06.21 — 13:32
(12) если код не большой, где этот временный файл создается, пишется и удаляется, то можете сюда кусок скинуть, либо на пастебин ссылкой. Возможно там где-нить в коде косяк.
zoran
16 — 10.06.21 — 13:58
(14) Отмалчиваются
zoran
17 — 10.06.21 — 13:58
(15)
Function cmGetAbsoluteColor(pColor) Export
If pColor.Type = ColorType.Absolute Then
Return pColor; EndIf; vSD = New SpreadsheetDocument; vSD.Area("R1C1").BackColor = pColor; vTF = GetTempFileName("mxl"); vSD.Write(vTF, SpreadsheetDocumentFileType.MXL7); vSD.Read(vTF); vColor = vSD.Area("R1C1").BackColor; vSD = Undefined; DeleteFiles(vTF); Return vColor; EndFunction
1Сергей
18 — 10.06.21 — 13:59
(17) расстрелять!
Kassern
19 — 10.06.21 — 14:11
(17) И это все, для того чтобы вернуть цвет ячейки… Может у вас ошибка каждый раз когда pColor.Type <> ColorType.Absolute?
DrZombi
20 — 10.06.21 — 14:18
(0) Предлагаю, не писать этот файл
DrZombi
21 — 10.06.21 — 14:21
(17) Этот ужас, где пишется?
На клиенте или Сервере?
1Сергей
22 — 10.06.21 — 14:23
(15)
Function cmGetAbsoluteColor(pColor) Export //If pColor.Type = ColorType.Absolute Then // Return pColor; //EndIf; //vSD = New SpreadsheetDocument; //vSD.Area("R1C1").BackColor = pColor; //vTF = GetTempFileName("mxl"); //vSD.Write(vTF, SpreadsheetDocumentFileType.MXL7); //vSD.Read(vTF); //vColor = vSD.Area("R1C1").BackColor; //vSD = Undefined; //DeleteFiles(vTF); //Return vColor; Возврат Новый Цвет(255, 255, 255); EndFunction С Вас сто рублёв
1Сергей
23 — 10.06.21 — 14:23
(22) -> (17)
zoran
24 — 10.06.21 — 14:30
(19) Проверил в отладчике. Когда не равен, проскакивает без ошибок.
Kassern
25 — 10.06.21 — 14:32
(23) New Color() же)
zoran
26 — 10.06.21 — 14:32
(21) Это в общем модуле, на сервере
1Сергей
27 — 10.06.21 — 14:36
(25) не скрепно
DrZombi
28 — 10.06.21 — 14:39
(0) Ну народ, уже давно не пишут, все через память :)))
&НаСервере Function cmGetAbsoluteColor(pColor) Export If pColor.Вид = ВидЦвета.Абсолютный Then Return pColor; EndIf; Поток = Новый ПотокВПамяти(); vSD = Новый ТабличныйДокумент; vSD.Область("R1C1").ЦветФона = pColor; vTF = ПолучитьИмяВременногоФайла ("mxl"); vSD.Записать(Поток, ТипФайлаТабличногоДокумента.MXL7); Поток.Перейти(0,ПозицияВПотоке.Начало); vSD.Прочитать(Поток, СпособЧтенияЗначенийТабличногоДокумента.Значение); vColor = vSD.Область("R1C1").BackColor; vSD = Неопределено; //УдалитьФайлы(vTF); Return vColor; EndFunction
DrZombi
29 — 10.06.21 — 14:39
+(28) Ну поток уж сам закроешь
DrZombi
30 — 10.06.21 — 14:40
+ (0) Вот получше так…
&НаСервере
Function cmGetAbsoluteColor(pColor) Export If pColor.Вид = ВидЦвета.Абсолютный Then Return pColor; EndIf; Поток = Новый ПотокВПамяти(); vSD = Новый ТабличныйДокумент; vSD.Область("R1C1").ЦветФона = pColor; vSD.Записать(Поток, ТипФайлаТабличногоДокумента.MXL7); Поток.Перейти(0,ПозицияВПотоке.Начало); vSD.Прочитать(Поток, СпособЧтенияЗначенийТабличногоДокумента.Значение); vColor = vSD.Область("R1C1").BackColor; Поток.Закрыть(); Поток = Неопределено; vSD = Неопределено; //УдалитьФайлы(vTF); Return vColor; EndFunction
Kassern
31 — 10.06.21 — 14:42
(29) ну это ладно, что mxl, а если бы xlsx был то в потоке уже так просто табдок не прочитаешь…
DrZombi
32 — 10.06.21 — 14:43
(31) У нас не ексель
DrZombi
33 — 10.06.21 — 14:43
+ Вот будет ексель, тогда и поговорим про скорость
Kassern
34 — 10.06.21 — 14:44
(33) я одного понять не могу, чем создателей webцвета не устроили или различные типовые стили?
DrZombi
35 — 10.06.21 — 14:45
(34) Ненаю, где там это используется, я вот еще не пойму, нак-зачемой по англиски писать
DrZombi
36 — 10.06.21 — 14:46
+ Потом даже модифицировать не могут
Kassern
37 — 10.06.21 — 14:47
(35) может у индусов заказывали конфу?))
zoran
38 — 10.06.21 — 14:47
(35) Там вся конфа такая. Специально похоже, чтобы сложнее было понять, что они там разработали)
DrZombi
39 — 10.06.21 — 14:51
(38) Соболезную, держи пример, не мучайся хоть со справочником
zoran
40 — 10.06.21 — 14:53
Кстати, не только mxl пишут. Есть внешний ресурс Travelline, к которому 1С коненктится, забирает инфу и создает брони в 1С. При этом так же периодически ошибки вываливаются такого типа: «Failed to create reservation: Ошибка при выполнении файловой операции ‘C:UsersUSR1CV8AppDataLocalTempБронь_9719.pdf’; Booking №:20210613-19260-96172841».
zoran
41 — 10.06.21 — 14:54
Вопрос изначальный по идее так и остается. По какой причине то проходит запись в Temp, то нет. Бред какой-то происходит.
DrZombi
42 — 10.06.21 — 14:54
(40) Подвиг за день не должен превышать больше одного… Это вы дальше сами
zoran
43 — 10.06.21 — 14:54
(42)
DrZombi
44 — 10.06.21 — 14:55
(41) Если оба юзвера или много считывают, то может быть так, что у всех одно и тоже временное имя, 1С… что сказать
Kassern
45 — 10.06.21 — 14:56
(40) тоже наверное можно без создания временного файла обойтись.
zoran
46 — 10.06.21 — 14:58
(44) Интересное предположение. Может так и происходит на самом деле
DrZombi
47 — 10.06.21 — 14:59
(46) Код покажи, вот этого (40) — Чисто в познавательных целях
Kassern
48 — 10.06.21 — 14:59
(46) создайте свою папочку на серваке и дайте к ней доступ. Сами контролируйте уникальность файлов. Либо вообще поправьте код, чтобы избыточные временные файлы не создавались.
SSSSS_AAAAA
49 — 10.06.21 — 15:00
(41) Про антивирус уже писали?
Kassern
50 — 10.06.21 — 15:00
(47) скорее всего возвращается ссылка на pdf брони созданной, а ее пытаются во временном файле записать)
DrZombi
51 — 10.06.21 — 15:01
+(46) Вот тебе генератор имен.
Функция УникальноеИмя(расширение) Возврат "" + КаталогВременныхФайлов() + СокрЛП(Новый УникальныйИдентификатор())+"."+расширение; КонецФункции
Kassern
52 — 10.06.21 — 15:06
(51) а вот тут почитаешь и 1ска тебе тыкает, что так делать не надо, только для веб клиента)
https://its.1c.ru/db/v8std/content/542/hdoc
Kassern
53 — 10.06.21 — 15:07
(52) тут понимаешь ли 1ской все гарантируется и должно работать)
DrZombi
54 — 10.06.21 — 15:09
(52) Если по каким-то причинам прикладной код не удалит созданный файл (например, между блоками создания и удаления временного файла возникнет штатное или нештатное исключение), этот файл так и останется в каталоге временных файлов.
…
А теперь вопрос, какой метод от 1С, удалит все временные файлы на сервере?
На сервере, где так же есть такая вещь, как КЭШ сервера
Kassern
55 — 10.06.21 — 15:10
(54) вроде бы перезапуск службы 1с это делать должен)
DrZombi
56 — 10.06.21 — 15:11
(54) >>> Если по каким-то причинам прикладной код не удалит созданный файл
Файл в любом случаи останется
…Или 1С так же повторно заюзает этот файл?
DrZombi
57 — 10.06.21 — 15:11
(55) Что? Вы хотите сказать, что при рестарте службы, у многих пользователей автоматом гарантировано все ляжет? :)))
DrZombi
58 — 10.06.21 — 15:13
+(55) и тут же 1С разрешает этот код в (51) для вэба :))))
3.1. При выполнении кода веб-клиентом метод ПолучитьИмяВременногоФайла недоступен. Поэтому для формирования имен временных файлов и каталогов необходимо использовать функцию КаталогВременныхФайлов и объект УникальныйИдентификатор.
Неправильно:
Каталог = КаталогВременныхФайлов(); ИмяФайла = "TempDataFile.xml"; ИмяПромежуточногоФайла = Каталог + ИмяФайла; Данные.Записать(ИмяПромежуточногоФайла);
Правильно:
Каталог = КаталогВременныхФайлов(); ИмяФайла = Строка(Новый УникальныйИдентификатор) + ".xml"; ИмяПромежуточногоФайла = Каталог + ИмяФайла; Данные.Записать(ИмяПромежуточногоФайла);
zoran
59 — 10.06.21 — 15:16
(47) Вот этот кусок кода:
vConfirmationFileName = StrReplace(vDocObj.Ref.Metadata().Presentation() + " " + Format(vDocObj.GuestGroup.Code, "ND=12; NFD=0; NG="), " ", "_") + ".pdf"; vConfirmationFilePath = cmGetFullFileName(vConfirmationFileName, TempFilesDir()); vConfirmationSpreadsheet.Write(vConfirmationFilePath, SpreadsheetDocumentFileType.PDF);
Kassern
60 — 10.06.21 — 15:16
(58) я про это и пишу, что для только для вэба и можно. По идее, когда сеанс перезапускается, который создавал временный файлы, то они подчищаются. Если же перезапустить службу 1ски, то все сеансы схлопнутся, все временные файлы созданные в этих сеансах должны удалиться платформой.
Kassern
61 — 10.06.21 — 15:18
(59) а где гарантия, что vConfirmationFileName уникально? Если к примеру 2 человека одновременно этот кусок кода выполнят.
Kassern
62 — 10.06.21 — 15:20
(59) может у вас действительно, что то с правами на серваке? Пробовали на другой машинке базу развернуть?
zoran
63 — 10.06.21 — 15:39
(62) К сожалению нет такой возможности.
DrZombi
64 — 10.06.21 — 17:12
(59) Проблемы, т.к. нам тут не видно.
1. Что это за код и до какой степени он уникален? "vDocObj.GuestGroup.Code" 2. Для чего это пишут в формате PDF? 3. Вопрос из (61), а где гарантия? :)
DrZombi
65 — 10.06.21 — 17:12
(60) Сколько раз перезапускал, такого не замечал
DrZombi
66 — 10.06.21 — 17:15
+(60) Если Автор (0) гарантирует, что будет удалять такие файлы САМ, то вероятность зависших файлов равна ничтожному проценту.
Т.е. парочка файлов просочится, но не более.
Учитывая, сколько раз мне приходилось чистить папку темп на сервере, для восстановления работоспособности баз, после динамической.обновы. и др. сбоев.
Вот все что там пишется, зависает, не стоит и ломаной десятины…
Главное Серверу 1С не жадничать дискового пространства под его временные файлы
DrZombi
67 — 10.06.21 — 17:17
+(59) А проверки на то, что файл уже есть, тоже присутствуют?
DrZombi
68 — 10.06.21 — 17:18
Кода мало, давай под 1000 строк
DrZombi
69 — 10.06.21 — 17:18
Не жадничай
Kassern
70 — 10.06.21 — 17:58
(67) да какая там проверка, все же тут есть:
vConfirmationFilePath = cmGetFullFileName(vConfirmationFileName, TempFilesDir()); создали путь во временном каталоге
vConfirmationSpreadsheet.Write(vConfirmationFilePath, SpreadsheetDocumentFileType.PDF); записали табдок по этому пути в формате пдф.
DrZombi
71 — 11.06.21 — 06:34
(70) Если так, то это жесть :)))
zoran
72 — 22.06.21 — 09:02
Всем спасибо за обсуждение. В итоге, после общения с ТП конфигурации выяснилось, что запись на диск требуется для отправки печатных форм документов (бронирования, в частности) клиентам. И в настройках есть возможность отключить данную опцию. Далее понаблюдаем, исчезнут ли ошибки.
Содержание:
1. Об ошибке при выполнении файловой операции
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
1. Об ошибке при выполнении файловой операции
Приветствую, коллеги! В данной статье будет описана ошибка «Ошибка при выполнении файловой операции», и подробно рассмотрены способы ее устранения.
Когда происходит обновление конфигураций в 1С 8, по завершении обновления, часто появляется ошибка, которая гласит «Ошибка при выполнении файловой операции – файл не содержит доступных обновлений».
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
Рассмотрим методы, при помощи которых, можно устранить ошибку при выполнении файловой операции в 1С.
Итак, первый способ – это попробовать сделать обновление при помощи файлов по обновлению вида «релиз 1с*.cfu». Если это не помогло, то можно попробовать обновить систему при помощи общего файла вида «полный релиз 1С*.cf».
Вторым способом будет проверка на соответствие общей версии системы 1С с минимальными требованиями версии конфигурации 1С, которую обновляем.
Третий способ устранения ошибки при выполнении файловой операции в 1С – более сложный, но действенный. Необходимо открыть в конфигурацию от поставщика в режиме Конфигуратора. Если ошибка всё так же появляется, то необходимо удалить конфигурацию поставщика, а затем опять установить. По сути, в данном варианте «вытягивается» последняя, рабочая версия данной конфигурации и обновление будет завершено без ошибок.
Рассмотрим подробнее третий способ. Пусть у нас уже есть некоторая конфигурация 1С KORG 1-ой версии, которая работает, но нужно поставить 2-ю версию, то есть обновить версию конфигурации 1С 8.3. Когда происходит обновление, всплывает ошибка «Ошибка при выполнении файловой конфигурации». Порядок действий в этом случае:
1. скачать релиз 1С KORG с версией 1*.cf;
2. копируем нашу базу данных;
3. в конфигураторе, который соответствует обновляемой базе, переходим по пути: «Конфигурация → Поддержка → Настройки поддержки → Снять с поддержки». В случае, если кнопка для снятия с поддержки недоступна, необходимо сперва включить возможные изменения. После этого нужно дать согласие, если система 1С будет уточнять что-либо или подтверждать действия;
4. Далее переходим по следующему пути: «Конфигурация → Сравнить и объединить с конфигурацией из файла…». Здесь необходимо выбрать файл «полный релиз 1С KORG версии 1*.cf»;
5. Далее перед нами появится окно, в котором система 1С будет запрашивать постановление на учёт для поддержки, на это уведомление обязательно отвечаем согласием;
6. В случае, если наша конфигурация является типовой, откроется окно по сравнению конфигураций. В нем обязательно убираем все «галочки». Далее последует объединение конфигураций;
7. В новом окне кликаем на «Сохранить изменения»;
8. Ещё раз сохраняем базу данных;
9. Обновляем конфигурацию 1С стандартным способом.
Если всё сделать, согласно инструкции выше, то в вашей конфигурации 1С 8.3 «Ошибка при выполнении файловой операции» больше не возникнет. Спасибо за внимание!
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Обновлено 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.06.21 — 15:35
Приветствую, уважаемые форумчане.
Поделитесь, пожалуйста, опытом, может кто сталкивался. Из-за чего может возникать ошибка: «Ошибка при выполнении файловой операции ‘C:UsersUSR1CV8AppDataLocalTempv8_1BF4_352.mxl'». Ошибка происходит при попытке открыть элемент справочника. Ошибка не постоянная, может появиться, а может и нет. База на SQL. Сервер виртуальный. Очень напрягает такая ситуация, особенно, если непонятная причина.
1 — 09.06.21 — 15:37
смотри, что у тебя при открытии происходит, видимо коряво отчет формируется
2 — 10.06.21 — 11:05
(1) При открытии нашел место кода, где пишется в этот временный файл. Но проблема то несколько в ином, в том, что в один момент времени все без ошибок, а в другой момент времени выдает эту ошибку. Вот и хотим понять, на чьей стороне ошибка: диск виноват (хоть и виртуальный), права на каталог «тупят» (хотя всем дали полные) или что-то другое, неизвестное пока. Может был у кого прецедент и выяснили причину?
3 — 10.06.21 — 12:56
(2) Места хватает на сервере?
4 — 10.06.21 — 13:03
(3) Не зависит особо от этого. Бывает достаточно места, бывает мало остается, но ошибка в обоих случаях может появляться. Да и файл этот совсем небольшого размера же, для него уж места предостаточно.
5 — 10.06.21 — 13:04
(0) может файл занят а с ним какие то манипуляции хотите сделать. Когда он не занят, то работает, когда не успевает его освободить, тогда ошибку ловите.
6 — 10.06.21 — 13:06
(5) Так он вроде только при данном событии создается (при открытии элемента справочника, в смысле), а затем тут же удаляется.
7 — 10.06.21 — 13:08
(6) всегда с одним и тем же именем? А если двое отчет откроют?
8 — 10.06.21 — 13:10
(7) Видно же, что это временный файл…
9 — 10.06.21 — 13:11
(6) ругается при создании, или при удалении?
10 — 10.06.21 — 13:13
(6) если не секрет, для чего вы временный файл создаете, что там такого специфического, чего нельзя во временное хранилище пихнуть?
11 — 10.06.21 — 13:25
(7) Разный
12 — 10.06.21 — 13:26
(9) Пишет, что при вызове Write
13 — 10.06.21 — 13:27
(10) Конфигурация специализированная, 1С Отель. Разработчики так сделали
14 — 10.06.21 — 13:29
(13) а что на это говорят разработчики этого чудо решения?
15 — 10.06.21 — 13:32
(12) если код не большой, где этот временный файл создается, пишется и удаляется, то можете сюда кусок скинуть, либо на пастебин ссылкой. Возможно там где-нить в коде косяк.
16 — 10.06.21 — 13:58
(14) Отмалчиваются
17 — 10.06.21 — 13:58
(15)
Function cmGetAbsoluteColor(pColor) Export
If pColor.Type = ColorType.Absolute Then
Return pColor;
EndIf;
vSD = New SpreadsheetDocument;
vSD.Area(«R1C1»).BackColor = pColor;
vTF = GetTempFileName(«mxl»);
vSD.Write(vTF, SpreadsheetDocumentFileType.MXL7);
vSD.Read(vTF);
vColor = vSD.Area(«R1C1»).BackColor;
vSD = Undefined;
DeleteFiles(vTF);
Return vColor;
EndFunction
18 — 10.06.21 — 13:59
(17) расстрелять!
19 — 10.06.21 — 14:11
(17) И это все, для того чтобы вернуть цвет ячейки… Может у вас ошибка каждый раз когда pColor.Type <> ColorType.Absolute?
20 — 10.06.21 — 14:18
(0) Предлагаю, не писать этот файл
21 — 10.06.21 — 14:21
(17) Этот ужас, где пишется?
На клиенте или Сервере?
22 — 10.06.21 — 14:23
(15)
Function cmGetAbsoluteColor(pColor) Export
//If pColor.Type = ColorType.Absolute Then
// Return pColor;
//EndIf;
//vSD = New SpreadsheetDocument;
//vSD.Area(«R1C1»).BackColor = pColor;
//vTF = GetTempFileName(«mxl»);
//vSD.Write(vTF, SpreadsheetDocumentFileType.MXL7);
//vSD.Read(vTF);
//vColor = vSD.Area(«R1C1»).BackColor;
//vSD = Undefined;
//DeleteFiles(vTF);
//Return vColor;
Возврат Новый Цвет(255, 255, 255);
EndFunction
С Вас сто рублёв
23 — 10.06.21 — 14:23
(22) -> (17)
24 — 10.06.21 — 14:30
(19) Проверил в отладчике. Когда не равен, проскакивает без ошибок.
25 — 10.06.21 — 14:32
(23) New Color() же)
26 — 10.06.21 — 14:32
(21) Это в общем модуле, на сервере
27 — 10.06.21 — 14:36
(25) не скрепно
28 — 10.06.21 — 14:39
(0) Ну народ, уже давно не пишут, все через память :)))
&НаСервере
Function cmGetAbsoluteColor(pColor) Export
If pColor.Вид = ВидЦвета.Абсолютный Then
Return pColor;
EndIf;
Поток = Новый ПотокВПамяти();
vSD = Новый ТабличныйДокумент;
vSD.Область(«R1C1»).ЦветФона = pColor;
vTF = ПолучитьИмяВременногоФайла («mxl»);
vSD.Записать(Поток, ТипФайлаТабличногоДокумента.MXL7);
Поток.Перейти(0,ПозицияВПотоке.Начало);
vSD.Прочитать(Поток, СпособЧтенияЗначенийТабличногоДокумента.Значение);
vColor = vSD.Область(«R1C1»).BackColor;
vSD = Неопределено;
//УдалитьФайлы(vTF);
Return vColor;
EndFunction
29 — 10.06.21 — 14:39
+(28) Ну поток уж сам закроешь
30 — 10.06.21 — 14:40
+ (0) Вот получше так…
&НаСервере
Function cmGetAbsoluteColor(pColor) Export
If pColor.Вид = ВидЦвета.Абсолютный Then
Return pColor;
EndIf;
Поток = Новый ПотокВПамяти();
vSD = Новый ТабличныйДокумент;
vSD.Область(«R1C1»).ЦветФона = pColor;
vSD.Записать(Поток, ТипФайлаТабличногоДокумента.MXL7);
Поток.Перейти(0,ПозицияВПотоке.Начало);
vSD.Прочитать(Поток, СпособЧтенияЗначенийТабличногоДокумента.Значение);
vColor = vSD.Область(«R1C1»).BackColor;
Поток.Закрыть();
Поток = Неопределено;
vSD = Неопределено;
//УдалитьФайлы(vTF);
Return vColor;
EndFunction
31 — 10.06.21 — 14:42
(29) ну это ладно, что mxl, а если бы xlsx был то в потоке уже так просто табдок не прочитаешь…
32 — 10.06.21 — 14:43
(31) У нас не ексель
33 — 10.06.21 — 14:43
+ Вот будет ексель, тогда и поговорим про скорость
34 — 10.06.21 — 14:44
(33) я одного понять не могу, чем создателей webцвета не устроили или различные типовые стили?
35 — 10.06.21 — 14:45
(34) Ненаю, где там это используется, я вот еще не пойму, нак-зачемой по англиски писать
36 — 10.06.21 — 14:46
+ Потом даже модифицировать не могут
37 — 10.06.21 — 14:47
(35) может у индусов заказывали конфу?))
38 — 10.06.21 — 14:47
(35) Там вся конфа такая. Специально похоже, чтобы сложнее было понять, что они там разработали)
39 — 10.06.21 — 14:51
(38) Соболезную, держи пример, не мучайся хоть со справочником
40 — 10.06.21 — 14:53
Кстати, не только mxl пишут. Есть внешний ресурс Travelline, к которому 1С коненктится, забирает инфу и создает брони в 1С. При этом так же периодически ошибки вываливаются такого типа: «Failed to create reservation: Ошибка при выполнении файловой операции ‘C:UsersUSR1CV8AppDataLocalTempБронь_9719.pdf’; Booking №:20210613-19260-96172841».
41 — 10.06.21 — 14:54
Вопрос изначальный по идее так и остается. По какой причине то проходит запись в Temp, то нет. Бред какой-то происходит.
42 — 10.06.21 — 14:54
(40) Подвиг за день не должен превышать больше одного… Это вы дальше сами
43 — 10.06.21 — 14:54
(42)
44 — 10.06.21 — 14:55
(41) Если оба юзвера или много считывают, то может быть так, что у всех одно и тоже временное имя, 1С… что сказать
45 — 10.06.21 — 14:56
(40) тоже наверное можно без создания временного файла обойтись.
46 — 10.06.21 — 14:58
(44) Интересное предположение. Может так и происходит на самом деле
47 — 10.06.21 — 14:59
(46) Код покажи, вот этого (40) — Чисто в познавательных целях
48 — 10.06.21 — 14:59
(46) создайте свою папочку на серваке и дайте к ней доступ. Сами контролируйте уникальность файлов. Либо вообще поправьте код, чтобы избыточные временные файлы не создавались.
49 — 10.06.21 — 15:00
(41) Про антивирус уже писали?
50 — 10.06.21 — 15:00
(47) скорее всего возвращается ссылка на pdf брони созданной, а ее пытаются во временном файле записать)
51 — 10.06.21 — 15:01
+(46) Вот тебе генератор имен.
Функция УникальноеИмя(расширение)
Возврат «» + КаталогВременныхФайлов() + СокрЛП(Новый УникальныйИдентификатор())+».»+расширение;
КонецФункции
52 — 10.06.21 — 15:06
(51) а вот тут почитаешь и 1ска тебе тыкает, что так делать не надо, только для веб клиента)
https://its.1c.ru/db/v8std/content/542/hdoc
53 — 10.06.21 — 15:07
(52) тут понимаешь ли 1ской все гарантируется и должно работать)
54 — 10.06.21 — 15:09
(52) Если по каким-то причинам прикладной код не удалит созданный файл (например, между блоками создания и удаления временного файла возникнет штатное или нештатное исключение), этот файл так и останется в каталоге временных файлов.
…
А теперь вопрос, какой метод от 1С, удалит все временные файлы на сервере?
На сервере, где так же есть такая вещь, как КЭШ сервера
55 — 10.06.21 — 15:10
(54) вроде бы перезапуск службы 1с это делать должен)
56 — 10.06.21 — 15:11
(54) >>> Если по каким-то причинам прикладной код не удалит созданный файл
Файл в любом случаи останется
…Или 1С так же повторно заюзает этот файл?
57 — 10.06.21 — 15:11
(55) Что? Вы хотите сказать, что при рестарте службы, у многих пользователей автоматом гарантировано все ляжет? :)))
58 — 10.06.21 — 15:13
+(55) и тут же 1С разрешает этот код в (51) для вэба :))))
3.1. При выполнении кода веб-клиентом метод ПолучитьИмяВременногоФайла недоступен. Поэтому для формирования имен временных файлов и каталогов необходимо использовать функцию КаталогВременныхФайлов и объект УникальныйИдентификатор.
Неправильно:
Каталог = КаталогВременныхФайлов();
ИмяФайла = «TempDataFile.xml»;
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);
Правильно:
Каталог = КаталогВременныхФайлов();
ИмяФайла = Строка(Новый УникальныйИдентификатор) + «.xml»;
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
Данные.Записать(ИмяПромежуточногоФайла);
59 — 10.06.21 — 15:16
(47) Вот этот кусок кода:
vConfirmationFileName = StrReplace(vDocObj.Ref.Metadata().Presentation() + » » + Format(vDocObj.GuestGroup.Code, «ND=12; NFD=0; NG=»), » «, «_») + «.pdf»;
vConfirmationFilePath = cmGetFullFileName(vConfirmationFileName, TempFilesDir());
vConfirmationSpreadsheet.Write(vConfirmationFilePath, SpreadsheetDocumentFileType.PDF);
60 — 10.06.21 — 15:16
(58) я про это и пишу, что для только для вэба и можно. По идее, когда сеанс перезапускается, который создавал временный файлы, то они подчищаются. Если же перезапустить службу 1ски, то все сеансы схлопнутся, все временные файлы созданные в этих сеансах должны удалиться платформой.
61 — 10.06.21 — 15:18
(59) а где гарантия, что vConfirmationFileName уникально? Если к примеру 2 человека одновременно этот кусок кода выполнят.
62 — 10.06.21 — 15:20
(59) может у вас действительно, что то с правами на серваке? Пробовали на другой машинке базу развернуть?
63 — 10.06.21 — 15:39
(62) К сожалению нет такой возможности.
64 — 10.06.21 — 17:12
(59) Проблемы, т.к. нам тут не видно.
1. Что это за код и до какой степени он уникален? «vDocObj.GuestGroup.Code»
2. Для чего это пишут в формате PDF?
3. Вопрос из (61), а где гарантия?
65 — 10.06.21 — 17:12
(60) Сколько раз перезапускал, такого не замечал
66 — 10.06.21 — 17:15
+(60) Если Автор (0) гарантирует, что будет удалять такие файлы САМ, то вероятность зависших файлов равна ничтожному проценту.
Т.е. парочка файлов просочится, но не более.
Учитывая, сколько раз мне приходилось чистить папку темп на сервере, для восстановления работоспособности баз, после динамической.обновы. и др. сбоев.
Вот все что там пишется, зависает, не стоит и ломаной десятины…
Главное Серверу 1С не жадничать дискового пространства под его временные файлы
67 — 10.06.21 — 17:17
+(59) А проверки на то, что файл уже есть, тоже присутствуют?
68 — 10.06.21 — 17:18
Кода мало, давай под 1000 строк
69 — 10.06.21 — 17:18
Не жадничай
70 — 10.06.21 — 17:58
(67) да какая там проверка, все же тут есть:
vConfirmationFilePath = cmGetFullFileName(vConfirmationFileName, TempFilesDir()); создали путь во временном каталоге
vConfirmationSpreadsheet.Write(vConfirmationFilePath, SpreadsheetDocumentFileType.PDF); записали табдок по этому пути в формате пдф.
71 — 11.06.21 — 06:34
(70) Если так, то это жесть :)))
zoran
72 — 22.06.21 — 09:02
Всем спасибо за обсуждение. В итоге, после общения с ТП конфигурации выяснилось, что запись на диск требуется для отправки печатных форм документов (бронирования, в частности) клиентам. И в настройках есть возможность отключить данную опцию. Далее понаблюдаем, исчезнут ли ошибки.