Ошибка доступа к файлу configsave

Обновлено: 03.07.2024

Итак, перед нами "мёртвая" файловая база. Задача, которая стоит перед нами на текущий момент - всесторонне обследовать базу, составить максимально полный перечень проблемных мест (ошибок). Одной из распространённых ошибок у начинающих специалистов является следующая: они либо сразу и надолго "ныряют" в содержимое файла базы в hex-редакторе, пытаясь вручную разобраться в тоннах байт, что, естественно, через некоторое время вызывает эффект отторжения, либо, попробовав один какой-нибудь инструмент, и получив неудачу, выдают заключение: "База не подлежит ремонту". Лично я считаю, что к услугам hex-редактора нужно прибегать только в исключительных случаях, либо изредка, на минутку, например, чтобы своими глазами посмотреть содержимое, находящееся по определённому смещению.
А перечень инструментов и приёмов для получения информации о проблемных местах вообще довольно широк, причём даже сама платформа 1С предоставляет, как минимум, два штатных способа. Рассмотрим их поподробнее.

1. Утилита chdbfl.exe из поставки 1С:Предприятие. Запускаем её с установленной галкой "Исправлять обнаруженные ошибки".

Утилита chdbfl.exe

Сразу хочу оговориться, что на данном этапе эта утилита будет использоваться нами исключительно для диагностики, поэтому, даже если она и выдаст нам какой-то изменённый, якобы отремонтированный файл базы, мы не имеем на него каких-то видов, и просто "выкидываем". Однако, внимательно изучаем протокол работы и фиксируем перечень ошибок, найденных этой утилитой.
Например, "Поврежден заголовок файла базы данных" чаще всего означает просто некорректно записанную в нём длину файла в блоках, а не полное его разрушение (чтобы в этом убедиться, достаточно на пару секунд обратиться к hex-просмотрщику или редактору, если в начале файла сигнатура 1CDBMSV8 на месте, значит, проблема только в поле длины). "Повреждено содержимое внутреннего файла " означает, что в корневом объекте существуют "битые записи", с некорректными номерами блоков заголовков, либо с испорченными блоками заголовков. И так далее.

Пример файла ТЖ

1С:Предприятие начинает загрузку базы с чтения содержимого системных таблиц. Системными таблицами являются:
V8USERS - таблица с данными пользователей (для баз версий 8.2 и выше)
DBSCHEMA - схема (структура) БД
_USERSWORKHISTORY - история работы пользователей
_COMMONSETTINGS, _FRMDTSETTINGS, _REPSETTINGS, _REPVARSETTINGS, _SYSTEMSETTINGS - хранилища различных настроек
а также системные таблицы-каталоги:
PARAMS - содержит файлы с параметрами БД
FILES - содержит прочие системные (служебные) файлы
CONFIG - содержит файлы конфигурации БД. Здесь же, в файлах с названиями вида GUID.GUID хранятся конфигурации поставщика (отсутствие таковых является нормальной ситуацией, означающей, что либо конфигурация полностью совпадает с типовой (не включен режим изменения), либо она снята с поддержки, либо является самописной).
CONFIGSAVE - содержит файлы основной конфигурации. Отсутствие записей в ней является нормальной ситуацией, означающей, что основная конфигурация полностью совпадает с конфигурацией БД. Стоит отметить, что здесь могут содержаться не все файлы конфигурации, а только изменённые (отличающиеся от файлов конфигурации БД).
Системные таблицы-каталоги являются, по сути, аналогами каталога в обычной файловой системе, т.е. являются хранилищем некоторого набора файлов, и имеют следующие поля:
FILENAME - имя файла
CREATION/MODIFIED - дата создания/изменения
ATTRIBUTES - атрибуты
DATASIZE - размер файла
BINARYDATA - содержимое файла (двоичные данные)


Теперь мы понимаем, что записи в ТЖ типа
22:42.0169-1,DBV8DBEng,2,process=1cv8,Trans=0,Func=selectFileName,FileName=ibparams.inf
22:42.0170-3,DBV8DBEng,1,process=1cv8,Trans=0,Func=readFile,CatName=Params,FileName=ibparams.inf
означают чтение файла "ibparams.inf" из таблицы PARAMS.


3. Открываем нашу базу при помощи утилиты Tool_1CD. Здесь мы можем просмотреть таблицы, а также их содержимое (данные записей), причём для системных таблиц (DBSCHEMA, PARAMS и т.д.) поддерживается автоматическая распаковка содержимого BLOB-полей, вплоть до показа содержимого упакованных контейнеров (в таблицах CONFIG и CONFIGSAVE). Наиболее пристальное внимание уделяем тем проблемным объектам, которые были нами найдены по результатам действий из пунктов 1 и 2, а также системным таблицам (хотя, зачастую список проблемных объектов, составленный по п. 1 и 2, ограничивается именно системными таблицами).

Просмотр содержимого таблиц в Tool_1CD


При просмотре перечня таблиц смотрим, есть ли таблицы с окончаниями "OG" - их наличие означает, что крах базы произошёл при ТиИ или реструктуризации (в процессе выполнения этих операций 1С создаёт новые таблицы с такими окончаниями, куда пишутся данные реструктуризованных таблиц, затем исходная таблица удаляется, а новой назначается исходное имя). Также бывает полезно сравнить перечень таблиц с содержимым старого бэкапа (при его наличии, и при условии, что конфигурация не обновлялась, иначе состав таблиц, связанных с метаданными, конечно, будет различаться), это поможет выявить отсутствующие таблицы.
При просмотре таблицы CONFIG обращаем внимание, есть ли в ней файлы с окончаниями ".new" - их наличие означает, что крах базы произошёл при обновлении конфигурации БД.
Также утилита позволяет сохранить конфигурацию БД в cf-файл, что и рекомендуется сделать. Загружаем далее эту конфигурацию из файла в пустую базу, и пробуем запустить. Если всё запустилось успешно, значит, проблема нашей базы не в конфигурации.

Просмотр содержимого таблиц в ViewRecords.epf

5. Загрузка базы в систему восстановления баз 1С restoration-base-1c8. По состоянию дел на текущий момент, в данном продукте многие функции не реализованы, а некоторые, на мой взгляд, реализованы не совсем прозрачно. Кроме того, практически вся смысловая обработка данных происходит на стороне 1С, что далеко не лучшим образом сказывается на быстродействии. Например, у меня полная загрузка файла размером 230 Мб длилась около часа, за это время я уже всесторонне обследовал базу другими инструментами, и приступил к непосредственному ремонту. Окончания же загрузки файла размером 1,5 Гб я вообще не дождался - закончилось терпение. Ещё один нюанс: поскольку система является конфигурацией для 1С, то все данные исходной базы загружаются также в базу 1С, но оказываются они в табличной части одного справочника. Следовательно, даже не принимая во внимание скорость загрузки, в случае файловой базы не получится загрузить файл с исходной базой размером более 4 Гб (из-за ограничений формата). Тем не менее, проект является свободным, с открытым кодом, доступным для изменения и доработки, поэтому не могу не упомянуть про него.

Загрузив нашу базу в систему restoration-base-1c8, мы можем иследовать список таблиц:

Система restoration-base-1c8 - основное окно

а также просмотреть и отредактировать данные любого блока во встроенном hex-редакторе:

Система restoration-base-1c8 - редактирование содержимого блока

Просмотр записей таблиц, к сожалению, не реализован.

На этом наш список, а также сам этап обследования заканчивается. Аккуратно фиксируем и систематизируем всю собранную информацию, которую мы будем использовать далее, в процессе "лечения". Конкретные, наиболее типичные проблемные ситуации и способы их устранения будут рассмотрены в следующих статьях.

Спасибо, помогло. Век живи, век учись.
Платформа 8.3.10.2753, конфигурация УТ 10.3.14.3 На 8.3.92309 сегодня поймал при динамическом обновлении. Автору спасибо. Все сработало. Вошел в конфигуратор, получил конфу из хранилища и дообновил.
У меня дополнительно отказались работать запросы в SQL Studio. Ошибка при выполнении: "неверно задано имя папки" (the directory name is invalid). Пофиксилось выполнением в cmd команды "mkdir %temp%". Потом уже запросы на удаление косячных записей из таблицы config.
Может и это кому пригодится.
Еще раз автору спасибо и респект. Сегодня уйду с работы вовремя:) Спасибо, помогло
АльфаАвто 4 сильно переписанная, без режима совместимости, платформа 8.3.12.1714. Всё сработало вывод один : Динамического обновления - БОЛЬШЕ НИКОГДА, всех пользователей взашей.
СПАСИБО! (101) Были проблемы но решались
1. sel ect * fr om Config WHERE FileName = 'commit'
2. delete fr om config where FileName = 'commit'
3. sel ect * fr om Config WH ERE FileName = 'dbStruFinal'
4. delete fr om config wh ere FileName = ' dbStruFinal' 8,3,10,2667
Рухнула при сравнении конфигураций. ни режимы ни динамические обновления не при чем.
Судя из того как все произошло - косяк внутри самих платформ. происходит "смещение" идентификатора ключа версии структуры базы. в результате платформа не признает созданные ею же метки о начале модернизации конфы.

это что-то новенькое.

У меня данное решение не помогло. Помогла замена таблиц из утренней копии. Но этот вариант не всегда поможет, на сколько я понял, если конфигурация копии отличается от конфигурации данных рабочей базы, то могут быть еще ошибки. Так что, метод на ВАШ СТРАХ И РИСК.

truncate table [dbo].[Config]
truncate table [dbo].[ConfigSave]
truncate table [dbo].[DBSchema]
truncate table [dbo].[Params]

ins ert into [dbo].[Config] sel ect * from [base_up].[dbo].[Config]
ins ert in to [dbo].[DBSchema] sel ect * fr om [base_up].[dbo].[DBSchema]
ins ert in to [dbo].[Params] sele ct * fr om [base_up].[dbo].[Params]


где base - рабочая база
base_up - развернутая копия базы (например, ночная) Чудо-пост! Спасибо.
УТ 11, 8.3.9.2233, режим совместимости: используется (8.2.16) Спасибо автору! Смогли быстро разрулить.
Сбой произошел во время динамического обновления. Платформа 8.3.11.3034. Режим совместимости "Версия 8.2.13" Упало при динамическом обновлении. Сабж помог. КА 1.1 на 8.3.12.1855 Проблема после добавление в конфигураторе нового реглзадания.
Автор, спасибо ! 1С:Предприятие 8.3 (8.3.12.1714) динамическое обновление.
Режим совместимости "Не использовать"
Статья помогла

Помогите, пожалуйста.
При динамическом обновлении вышла ошибка, описанная автором. Решение автора помогло, смогла попасть в конфигуратор. Но при попытке обновления выходит ошибка
Ошибка доступа к файлу 'v8srvr://сервер/база/config/versions'
по причине:
Ошибка доступа к файлу 'versions'

И опять критическая ошибка. Что делать то?

Помогите, пожалуйста.
При динамическом обновлении вышла ошибка, описанная автором. Решение автора помогло, смогла попасть в конфигуратор. Но при попытке обновления выходит ошибка
Ошибка доступа к файлу 'v8srvr://сервер/база/config/versions'
по причине:
Ошибка доступа к файлу 'versions'

И опять критическая ошибка. Что делать то?

1.1 Становить сервер 1с
1.2 убедиться, что все процессы сервера 1с фактически остановились и нет фантомных Rphost
2. перезапустить сервер СУБД
3. запустить сервер 1с.

Такая же беда при демоническом обновлении. Платформа 8.3.10.2753 64, MS SQL 2014. Статья выручила, благодарю. Спасибо. Помогла статья. Пользователей не всегда получается выгонять, если это не обязательно. Спасибо большое! Мне кажется из-за этой статьи автор попадет в рай(Подставить нужное место в соответствии с вашей религией) =) Спасибо, за теплые слова. Действительно это одно из моих немногих небольших открытий, которые многим помогли. А это больше всего согревает душу )

1С 8.3.9.1850
PostgreSQL, версия 9.4.2-1.1C
При динамическом обновлении, ругнулась на Version, и уаля
«Внимание. При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?»
После

delete fr om config where FileName = 'commit'
delete from config wh ere FileName = 'dbStruFinal'

Заработало!
Незадолго пробовал 15ый релиз, но потом вертался взад на 9ый.
Thank God It's Not Friday

Всем привет.
8.3.10.2299 на Microsoft SQL Server Enterprise Edition (64-bit) 10.50.1600.1
Я с вами.
delete from config where FileName = 'commit'
delete from config where FileName = ' dbStruFinal'
Помогло только предприятие запустить. Конфигуратор так и остался зависшим на обновлении. (123)
перезапуск сервера 1с решил проблему с конфигуратором?

(124)
Нет. Проблема частично решилась с помощью

Delete From [dbo].[ConfigSave]

В этой таблице было 5 записей, в архивной копии посмотрел - она пустая. После удаления записей конфигуратор все равно ругнулся при запуске, что предыдущее обновление прошло с ошибками и надо обновить по новой, но уже в этот раз смог запуститься. Конфигурация ОБНОВИЛАСЬ, тот код на обновлении которого произошел сбой в конфигурации есть и в базе работает. Но теперь при каждом запуске конфигуратора выдает такое.

(125) точно удалены оба флага?
(
нужно убрать пробел в ' dbStruFinal' ->
delete fr om config wh ere FileName = 'dbStruFinal' ) (126)
Это точно или не точно?
Проблема осталась.
Попробовал сохранить конфу в файл - сохраняет. Загрузить из файла - загружает. Но при новом запуске ошибка повторяется.

(125) Проблема полностью решилась любым изменением конфы. Я поставил пробел в модуле рандомного документа, сохранил и обновил конфигурацию НЕ ДИНАМИЧЕСКИ.

Еще один момент смущает - размер таблицы Config

В ней порядка 25 тысяч записей. Некоторые датированы еще 2009 годом (годом создания базы)

Как ее схлопнуть?

Проблема полностью решилась любым изменением конфы. Я поставил пробел в модуле рандомного документа, сохранил и обновил конфигурацию НЕ ДИНАМИЧЕСКИ.

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

Спасибо. Помогла статья. на 8.3.10.2639 и 8.3.12.1616 да было.
а вот в 8.3.14.1565 пока не наблюдал.
Может исправили? Огромное спасибо за помощь! Конфигурация Альфа авто, платформа 8,3.10,2650 Было динамическое обновление базы. 8.3.10.2650. Решение помогло. Платформа 8.3.12.1790, аналогичная проблема!
Автору спасибо! Динамическое обновление - зло. Автору здоровья, счастья, жену хорошую, процветания и долгих лет жизни. Релиз 8.3.11.3034 Помогло на платформе 8.3.12.1685, УПП. При динамическом обновлении выскочила ошибка.
Автору огромное спасибо! 8.3.12.1790 динамическое обновление.
Совместимость 8.2.13
Спасибо автору за статью. Второй раз уже выручает. Первый был в 15м году, думал поправили, ан нет.

Спасибо огромное.
Чуть не поседел совсем

8.3.10.2772
Совместимость 8.2.13

Огромное спасибо! Спасли. :)
Ошибка проявилась при динамическом обновлении на Платформа 8.3.12.1790

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

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

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

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

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

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

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

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

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

Ошибка при совместном доступе в 1C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Применяется к: Windows Server 2012 R2, Windows 7 Пакет обновления 1
Исходный номер КБ: 3035936

Симптомы

При попытке получить доступ к определенной папке, расположенной на файлере сетевого устройства (NetApp) или сервере Windows, который поддерживает SMB2 из Windows системы с помощью протокола SMB Version 2, доступ отклоняется. Эта проблема возникает в следующей версии Windows:

  • Windows 8.1
  • Windows Server 2012 R2
  • Windows 8
  • Windows Server 2012
  • Windows 7
  • Windows Server 2008 R2
  • Windows Vista
  • Windows Server 2008

Эта проблема не возникает, если отключить протокол SMB2 для клиента или использовать клиент SMB Windows, например Windows XP или Windows Server 2003.

Причина

Эта проблема возникает из-за того, что в целевой папке в SMB-папке отсутствуют записи управления доступом SYNCHRONIZE.

Решение

Чтобы устранить эту проблему, используйте утилиту ICACLS для набора нужных разрешений, содержащих бит Синхронизация.

Например, в командной подсказке введите следующую команду и нажмите кнопку ENTER:

Разделенный запятой список в скобки определенных прав:

  • RC — управление чтением
  • RD — каталог считываний данных и списков
  • REA — расширенные атрибуты чтения
  • RA — атрибуты чтения
  • X — выполнение/обход
  • S - Синхронизация

Устранение неполадок

Для проверки и устранения неполадок можно использовать следующие методы.

Убедитесь, что в файле NetApp установлен бит синхронизации в папке.

Сетевой след может показать ошибку DesiredAccess для процесса создания SMB2 в папке пакета Запрос и Ответ.

Средство AccessChk.exe доступно на Windows Sysinternals для чтения параметров разрешений.

Например, выполните следующую команду:

Затем можно увидеть следующий результат, который показывает набор бита SYNCHRONIZE:

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

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

Читайте также: