Основная конфигурация и конфигурация базы данных
До сих пор мы не углублялись в структуру системы 1С:Предприятие 8, но теперь пришло время сказать об этом несколько слов.
Вспомните: с точки зрения пользователя программа 1С состоит из платформы и конфигурации. Мы говорили, что в каждом конкретном случае используется одна из множества возможных конфигураций. Настало время сказать, что это не совсем так.
Почему не так? Потому что в каждой информационной базе существуют как минимум две конфигурации.
Почему не совсем так? Потому что пользователь действительно работает всегда только с одной конфигурацией. Вторая конфигурация предназначена для разработчика или человека, который должен вносить изменения в конфигурацию (например, администратора базы данных). Для пользователя она «не видна».
Конфигурация, предназначенная для разработчика, называется Основная конфигурация (или просто Конфигурация – та, которую мы редактировали в Конфигураторе). Конфигурация, с которой работают пользователи, называется Конфигурация базы данных.
Основную конфигурацию можно редактировать Конфигурацию базы данных редактировать нельзя, можно только произвести обновление конфигурации базы данных на основе основной конфигурации.
Такое внутреннее устройство позволяет вносить изменения в конфигурацию, не прерывая работы пользователей (поскольку изменения вносятся в основную конфигурацию). Затем, когда разработчик будет уверен в том, что все изменения, которые он внес, верны, можно будет быстро произвести обновление конфигурации базы данных, используя основную конфигурацию. Но для этого придется завершить работу всех пользователей.
Разработчик всегда может сравнить основную конфигурацию и конфигурацию базы данных, может вернуться к исходному состоянию основной конфигурации, используя конфигурацию базы данных (если, например, совсем запутался в своих изменениях).
Таким образом, взаимодействие двух конфигураций можно представить следующим образом (рис. 2.24):
Рис. 2.24. Взаимодействие двух конфигураций
Когда разработчик работает с основной конфигурацией, система всегда подсказывает ему, отличается ли его вариант основной конфигурации от того, который сохранен, и отличается ли сохраненный вариант основной конфигурации от конфигурации базы данных.
Если разработчик редактирует основную конфигурацию и редактируемый вариант основной конфигурации отличается от того, который сохранен, в заголовке окна дерева конфигурации появляется признак модифицированности конфигурации (*) – рис. 2.25:
Рис. 2.25. Заголовок окна дерева конфигурации
Если сохраненный вариант основной конфигурации отличается от конфигурации базы данных, в заголовке окна дерева конфигурации появляется знак отличия конфигураций (<!>) – рис. 2.26:
Рис. 2.26. Заголовок окна дерева конфигурации
Для сохранения основной конфигурации следует воспользоваться командой Конфигурация → Сохранить конфигурацию, а для обновления конфигурации базы данных необходимо выполнить команду Конфигурация → Обновить конфигурацию базы данных. При выполнении команды Отладка → Начать отладку система сама сначала сохраняет основную конфигурацию, а затем производит ее сравнение с конфигурацией базы данных. В случае если конфигурации отличаются, выдается запрос на обновление конфигурации базы данных, который вы видели в предыдущих примерах.
При выполнении команды Отладка → Продолжить система, после описанных выше действий, предлагает еще и перезапустить приложение, чтобы прекратить текущую отладочную сессию.
Таким образом, система старается облегчить жизнь разработчика и автоматизировать часто выполняемые операции.
Важным фактом является то, что именно в момент обновления конфигурации базы данных система создает (модифицирует) в базе данных те структуры хранения данных, которые мы описали в виде объектов конфигурации.
Таким образом, обычные элементы справочника пользователь добавляет в ту структуру базы данных, которую создала система на основе объекта конфигурации Справочник, а предопределенные элементы этого справочника система добавляет в эту структуру сама, на основе все того же описания этой структуры, которым является объект конфигурации Справочник.
Отсюда следует немаловажный факт (о котором говорилось в предыдущем разделе), что если простые элементы справочника «безразличны» для конфигурации, то предопределенные элементы важны для нее, поскольку на них могут быть «завязаны» алгоритмы работы конфигурации.
Палитра свойств
Еще один инструмент разработчика, который мы использовали по ходу изложения, но на описании которого не заостряли внимание, – это палитра свойств.
Если помните, мы использовали палитру свойств, когда создавали табличную часть и реквизиты табличной части объекта конфигурации Справочник Номенклатура.
Палитра свойств – это специальное служебное окно, которое позволяет редактировать все существующие свойства объекта конфигурации. Поскольку разные объекты конфигурации имеют самые разные свойства, содержимое этого окна будет меняться в зависимости от того, какой объект является текущим (на каком объекте конфигурации установлен курсор).
При некоторых действиях разработчика (например, создание табличной части) палитра свойств открывается автоматически. Но разработчик всегда может открыть палитру свойств объекта конфигурации самостоятельно, воспользовавшись пунктом Свойства контекстного меню правой кнопки мыши.
В этом случае палитра свойств откроется и будет закреплена на рабочей области конфигуратора. Однако есть удобная возможность «открепить» палитру свойств (используя символ кнопки в заголовке окна палитры свойств – рис. 2.27):
Рис. 2.27. «Открепим» палитру свойств…
В этом состоянии, при наведении курсора мыши на любое другое окно, палитра свойств будет сворачиваться на дополнительную панель в правой части экрана (по умолчанию) (рис. 2.28):
Рис. 2.28. Кнопка на дополнительной панели
А при наведении курсора мыши на символ свернутой палитры свойств она будет открываться.
Подобным поведением (возможностью быть прикрепленным, прячущимся и т.д.) обладает не только окно палитры свойств, но и другие окна конфигуратора (например, окно дерева конфигурации).
Документ
Познакомимся с объектом конфигурации Документ. Вы узнаете, для чего используется этот объект, какова его структура и какие основными свойствами обладает документ. Затем мы создадим несколько документов и покажем, каким образом разработчик может задавать собственные алгоритмы выполнения тех или иных действий, связанных с работой документа.
Кроме этого, вы узнаете, как создать форму объекта базы конфигурации, познакомитесь с некоторыми конструкциями встроенного языка и узнаете, что такое типообразующие объекты конфигурации.