Конфигурация базы данных

Основная конфигурация и конфигурация базы данных

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

Почему не так? Потому что в каждой информационной базе сущест­вуют как минимум две конфигурации.

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

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

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

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

Однако у вас может возникнуть естественный вопрос: если у нас есть две конфигурации — одна, которую можно редактировать, и другая, с которой работают пользователи, то почему же тогда основной называется редактируемая конфигурация? Ведь с точки зрения «конечного продукта» основной является именно конфигурация, с которой работают пользователи!

Дело в том, что в данном случае название «основная» дано с точки зрения разработчика, и это имеет глубокий практический смысл.

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

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

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

3.65).

Рис. 3.65. Структура конфигурации

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

Файлы новой поставки могут существовать в виде файлов конфи­гураций (полная поставка) и файлов обновлений (поставка обновлений).

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

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

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

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

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

Пользователи увидят изменения только после того, как перезапустят свое приложение. Используя метод встроенного языка КонфигурацияБазыДанныхИзмененаДинамически(), можно определить програм­мно, нужно ли перезапускать приложение.

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

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

Таким образом, взаимодействие двух конфигураций можно предста­вить следующим образом (рис. 3.66).

Рис. 3.66. Взаимодействие двух конфигураций

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

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

Если сохраненный вариант основной конфигурации отличается от конфигурации базы данных, в заголовке окна дерева конфигурации появляется знак отличия конфигураций (<!>), рис. 3.68.

Рис. 3.68. Заголовок окна дерева конфигурации

Для сохранения основной конфигурации следует использовать команду Конфигурация &#9658; Сохранить конфигурацию, а для обновления конфигурации базы данных — команду Конфигурация &#9658; Обновить конфигурацию базы данных.

При выполнении команды Отладка &#9658; Начать отладку система сама сначала сохраняет основную конфигурацию, а затем производит ее сравнение с конфигурацией базы данных. В случае если конфигу­рации отличаются, выдается запрос на обновление конфигурации базы данных, который вы видели в предыдущих примерах.

При выполнении команды Отладка &#9658; Продолжить система, после описанных выше действий, предлагает еще и перезапустить прило­жение, чтобы прекратить текущий сеанс, запущенный в режиме отладки.

Таким образом, система «старается» облегчить жизнь разработчика и автоматизировать часто выполняемые операции.

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

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

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

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

Контрольные вопросы

1. Для чего предназначен объект конфигурации Справочник.

2. Для чего используются реквизиты и табличные части справочника.

конфигурация баз данных не соответствует сохраненной конфигурации

Зачем нужны иерархические справочники и что такое родитель.

4. Зачем нужны подчиненные справочники и что такое владелец.

5. Какие основные формы существуют у справочника, что такое предопределенные элементы.

6. Зачем нужна основная конфигурация и конфигурация базы данных.

7. Что такое подчиненные объекты конфигурации.

8. Что такое быстрый выбор и когда его использовать.

Избавиться от сообщения "Конф. бд не соответствует сохраненной"

Я
   Sj

Доброе время суток!

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

 
 

   hhhh

(0) ну это, объяснить пользователям, что это стандарная ситуация.

   acsent

флаг есть специальный

   Sj

ента где ?

   Поручик

(2) Что за флаг, покажи пальцем.

   shuhard

(4) в строке запуска не выводить  сообщения трам-пам-пам

   Sj

(5) ага, спасибо! нашел:

   Sj

/DisableStartupMessages — подавляет стартовые сообщения: "Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?"; "Возможностей Вашего компьютера недостаточно для редактирования справки по конфигурации. Для редактирования справки необходимо установить Microsoft Internet Explorer версии 6.0 или выше."; "Возможностей Вашего компьютера недостаточно для редактирования html-документов, в том числе разделов справки.

Почему изменения конфигурации не отражаются при запуске в режиме 1С:Предприятие?

Для редактирования html-документов необходимо установить Microsoft Internet Explorer версии 6.0 или выше. В данном запуске редактирование html-документов будет недоступно.".

   John83

(5) а можно уточнить для особо одаренных и просто слепых?
PS попробовал в параметрах запуска конфигуратора прописать (7) — не взлетело

   Живой Ископаемый

2(8) почему конфигуратора?

   John83

(9) ну там есть такое %)
PS разве что свойствах базы в стартере прописать…

 
 

   shuhard

(8) я использую нужен командный файлик + ярлык

   John83

(11) не…
тогда уж лучше список общих баз и (10)

   Dimonster

(7) Не работает эта фича, ни на 8.1, ни на 8.2, по крайней мере, я не вкурил %)

   shuhard

(12) я не против

   John83 (13) плохая трава значит ;)открой свойства ярлыка и в объекте напиши "C:\Program Files (x86)\1cv82\common\1cestart.exe" /DisableStartupMessages — и будет счастье
или открой список баз, на конфе нажми изменить и в последнем окне в параметрах просто /DisableStartupMessages    FarFar

(15) Работает 🙂

Попробуйте новый бесплатный сервис для быстрого анализа кода типовых конфигураций 1c-api.com

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Основная конфигурация и конфигурация базы данных

Если Вам довелось столкнуться с этой ошибкой обратитесь к специалисту 1С однозначно. Вариантов решения много, но от ситуации и источника проблемы &#8212; решения совершенно разные.

Предлагаю вашему вниманию одну из таких ситуаций.
Описание задачи:
Обновление конфигурации произошло автоматически. При запуске 1С режиме конфигуратор имеем сообщение &#171;Нарушена целостность структуры конфигурации&#187;. При автообновлении конфигурацию поставщика обновить корректно не получилось. Запуск в пользовательском режиме выдает ошибку ссылаясь на модуль в конфигурации.
Во первых необходимо очистить кеш.

В ОС Windows 7 находиться C:\Users\Администратор\AppData\Roaming\1C\1Cv82 и C:\Users\Администратор\AppData\Local\1C\1Cv82 (Win7x64).

После очистки кеша 1С запуститься в режиме конфигуратора.

При попытке открыть конфигурацию 1С вылетает. Выгрузить информационную базу в файл для подстраховки. Тестирование и исправление не помогает. Утилита проверки файловой базы говорит, что ошибок нет. Пункты меню загрузки, выгрузки конфигурации, поддержки и т.п. без открытой конфигурации не активны. Доступна сохранение конфигурации данных &#8212; это значит что данные не уничтожены, что является главным..
Так же из конфигуратора в пользовательский режим в режиме отладки может запуститься, а возможно и нет, это не влияет на ситуацию.
Попытка загрузить информационную базу в SQL не приведет к положительному результату.

И тут появляется мысль что можно было бы поставить крест на базе&#8230; подняться из древнего бекапа если таковой имеется&#8230; и напрягаться с восстановление данных вручную.

Решение:
1. Необходима чистая конфигурация той же версии &#8212; рабочая.
2. Очиста кеша полная (указано выше).
3. Запускаем чистую базу в режиме конфигуратора и открываем конфигурацию. При этом 1С создает ее кеш в C:\Users\Администратор\AppData\Local\1C\1Cv82 (набор файлов и папок в папке с ID конфигурации.) так же нам нужен кеш C:\Users\Администратор\AppData\Roaming\1C\1Cv82. Можно просто переименовать данные папки после закрытия 1С.
4. Запускаем наш не рабочую базу в режиме конфигуратора и смотрим кеш.

конфигурация базы данных не соответствует сохраненной конфигурации

И в результате имеем две папки с ID конфигурации (Живой и Мертвой).
5. Закрываем все и подменяем кеш мертвой конфы на живую полностью. Т.е. удаляем текущую и заменяем ранее переименованной папкой.
6. Запускаем не рабочую базу в режиме конфигуратора И ВОТ первый успех &#8212;  дерево конфигурации открыто, разделы меню управления конфигурацией активны.
7. Идем в управление поддержкой, и снимаем с поддержки полностью. сохраняем, обновляем. Можно обновить через файл конфигурацией рабочей базы.
8. Удалем кеш полностью.
9. Запускаем не рабочую базу в режиме конфигуратора, пытаемся открыть конфигурацию &#8212; все открывается, ошибки нет.
10. Запускаем 1С. Все доступно. Данные на месте.

Вот еще вариант спасения предложенный пользователем инфостара Tavalik:

1. &#171;Конфигурация&#187; &#8212; &#171;Конфигурация базы данных&#187; &#8212; &#171;Вернуться к конфигурации БД&#187;
2. &#171;Конфигурация&#187; &#8212; &#171;Обновить конфигурацию баз данных&#187;

Запись опубликована в рубрике Программирование и сопровождение 1с. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *