новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Разрешение коллизий при работе с хранилищем конфигурации.

  • Добавить свою публикацию
  • для этого требуется регистрация

Технология работы с хранилищем, в принципе, достаточно проста и может быть освоена программистом в короткие сроки. При этом существует целый ряд проблем, с которыми разработчик сталкивается не сразу, но то, что он столкнется с ними – можно утверждать наверняка. К счастью, коллизии, возникающие при работе с хранилищем, не особенно осложняют жизнь программиста и, как правило, тем или иным способом разрешимы.

Опишу некоторые, наиболее часто встречающиеся ошибки, которые возникают при работе с хранилищем конфигурации.

1)     При подключении к хранилищу появляется сообщение «Хранилище конфигурации повреждено». Данная ошибка возникает довольно часто, особенно при интенсивной работе с хранилищем. Напомню, что хранилище – это по существу файловая база, с конфигурацией которой синхронизируются основные конфигурации баз разработчиков. Поэтому первое, что приходит в голову разработчику – это «пройтись» по БД хранилища утилитой chdbfl.exe, входящей в состав поставки «1С: Предприятие». Но вот именно этого делать не стоит. Во-первых, утилита работает далеко не идеально: кроме того, что не решит Вашей проблемы, так ещё и новых добавит. Во-вторых, сама фирма «1С» не рекомендует таким способом решать данную проблему. В-третьих, собственно повреждения хранилища может и не быть, несмотря на сообщение о таковом (не зря в народе говорят: «на заборе тоже написано, а там - дрова»). Так что рекомендую в случае возникновения данной ошибки попробовать следующие варианты:

А) Удалите пользовательский кэш той базы, которая не может подключиться к хранилищу. Удалить кэш – просто: можно, например, удалить базу данных из списка баз, а затем добавить снова.

Б) Если не помогло удаление кэша, перезагрузите компьютер. Как не смешно, но эта панацея от многих зол и здесь помогает.

В) Переподключитесь к хранилищу конфигурации.

Г) Проверьте, хватает ли свободного места на диске, где расположено хранилище.

Г) Наконец, воспользуйтесь утилитой исправления файловой базы. Только не забудьте предварительно сделать бэкап хранилища.

 

2)     Очень часто разработчики жалуются, что при обновлении конфигурации из хранилища исчезают изменения, которые вносились ими ранее. Большинство таких ситуаций возникает из-за невнимательности программистов, которые «косячат» никак не меньше пользователей, и точно так же, как пользователи редко признают свои «косяки». Однако есть одна проблема, которая встречается время от времени там, где с хранилищем активно работает приличное количество разработчиков и, при этом, часто производятся динамические обновления баз данных. Можно сколько угодно говорить о недопустимости динамических обновлений или о том, что при групповой разработке захваченные объекты лучше складывать поочередно – но жизнь куда интересней и богаче, чем содержание желтых книжек. Итак, коллизия выглядит следующим образом. Допустим, есть две конфигурации, подключенные к хранилищу. Первая конфигурация полностью идентична конфигурации хранилища, вторая - не значительно отличается (именно не значительно, так как чаще всего ошибка наблюдается при небольших изменениях). Пытаемся обновить вторую конфигурацию, но – о чудо! – обновления не происходит. Система ведет себя так, как будто конфигурации ничем не различаются. Выход здесь прост: захватите проблемный объект в первой конфигурации, внесите в него маленькое изменения (например, комментарий в модуль) и положите в хранилище. Далее повторите обновление второй конфигурации. Все должно разрешиться.

3)     При попытке помещения в хранилище изменений, связанных с удалением объекта (или его реквизита), система отказывается помещать их и требует поместить ещё другие объекты, которые Вы, может быть, даже и не изменяли или не захватывали. Чаще всего система требует поместить в хранилище интерфейсы и роли, так как они могут содержать ссылки на удаляемые объекты. Вы можете захватить требуемые роли и поместить их вместе с Вашими изменениями. Это может помочь, а может и не помочь: система потребует захватить другие. В любом случае Вам придется поиграться с захватом/помещением объектов или же: отменить удаление объекта, отключиться от хранилища, подключиться снова, захватить предварительно все интерфейсы, роли и объекты, в которых есть ссылки на удаляемый объект и опять попытаться удалить объект.

4)     Периодически возникает ошибка, содержащая фразу «Неверный формат данных..» Во-первых, проверьте, есть ли свободное место на диске, где расположено хранилище. Во-вторых, обновите платформу (такая ошибка была очень характерна для старых релизов 8.2). В третьих, может помочь остановка сервера 1С и чистка файла «С/programm files/1cv82/srvinfo/reg-1541/snccntx.dat» . В четвертых, постарайтесь в будущем не прибегать к рекурсивному захвату всей конфигурации, а, самое главное, не помещайте её затем рекурсивно в хранилище.

5)     При попытке помещения изменений в хранилище система сообщает о том, что превышен максимальный размер внутреннего файла. Ну что здесь сказать? Следует периодически сжимать хранилище. Обязательно. Если же проблема уже настигла Вас, то самый простой вариант – создать новое хранилище и работать уже с ним. Понимаю, что многих такой расклад не устраивает, но ведь сами виноваты же…

6)     Иногда возникает ошибка, схожая с той, что описана в пункте 3. При обновлении конфигурации из хранилища или (реже) помещении объектов в хранилище система также предлагает поместить или захватить другие объекты, к которым Вы как бы и не причастны. Иногда сообщения системы еще менее логичны. В этой ситуации проверьте, не менялась ли недавно структура регистров сведений и есть ли эти изменения в Вашей базе. Если их нет, то проще всего - очистить регистр сведений и обновить конфигурацию из хранилища. Разумеется, такой способ подходит только для тестовых баз. В случае с рабочей базой, скорее всего, придется отключаться от хранилища и подключаться вновь.

7)     При подключении к хранилищу появляется сообщение, что пользователь уже аутентифицирован в хранилище. Причина, как правило, в том, что предыдущая сессия работы в конфигураторе была завершена некорректно. Попробуйте перезагрузить компьютер или удалите файлы блокировок из каталога хранилища. В последнем случае убедитесь, что никто из Ваших коллег не работает с хранилищем.

8)     При подключении к хранилищу мы получаем сообщение «Текущая база не связана с хранилищем». Тут все просто: ранее Вы работали с хранилищем из другой базы. Отключитесь от хранилища и подключитесь опять.

Это, пожалуй, все (или почти все) наиболее распространенные коллизии, возникающие в процессе работы с хранилищем. Обратите внимание, что многие из таких коллизий решаются с помощью манипуляций с помещением/получением/захватом объектов или переподключений. Рекомендую перед началом таких манипуляций сохранять в файл свою конфигурацию.

 

 

 

 

 
0
Читайте также
Обслуживание 1С
К обслуживаниб 1С нужно подойти ответственно. Желательно заключить договор на сервисное обслуживание 1С с огранизацией, которая будет проводить установку и дальнейшее обновление программы.
Выпуск №4.Настройки отбора и управление формой списка в 1С 8.х
Новые возможности 1С 8 по сравнению с 1С 7.7
Работа с хранилищем конфигурации
Хранилище конфигурации в 1С8
Разработки
Еще от автора
≡ к списку статей