Каждый специалист при работе с программными продуктами «1С:Предприятие 8» рано или поздно сталкивается с необходимостью создания новой, абсолютно чистой информационной базы для ведения учета. На первый взгляд задача кажется тривиальной, ведь у нас под рукой почти всегда есть рабочая база того же релиза, из которой можно легко выгрузить файл конфигурации с расширением .cf. Однако на практике этот метод таит в себе неочевидные подводные камни, которые могут проявиться лишь спустя месяцы работы пользователей.
В этой статье мы подробно разберем техническую разницу между созданием базы из файла конфигурации .cf и развертыванием из официального шаблона поставщика 1Cv8new.dt. Мы проанализируем внутренние механизмы платформы, связанные с предопределенными данными, выясним особенности работы лицензирования базовых версий и научимся правильно готовить дистрибутивы для старта новой системы.
Давайте рассмотрим процесс создания базы «с нуля» через конфигуратор с использованием файла метаданных. Этот метод привлекает своей скоростью и доступностью: достаточно зайти в конфигуратор существующей рабочей базы, выбрать пункт меню «Конфигурация» — «Сохранить конфигурацию в файл» и получить заветный файл 1cv8.cf.
После этого мы создаем в списке баз новую пустую информационную базу без конфигурации, заходим в ее конфигуратор и выполняем загрузку через команду «Конфигурация» — «Загрузить конфигурацию из файла». На первый взгляд все проходит успешно: платформа создает структуру таблиц СУБД, и перед нами предстает чистая база конфигурации «Бухгалтерия предприятия 3.0» актуального релиза.
Однако с точки зрения наполнения данными эта база будет абсолютно стерильной. И в этом кроется главная проблема. В такой базе будут отсутствовать важные первоначальные настройки, которые заложили разработчики фирмы «1С» для быстрого и корректного старта. Рассмотрим подробнее, с какими трудностями мы столкнемся при запуске базы, созданной только из .cf:
.cf в ней не будет стартовых настроек учетной политики, предопределенных ставок налогов и других констант, влияющих на расчеты..cf этот регистр и справочник будут пустыми. Бухгалтеру придется вручную создавать виды номенклатуры и настраивать счета учета, что при отсутствии глубоких технических знаний часто приводит к грубым ошибкам при проведении документов.Давайте детально разберем технический нюанс, о котором знают далеко не все программисты. Он связан с механизмом генерации уникальных идентификаторов (GUID) для предопределенных элементов справочников, планов счетов и планов видов характеристик.
Когда мы создаем базу из файла конфигурации .cf, платформа при первом запуске в режиме «1С:Предприятие» обнаруживает, что в таблицах базы данных еще нет записей для предопределенных элементов, описанных в метаданных конфигуратора. Платформа создает их автоматически, генерируя новые случайные уникальные идентификаторы (GUID) для каждого элемента и связывая их через системное свойство ИмяПредопределенныхДанных.
Если же мы разворачиваем базу из шаблона поставщика (который по сути является резервной копией базы данных с расширением .dt), все предопределенные элементы уже созданы в таблицах базы данных. Они имеют строго фиксированные, стандартные GUID, определенные разработчиками «1С» на этапе проектирования конфигурации.
Выясним, почему расхождение в GUID предопределенных элементов может стать критической проблемой:
Представим, что в будущем нам потребуется настроить стандартную синхронизацию данных между нашей новой «Бухгалтерией предприятия 3.0» и, например, «Зарплатой и управлением персоналом 3.1» или «Управлением торговлей 11». Правила обмена в типовых интеграциях очень часто опираются на поиск объектов по их внутренним уникальным идентификаторам (GUID). Если в базах будут находиться предопределенные элементы (например, конкретные статьи движения денежных средств, ставки НДС, группы доступа или счета плана счетов) с разными GUID, стандартный обмен данными может начать двоить записи или выдавать трудночитаемые ошибки при сопоставлении объектов.
Проанализируем пример кода, который позволяет наглядно увидеть GUID предопределенного элемента:
// Выведем уникальный идентификатор стандартной ставки НДС
СтавкаНДС = Справочники.УпаковкиНоменклатуры.ПустаяСсылка(); // Для примера работы со справочником
// Получим реальный GUID предопределенного элемента плана счетов
Счет_10_01 = ПланыСчетов.Хозрасчетный.Материалы;
Сообщить("GUID счета 10.01: " + Строка(Счет_10_01.УникальныйИдентификатор()));
При создании базы из шаблона этот GUID всегда будет идентичен на любых компьютерах и у любых клиентов, что гарантирует бесшовную интеграцию и корректное обновление информационной системы.
Теперь давайте рассмотрим правильный с технической точки зрения способ создания чистой базы — использование официального шаблона конфигурации.
При установке полного дистрибутива конфигурации в специальный каталог шаблонов на компьютере (обычно это папка AppData\Roaming\1C\1cv8\tmplts\) распаковывается набор файлов. Ключевую роль здесь играет файл описания манифеста manifest.mft. Давайте посмотрим, как выглядит структура типичного файла манифеста в шаблонах «1С»:
Vendor=Фирма "1С"
Name=Accounting
Version=3.0.115.15
AppVersion=8.3
[Config1]
Catalog=1С:Бухгалтерия предприятия / Бухгалтерия предприятия
Destination=1C\Accounting
Source=1cv8.cf
[Config2]
Catalog=1С:Бухгалтерия предприятия / Бухгалтерия предприятия (демо)
Destination=1C\DemoAccounting
Source=1cv8.dt
[Config3]
Catalog=1С:Бухгалтерия предприятия / Бухгалтерия предприятия (пакетная установка)
Destination=1C\AccountingNew
Source=1Cv8new.dt
Как мы видим из файла манифеста, для создания новой пустой рабочей базы используется файл 1Cv8new.dt (в некоторых конфигурациях он называется просто 1cv8.cf, если поставщик не предусматривает предзаполненную базу, но для сложных конфигураций вроде БП, ЗУП, УТ всегда поставляется предзаполненный вариант .dt).
Файл 1Cv8new.dt представляет собой полноценную выгрузку информационной базы, в которой:
Разворачивая базу из шаблона, мы гарантируем, что пользователь получит программный продукт в точности в том виде, в котором его спроектировал и протестировал вендор.
Еще один крайне важный аспект, упомянутый в обсуждении — это различие между Базовыми версиями конфигураций и версиями ПРОФ/КОРП. Здесь действуют строгие лицензионные ограничения платформы.
Если клиенту требуется именно Базовая версия конфигурации (например, «1С:Бухгалтерия 8. Базовая»), то создать ее путем простой загрузки файла конфигурации .cf, выгруженного из версии ПРОФ, категорически нельзя. Даже если выгрузить .cf из базовой версии и попробовать загрузить его в пустую базу на компьютере, где установлена только базовая лицензия, платформа выдаст ошибку лицензирования при попытке запуска в режиме предприятия.
Базовая версия конфигурации имеет жесткую привязку к типу лицензии на уровне бинарных заголовков макета конфигурации. Чтобы получить полноценную и легально работающую базовую базу, необходимо разворачивать ее исключительно из специализированного шаблона для создания новой базовой информационной базы. Любые попытки «обойти» это ограничение через загрузку .cf приведут к тому, что система будет требовать лицензию уровня ПРОФ.
Часто специалисты жалуются, что на портале обновлений «1С» (в разделе обновлений конфигураций) для скачивания доступны только дистрибутивы обновлений (апдейты), в которых отсутствуют файлы шаблонов для создания новых баз 1Cv8new.dt.
Давайте разберемся, как обстоит ситуация на данный момент и как получить полноценный дистрибутив:
Подводя итог нашему анализу, сформулируем краткие и понятные правила для создания новых баз в системе «1С:Предприятие 8.3»:
Следуя этим простым техническим регламентам, мы закладываем надежный фундамент для стабильной и безошибочной работы информационной системы наших пользователей на протяжении многих лет.