Контакты

Работа с хранилищем конфигурации 1с 8.3. Работа с хранилищем конфигурации удаленно

К сожалению, при работе с программой зачастую встречаются ошибки, не имеющие единственного общего способа устранения. К ним можно отнести ошибку 1С 8.3 (8.2) — «Неверный формат хранилища данных». Дело в том, что причин может быть множество, соответственно и способов устранения.

Прежде, чем доставать ваш шаманский бубен, попробуйте воспользоваться перечисленными ниже способами исправления ошибки «Неверный формат хранилища данных» для чайников. С большой вероятностью вам поможет хотя бы один из них.

Данный способ является самым распространенным исходя из многочисленных сообщений на формах тех, кто победил ошибку «Неверный формат хранилища данных» в 1С. В том случае, когда программа работает корректно на одном компьютере, а на другом выдаёт ошибку, данный способ для вас. Очистить кэш самостоятельно очень просто, но если у вас все-таки возникли трудности, то всё необходимое можете узнать в .

Исправление структуры БД

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

Если информационная база является клиент – серверной, тогда откройте ее в режиме конфигуратора и в меню «Администрирование» выберите пункт «Тестирование и исправление…».

Для файловой базы воспользуйтесь утилитой ChDBFl.exe, которая является аналогом тестирования и исправления в конфигураторе.

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

Перезапуск сервера 1С

На клиент–серверных базах иногда встречается ошибка такого плана:

Попробуйте остановить сервер 1С:

net stop «1C:Enterprise 8 Server Agent (x64)»

Удалить все файлы с расширением *.dat из папки, на которую ссылается ошибка:

del «C:\Program Files\1cv82\srvinfo\reg_1541\snccntx\*.dat»

Запустить службу заново:

net start «1C:Enterprise 8 Server Agent (x64)»

Перенос данных

Данный способ следует использовать только в самом безвыходном положении. Он не безопасный и возможны потери данных.

Первым делом вам необходимо создать чистую базу с конфигурацией того же релиза с такой же структурой. Далее при помощи стандартной обработки «Выгрузка Загрузка данных XML» перенести все данные в пустую рабочую базу (скачать - для 8.2 или для 1С 8.3 или на ИТС).

Обязательно убедитесь в том, что структура и все реквизиты из «битой» базы есть в чистой!

Восстановление внешних обработок

Вы работали над обработкой 1С долгое время, бэкапов не делали, и вот случилось внезапное отключение электричества. В результате при запуске данной обработки 1С выдает ошибку «Неверный формат хранилища данных».

Теперь главное «взять себя в руки» и, ни при каких обстоятельствах не запускать 1С! Если вы всё же запустили, и ниже описанный метод не сработал, то попробуйте найти пользователя, который ранее открывал вашу обработку. В таком случае восстановительные работы будут производиться в его каталоге пользователя.

Ваша обработка должна находиться во временном каталоге TMP с именем подобным маске «v8_*.tmp». При запуске платформы данные файлы удаляются. Если вы все-таки запустили 1С и файлов не обнаружили и не нашли другого пользователя, у которого может быть ваша обработка, воспользуйтесь программой восстановления удаленных файлов с жесткого диска.

Скопируйте все найденные по маске «v8_*.tmp» из папки TMP в безопасное место. Теперь можно запускать 1С. Попробуйте определить, какой файл является именно вашей обработкой по его размеру, и измените его расширение с.tmp на.epf. Если вам сложно определить, какой именно файл является вашим, то переименуйте все и поочередно запускайте их в 1С. Но чаще всего получается найти нужный файл достаточно быстро, особенно если отсортировать его по дате.

Если описанный выше способ вам не помог, то есть еще один. Для этого вы должны примерно помнить содержимое обработки (код) и иметь ее старую версию.

Ищите вашу обработку по текстам модулей. Распакуйте старую версию обработки при помощи утилиты V8Unpack.exe . Скопируйте и замените все необходимые тексты модулей и запакуйте при помощи этой утилиты обратно.

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

В 1с версии 7.7 совместная разработка или доработка конфигурации была настоящим мучением. Для того чтобы поддерживать одну конфигурацию даже вдвоем, приходилось делать две копии актуальной базы, затем, после внесенных изменений вручную переносить изменения из конфигурации одной копии в конфигурацию другой. Только потом можно было обновить основную поддерживаемую конфигурацию! Усугубляло положение отсутствие подсистем.

В восьмой версии 1с для совместной разработки используется хранилище конфигурации . Работа с хранилищем происходит следующим образом:

  • Создаем хранилище

Выбираем в меню "Конфигурация"->"Хранилище конфигурации"->"Создать хранилище..."

Указываем путь к каталогу хранилища. (Каталог должен быть доступен для всех разработчиков!)

После того как хранилище создано, заходим в пункт меню "Конфигурация"->"Хранилище конфигурации"->"Администрирование" для того чтобы создать пользователей для разработчиков

И создаем пользователей

  • Подключаем конфигурации разработчиков к хранилищу конфигурации


выбираем пункт меню "Конфигурация"->"Хранилище конфигурации"->"Подключиться к хранилищу..."



Так как у нас с вами копии основной базы пока идентичны, смело нажимаем кнопку "Да" и указываем путь к хранилищу, имя пользователя и пароль

Ждём, пока произойдет сравнение конфигурации с хранилищем.

Если всё прошло успешно, то справа от объектов конфигурации в дереве объектов должна появиться пиктограммка замка.

  • Работа с хранилищем конфигурации

По умолчанию все объекты конфигурации имеют пиктограммку "замок". Для того чтобы изменить объект конфигурации нужно его захватить, то есть выбрать в контекстном меню объекта пункт "Захватить в хранилище"

указать настройки захвата

У объекта в дереве конфигурации появится пиктограмма

Если объект захвачен другим разработчиком, то объект в дереве конфигурации выглядит так

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



  • Если требуется отменить сделанные изменения и освободить объект от захвата, то выбираем в контекстном меню объекта пункт "Отменить захват"

  • Если требуется восстановить объект из хранилища, то то выбираем в контекстном меню объекта пункт "Получить из хранилища...". При этом внесенные изменения в то время, как объект был захвачен, теряются.

  • Так же можно просмотреть историю версий и сравнить захваченный и измененный объект с объектом в хранилище.

  • После того, как работа в копиях завершена(или завершен какой-то промежуточный этап), можно обновить конфигурацию основной базы для этого нужно выбрать пункт в меню "Конфигурация"->"Хранилище конфигурации"->"Обновить конфигурацию из хранилища" или "Конфигурация"->"Хранилище конфигурации"->"Сравнить/объединить конфигурацию с хранилищем".

Во втором случае произойдет более "мягкое" обновление конфигурации, то есть, можно будет посмотреть отчет по различиям объектов исходной конфигурации и хранилища.

Приятной вам разработки!

Профессор: - Как называется хранилище для воды?

Студент: - Презервуар?

Профессор: - Правильно, только без "п".

Студент: - Резерватив?...

Хранилище конфигурации - это полезный функционал 1С 8 для групповой разработки прикладных решений, для версионирования прикладного решения а так же документирования изменений прикладного решения в процессе разработки.
После изучения теоретических материалов выложенных в сети я сделал первый практический шаг в освоении, с которым и хочу с Вами поделится:

Релиз платформы 1С : 8.1.15.14
ОС : WinXP Pro SP3

1 . Установим службу Сервера хранилищ конфигурации 8.1 используя команду:
"D:\Program Files\1Cv81\bin\crserver.exe" -instsrvc -d "D:\1c_repository\"
Каталог D:\1c_repository\ был создан предварительно, для размещения в нем конфигураций хранилища.

В отличие от рекомендаций, широко опубликованных в сети, между ключом «-d» и его параметром (путем к корневому каталогу, в котором хранятся каталоги с отдельными хранилищами конфигурации) ОБЯЗАТЕЛЬНО ДОЛЖЕН БЫТЬ ПРОБЕЛ.
2 . Настраиваем и стартуем службу.



3 . Создадим конфигурацию в каталоге хранилища D:\1c_repository\ .

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

4 . В конфигураторе созданной базы создаем Хранилище.

Указываем путь к файловому каталогу конфигурации.

Заводим учетную запись Администратора Хранилища.

И подключаемся к Хранилищу.

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


6 . Пробуем подключить конфигурацию первого удаленного разработчика к хранилищу. Для этого создадим чистую конфигурацию и подключим её к Хранилищу по уже созданной учётке.


В данном примере я подключаюсь к хранилищу с этого же компьютера, поэтому путь указан напрямую к каталогу. Для подключения к Хранилищу по локальной сети необходимо использовать протокол tcp, тогда строка расположения каталога будет иметь следующий вид: "tcp//192.168.0.18/МДБ". Так же, есть возможность использовать протокол http(я не рассматривал).

При успешном подключении будет:

Переключившись на конфигурацию Хранилища с залогиненым Администратором в администрировании Хранилища можно видеть что пользователь подключился к Хранилищу.

Что значит "пользователь подключился к Хранилищу"? Как я понимаю в нашем примере пользователь prada развернул у себя в каталоге ТестХранилищеМожноУдалить копию базы из МБП каталога, которые взаимосвязаны как база разработчика - база хранилища. Т.е. в базе разработчика prada может разрабатывать конфигурацию и после выгрузить свои изменения в хранилище. Получается что все удаленные разработчики работают с базой хранилища через свои базы разработчика. Попробуем поработать с хранилищем.

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



В дереве конфигурации появится значок указывающий на захваченный объект.

У Администратора(и как я понимаю у других пользователей) значок в дереве конфигурации будет следующий:

Кроме того, у администратора есть возможность отменить захват объекта в меню Администрирование хранилища(не тестировалось).

8 . Разработчик prada создает константу и справочник.

У Администратора пока никаких изменений нет.

В меню работы с Хранилищем есть полезная функция "Сравнить/объединить конфигурацию с хранилищем"

В нашем примере, prada добавил константу и справочник.

9 . Разработчик prada помещает свои изменения в Хранилище МДБ.

При помещении изменений есть возможность указать комментарий к вносимым изменениям.


У разработчика prada значки в дереве конфигурации изменятся на:

а у Администратора(и других) на:

10 . История Хранилища. Хранилище хранит историю внесенных изменений.

11 . После завершения работы prada отменяет захват объектов хранилища.


Всё. На этом первый практический урок завершен.

  1. Групповая разработка прикладных решений от 1С -

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

Сегодня я хотел бы поговорить о применении в процессе разработки/доработки прикладных решений хранилища конфигурации. Я не знаю почему многие 1С-разработчики обходят стороной применения возможностей хранилища. Особенно, я не понимаю тех, кто трудится над разработкой одной конфигурации целой командой. Без хранилища конфигурации тут уже (ИМХО) совсем никак. Нет, можно конечно заниматься извращениями вроде копирования одной конфигурации всем разработчикам. Каждый начинает работать и реализовывать свою часть. По окончанию разработки, каждый из девелоперов должен синхронизировать свою конфу с той, что будет поставляться конечному клиенту.

При таком подходе достаточно проблематично уследить за актуальностью конфы. Как только два и более разработчика начинают трудиться над двумя связанными задачами - начинается сущий ад при объединении результатов их работы. Слишком велики шансы что-то затереть или не так объединить. За свою практику я сталкивался с такой ситуацией несколько раз и после очередной набитой шишки решил, что больше так жить нельзя.

Что такое хранилище конфигурации

К счастью, до знакомства с платформой 1С:Предприятие 8 у меня был уже достаточно неплохой опыт разработки на других языках программирования (Delphi, PHP). Поэтому слова типа SVN (Централизованная система управления версиями) для меня не были диковинкой. Кто никогда не сталкивался с SVN, рекомендую почитать соответствующую статью на википедии - http://ru.wikipedia.org/wiki/Subversion . Поверьте, штука классная и она существенно упрощает процесс разработки ПО.

Итак, теперь вернемся к нашему хранилищу. Хранилище конфигурации - инструмент платформы 1С:Предприятие, позволяющий организовать групповую разработку прикладного решения. Хранилище конфигурации (далее ХК) предоставляет разработчикам систему контроля версий создаваемого решения и гибкие возможности контроля вносимых разработчиками изменений.

В каких случаях тебе может пригодится ХК

Перед тем как перечислить конкретные примеры я хотел бы сразу подвести небольшой итог. Конечно, больше всего ХК будет полезно во время командной разработки. Однако, ни что не мешает тебе использовать его сугубо для себя. Я разрабатываю на платформе «1С:Предприятие» почти пять лет и за эти годы мне неоднократно приходилось сталкиваться с непредвиденными ситуациями, когда применение ХК меня буквально спасало от кошмара любого разработчика - переписыванию ранее написанного кода. Теперь я стараюсь пользоваться услугами хранилища конфигурации для каждого своего проекта. Почему? А хотя бы вот:

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

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

2. Отчетность. Ты можешь в любое время скрутить отчет и посмотреть кто и когда (а также, в какие объекты конфигурации) вносил изменения. Это может пригодиться, когда твои коллеги разводят руками и пытаются доказать: “Насяльника, это не мы! Оно само сломалось!”.

3. Удаленная разработка. ХК незаменимо если прикладное решение разрабатывают географически удаленные программисты. Думаю, это пояснять не нужно.

4. Минимизация чрезвычайных ситуаций. Я несколько раз был свидетелем (по “молодости” и сам успел попасться в эту западню), когда у разработчиков ломались винты. Само собой все последние изменения были на тех самых винтах и они безвозвратно улетали в небытие. “А как же бэкапы?” - скажешь ты. Никак! Многие девелоперы не любят этим заморачиваться. Нет, совсем не делают резервных копий только полные экстремалы, но за свою практику я встречал очень мало девелоперов, которые делают бэкапы несколько раз в день. ХК элегантно решает эту проблему. Разработчику по факту требуется нажать всего одну кнопку и все его наработки тут же будут перенесены в хранилище.

5. Разграничение доступа. Ну тут и пояснять особо не надо. ХК позволяет настроить разграничения доступа для разработчиков.

Хранилища бывают разные

Изначально ХК работало только через общий ресурс (в версии 8.. Это было не очень удобно, т.к. при желании организовать доступ к хранилищу извне (например, через Internet) возникал проблемы. Начиная с версии 8.1.11, появилась возможность развертывать сетевые хранилища. С ними можно работать как по протоколу tcp/ip, так и по http. Последний будет весьма кстати при организации доступа к хранилищу через Интернет.


Рисунок 1. Схема устройства хранилища

Пробуем развернуть ХК

Итак, предположим, что ты заинтересовался идеей использования ХК и решил попробовать его развернуть для своего проекта. Ты уже знаешь, что хранилище может работать через общий сетевой ресурс, так и по сети, используя протокол tcp/ip. В этой заметке я рассмотрю развертывание хранилища через общий ресурс, а в следующий раз мы посмотрим на сетевой вариант.

Итак, первое, что тебе необходимо сделать - подготовить базу своего проекта. Она у тебя может располагаться где угодно. Если ты решил прямо сейчас развернуть ХК для своего живого проекта, то не поленись сделать резервную копию. Случиться может всякое и лучше лишний раз перестраховаться.

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

Следующим шагом тебе предстоит открыть свою БД в режиме “Конфигуратор” и проследовать в меню “Конфигурация” -> “Хранилище конфигурации” -> “Создать хранилище” (см. рисунок 2).


Рисунок 2. Создание хранилища конфигурации

Сразу после нажатия кнопки “Создать хранилище” перед тобой должно появиться окно как на рисунке 3. В нем тебе требуется выбрать ранее созданную общую папку или ввести адрес удаленного хранилища. Поскольку мы договорились создать хранилище на основе общего ресурса, в этом окне будет указывать именно путь как папке.


Рисунок 3. Выбираем расположение ХК

Как укажешь папку - жми на кнопку “Далее”. Не успеешь и глазом моргнуть, как мастер создания хранилища отобразит перед тобой окно для создания административной учетной записи (рисунок 4). По умолчанию в качестве имени тебе предлагают использовать “Администратор”. Понятное дело, что тебе ничего не мешает его изменить. В общем вводи желаемые значения и кликай “Ок”.


Рисунок 4. Создание учетной записи администратора

Тут твоя 1С’ка должна на несколько секунд задуматься, а затем предложить подключиться к созданному хранилищу. Отвечай “Да”. Поздравляю, ты создал свое первое хранилище конфигурации.

Обрати внимание на окно “Конфигурация”. Начиная с самого корня (это там где написано название конфигурации) в правой части появились маленькие замочки (см. рисунок 5). Этот замочек означает, что в настоящее время объект находится в хранилище конфигурации и ты не можешь вносить в него изменения. Если тебе требуется поработать с каким-либо объектом конфигурации, то сначала тебе необходимо его захватить. Как выполнить эту и многие другие операции по работе с хранилищем я расскажу в следующей заметке, которая совсем скоро появится на сайте.

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


Решение ошибки формата хранилища данных

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


Кроме момента запуска конфигурации ошибка «Неверный формат хранилища данных» может обнаружиться и при открытии внешней обработки. В таком случае самое главное – не запускать 1С, так как при старте система затирает временные файлы в каталоге TMP. Именно в нем найдите нашу обработку – файл с именем «v8_*» и расширением tmp. Если таких файлов много, то чтобы понять, какой из них наша обработка – измените расширение на epf и попробуйте открыть через 1С.

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

Понравилась статья? Поделитесь ей