Ошибка совместного доступа к хранилищу конфигурации не удалось заблокировать таблицу objects

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

Ну чаще всего это происходит из за того, что кто-то из пользователей уже проводит какую-то операцию, которая заблокировала данную таблицу. Чтобы решить данную проблемы всем пользователям достаточно выйти из программы. Но бывает и так что пользователь вышел из программы, а процесс программы из памяти не выгрузился. Не паникуйте! Если все пользователи вышли из программы, а сообщение все равно выходит, нужно открыть меню Сервис — >Активные пользователи.

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

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

В данном случае и почти всегда, если приведенные выше рецепты не помогли, помогает утилита chdbfl.exe. Находиться она в папке с исполняемым файлом 1С. Путь до файла будет приблизительно такой «C:Program Files1Cv82номер_версии_платформыbinchdbfl.exe». Обратите внимание что данная утилита от одной версии платформы, может не подойти к другой.

Поэтому открыть нужно папку, именно с номером текущей платформы, на которой вы работаете.

Как посмотреть номер платформы? Очень просто. Заходим в меню Сервис -> О программе. И дальше на картинке показано, где смотреть номер платформы.

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

Симптомы пациента и анамнез:

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

Основные признаки работы блокировок:

  • быстрая работа пользователя с базой по сети в монопольном режиме и крайне медленная — при одновременной работе нескольких пользователей
  • быстрая работа пользователя с локальной базой на сервере и медленная — по сети
  • обращения к файловой системе чуть менее 10 мбайт/сек

Итак, мне досталась задача — сделать так, чтобы в 1С могли одновременно работать целых три пользователя! Смешно, не так ли?

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

Счастье было бы неполным, если бы не замечательные операционные системы — на компьютере и на одном ноутбуке Windows 7, на другом — Windows 8.

При попытке одновременно провести документы на ноутбуках один тупил около минуты, а второй вылетел из 1С с текстом ошибки «не удалось заблокировать таблицу…».

Запуск 1С на ноутбуке — это отдельное шоу, длившееся порядка 3 минут!

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

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

1. Отключить
использование протокола сети IPv6
, настроить адресацию на «старом» IPv4.

2. Добавить процессы 1С в исключения брандмауэра Windows, а также в исключения антивируса, либо отключить их вовсе (более рискованно, но простой тест показал увеличение скорости
перепроведения документов при отключенном антивирусе Avast в разы
!)

3. Запустить индексацию полнотекстового поиска в 1С либо выключить его вовсе

4. Запустить Тестирование и исправление базы, проверку утилитой ChDbfl

5. Запустить в конфигурации пункт Проверка конфигурации (если конфигурация не типовая, это может быть полезным). По результатам проверки конфигурации она волшебным образом уменьшилась в размерах почти на треть. Что уж и как до меня обновляли приходящие программисты — особо не вникал, но факт налицо.

6. Отключить ненужные функциональные опции.

7. Настроить права пользователям. (Этот и предыдущий советы показались глупостью, до тех пор, пока я не понаблюдал за отрисовкой управляемых форм при открытии списка документов. Чем меньше лишнего в управляемом интерфейсе — тем, как правило, быстрее он работает)

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

9. Указать «Скорость соединения — низкая» в настройках списка баз (это особого результата не дало, разве что отключились картинки у подсистем:))

После выполнения всех этих шагов файловая база 1С заработала на порядок шустрее. Запускаться стала максимум секунд за 10, а скорость перепроведения документов увеличилась в среднем в 12 раз.

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

P.S: А запустить файловую 1С, используя сетевой доступ к общей папке — все же нереально, т.к. даше самый шустрый твердотельный диск, оперативная память и процессор уткнутся в сетевые блокировки, и работа более одного пользователя будет фактически невозможна. Речь идет конкретно о конфигурации УТ 11.1. Самописные небольшие конфигурации вполне могут работать весьма быстро даже в файловом варианте.

Дополнения из комментариев
к публикации:

Дефрагментация диска
с файловой базой

Свертка
базы (может оказаться полезной, если база большого объема, например, за несколько лет). У клиента база была достаточно молодая, поэтому свертка была нецелесообразна.

Модернизация аппаратной части — более быстрый винчестер, новый свитч, процессор, и т.д.

Установить на веб-сервер
, доступ с помощью тонкого клиента. Тут мнения разделились. Кто-то говорит, в разы быстрее, кто-то — что ускорения не отмечено.

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

Большое количество выполняемых операций

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

Механизм блокировок и транзакций описан в руководстве разработчика. Их используют при обращении нескольких сеансов к одним и тем же данным одновременно. Логично, что одни и те же данные не могут изменяться разными пользователями в один и тот же момент.

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

Регламентные задания

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

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

«Зависшие сеансы»

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

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

Ошибки при написании конфигурации

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

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

Большая вероятность, что конфликт блокировки возник именно из-за ошибок разработчика, если он возник после обновления программы. Для проверки можно просто «откатить» доработки, либо произвести рефакторинг кода.

Стоит 8.1 комплект на 5 пользователей.
Юзаем типовую бухгалтерию.
Работают в основном через терминал, иногда и без него.
Вариант базы данных — файловый
Ошибки замечены у тех, кто в терминале

как-то так. Порылся в нете, Яндексе — вообщем как-то неконкретно всё.
Основные найденные рекомендации:
1) Выгрузить/Загрузить базу — в смысле новую состряпать из конфигуратора
2) запустить Prоgram Files1cv81binchdbfl.exe — проверка физической целостности базы
3) Провести Тестирование и исправление информационной базы
4) обновиться на последний релиз 8.1

Кто-нибудь что-нибудь поконкретнее знает?

13.5.2010, 10:05

Все что надо, вам уже предложили, сначала это пробовать. Физических ошибок на носителе то нет?
Поконкретнее врят ли кто скажет.

13.5.2010, 10:56

Дык эта… если рассматривать безотносительно 1С, а в общем, то тупо кто то из двух мест пытается заблокировать одну таблицу, первый успевает, а остальных посылают. Смотри какие операции/транзакции/обработки (или как это называется в 1С) выполняются в это время. Вполне может быть, что дело не в платформе, а криво написанных конфигурациях или особенносятх работы этих конфигураций на ваших данных.

P.S. А файловые БД в многопользовательском режиме это извращение.

13.5.2010, 10:58

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

13.5.2010, 11:06

Да сдается мне, восьмерина как платформа — сырость та еще. Где-то писали, что ПЕРИОДИЧЕСКИ тестирование с исправлением приходиться делать

13.5.2010, 11:10

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

Суть в том, что один блокирует таблицу, остальные ждут до тайм-аута.
Почему не успевают, это большой вопрос. Физический носитель поглядеть, может тупит. Системный журнал, MHDD. И все те действия, что написаны в первом посте обязательно.

P.S. Новое не значит что 100% рабочее.

13.5.2010, 11:38

Все что надо, вам уже предложили, сначала это пробовать

так то да, это до вечера надо ждать.
Была маленькая надежда что-нибудь новое услышать

Не рассказывайте чудес. Там бед хватает, но это не они.

где чудеса-то? Я не понял, кто-то собрался утверждать, что 8.1 крутая безупречная платформа?

писали, что ПЕРИОДИЧЕСКИ тестирование с исправлением приходиться делать

у нас похоже такой случай и есть.
Опрос пользователей поодиночке (чтобы не врали дружно) показал, что эта ситуация встречается вроде бы ТОЛЬКО у пользователей, работающих в терминале. А те кто ходят не через терминал, на котором
Windows Server 2003 R2 Standart 64, либо не помнят такой ситуации, либо её просто не возникало у них.
Причем двое особо наблюдательных отметили, что 1.5-2 месяца назад это явление наблюдалось НАМНОГО реже

13.5.2010, 12:42

Born Killer
, Антивирь какой-нить стоит на серваке? Если да, попробуй отключить или базу в исключения добавить

13.5.2010, 13:14

Антивирь какой-нить стоит на серваке?

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

нет там похоже антивируса…

13.5.2010, 13:23

Я не понял, кто-то собрался утверждать, что 8.1 крутая безупречная платформа?
да ну нах. 7.7 то лажа местами до сих пор, а про 8-ку впору слагать легенды о её глючности

Сколько база размером и какое количество пользователей?

Слагайте. Приведите конкретный пример.
Сколько база размером и какое количество пользователей?

ночью сделал тестир и исправл. До этого 1cv8.1CD был 2Гб, сейчас 1.5Гб стал.
Пользователей 5 штук, как и собсвенно лицензия.
Насчет легенд о глючности, был один случай. Вот если взять 7.7 и просто через Тотал скопировать 1 базу в другое место — копия без проблем.
Однажды попробовал тоже самое сделать с восьмерошной базой, скопировал каталог базы в другое место,
прописал, открыл обе базы одновременно, одна предполагалась для извращений.
В копии пометил на удаление несколько документов, переключился в окно с реальной базой не поверил глазам: те же самые документы пометились на удаление и там

Ясень пень, у 1С на всё есть ответ: делайте ежедневную копию базы данных.
Да только это ху е вый ответ

МММарина

Born Killer
,

привет, друг…

Миф!
Вот так рождаются легенды…

привет, друг…

привет, подруга. Вот тебя занесло то

А потом замироточили иконки на рабочем столе

Миф!
Вот так рождаются легенды…

я это видел. Мне не смешно потом было различать проведенные документы от непроведенных после снятия пометки удаления они все становятся непроведенными.

не помню какая платформа тогда стояла.

попробуйте сделать также. Может и у вас чо получится

Вот так рождаются легенды…

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

устраняю зияющие дыры в познаниях компьютера…
правда, по-моему, я безнадежна…

конкретно эта тема вообще не для тебя, родная (с)
а вообще, всё поддается осмыслению
заведи друга компьютерщика, как вариант)))

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

Вот уж никогда файловую базу то ни копировал 8-шную
Это была отнюдь не сенсация.

Вы блин можете не верить, но это БЫЛО.

Дело в том, что с 8-кой несколько лет работал очень плотно. Как только их не копировали. Так что поверить не могу
Но могу предположить, что когда чел переутомился — возможно многое. По себе знаю.

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

14.5.2010, 10:52

14.5.2010, 11:28

Есть прредположение-по запарке прописал одну и ту же базу 2 раза

8-ка предлагает заменить

14.5.2010, 11:31

нее… 7.7 при попытке это сделать тупо молчит и базу в список не добавляет (просто никак не реагирует)
8-ка предлагает заменить

Мож просто мышой промазал и запустил одну и ту же…Чудес ведь не бывает

14.5.2010, 11:47

Мож просто мышой промазал и запустил одну и ту же…

дома попробую что-нибудь подобное смоделировать. Потом отпишусь.
Обычно перед всяким опасным действием я в 1С (7.7. или 8-ке) жму на знак вопроса (там путь к базе показан).

Тут народ так дружно мою легенду на смех поднял, что я засомневался.
Хотя глюков в восьмерке больше чем в семерке.

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

14.5.2010, 12:35

— ржут, как лошади, забили короче, только они базу брали локально,
а мне выпал случай со сети её ебошить. Резервную копию по примеру предыдущих таварисчей решил не делать,
молодой был и глупый — понтов много.
Вообщем внес изменения в конфу, сохраняю конфу, в момент сохранения конфы какая-то авария случилась, и база упала, вечером. Шок. С утра пошли 3 спеца, включая меня туда.
Авария заключалась в том, что у базы оторвало номер релиза, т.е. в конфигурации при нажатии вопросик там было пусто, и название самой конфы отсутствовало. и при в ходе в базу тоже не видно ни хрена было, интерфейс в т.ч. слетел, в журналы документов было не зайти.
Решили проблему обновив убитую базу относительно свежим файлом конфигурации, всё получилось.
Все возродилось.
Это пример реальной легенды. 3 человека не должны глючить одновременно

14.5.2010, 13:53

в момент сохранения конфы какая-то авария случилась, и база упала

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

14.5.2010, 14:39

Ну если это был глюк железа, тогда ничего удивительного

хз, что было. железо, сетка или платформа — сейчас уже не так важно.
Мне кажется, софтина не должна так феерически себя вести
Это тоже самое, что выпустить Висту, и признать, что это говно. Как то быстро они с 8.0 на 8.1 перескочили
П.С. смысл слова баг мне понятен, спасибо за заботу)))

14.5.2010, 19:37

Скажем, если при накатывании сервис-паков или чего-то важного на ту же Висту произойдёт подобный «глюк», то вполне вероятно, что система потом, если и загрузится, то работать будет крайне нестабильно.
Или, скажем, в момент принятия инсулина произойдёт землятресение, то диабетик может отдать концы, т.к. шприц при тряске закатился под диван.

14.5.2010, 22:32

Born Killer, Антивирь какой-нить стоит на серваке? Если да, попробуй отключить или базу в исключения добавить

Как антивирус может повлиять на блокировки таблицы?? база 8.х — это один файл.

В копии пометил на удаление несколько документов, переключился в окно с реальной базой не поверил глазам: те же самые документы пометились на удаление и там shok.gif
Вообщем эта сраная ботва мне не понравилась, с тех пор копию базы делаю только через Выгрузить/Загрузить.
Как вам сударь, такая печальная легенда?
А если бы я увлекся и посерьезней вещи натворил в копии (например удалил бы помеченные на удаление документы), и каким то неясным образом, те же действия произвелись в основном базе?

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

периодически полезли косяки при проведении/записи документов с ошибкой вида
«Конфликт блокировок при выполнении транзакции: Не удалось заблокировать таблицу «_DOCUMENT158»

Так первым делом нужно определить какому документу метаданных соответствует таблица «_DOCUMENT158». Для этого есть метод глобального контекста «ПолучитьСтруктуруХраненияБазыДанных». Так ты поймешь хотя бы точно, какой документ «глючит».

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

А вообще 5 человек не стоит держать в файловом режиме. Субд можно взять бесплатную, докупить только ключ для сервера кластера и все. Или это конторе дорого?
Я вот не помню, технологический журнал можно снимать в файловом режиме или нет…..

14.5.2010, 22:53

=========================================================
http://odines.ru/thread1386.html — это твоя ветка?

То есть транзакция не проходит даже когда работает один пользователь?? Тогда вероятно проблема не в кривом коде при записи движений. Потому как в однопользовательском режиме блокировок быть не может. Запись ведь последовательно производится.

Тогда похоже проблема именно в нарушениях в структуре самой базы..
Лучше сначала выполнить Тестирование и исправление базы с включенным флагом «Реструктуризация таблиц информационной базы».
Выгрузка в dt с последующей загрузкой тоже имеет смысл…
chdbfl.exe в этом случае вряд ли поможет… хотя конечно пробовать стоит, если остальное не поможет.

Гы — тока щас посмотрел на дату постов в ветке http://odines.ru/thread1386.html Да и разработка типовых в новом управляемом режиме не за горами.
А уж разница между 8.2 и 8.1 намного больше чем между 8.1 и 7.7 особенно для разработчиков, мозги приходится капитально перестраивать для разработки под «управляемый» режим работы

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

Конфликт блокировок в 1С 8.3 и его значение

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

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

Причины возникновения ошибок блокировки в 1С

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

Если не брать идеальные варианты, то конфликты блокировок 1С встречаются по следующим причинам:

Одновременная работа пользователей с большим объемом данных.
Эта первопричина продиктована внутренними механизмами 1С. Они предполагают запрет изменения данных, вовлеченных в транзакцию, запущенную от имени другого пользователя;

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

  • Неоптимальные запросы;
  • Запрос остатков в начале действий;
  • Непонимание предназначения объектов конфигурации и их неправильное применение;
  • Избыточность заложенных в системе или дополнительно разработанных блокировок.

Как исправить конфликт блокировок в 1С 8.3

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

Решением проблемы конфликта блокировок в 1С 8.3 может стать перевод конфигурации на управляемый (ручной) режим управления блокировками. Реализованный в версии 8.1, механизм в руках грамотных специалистов решает проблему конфликта блокировок при транзакции в 1С.

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

Быстрое решение конфликта блокировок 1С

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

Для быстрого решения проблемы существуют два пути:

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

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

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

  • Что такое хранилище конфигурации и для чего оно нужно?
  • Какие операции можно выполнять при помощи хранилища?
  • Как особенности есть при работе с хранилищем?
  • Из каких файлов состоит хранилище и где они находятся?
  • Какие варианты подключения к хранилищу имеются и каким лучше всего воспользоваться?
  • Какие изменения произошли во внутренней кухне хранилища в платформе 1С редакции 8.3?
  • Как сделать бекап хранилища?
  • На какие моменты стоит обратить внимание при работе с хранилищем?
  • Применимость

    Большая часть материала в статье описана для платформы «1С:Предприятие» редакций от 8.3.4.365 до 8.3.11

    Наиболее важные вопросы про хранилище конфигурации

    При попытке подключения к информационной базе 1С:Предприятия в режиме Конфигуратора платформа проверяет, не открыта ли текущая информационная база для конфигурирования.

    Ошибка блокировки информационной базы

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

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

    Однако платформа 1С:Предприятие позволяет проводить параллельную разработку решения при помощи механизма групповой работы – хранилища конфигурации.

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

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

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

    Хранилище конфигурации - схема

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

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

    Хранилищем имеет смысл пользоваться только при коллективной разработке?

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

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

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

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

    Какие операции может выполнять пользователь с объектами в хранилище?

    Существует четыре операции, которые пользователь может выполнять с объектами хранилища:

    • захват объекта в хранилище;
    • помещение объекта в хранилище;
    • получение объекта из хранилища;
    • отмена захвата в хранилище.

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

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

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

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

    Какие объекты в хранилище можно редактировать двум разным пользователям одновременно?

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

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

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

    Какие права существуют у пользователей хранилища конфигурации?

    Каждому пользователю хранилища могут быть назначены следующие виды прав, определяющие разрешенные действия с хранилищем:

    • Административные функции (позволяет создавать, изменять и удалять пользователей хранилища, отключать пользователей, подключенных к хранилищу, и отменять захват объектов хранилища, выполненный другими пользователями);
    • Изменение состава версий (позволяет выполнять откат, сокращение и объединение версий конфигураций в хранилище);
    • Захват объектов (позволяет захватывать объекты в хранилище и вносить изменения в конфигурацию хранилища). Если это право не установлено, то объекты можно только просматривать.

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

    Как захватить в хранилище сразу несколько объектов?

    Это можно сделать при помощи диалога работы с хранилищем (в меню Конфигурация – Хранилище конфигурации – Хранилище). В открывшемся дереве конфигурации при помощи мыши, стрелок на клавиатуре, кнопок Shift и Ctrl выделяем несколько объектов. После этого при помощи элементов контекстного меню или кнопок командной панели выполняются операции над выбранными объектами.

    Захватить в хранилище объекты

    Для увеличения нажмите на изображение.

    Как вывести список объектов хранилища, захваченных конкретным пользователем?

    Это можно сделать при помощи диалога работы с хранилищем (в меню Конфигурация – Хранилище конфигурации – Хранилище). В меню выбрать Вид – Список.

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

    Хранилище конфигурации - захваченные пользователем

    Для увеличения нажмите на изображение.

    Где можно увидеть, когда и кем база была отключена от хранилища?

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

    Отключение базы от хранилища

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

    Как «хранится» хранилище конфигурации?

    Хранилище конфигурации размещается в файле с именем 1Cv8ddb.1CD. Этот файл является обычной файловой базой 1С:Предприятия 8. В ней хранится информация по захваченным объектам, помещенным в хранилище версиям конфигурации, пользователям хранилища и их правам.

    Планов по реализации размещения данных хранилища конфигурации в базах SQL-сервера фирма «1С» пока не озвучивала.

    В каталоге с файлом 1Cv8ddb.1CD также может быть расположена папка Cache. Данная папка является служебной. В ней сохраняются файлы версий конфигурации хранилища. Файлы создаются при выполнении, например, таких операций, как сравнение с определенной версией хранилища, сохранение версии хранилища в файл и т.д.

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

    • файл описания таблицы;
    • файл записей данных, в котором находятся все записи таблицы, за исключением полей неограниченной длины;
    • файл индексов (если для таблицы не определено ни одного индекса, то этот файл отсутствует);
    • файл значений неограниченной длины, в котором хранятся значения неограниченной длины, содержащиеся в полях таблицы.

    Размер каждого из этих внутренних файлов не может превышать 4 Гбайт. Поэтому при очередном помещении изменений в хранилище может возникнуть ошибка:

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

    по причине:
    Превышен максимально допустимый размер внутреннего файла ‘D:…//1cv8ddb.1CD’

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

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

    В каких таблицах информационной базы хранится информация о связи с хранилищем конфигурации?

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

    Фирма «1С» не сообщает подробностей о формате записей этой таблицы, отмечая, что формат файлов не предполагает чтения или модификации какими-либо средствами, кроме «1С:Предприятия».

    Путем наблюдений установлено, что когда информационная база подключена к хранилищу, в таблице Files существуют две записи, у которых поле Filename имеет значения «depot.dat» и «depot.nfo».

    Какие могут возникать проблемы при разработке внешнего вида форм с использованием хранилища конфигураций?

    Описывался случай, когда у одного из разработчиков в настройках операционной системы стоял размер текста и других элементов Windows «Крупный» – 150%. Все формы, которые он помещал в хранилище, открывались с искаженными привязками. После отмены масштабирования в настройках проблема ушла.

    Существуют рекомендации от фирмы «1С» по разработке форм. В конфигураторе при открытии формы для редактирования при обнаружении несоответствия выводится сообщение: «Разработку форм рекомендуется выполнять в разрешении 96 DPI».

    Как следует поступать в случае, когда после помещения объекта в хранилище пропадают внесенные изменения?

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

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

    %USERPROFILE%Local SettingsApplication Data1C1Cv82
    (%LOCALAPPDATA%1C1Cv82 для ОС Windows Vista и выше)

    Идентификатор информационной базы можно посмотреть в файле описаний зарегистрированных информационных баз, расположенном в
    %APPDATA%1C1CEStartibases.v8i

    В платформе «1С:Предприятие 8.3» существует файл location.cfg, расположенный в
    %LOCALAPPDATA%1C1Cv8.

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

    Очистить кэш версий хранилища, расположенные в подпапке Cache каталога, в котором расположено хранилище (файл 1Cv8ddb.1CD).

    Возможно, потребуется отключение от хранилища и повторное подключение к нему.

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

    Как решить эту проблему?

    После аварийного завершения работы конфигуратора во время захвата объектов в хранилище при последующем подключении к хранилищу появляется сообщение об ошибке «Файл не обнаружен ‘depot.dat.new’».
    Для решения проблемы удалите из таблицы Files средствами SQL запись с FileName=’depot.revise’
    Исправление данной ошибки должно быть доступно начиная с платформы версии 8.3.3.

    Что можно предпринять в этом случае?

    После обновления на версию 8.2.19.76, стала регулярно вылетать ошибка:
    Неклассифицированная ошибка работы с хранилищем конфигурации.

    по причине:
    Ошибка выполнения запроса
    Ошибка при выполнении запроса POST к ресурсу :

    по причине:
    server_addr=tcp://хххххх/хххххх descr=Ошибка сетевого доступа к серверу
    (Windows Sockets – 10053(0x00002745). Программа на вашем хост-компьютере разорвала установленное подключение. ) line=1097 file=SrcDataExchangeTcpClientImpl.cpp

    Подобная ошибка перестает проявляться после перезапуска службы сервера хранилища.

    Однако в случае возникновения ошибки можно не перезапускать сервер или конфигуратор, а попробовать выполнить команды Конфигурация – Хранилище конфигурации – Закрыть хранилище/Открыть хранилище.

    Как следует поступить при этом?

    При получении объектов из хранилища или помещении объектов в хранилище периодически выдается ошибка:
    Не удалось заблокировать таблицу ‘USERS’ (или таблицу ‘BINDINGS’)

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

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

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

    Как разорвать подключение к хранилищу?

    Во время работы с хранилищем произошло отключение электричества. После этого разработчик не может подключиться к хранилищу, отключить его не получается (появляется сообщение об ошибке «Невозможно отключить пользователя, работающего с хранилищем»), нового пользователя тоже не добавить (появляется сообщение об ошибке «Не удалось заблокировать таблицу ‘USERS’»).

    Необходимо на компьютере, на котором расположено хранилище, закрыть подвисшее соединение с файлами хранилища (самим файлом 1Cv8ddb.1CD и временными файлами, расположенными в этом каталоге).

    Это можно сделать при помощи оснастки Управление компьютером (пункт Открытые файлы) или утилиты наподобие Unlocker.

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

    Закрыть соединение с файлами хранилища

    Для увеличения нажмите на изображение.

    Хранилищем конфигурации можно пользоваться только в пределах локальной сети?

    Не обязательно. Хранилище конфигурации поддерживает удаленный режим работы. Доступ к хранилищу конфигурации могут иметь пользователи локальной сети (по протоколу TCP) и пользователи сети Интернет (по протоколу HTTP).

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

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

    Удаленную работу с хранилищем конфигурации обеспечивает специальное приложение – сервер хранилища конфигурации (crserver.exe для Windows или crserver для Linux). Возможна одновременная работа с хранилищем конфигурации как удаленно, так и как с общим файловым ресурсом.

    Удаленная работа с хранилищем

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

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

    Какие проблемы при работе с хранилищем были решены в платформе 8.3?

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

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

    Изменен способ хранения информации в хранилище конфигурации: объекты хранилища теперь хранятся в файловой системе (в папке data, которая занимает большинство места).

    Объекты хранилища конфигурации в файловой системе

    Для увеличения нажмите на изображение.

    Файл 1Cv8ddb.1CD в этом случае используется только как хранилище информации об измененных объектах, поэтому его размер существенно уменьшился. Новый способ хранения возможен только при отключенном режиме совместимости хранилища конфигурации.

    Установленный режим совместимости можно увидеть в окне «Администрирование хранилища конфигурации».

    Администрирование хранилища конфигурации

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

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

    В настоящее время не решен вопрос со сравнением некоторых объектов метаданных и свойств (например, права ролей, формы).

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

    Сравнение свойств

    Для увеличения нажмите на изображение.

    Выборочно можно сравнивать следующие свойства:

    • модули;
    • форма;
    • макеты;
    • картинка;
    • WS-ссылка;
    • Расписание;
    • агрегаты регистра;
    • состав плана обмена;
    • стиль;
    • рабочая область рабочего стола;
    • карта маршрута;
    • справка;
    • предопределенные элементы;
    • пакет XDTO;
    • фрагмент командного интерфейса;
    • права роли.

    Если таблица «Свойство» не заполнена, значит у объекта изменились другие свойства.

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

    4) Проблема работы сервера хранилища. Работа сервера хранилища при выполнении некоторых операций (например, рекурсивное помещение изменений в хранилище) была неудовлетворительной, операция могла занимать значительное время. Была выполнена модернизация протокола взаимодействия конфигуратора с сервером хранилища, что позволило, с одной стороны, увеличить скорость выполнения операций с сервером, а с другой стороны – сократить объем передаваемых данных.

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

    Таким образом, новый формат хранилища 8.3 имеет следующие преимущества:

    • повышение быстродействия хранилища (ускорено открытие конфигурации, подключенной к хранилищу; ускорено подключение к хранилищу; ускорено помещение объектов в хранилище; ускорено обновление конфигурации из хранилища, получение объектов, отмена захвата объекта в хранилище; увеличена параллельность помещения объектов в хранилище несколькими пользователями);
    • при работе через сервер хранилища выполняется проверка версий платформы, которая гарантирует идентичность используемых платформ (т.е. платформой 8.2 нельзя подключиться к серверу хранилища версии 8.3.4);
    • при новом способе хранения информации размер самого хранилища теперь не так критичен.
    Что происходит при выполнении оптимизации хранилища на платформе 8.3?

    В версии 8.3.3 для устранения проблемы с достижением предела в 4 Гб на одну таблицу в хранилище без установленного режима совместимости объекты метаданных хранятся в виде файлов на диске.
    Большое количество файлов может несколько замедлять работу с хранилищем (особенно при расположении хранилища на сетевом диске).

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

    При установленной опции «Предлагать оптимизацию после выполнения операций с хранилищем» в окне «Администрирование хранилища» администратору хранилища будет предлагаться провести оптимизацию при достижении:

    • количества неупакованных файлов больше 5000;
    • количества архивов более 50.

    Администрирование хранилища конфигурации

    При установленной галочке «Предлагать оптимизацию после выполнения операций с хранилищем» после помещения объектов в хранилище, отката/слияния версий хранилища разработчику будет задан вопрос:

    Оптимизация данных хранилища конфигурации

    При нажатии кнопки «Оптимизировать» в подкаталоге pack папки с данными хранилища появляются упакованные файлы.

    Упакованные файлы

    Для увеличения нажмите на изображение.

    Если режим совместимости установлен в «Не использовать», то у хранилища будет новая структура, и работать с ним сможет только платформа версии 8.3.3.

    Если режим совместимости установлен в «Версия 8.3.2», то структура хранилища будет такая же, как в версии платформы 8.3.2. Работать с ним смогут платформы версии с 8.2.9 по 8.3.2 включительно.

    Оптимизированные алгоритмы работы с хранилищем будут работать только в режиме совместимости «Не использовать».

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

    Как выполнить резервное копирование хранилища конфигурации?

    Для выполнения резервного копирования хранилища конфигурации необходимо скопировать файл 1Cv8ddb.1CD. Служебный каталог Cache можно не копировать, поскольку в нем расположены файлы версий конфигурации хранилища.
    Несмотря на то, что файл хранилища не блокируется для чтения платформой, для обеспечения целостности копируемых данных к хранилищу не должны быть подключены пользователи.

    Если для хранилища свойство «Режим совместимости» установлено в значение «Не использовать» (а это возможно только при использовании платформы не ниже 8.3.3), то для выполнения резервного копирования хранилища следует скопировать файл 1Cv8ddb.1CD и ПОЛНОСТЬЮ папку data, расположенную в той же папке, что и файл 1Cv8ddb.1CD.

    Как выполнить проверку физической целостности файла хранилища?

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

    На что еще необходимо обратить внимание при работе с хранилищем?

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

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

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

    4) Если отладочные базы разработчиков создаются из копий рабочей базы, установите для каждой из них собственный заголовок главного окна, например, «Копия Иванов». Это позволит избежать ненужной путаницы при наличии нескольких одновременно открытых баз.

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

    Ошибка связывания с хранилищем конфигурации

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

    Рассмотрим в хронологическом порядке, какие еще значимые изменения произошли в механизме хранилища конфигурации:

    • Механизм сравнения модулей форм был перенесен в отдельную команду, что позволило сделать данной сравнение без построения отчета по самой форме. Данное изменение повысило комфорт и общее удобство при сравнении модулей форм. (8.3.5)
    • Добавлен локальный кэш данных для хранилища. Теперь используются два кэша: локальный и глобальный. Локальный кэш, естественно, располагается на локальном компьютере, подключенном к хранилищу. Он предназначен для ускорения работы. Также стало доступным возможность управлять местом размещения локального кэша, а также его максимальным размером. (8.3.5)
    • Произведено очередная оптимизация при работе с хранилищем, в результате которой была повышена скорость работы с ним. Для сохранения обратной совместимости был реализован новый режим совместимости с версией 8.3.3. Ускорение работы будет наблюдаться если данный режим установлен в значение “Не использовать”. (8.3.6)
    • На сервере хранилища добавлена проверка целостности данных объекта, который помещается в хранилище. Эта возможность снижает возможность помещения в хранилище некорректных данных объекта конфигурации (8.3.9)
    • Добавлена возможность хранить историю хранилища большего размера (десятки тысяч версий). Если вы создаете новое хранилище, то его база данных будет сразу создаваться в формате версии 8.3.8. Если вам нужно перевести уже созданное хранилище под новый формат, следует воспользоваться утилитой cnvdbfl (8.3.10)
    • Существенно ускорены операции при работе с хранилищем (8.3.10)

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

    PDF-версия статьи для участников группы ВКонтакте

    Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

    Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

    Статья в PDF-формате

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

    Ошибка совместного доступа к файлу 1C в 8.3



    Ошибка, сообщающая о проблеме с доступом к файлу или совместном доступе к файлу — та неприятность, с которой нередко сталкиваются пользователи 1C 8.3. Сейчас мы расскажем о причинах появления этого бага и о том, как его устранить.

    ошибка совместного доступа к файлу в 1С.png

    ошибка доступа к файлу в 1С.png


    Права пользователя

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

    Свойства1.PNG



    Рекомендуем проверить настройки прав доступа:


    1. нажмите правой кнопкой мыши на ярлык информационной базы и откройте «Свойства»;


    2. нажмите на «Общий доступ»;


    3. если в настройках доступ указан лишь к чтению объекта, то надо дать разрешение и на запись.



    Что касается информационной базы, расположенной на локальном ПК, то здесь необходимо удостовериться, что на вкладке «Безопасность» стоит разрешение на запись.

    Свойства2.PNG

    Настройки блокирования



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



    Хотим обратить ваше внимание, что самостоятельно заходить и изменять настройки антивирусных программ стоит лишь в исключительных случаях. Такие программы обеспечивают безопасность ваших данных. В случае нехватки опыта в данной сфере рекомендуем обратиться к специалистам, которые помогут вам снять блокировку 1C.


    Чистка кэша



    В ошибке может указываться путь к временным файлам. К примеру, C:Users…AppDataLocalTemp. В таком случае советуем прибегнуть к очистке кэша.


    Одновременный запуск программ 1С



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


    Заключение



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


    Если по какой-то причине вам не удалось справиться с проблемой, или же у вас возникли вопросы по использованию программ и обновлению 1C, то обратитесь к нашим специалистам.

    Отзывы о компании

    • Сивелькина С. В.

      ПАО «НИКО-БАНК» выражает свою благодарность за оперативную и грамотную работу.
      В условиях постоянно меняющегося законодательства Банк заинтересован иметь полную и актуальную номативную базу. Это обеспечивается использованием Банком справочно-нормативной системы «Гарант». 

      Безусловным плюсом в работе компании «МастерСофт» является быстрое реагирование сотрудников при предоставлении документов по запросу Банка, принятых до обновления справочно-правовой системы.

    • Мордвинцев С. П.

      Коллектив компании «АЭРОПОРТ ОРЕНБУРГ» выражает благодарность за взаимовыгодное сотрудничество с МастерСофт-ИТ. Оперативная поставка антивирусных программ Dr. Web обеспечила надежную защиту нашей компьтерной сети.

      Особая благодарность сотрудникам Департамента продаж СЦ ИТ за профессиональный подход в решении всех возникающих задач.

    • Ряховская Н. А.

      ООО «Орский Вагонный Завод» выражает искреннюю благодраность за качество обслуживания вашими специалистами. Консультации и поставка антивирусов всегда проходят оперативно и на высоком профессиональном уровне.
      Уверены, что и в дальнейшем наше сотрудничество на взаимовыгодных условиях продолжится.

    • Кетерер Т. М.

      Главный бухгалтер муниципального бюджетного учреждения дополнительного образования «Дворец творчества детей и молодёжи» Кетерер Татьяна Михайловна выражает благодарность специалистам МастерСофт:
      «Я хотела бы объявить благодарность вашим сотрудникам. Работает с нами по программе «1С: Бухгалтерия бюджетного учреждения 8» непосредственно Шевлягина Юлия.

      Так же огромная благодарность за отзывчивость, терпение и квалифицированную, своевременную помощь Набокиной Олесе и Ерёменко Татьяне (они нас сопровождают по программе «Зарплата и Кадры»).


      Им очень с нами тяжело, но они терпеливо продолжают сотрудничать. С вами очень надёжно. Конечно же наши ошибки есть и без вас мы бы вообще о них не знали и в суде, наверное, судились бы. А сейчас мы решаем вопросы…».

    Если такая ошибка не у всех, а только у некоторых пользователей хранилища 1С, то необходимо сделать следующее —

    1. Рестартим сервис хранилища
    2. Заходим под администратором. Удаляем пользователя и создаём с ТОЧНО ТАКИМ же именем. Он спросит восстановить или нет. Востанавливаем.
    3. Заходим в БД и ОТКЛЮЧАЕМСЯ от хранилища.
    4. Теперь заходим снова и подключаемся к хранилищу
    5. Нажимаем «синию кнопку» — обновления конфигурации
    6. Всё должно заработать

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

  • Что такое хранилище конфигурации и для чего оно нужно?
  • Какие операции можно выполнять при помощи хранилища?
  • Как особенности есть при работе с хранилищем?
  • Из каких файлов состоит хранилище и где они находятся?
  • Какие варианты подключения к хранилищу имеются и каким лучше всего воспользоваться?
  • Какие изменения произошли во внутренней кухне хранилища в платформе 1С редакции 8.3?
  • Как сделать бекап хранилища?
  • На какие моменты стоит обратить внимание при работе с хранилищем?
  • Применимость

    Большая часть материала в статье описана для платформы «1С:Предприятие» редакций от 8.3.4.365 до 8.3.11

    Наиболее важные вопросы про хранилище конфигурации

    При попытке подключения к информационной базе 1С:Предприятия в режиме Конфигуратора платформа проверяет, не открыта ли текущая информационная база для конфигурирования.

    Ошибка блокировки информационной базы

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

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

    Однако платформа 1С:Предприятие позволяет проводить параллельную разработку решения при помощи механизма групповой работы – хранилища конфигурации.

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

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

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

    Хранилище конфигурации - схема

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

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

    Хранилищем имеет смысл пользоваться только при коллективной разработке?

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

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

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

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

    Какие операции может выполнять пользователь с объектами в хранилище?

    Существует четыре операции, которые пользователь может выполнять с объектами хранилища:

    • захват объекта в хранилище;
    • помещение объекта в хранилище;
    • получение объекта из хранилища;
    • отмена захвата в хранилище.

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

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

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

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

    Какие объекты в хранилище можно редактировать двум разным пользователям одновременно?

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

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

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

    Какие права существуют у пользователей хранилища конфигурации?

    Каждому пользователю хранилища могут быть назначены следующие виды прав, определяющие разрешенные действия с хранилищем:

    • Административные функции (позволяет создавать, изменять и удалять пользователей хранилища, отключать пользователей, подключенных к хранилищу, и отменять захват объектов хранилища, выполненный другими пользователями);
    • Изменение состава версий (позволяет выполнять откат, сокращение и объединение версий конфигураций в хранилище);
    • Захват объектов (позволяет захватывать объекты в хранилище и вносить изменения в конфигурацию хранилища). Если это право не установлено, то объекты можно только просматривать.

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

    Как захватить в хранилище сразу несколько объектов?

    Это можно сделать при помощи диалога работы с хранилищем (в меню Конфигурация – Хранилище конфигурации – Хранилище). В открывшемся дереве конфигурации при помощи мыши, стрелок на клавиатуре, кнопок Shift и Ctrl выделяем несколько объектов. После этого при помощи элементов контекстного меню или кнопок командной панели выполняются операции над выбранными объектами.

    Захватить в хранилище объекты

    Для увеличения нажмите на изображение.

    Как вывести список объектов хранилища, захваченных конкретным пользователем?

    Это можно сделать при помощи диалога работы с хранилищем (в меню Конфигурация – Хранилище конфигурации – Хранилище). В меню выбрать Вид – Список.

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

    Хранилище конфигурации - захваченные пользователем

    Для увеличения нажмите на изображение.

    Где можно увидеть, когда и кем база была отключена от хранилища?

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

    Отключение базы от хранилища

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

    Как «хранится» хранилище конфигурации?

    Хранилище конфигурации размещается в файле с именем 1Cv8ddb.1CD. Этот файл является обычной файловой базой 1С:Предприятия 8. В ней хранится информация по захваченным объектам, помещенным в хранилище версиям конфигурации, пользователям хранилища и их правам.

    Планов по реализации размещения данных хранилища конфигурации в базах SQL-сервера фирма «1С» пока не озвучивала.

    В каталоге с файлом 1Cv8ddb.1CD также может быть расположена папка Cache. Данная папка является служебной. В ней сохраняются файлы версий конфигурации хранилища. Файлы создаются при выполнении, например, таких операций, как сравнение с определенной версией хранилища, сохранение версии хранилища в файл и т.д.

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

    • файл описания таблицы;
    • файл записей данных, в котором находятся все записи таблицы, за исключением полей неограниченной длины;
    • файл индексов (если для таблицы не определено ни одного индекса, то этот файл отсутствует);
    • файл значений неограниченной длины, в котором хранятся значения неограниченной длины, содержащиеся в полях таблицы.

    Размер каждого из этих внутренних файлов не может превышать 4 Гбайт. Поэтому при очередном помещении изменений в хранилище может возникнуть ошибка:

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

    по причине:
    Превышен максимально допустимый размер внутреннего файла ‘D:…//1cv8ddb.1CD’

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

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

    В каких таблицах информационной базы хранится информация о связи с хранилищем конфигурации?

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

    Фирма «1С» не сообщает подробностей о формате записей этой таблицы, отмечая, что формат файлов не предполагает чтения или модификации какими-либо средствами, кроме «1С:Предприятия».

    Путем наблюдений установлено, что когда информационная база подключена к хранилищу, в таблице Files существуют две записи, у которых поле Filename имеет значения «depot.dat» и «depot.nfo».

    Какие могут возникать проблемы при разработке внешнего вида форм с использованием хранилища конфигураций?

    Описывался случай, когда у одного из разработчиков в настройках операционной системы стоял размер текста и других элементов Windows «Крупный» – 150%. Все формы, которые он помещал в хранилище, открывались с искаженными привязками. После отмены масштабирования в настройках проблема ушла.

    Существуют рекомендации от фирмы «1С» по разработке форм. В конфигураторе при открытии формы для редактирования при обнаружении несоответствия выводится сообщение: «Разработку форм рекомендуется выполнять в разрешении 96 DPI».

    Как следует поступать в случае, когда после помещения объекта в хранилище пропадают внесенные изменения?

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

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

    %USERPROFILE%Local SettingsApplication Data1C1Cv82
    (%LOCALAPPDATA%1C1Cv82 для ОС Windows Vista и выше)

    Идентификатор информационной базы можно посмотреть в файле описаний зарегистрированных информационных баз, расположенном в
    %APPDATA%1C1CEStartibases.v8i

    В платформе «1С:Предприятие 8.3» существует файл location.cfg, расположенный в
    %LOCALAPPDATA%1C1Cv8.

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

    Очистить кэш версий хранилища, расположенные в подпапке Cache каталога, в котором расположено хранилище (файл 1Cv8ddb.1CD).

    Возможно, потребуется отключение от хранилища и повторное подключение к нему.

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

    Как решить эту проблему?

    После аварийного завершения работы конфигуратора во время захвата объектов в хранилище при последующем подключении к хранилищу появляется сообщение об ошибке «Файл не обнаружен ‘depot.dat.new’».
    Для решения проблемы удалите из таблицы Files средствами SQL запись с FileName=’depot.revise’
    Исправление данной ошибки должно быть доступно начиная с платформы версии 8.3.3.

    Что можно предпринять в этом случае?

    После обновления на версию 8.2.19.76, стала регулярно вылетать ошибка:
    Неклассифицированная ошибка работы с хранилищем конфигурации.

    по причине:
    Ошибка выполнения запроса
    Ошибка при выполнении запроса POST к ресурсу :

    по причине:
    server_addr=tcp://хххххх/хххххх descr=Ошибка сетевого доступа к серверу
    (Windows Sockets – 10053(0x00002745). Программа на вашем хост-компьютере разорвала установленное подключение. ) line=1097 file=SrcDataExchangeTcpClientImpl.cpp

    Подобная ошибка перестает проявляться после перезапуска службы сервера хранилища.

    Однако в случае возникновения ошибки можно не перезапускать сервер или конфигуратор, а попробовать выполнить команды Конфигурация – Хранилище конфигурации – Закрыть хранилище/Открыть хранилище.

    Как следует поступить при этом?

    При получении объектов из хранилища или помещении объектов в хранилище периодически выдается ошибка:
    Не удалось заблокировать таблицу ‘USERS’ (или таблицу ‘BINDINGS’)

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

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

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

    Как разорвать подключение к хранилищу?

    Во время работы с хранилищем произошло отключение электричества. После этого разработчик не может подключиться к хранилищу, отключить его не получается (появляется сообщение об ошибке «Невозможно отключить пользователя, работающего с хранилищем»), нового пользователя тоже не добавить (появляется сообщение об ошибке «Не удалось заблокировать таблицу ‘USERS’»).

    Необходимо на компьютере, на котором расположено хранилище, закрыть подвисшее соединение с файлами хранилища (самим файлом 1Cv8ddb.1CD и временными файлами, расположенными в этом каталоге).

    Это можно сделать при помощи оснастки Управление компьютером (пункт Открытые файлы) или утилиты наподобие Unlocker.

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

    Закрыть соединение с файлами хранилища

    Для увеличения нажмите на изображение.

    Хранилищем конфигурации можно пользоваться только в пределах локальной сети?

    Не обязательно. Хранилище конфигурации поддерживает удаленный режим работы. Доступ к хранилищу конфигурации могут иметь пользователи локальной сети (по протоколу TCP) и пользователи сети Интернет (по протоколу HTTP).

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

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

    Удаленную работу с хранилищем конфигурации обеспечивает специальное приложение – сервер хранилища конфигурации (crserver.exe для Windows или crserver для Linux). Возможна одновременная работа с хранилищем конфигурации как удаленно, так и как с общим файловым ресурсом.

    Удаленная работа с хранилищем

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

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

    Какие проблемы при работе с хранилищем были решены в платформе 8.3?

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

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

    Изменен способ хранения информации в хранилище конфигурации: объекты хранилища теперь хранятся в файловой системе (в папке data, которая занимает большинство места).

    Объекты хранилища конфигурации в файловой системе

    Для увеличения нажмите на изображение.

    Файл 1Cv8ddb.1CD в этом случае используется только как хранилище информации об измененных объектах, поэтому его размер существенно уменьшился. Новый способ хранения возможен только при отключенном режиме совместимости хранилища конфигурации.

    Установленный режим совместимости можно увидеть в окне «Администрирование хранилища конфигурации».

    Администрирование хранилища конфигурации

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

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

    В настоящее время не решен вопрос со сравнением некоторых объектов метаданных и свойств (например, права ролей, формы).

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

    Сравнение свойств

    Для увеличения нажмите на изображение.

    Выборочно можно сравнивать следующие свойства:

    • модули;
    • форма;
    • макеты;
    • картинка;
    • WS-ссылка;
    • Расписание;
    • агрегаты регистра;
    • состав плана обмена;
    • стиль;
    • рабочая область рабочего стола;
    • карта маршрута;
    • справка;
    • предопределенные элементы;
    • пакет XDTO;
    • фрагмент командного интерфейса;
    • права роли.

    Если таблица «Свойство» не заполнена, значит у объекта изменились другие свойства.

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

    4) Проблема работы сервера хранилища. Работа сервера хранилища при выполнении некоторых операций (например, рекурсивное помещение изменений в хранилище) была неудовлетворительной, операция могла занимать значительное время. Была выполнена модернизация протокола взаимодействия конфигуратора с сервером хранилища, что позволило, с одной стороны, увеличить скорость выполнения операций с сервером, а с другой стороны – сократить объем передаваемых данных.

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

    Таким образом, новый формат хранилища 8.3 имеет следующие преимущества:

    • повышение быстродействия хранилища (ускорено открытие конфигурации, подключенной к хранилищу; ускорено подключение к хранилищу; ускорено помещение объектов в хранилище; ускорено обновление конфигурации из хранилища, получение объектов, отмена захвата объекта в хранилище; увеличена параллельность помещения объектов в хранилище несколькими пользователями);
    • при работе через сервер хранилища выполняется проверка версий платформы, которая гарантирует идентичность используемых платформ (т.е. платформой 8.2 нельзя подключиться к серверу хранилища версии 8.3.4);
    • при новом способе хранения информации размер самого хранилища теперь не так критичен.
    Что происходит при выполнении оптимизации хранилища на платформе 8.3?

    В версии 8.3.3 для устранения проблемы с достижением предела в 4 Гб на одну таблицу в хранилище без установленного режима совместимости объекты метаданных хранятся в виде файлов на диске.
    Большое количество файлов может несколько замедлять работу с хранилищем (особенно при расположении хранилища на сетевом диске).

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

    При установленной опции «Предлагать оптимизацию после выполнения операций с хранилищем» в окне «Администрирование хранилища» администратору хранилища будет предлагаться провести оптимизацию при достижении:

    • количества неупакованных файлов больше 5000;
    • количества архивов более 50.

    Администрирование хранилища конфигурации

    При установленной галочке «Предлагать оптимизацию после выполнения операций с хранилищем» после помещения объектов в хранилище, отката/слияния версий хранилища разработчику будет задан вопрос:

    Оптимизация данных хранилища конфигурации

    При нажатии кнопки «Оптимизировать» в подкаталоге pack папки с данными хранилища появляются упакованные файлы.

    Упакованные файлы

    Для увеличения нажмите на изображение.

    Если режим совместимости установлен в «Не использовать», то у хранилища будет новая структура, и работать с ним сможет только платформа версии 8.3.3.

    Если режим совместимости установлен в «Версия 8.3.2», то структура хранилища будет такая же, как в версии платформы 8.3.2. Работать с ним смогут платформы версии с 8.2.9 по 8.3.2 включительно.

    Оптимизированные алгоритмы работы с хранилищем будут работать только в режиме совместимости «Не использовать».

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

    Как выполнить резервное копирование хранилища конфигурации?

    Для выполнения резервного копирования хранилища конфигурации необходимо скопировать файл 1Cv8ddb.1CD. Служебный каталог Cache можно не копировать, поскольку в нем расположены файлы версий конфигурации хранилища.
    Несмотря на то, что файл хранилища не блокируется для чтения платформой, для обеспечения целостности копируемых данных к хранилищу не должны быть подключены пользователи.

    Если для хранилища свойство «Режим совместимости» установлено в значение «Не использовать» (а это возможно только при использовании платформы не ниже 8.3.3), то для выполнения резервного копирования хранилища следует скопировать файл 1Cv8ddb.1CD и ПОЛНОСТЬЮ папку data, расположенную в той же папке, что и файл 1Cv8ddb.1CD.

    Как выполнить проверку физической целостности файла хранилища?

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

    На что еще необходимо обратить внимание при работе с хранилищем?

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

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

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

    4) Если отладочные базы разработчиков создаются из копий рабочей базы, установите для каждой из них собственный заголовок главного окна, например, «Копия Иванов». Это позволит избежать ненужной путаницы при наличии нескольких одновременно открытых баз.

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

    Ошибка связывания с хранилищем конфигурации

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

    Рассмотрим в хронологическом порядке, какие еще значимые изменения произошли в механизме хранилища конфигурации:

    • Механизм сравнения модулей форм был перенесен в отдельную команду, что позволило сделать данной сравнение без построения отчета по самой форме. Данное изменение повысило комфорт и общее удобство при сравнении модулей форм. (8.3.5)
    • Добавлен локальный кэш данных для хранилища. Теперь используются два кэша: локальный и глобальный. Локальный кэш, естественно, располагается на локальном компьютере, подключенном к хранилищу. Он предназначен для ускорения работы. Также стало доступным возможность управлять местом размещения локального кэша, а также его максимальным размером. (8.3.5)
    • Произведено очередная оптимизация при работе с хранилищем, в результате которой была повышена скорость работы с ним. Для сохранения обратной совместимости был реализован новый режим совместимости с версией 8.3.3. Ускорение работы будет наблюдаться если данный режим установлен в значение “Не использовать”. (8.3.6)
    • На сервере хранилища добавлена проверка целостности данных объекта, который помещается в хранилище. Эта возможность снижает возможность помещения в хранилище некорректных данных объекта конфигурации (8.3.9)
    • Добавлена возможность хранить историю хранилища большего размера (десятки тысяч версий). Если вы создаете новое хранилище, то его база данных будет сразу создаваться в формате версии 8.3.8. Если вам нужно перевести уже созданное хранилище под новый формат, следует воспользоваться утилитой cnvdbfl (8.3.10)
    • Существенно ускорены операции при работе с хранилищем (8.3.10)

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

    PDF-версия статьи для участников группы ВКонтакте

    Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

    Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

    Статья в PDF-формате

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

    Дано: платформа 1С 8.3 (в частности 8.3.11).
    При попытке подключения к хранилищу конфигураций под определенным пользователем появляется ошибка:
    Ошибка связывания с хранилищем конфигурации по адресу: <адрес хранилища>.
    Пользователь существующей связи отличается от текущего.

    В нашем случае ошибка возникла при следующих действиях:

    1. Администратор создал хранилище из своей локальной базы, поместив его в сетевую папку.
    2. Администратор создал пользователей хранилища.
    3. Администратор сделал выгрузку конфигурации в файл dt для разработчиков.
    4. Разработчик загрузил выгрузку себе локально.
    5. Разработчик начал подключаться к хранилищу, введя логин-пароль пользователя хранилища, который выдал администратор, и получил данное сообщение об ошибке.

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

    Варианты решения:

    Разработчику после загрузки конфигурации необходимо сначала отключиться от хранилища (чтобы удалить связь администратора с хранилищем в загруженной конфигурации). Для этого переходим в меню «Конфигурация» — «Хранилище конфигурации» — «Отключиться от хранилища»:

    А затем нужно снова подключиться и ввести уже свой логин-пароль: «Конфигурация» — «Хранилище конфигурации» — «Подключиться к хранилищу».

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

    Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

  • Ошибка со знаками вопроса call of duty ghosts
  • Ошибка со 7 старлайн при морозе
  • Ошибка снятия скриншот вов
  • Ошибка снимка на олимпус
  • Ошибка снимите защиту от записи флешка