Как открыть файл с расширением erf 1c. Что такое расширение файла ERF? Мой компьютер не показывает расширений файлов, что сделать

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

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

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

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

Предыстория

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

  • , автор
  • http://www.richmedia.us/post/2011/01/18/cf-file-format-1c-8-compatible.aspx , если не ошибаюсь, автор -
  • , автор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Краткий итог по теоретической части

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

Давайте уже пощупаем байты

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

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

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

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

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

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

  • CRLF - стандартный перевод строки Windows, пара символов \r\n (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-х дат и резервного поля)

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

  1. Собрать из блоков документ оглавления и прочитать его
  2. Обойти все записи в документе оглавления и прочитать документы атрибутов (имена) файлов контейнера
  3. Сопоставить каждому полученному имени адрес документа содержимого
  4. На выходе получается соответствие «Имя файла» -> «Адрес содержимого»

Чтение файлов

  1. По имени файла получить из оглавления адрес документа содержимого
  2. Собрать из блоков документ содержимого
  3. Если это корневой контейнер, то распаковать документ содержимого (он сжат)
  4. Готово. Полученный результат является данными искомого файла.

Обновление от 25.02.2014

В заключение

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

- Расширение (формат) - это символы в конце файла после последней точки.
- Компьютер определяет тип файла именно по расширению.
- По умолчанию Windows не показывает расширения имен файлов.
- В имени файла и расширении нельзя использовать некоторые символы.
- Не все форматы имеют отношение к одной и той же программе.
- Ниже находятся все программы с помощью которых можно открыть файл ERF.

XnView - довольно мощная программа, сочетающая в себе множество функций по работе с изображениями. Это может быть и простой просмотр файлов, и их конвертирование, и незначительная обработка. Является кроссплатформенной, что позволяет использовать её практически в любой системе. Программа уникальна ещё и тем, что поддерживает около 400 различных форматов изображений, среди которых встречаются как самые используемые и популярные, так и нестандартные форматы. XnView может производить пакетную конвертацию изображений. Правда, сконвертировать их можно только в 50 форматов, но среди этих 50 форматов присутствуют все популярные расшир...

Chasys Draw IES - многофункциональный редактор, включающий ряд таких утилит, как графический редактор, утилиту для просмотра изображений и фото, модуль для пакетного преобразования графики и модуль по конвертации цифровых фотографий в RAW-формат. В главном окне приложения можно персонализировать рабочий лист, выбрав тип проекта, который необходимо создать. Приложение позволяет осуществлять такие сложные манипуляции с изображениями, как создание композиция для печати, анимация для веб-ресурсов, изображение для компакт-диска, DVD. Программа позволяет сканировать изображение при наличии нужного оборудования. Помимо такого набора...

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

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

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

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

WildBit Viewer – программа для просмотра цифровых фотографий, отличающаяся обилием функций и возможностей. Так, например, в программе присутствует стандартный редактор эффектов, а также имеется возможность использовать готовое изображение в качестве фона для рабочего стола. Кроме этого, вы можете просматривать изображения в режиме слайд шоу, что удобно, если вы показываете свои фотографии кому-то и не хотите вручную их листать. В программе имеется более 70 эффектов перехода при показе слайд шоу. Ещё одна функция программы – отображение всех метаданных, а также переименование изображений. Поддерживается и пакетное переи...

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

Free Opener - достаточно функциональный просмотрщик самых популярных файлов, включая архивы Winrar, документы Microsoft Office, PDF, документы Photoshop, торрент файлы, иконки, веб страницы, текстовые документы, аудио и видео файлы, графические файлы в том числе и Flash и многое другое. Количество поддерживаемых файлов превышает семидесяти. В программе отсутствуют привычные нам настройки и опции за исключением смена дизайна. Также необходима отметить, что отсутствует русский язык, но учитывая простоту, не стоит недооценивать программу. Free Opener - это универсальная и очень удобная программа для чтения различных типов файлов.

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

Посещение этой страницы должно помочь Вам ответить конкретно на эти, или похожие вопросы:

  • Как открыть файл с расширением ERF?
  • Как провести конвертирование файла ERF в другой формат?
  • Что такое расширение формата файлов ERF?
  • Какие программы обслуживают файл ERF?

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

Что еще может вызвать проблемы?

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

Вы хотите помочь?

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

*.cf - файл содержит только конфигурацию(код и структура) без пользовательских данных. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Сохранить конфигурацию в файл» или «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл поставки»».

*.cfu - файл содержит только обновление конфигурации. Например файл 1cv8.cfu. Создать конфигурацию из этого файла невозможно, так как он содержит в себе только отличия новой конфигурации от предыдущей. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл обновления конфигурации»».

*.dt - файл содержит конфигурацию вместе с пользовательской базой данных. Это специализированный формат архива 1С 8. Создаётся из конфигуратора 1С 8.х: «Администрирование -> Выгрузить информационную базу».

*.epf (*.erf ) – файл внешней обработки (отчёта). Любую обработку (отчёт) из конфигурации можно сохранить внешней. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Открыть конфигурацию -> становимся на нужную обработку (отчёт) -> выделяем правой кнопкой мыши -> Сохранить как внешнюю обработку, отчёт…».

*.1cd – файл полноценной базы данных. Представление имени по умолчанию: 1Cv8.1CD. Включает в себя конфигурацию, базу данных, пользовательские настройки. Открывается платформой 1С 8.x. Создаётся для разработки новой конфигурации автоматически по кнопке «Добавить» при выборе пункта «Создание новой информационной базы».

*.log, *.lgf, *.lgp, *.elf - лог файлы, которые собирают информацию (регистрируют данные) в 1С 8.0 8.1, 8.2, 8.3.

*. cdn - файл с таким расширением (1Cv8.cdn) служит для ручной или автоматической блокировки базы данных 1С Предприятия восьмой версии .

*.mxl - файлы печатных форм используются, в том числе и в 1С. Являются как печатными формами документов, справочников, отчётов, так и различными накопителями данных для различных классификаторов. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый». Так же файлы с такими расширениями могут служить правилами переноса, например, из 1С 7.7 в 8.2 (acc77_82.xml и вспомогательная обработка exp77_82.ert) - находятся они обычно в папке ExtForms.

*.efd - это архивный файл 1С, используется для установки конфигурации. Содержит или конфигурацию 1с или обновление к ней. Запускается с помощью вспомогательного исполняющего файла setup.exe (должен находиться в одной папке).

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

*.grs - файлы графических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».

*.geo - файлы географических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».

*.st - файлы шаблонов текстов. Используются в основном 1С разработчиками.

*.pff - файл с сохраненными замерами производительности. Используются системными администраторами и специалистами 1С.