Расширение cf. Основные сведения. Цепочка свободных блоков

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

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

В следующем окне выбрать пункт Создание новой информационной базы .

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

В следующем окне указываем наименование базы.

После завершения перечисленных действий в списке информационных баз появится новая пустая база. Теперь нужно выделить ее и нажать на кнопку Конфигуратор . Будет открыто окно конфигуратора ( рис. 1.8).

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

Выполните команду меню Конфигурация > Открыть конфигурацию . Окно программы изменится - в его левой части будет открыто дерево конфигурации . Оно нас пока не интересует. Теперь можно выполнить команду Конфигурация > Загрузить конфигурацию из файла . Эта команда позволяет полностью заместить существующую (в нашем случае пустую) конфигурацию конфигурацией , сохраненной в CF-файле. В появившемся окне, рис. 1.9 , вам нужно указать путь к файлу, в котором хранится конфигурация , которую вы хотите загрузить.

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

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

1.5. Обновление конфигурации

На практике, после установки конфигурации , обычно возникает необходимость в ее обновлении. Обновления распространяются в виде файлов с расширением.CFU. Такой файл копируется в ходе установки обновления в папку, содержащую, в соответствии с настройками программы, файлы шаблонов конфигураций и обновлений. Например, в подавляющем большинстве случаев это - папка C:\Program Files\1cv81\tmplts\1c .

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

Прежде чем обновлять конфигурацию , нужно создать резервную копию вашей информационной базы . Если вы обновляете только что созданную информационную базу , можно обойтись и без этого шага, но для того, чтобы застраховаться от негативных последствий возможных сбоев при обновлении "живой" базы лучше всего сделать резервную копию. Для этого можно воспользоваться различными методиками. В частности, при использовании файлового варианта информационной базы можно просто скопировать папку, содержащую информационную базу . Можно, открыв конфигуратор с нужной базой, выполнить команду Администрирование > Выгрузить информационную базу . Файлы выгрузки информационной базы имеют расширение.DT. Для того, чтобы загрузить информационную базу , можно воспользоваться командой Администрирование > Загрузить информационную базу .

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

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

1.6. Основные объекты конфигурации с точки зрения пользователя

1С:Бухгалтерия - это система, предназначенная для ввода, хранения и обработки учетных данных. Для этих целей она имеет набор компонентов (объектов конфигурации ), которые позволяют выполнять все необходимые операции . Основной объект , которым вам придется пользоваться при работе в программе, называется Документ . Именно с помощью документов данные попадают в систему. Документы заполняются пользователями, при их сохранении проводятся операции по внесению данных этих документов в систему, а на основе этих данных выполняются все остальные учетные процедуры.

Можно сказать, что 1С:Бухгалтерия предусматривает ведение учета "от документа", что, в общем-то, достаточно логично. Документы в системе 1С:Бухгалтерия очень похожи на документы, с которыми приходится иметь дело любому бухгалтеру. Можно сказать, что это - электронные аналоги обычных документов. При необходимости документы (вернее - их печатные формы) можно распечатывать на принтере. Объект Журнал документов используется для группировки однородных документов и выполняет функции, схожие с папкой, в которую складывают обычные бумажные документы.

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

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

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

Регистры бухгалтерии предназначены для ведения бухгалтерского учета.

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

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

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

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

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

В последующих лекциях мы рассмотрим подробности о перечисленных объектах.

Выводы

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

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

Если Вы работаете в организации и используете , то также нужно . Дополнительно, информацию по можно посмотреть здесь.

Установка на компьютер конфигурации 1С. Создание базы данных 1С из конфигурации. Создание базы данных 1С из CF. Создание базы данных 1С из DT.

Что нужно сделать, чтобы установить конфигурацию 1С?

Конфигурация 1С — это шаблон. На основе этого шаблона создается база данных 1С. Количество баз данных 1С на основе одного шаблона конфигурации 1С — неограничено.

Таким образом — суть установки конфигурации 1С — это создание базы данных.

Создать базу данных можно следующими способами:

  • Установить на компьютер конфигурацию (шаблон) и создать на его основе
  • Создать пустую базу и загрузить в нее CF
  • Создать пустую базу и загрузить в нее DT
  • Восстановить бэкап базы 1С SQL в другую базу и подцепить его к 1С серверу.
    • Установка конфигурации 1С из дистрибутива на компьютер

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

      Установка дистрибутива конфигурации 1С задает только один вопрос — каталог установки. По умолчанию конфигурация 1С устанавливается в каталог templates.

      Это типовой каталог. Для 8.1 находится обычно в «C:\Program Files\1cv81\tmplts\», для 8.2 в «C:\Users\ИмяПользователя\AppData\Roaming\1C\1Cv82\tmplts\».


      В результате установки в каталоге tmplts появится папка с установленной конфигурацией. Внутри этой папки находятся папки установленных шаблонов конфигураций. В них – документация и «дополнительные штучки».

      Структуру папки tmplts и описание файлов в дистрибутиве конфигурации смотрите в конце статьи.

      Создание базы данных 1С из установленной конфигурации (файловый вариант)

      Конфигурация хранится в каталоге на диске (файловая версия, мы рассматриваем именно ее).

      Необходимо выбрать на диске место, где мы создадим конфигурацию, например «C:\Базы 1С\». Зайдем или создадим эту папку и создадим в ней папку базы данных, например: «C:\Базы 1С\Учебная база управления торговлей».

      Запускаем 1С. В окне выбора базы данных нажмите кнопку Добавить.

      Выберем «Создание новой информационной базы» и нажмем «Далее».

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

      • Имя конфигурации/версия
      • Имя конфигурации (демо)/версия

      Первый вариант – чистая пустая база данных. Второй вариант – база данных с демо-данными для обучения. Мы выбираем второй вариант (поставьте курсор на номер версии).

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

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

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

      Создание базы данных 1С из CF или DT

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

      После того, как Вы создали пустую базу данных, .

      Чтобы выгрузить или загрузить CF выберите следующие пункты меню конфигуратора.

      Чтобы выгрузить или загрузить DT выберите следующие пункты меню конфигуратора.

      Структура папки tmplts

      1) папка «1с» – шаблоны конфигураций компании 1С

      2) папка «Название конфигурации» – англоязычное название конфигурации (Accounting-Бухгалтерия, Trade-Управление торговлей, Hrm-Зарплата и управление персоналом)

      3) папка «Версия» – версия конфигурации

      4) Папки и файлы шаблона конфигурации.

      Например путь к шаблону конфигурации «Управление торговлей» версии 10.3.9.4:

      C:\Program Files\1cv81\tmplts\1c\trade\10_3_9_4\

      Файлы шаблона конфигураци

      1) Readme.txt – содержание каталога, что где находится

      2) файлы HTML – различное описание и хелпы по использованию конфигураций

      3) 1cv8.cf – именно в этом файле и хранится – конфигурация 1С

      4) 1Cv8.dt – в этом файле хранится архив базы данных на основе этой конфигурации, обычно это демо-база; файл содержит внутри себя и конфигурацию и данные

      5) 1cv8.cfu – файл обновления конфигурации, используется для перехода с одной версии конфигурации на другую

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

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

      8) каталог ExtReps – внешние отчеты и обработки используемые для учета, часто так поставляются отчеты, которые часто изменяются, например различные печатные формы

      9) каталог TradeWareEpf – обработки, которые используются для подключения оборудования, подключение мы рассмотрим в будущих выпусках

      10) каталоги Conv_ХХХ – в таких каталогах хранятся «правила конвертации», правила по которым можно выгрузить данные из одной базы данных в другую

      Перенос 1С

Внутренняя структура файла конфигурации (*.cf) давно не является секретом, однако подробной документации на него в сети практически нет. Данная статья является попыткой восполнить этот пробел.

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

Однако, хорошей, добротной документации на этот формат, к сожалению, совсем немного. На написание данной статьи меня надоумила публикация глубокоуважаемого awa, который подробно, во всех деталях описал структуру формата файловой ИБ 1С:Предприятия (*.1CD).

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

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

Предыстория

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

Терминология

Перейдем непосредственно к теме нашего обсуждения.

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

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

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

Смотрим внутрь

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

Итак, в общих чертах, файл CF (EPF/ERF) представляет собой контейнер, в котором хранятся документы.

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

Структура контейнера

Контейнер включает в себя следующие части (по порядку):

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

Структура блока

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

Внутри контейнера тут и там встречается волшебная константа, обозначающая некую «пустоту» - это число 0x7fffffff.

Когда мы собираем документ из блоков, то смотрим в заголовке на адрес следующего блока. Если он равен 0x7fffffff, то «следующего» блока нет, этот - последний.

Константа 0x7fffffff - это значение INT_MAX, т.е. максимальное значение 4-байтового целого числа со знаком.

Логические «файлы»

Я упоминал, что термин «файл» я приберегу до лучших времен. Эти времена настали:)

Вся конфигурация хранится в контейнере в виде файлов. Если мы вспомним курс информатики, то вспомним, что «файл», говорили нам - это именованный документ.

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

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

Компоненты файла

Каждый файл состоит из двух документов:

Документ атрибутов, который содержит имя файла и даты создания/изменения Документ содержимого, который содержит собственно тело файла Оглавление контейнера

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

Адрес (смещение в файле) документа атрибутов Адрес (смещение в файле) документа содержимого Число 0x7fffffff (маркер конца записи).

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

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

Особенности сжатия данных.

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

Корневой каталог этой «файловой системы» - это сам файл *.CF. Внутри него могут быть другие файлы-контейнеры, по сути - вложенные директории, которые считываются ровно по тому же самому алгоритму и имеют ровно ту же самую структуру.

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

Цепочка свободных блоков

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

Краткий итог по теоретической части Файл CF(EPF/ERF) записан в формате «контейнера» Контейнер начинается с заголовка Все содержимое контейнера, за исключением заголовка, записано в виде «документов» Документ может быть разбит на блоки Документ начинается с заголовка блока, по которому можно узнать, как прочитать весь документ целиком Сразу за заголовком контейнера идет документ оглавления Оглавление, это набор записей, которые указывают на «файлы» внутри контейнера Каждый файл состоит из двух документов - документа атрибутов, где указано имя этого файла и документа содержимого, где, собственно, расположены данные файла. Каждая запись оглавления содержит 2 адреса. Первый - адрес документа атрибутов файла, второй - адрес документа содержимого. Контейнер может содержать вложенные контейнеры (как бы, вложенные папки) Файлы внутри корневого контейнера сжаты по алгоритму Deflate, файлы внутри вложенных контейнеров записаны без сжатия. Давайте уже пощупаем байты

Итак, настало время рассмотреть, как конкретно устроены все упомянутые выше сущности.

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

Чтение документа по блокам

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

Итак, заголовок блока представляет собой строку длиной 31 байт. Строка эта имеет следующий вид:

[Размер всего документа][Пробел][Размер текущего блока][Пробел][Адрес следующего блока], где:

CRLF - стандартный перевод строки Windows, пара символов rn (0x0D,0x0A) Размер всего документа - общая длина документа в байтах. Записана в виде строкового представления hex-числа. Длина - 8 байт. Пробел - пробел. Символ 0x20 Размер текущего блока - длина тела блока в байтах. Записана также в виде строкового представления числа INT32 в hex-формате. Если документ состоит из единственного блока, то размер всего документа либо меньше, либо совпадает с размером текущего блока (что логично) Адрес следующего блока - адрес по которому расположен очередной блок документа. Если адрес следующего блока равен INT_MAX, то это значит, что следующего блока нет. Адрес следующего блока также записан в виде строкового представления числа.

Сразу за заголовком блока идет тело блока, которое имеет длину, указанную в поле «Размер текущего блока».

Рассмотрим рисунок: длина всего документа составляет 0x54 байта, красной рамкой выделены эти 0x54 байта. Это данные документа. Длина блока составляет 0x200 байт, т.е. больше чем длина самого документа. По этой причине остальные данные блока составляют "нули" неиспользуемого пространства. Значащие байты - это те, которые отмечены красной рамкой.

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

Чтение необходимо продолжать до тех пор, пока в поле «Адрес следующего блока» не встретится значение 0x7fffffff или пока не будет считано количество байт, указанное в поле «Размер всего документа».

Поле «Размер всего документа» имеет смысл только для первого блока. Во всех последующих блоках документа оно имеет значение 0x00000000.

Формат заголовка контейнера

Заголовок контейнера имеет длину 16 байт и состоит из следующих полей:

Пояснение

Адрес первого свободного блока

INT32 (4 байта)

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

Размер блока по умолчанию

INT32 (4 байта)

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

Поле неизвестного назначения (см. комментарии к статье) Часто совпадает с количеством файлов в контейнере

INT32 (4 байта)

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

Зарезервированное поле

INT32 (4 байта)

Всегда равно 0 (всегда ли?)

Формат записи документа оглавления Формат документа атрибутов файла

Документ атрибутов описывает имя файла и даты его создания/изменения.

Пояснение

Время создания файла

UINT64 (8 байт)

Время создания файла, выраженное в количестве 100-микросекундных интервалов, прошедших с начала нашей эры (01.01.0001 00:00:00)

Время изменения файла

UINT64 (8 байт)

Аналогично

Зарезервированное поле

INT32 (4 байта)

Всегда равно 0. Возможно, это флаги атрибутов, что-то вроде «только чтение», «скрытый» и т.п. Однако, я не встречал файлов, где это поле бы отличалось от нуля.

Имя файла

Строка в формате UTF-16

Занимает все оставшееся тело документа (за вычетом 2-х дат и резервного поля)

Принцип чтения контейнера

Чтение оглавления Собрать из блоков документ оглавления и прочитать его Обойти все записи в документе оглавления и прочитать документы атрибутов (имена) файлов контейнера Сопоставить каждому полученному имени адрес документа содержимого На выходе получается соответствие «Имя файла» -> «Адрес содержимого» Чтение файлов По имени файла получить из оглавления адрес документа содержимого Собрать из блоков документ содержимого Если это корневой контейнер, то распаковать документ содержимого (он сжат) Готово. Полученный результат является данными искомого файла. Обновление от 25.02.2014

В заключение

Данная статья не является истиной в последней инстанции, вероятно, в ней есть даже ошибки. Тем не менее, если данная тема Вам интересна, то я надеюсь, что эта статья поможет вам в реализации ваших проектов. Удачи!

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

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

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

Создание базы данных из шаблона

Этот способ самый простой. Программа 1С все делает за пользователя. Опишем его предельно кратко и ясно:

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

** - Конечно, можно оставить все по-умолчанию, однако, не очень надежно хранить вашу базу данных в папке "Мои документы" или в целом на системном диске (диск C:\). Если есть такая возможность, рекомендуем создать папку специально для хранения Вашей информационной базы не на диске C:\. В этом случае путь может выглядеть, например, так: "E:\Базы_1С\Бухгалтерия_Ромашка\".

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

Создание базы данных из файла конфигурации (*.cf)

Файл конфигурации - это файл, определяющий, какой будет база данных: Бухгалтерия предприятия, Управление торговлей, Зарплата и Управление персоналом и т.д. Можно сказать, это "рыба" будущей базы данных. Сразу стоит сказать, что если у Вас нет файла конфигурации, его можно легко выгрузить из другой базы данных. Об этом подробно будет написано в последнем разделе этой статьи.

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

  • Итак, мы создали пустую базу без конфигурации в нашей папке.
  • Сейчас созданная база не имеет ни данных, ни какой-либо функциональности. Т.е. она бесполезна... :) Чтобы эта функциональность у базы появилась, нужно загрузить в неё Конфигурационный файл (с расширением *.cf). Сделать это тоже очень просто:


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

    Создание базы данных, используя другую базу данных

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


    Готово! После окончания выгрузки файла, Вам необходимо создать новую базу данных, используя этот файл так, как описано в предыдущем разделе "Создание базы данных из конфигурационного файла (с расширением *.cf) ".

    * Очистка информационной базы от данных

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

    Сергей Есин © 2013 г.

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

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

    В следующем окне выбрать пункт Создание новой информационной базы .

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

    В следующем окне указываем наименование базы.

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

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

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

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

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