1с отчет по структуре метаданных
В этой статье будет накапливаться экспертиза по работе с файловой базой данных системы 1С Предприятие 8.
Первое на что я наткнулся – это утилита “Tool 1CD.exe”. Ниже будет приведена ссылка на скачивание.
Команда для массового экспорта таблиц из файла 1Cv8.1CD в XML:
Tool_1CD . exe C : \ Users \ Иван \ Documents \ 1c \ DemoSmallBusinessEduc \ 1Cv8.1CD - ExportAllToXML F : \ 1 С _ Аналитика \ db_xml \
Программа “Tool_1CD” для распаковки базы данных 1С Предприятие 8 из 1Cv8.1CD в XML (Заархивировано сначала в RAR, потом в zip): Tool_1CD.zip.
Проверял на вирусы на касперском, вроде не было. Но в любом случае Вы используете этот файл на свой страх и риск. Всегда лучше работайте в “песочнице” или на скопированном файле, который не жалко потерять. Скачивая этот файл Вы соглашаетесь с тем, что Вы снимаете ответственность с владельца этого сайта. Вся ответственность за использование этого файла лежит на Вас.
НА БОЕВОЙ СРЕДЕ НИКОГДА НЕ ТЕСТИРУЙТЕ РАБОТУ ПОСТОРОННИХ УТИЛИТ.
Интерфейс программы “Tool 1CD”
Техническое описание внутреннего устройства опубликовано мной в статье Краткое описание формата файлов *.1CD (файловых баз 1Сv8). Однако она достаточно сумбурна, плоха для восприятия, поэтому здесь я попытаюсь описать формат немного более популярно. Чтобы не было путаницы с термином «файл», сразу замечу, что когда я буду иметь в виду файл базы *.1CD, я буду говорить «файл базы», когда же я буду говорить про внутренние файлы, содержащиеся внутри базы, я буду употреблять просто термин «файл».
На самом нижнем уровне файл базы данных 1CD состоит из страниц размером 4 килобайт (0x1000).
По сути, весь файл базы состоит из массива четырехкилобайтных страниц. Каждая страница имеет свой номер (индекс). Здесь и далее каждый прямоугольник с красной рамкой обозначает одну страницу.
Файлы
На более высоком уровне находятся файлы. Файл состоит из одной или более страниц. У каждого файла есть ровно одна заголовочная страница, в которой размещается массив номеров страниц размещения. В каждой странице размещения, в свою очередь, находится массив номеров страниц данных. Заголовочная страница и страницы размещения – это служебные страницы, которые нужны только для хранения служебных данных (сигнатура, длина файла, версия) и для нахождения страниц данных. Собственно содержимое файла хранится в страницах данных.
Структура таблиц
Каждая таблица состоит из нескольких файлов:
- файла описания таблицы DESCR;
- файла записей DATA;
- файла индексов INDEX;
- файла данных неограниченной длины BLOB.
Файл описания таблицы DESCR содержит текстовое описание таблицы – имя таблицы, состав полей и индексов. А также файл DESCR содержит номера файлов DATA, INDEX и BLOB. Таблица адресуется с помощью файла описания таблицы. Структуру файлов таблиц мы в данной статье рассматривать не будем, подробности можно узнать из моей статьи, ссылку на которую я приводил выше. Файл индексов может отсутствовать, если в таблице нет ни одного индекса. Файл данных неограниченной длины тоже может отсутствовать, если в таблице нет ни одного поля с данными неограниченной длины.
Адресация
База состоит из таблиц. Таблицы, в свою очередь, состоят из файлов. И наконец, файлы состоят из страниц. Адресом страницы является ее порядковый номер (индекс) в файле базы. Адресом файла является номер его заголовочной страницы. Адресом таблицы является адрес ее файла описания, а значит, номер заголовочной страницы файла описания. Т.е. о каком бы объекте мы бы не говорили – странице, файле или таблице, адресом объекта всегда является просто номер страницы.
Одним из способов получения подробного описания таблиц, полей (соответствие нормального наименования таблиц и технического) – использование “Внешней обработки .EPF”.
Файл .epf программируется через конфигуратор 1С Предприятия. В интернете много статей, я покажу лишь как его использовать.
Я нашел несколько файлов EPF (в архиве их три штуки):
epf файлы для получения метаданных из 1С Предприятия 8.3.zip
Как запустить epf файл для выгрузки из 1С метаданных
Приведу 2 примера подключения epf файла. Заходим в 1С Предприятие 8.3. Выбираем Файл – Открыть:
Далее выбираем файл внешней обработки 1С Предприятие для версии 8.3 СтруктураИБ_УФ.epf:
Нажимаем “Вывести список”:
Формат:
Расскрываем список
Получаем описание таблиц с полями:
И еще один пример:
Выводим структуру таблиц 1С Предприятие в текстовом формате
Таблица и “человеческие” названия:
После небольшой корректировки получаем отчет, можете скачать (но там ничего не понятно, нужна расшифровка метаданных): Таблицы и поля из 1С Предприятия 8.3 после обработки Tool 1CD.exe и выгрузкой в XML.xlsx
1С Script Builder реализован в виде внешней 1С-обработки и предназначен для автоматизированного проектирования скрипта загрузки данных из БД 1С версии 8.x в аналитическое приложение QlikView. Использование 1С Script Builder позволяет получить максимальную скорость загрузки данных и максимальную гибкость при формировании самых сложных запросов.
Генерация Загрузочного скрипта для QlikView из метаданных конфигураций 8.3 (управляемые формы), тестировалась на конфигурации “Управление небольшой фирмой, ред. 1.6”.
Обработка получает таблицу метаданных конфигурации с помощью функции ПолучитьСтруктуруХраненияБазыДанных() и генерирует код QlikView SCRIPT с запросом SQL для объекта метаданных текущей строки. Работает в тонком и толстом клиентах управляемого приложения. Поля, индексы и состав индексов элемента метаданных отображается в отдельных таблицах.
Ниже скриншоты как зайти в управляемое приложение через конфигуратор.
ВНИМАНИЕ! В коде последнюю запятую перед SQL надо удалить. Не знаю, как программными средствами убрать.
На вкладке LOAD Script For QlikView приведен загрузочный скрипт. Не забывайте про запятую, которую нужно убрать.
Размещаю этот пример в качестве отправной точки пример. Взят из файла: TableStruct.epf.7z
Подходит для любой конфигурации 1С 8.2-8.3; БСП не используется. Разработан с применением системы компоновки данных (СКД). Перед вычислением количества объектов выполняется проверка доступа на чтение таблицы объекта. Обрабатываемые типы объектов: Константа, Документ, Справочник, Регистр сведений, Регистр накопления, Регистр бухгалтерии, Регистр расчета, Бизнес процесс, Задача.
Настраиваемые поля в СКД:
- "Объект: Тип: Имя"
- "Объект: Тип: Синоним"
- "Объект: Вид: Имя"
- "Объект: Вид: Синоним"
- "Объект: Вид: Комментарий"
- "Объект: Вид: Пояснение"
- "Объект: Количество записей в БД"
- "Реквизит: Класс" (Реквизиты, Измерения, Ресурсы, Стандартные реквизиты)
- "Реквизит: Имя"
- "Реквизит: Синоним"
- "Реквизит: Комментарий"
- "Реквизит: Подсказка"
- "Реквизит: Тип"
- "Реквизит: Длина"
- "Табличная часть: Имя"
- "Табличная часть: Синоним"
- "Табличная часть: Комментарий"
- "Табличная часть: Подсказка"
Изначально обработка была создана на 1С 8.3, автоматически сконвертировать из 8.3 в 8.2 не получилось, потому вручную был создан файл для 8.2 с незначительными отличиями.
8.3 (управляемая форма): Отчёт по структуре метаданных с возможностью отбора по количеству объектов в БД (СКД, без БСП)
8.2 (обычная форма): Отчёт по структуре метаданных с возможностью отбора по количеству объектов в БД (СКД, без БСП)
Специальные предложения
Спасибо автору, наверное это самый полный (метаданные + количество объектов) и одновременно самый простой анализ.
Просмотры 12863
Загрузки 76
Рейтинг 14
Создание 08.12.17 11:31
Обновление 26.03.20 15:35
№ Публикации 712770
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
См. также
Подсистема "Настраиваемые печатные формы" Промо
Универсальная подсистема "Настраиваемые печатные формы" предназначена для создания и редактирования печатных форм справочников и документов в режиме 1С:Предприятия. Создание печатной формы может занять всего несколько минут (в зависимости от сложности макета). Подсистему можно использовать в любой конфигурации. Подсистема разработана только для режима запуска "Обычное приложение".
1 стартмани
20.06.2012 42468 578 Gmix 90
Шаблон внешнего отчета (внешний источник данных) - управляемое приложение.
Доброго времени суток, коллеги. Сталкиваюсь с тем, что при необходимости сделать отчет, я залезаю в прошлые отчеты, либо иду гуглить. Понял, что хорошим решением будет сделать шаблон внешнего отчета, чтобы иметь возможность его скачивать, при необходимости.
24.08.2021 2181 0 Andrei_Ivanov 0
1 стартмани
10.03.2020 9703 26 pavelpribytkin96 1
Структура хранения базы данных в виде таблицы Excel (управляемые и обычные формы)
Простая обработка получает таблицу соответствия таблиц СУБД объектам конфигурации 1С и сохраняет ее в файл MS Excel (XLSX). Мне лично нужна была для анализа SQL-запросов, генерируемых 1С.
1 стартмани
31.01.2020 4621 13 w.r. 4
Универсальный механизм для создания любой печатной формы в 1С Предприятии 8. Промо
Эта бесплатная разработка от ООО "О-Планет" даст возможность сконструировать и подключить в любую конфигурацию 1С:Предприятие 8.2 произвольное количество печатных форм любой сложности. Договора, акты выполненных работ, сертификаты, декларации. Теперь все это стало возможным добавить в свою базу бесплатно, в течение нескольких минут, с помощью нашего универсального конструктора печатных форм.
1 стартмани
05.06.2012 54073 617 O-Planet 80
Анализ подписок на события
1 стартмани
31.12.2019 5014 5 Sergspectr 4
Имена метаданных и синонимы
Обработка показывает имена объектов конфигурации и их синонимы.
1 стартмани
13.12.2019 4029 1 Senator_I 4
Шаблон внешней печатной формы (внешняя обработка, расширение)
Шаблон внешней печатной формы. Реализован как в виде внешней обработки, так и в виде расширения. Рассмотрено три случая: серверный метод, клиентский метод, открытие формы.
1 стартмани
30.09.2019 9480 38 pila86 0
Отладочная форма внешних печатных форм
Иногда возникает необходимость быстрой и удобной отладки,подключаемой внешней печатной формы. Без подключения к информационной базе. С помощью разработанной отладочной формы это возможно.
2 стартмани
16.09.2019 5401 16 Denis211990 0
Пример внешней печатной формы макета Word (двоичные данные) с клиента
Что делать, если ваша 1С-база клиент-серверная и обычные процедуры получения и заполнения макета Word &НаСервере выдают ошибки? Выход есть! Он представлен в моем примере дополнительной печатной формы с тестовым макетом Word.
1 стартмани
05.09.2019 14887 50 ekaterinaeon 0
Формирование внешнего отчета в фоне
Принципы формирования внешнего отчета в фоновом режиме. Используя стандартную форму отчета БСП или свою. Вопросы передачи параметров от команды внешнего отчета в фоновом процессе к ожидающей завершения процедуре формы.
1 стартмани
07.08.2019 18218 14 partizand 15
Просмотр и анализ структуры базы данных (отчет на СКД)
Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
5 стартмани
24.07.2019 34558 329 YPermitin 30
Анализ объектов метаданных
Простой отчет для анализа структуры объектов метаданных. Работает в любой конфигурации на обычных и управляемых формах. Показывает свойства объектов, сведения о реквизитах и другую информацию об объекте метаданных в наглядном виде.
1 стартмани
22.07.2019 5348 4 alex_bob 0
Шаблон отчета, обычное приложение. Отображает на форме: параметры, отбор, варианты настроек, загрузку элементов отбора из файла
Шаблон отчета с формой для обычного приложения. Позволяет отображать на форме: параметры, отбор, варианты настроек, загрузку в левое значение отбора список элементов из файла (проверено на Управление производственным предприятием, редакция 1.3 (1.3.61.2) )
1 стартмани
22.04.2019 6047 9 user995537 0
Шаблон внешней печатной формы для БСП с универсальной формой тестирования
Данный шаблон содержит форму тестирования печати для конфигураций, разработанных на базе БСП. Форма универсальная - сама определяет команды печати и поддерживаемые объекты. Не требует доработок. Скопируйте ее в ваши обработки печатных форм и назначьте основной. Далее тестируйте через файл-открыть.
1 стартмани
25.03.2019 9235 24 aves 2
Шаблон отчета СКД (обычные формы)
Шаблон отчета СКД для обычных форм. Для любой конфигурации. Без дополнительных настроек.
1 стартмани
21.03.2019 12591 82 Смешной 1С 11
Макет оформления "Печатные формы" для отчетов на СКД (черно-белый)
Готовый макет оформления для отчетов СКД. Макет представляет собой простой черно-белый вариант, с крупным шрифтом в группировках.
1 стартмани
15.03.2019 14998 11 rpgshnik 5
Улучшенный шаблон отчёта СКД ОФ (обычные формы), подобный стандартной управляемой форме отчёта
Вашему вниманию предлагается улучшенный шаблон отчёта СКД, реализованный на обычных формах. Лаконичный и функциональный, весь необходимый минимум для управления отчётом вынесен на форму отчёта, что избавляет рядовых пользователей от необходимости лезть внутрь настроек отчёта. Элементы формы сделаны "резиновыми", что позволяет не дорабатывать форму отчёта, если в нём прибавилось отборов или параметров (пользователь сам при необходимости растянет область отборов или параметров). У пользователя есть возможность скрывать/отображать на форме настройки параметров или отборов. Форма автоматически запоминает состояние отображения параметров и отборов. Имеется возможность сохранять отчёт в файлы распространённых форматов (Excel2007, Excel, PDF, Word2007, ODS, HTML, Текстовый файл). Так же на панель выведена кнопка восстановления стандартных настроек отчёта.
2 стартмани
25.02.2019 7929 9 Eugen-S 0
1 стартмани
18.02.2019 12461 63 tomvlad 9
Проверка прав доступа к значениям характеристик ПВХ (планов видов характеристик)
Универсальная внешняя обработка для проверки прав доступа к значениям характеристик ПВХ (планов видов характеристик) информационной базы. Платформа 8.3, управляемые формы. Решение мелких проблем с правами доступа после обновления типовых конфигураций. Версия 003 от 10.02.2019
1 стартмани
11.02.2019 7592 4 ROL32 1
Универсальные формы СКД
Для быстрой разработки отчетов на СКД, представляю универсальные формы для формирования отчетов. Тестировал на платформе 8.3.11 обычное приложение. Подходит для всех конфигураций обычного приложения.
1 стартмани
02.02.2019 6506 2 vasis 0
Шаблон отчета, формирующегося в фоновом режиме
С помощью данного шаблона можно в кратчайшие сроки сделать отчет любой сложности для любых форм, который будет формироваться в фоновом режиме и сообщать прогресс выполнения пользователю. По окончанию формирования пользователь получит уведомление о том, что отчет сформирован (скриншот №3) даже при свернутой 1С. При нажатии на уведомление активизируется окно с отчетом.
1 стартмани
21.01.2019 6640 14 1C_Casual 4
Генерация внешнего отчета на основе варианта в "классической" консоли СКД
Реализации функции генерации внешнего отчета одной кнопкой в "классической" консоли отчетов СКД. Это функция будет полезна, если вам надо пользователю отдать настроенный вариант отчета на тестирование (а для него консоли это очень сложно: настройки, отборы и т.п.) или банально лень в конфигураторе собирать внешний отчет и вместе с ним ещё хранить отдельно в файле настройки варианта (отборы, например).
Была проблема: В процессе обновления и объединения различных баз, прототипов и наработок разных разработчиков, иногда бывали проблемы "утраты" нужных метаданных. Реквизит оставался, а его тип уходил в небытие. Реквизит в таком случае становился типа "Строка (10)". Да и разработчики пару раз тупо забывали указать тип реквизита. Результат - тот же. Возникла потребность просмотреть реквизиты с такими типами в конфиграции. Когда-то давно, когда разработка велась в СППР, то с этим легко справлялся простой запрос по табличной части "ТипыЗначенияРеквизита" справочника "РеквизитыОбъектовДанных". Но СППР мы больше не использовали.
На коленке было написано вот это решение, может быть кому-нибудь зачем-то понадобится.
Отчет состоит из СКД с внешним набором данных. Внешний набор данных заполняет таблицу со столбцами "ТипМетаданных", "Метаданные", "ТабличнаяЧасть", "Реквизит", "ТипРеквизита", "Длина" данными. Обрабатываются следующие типы метаданных:
Справочники
Документы
Отчеты
Обработки
ПланыВидовХарактеристик
ПланыВидовРасчета
РегистрыСведений
РегистрыНакопления
РегистрыБухгалтерии
РегистрыРасчета
БизнесПроцессы
Задачи
Эта таблица передается в СКД, где группируется и можно смотреть структуру базы данных в удобной мне группировке. Так как меня интересуют только пустые типы - в СКД стоит отбор по Строка(10).
Отчет не содержит формы, работает с генерирующейся по умолчанию.
"Зачем тебе всё это нужно":
Отчет встроен в конфигурацию на обычных формах. В модуле регламентных заданий дописано:
и создано регламентное задание, которое примерно раз в неделю присылает мне список потенциальных проблем с типами данных. В общем-то все. Планов дорабатывать что-то нет, но если у кого-то будут идеи или просьбы - могу и сделать. Запускал на самописной конфе на обычных формах и на бухгалтерии 3.0.
Выкладывается, скорее, как шаблон, если кому-то вдруг нужно нечто подобное. Аналоги искал, нашел один, но мне он не подошел.
Была проблема: В процессе обновления и объединения различных баз, прототипов и наработок разных разработчиков, иногда бывали проблемы "утраты" нужных метаданных. Реквизит оставался, а его тип уходил в небытие. Реквизит в таком случае становился типа "Строка (10)". Да и разработчики пару раз тупо забывали указать тип реквизита. Результат - тот же. Возникла потребность просмотреть реквизиты с такими типами в конфиграции. Когда-то давно, когда разработка велась в СППР, то с этим легко справлялся простой запрос по табличной части "ТипыЗначенияРеквизита" справочника "РеквизитыОбъектовДанных". Но СППР мы больше не использовали.
На коленке было написано вот это решение, может быть кому-нибудь зачем-то понадобится.
Отчет состоит из СКД с внешним набором данных. Внешний набор данных заполняет таблицу со столбцами "ТипМетаданных", "Метаданные", "ТабличнаяЧасть", "Реквизит", "ТипРеквизита", "Длина" данными. Обрабатываются следующие типы метаданных:
Справочники
Документы
Отчеты
Обработки
ПланыВидовХарактеристик
ПланыВидовРасчета
РегистрыСведений
РегистрыНакопления
РегистрыБухгалтерии
РегистрыРасчета
БизнесПроцессы
Задачи
Эта таблица передается в СКД, где группируется и можно смотреть структуру базы данных в удобной мне группировке. Так как меня интересуют только пустые типы - в СКД стоит отбор по Строка(10).
Отчет не содержит формы, работает с генерирующейся по умолчанию.
"Зачем тебе всё это нужно":
Отчет встроен в конфигурацию на обычных формах. В модуле регламентных заданий дописано:
и создано регламентное задание, которое примерно раз в неделю присылает мне список потенциальных проблем с типами данных. В общем-то все. Планов дорабатывать что-то нет, но если у кого-то будут идеи или просьбы - могу и сделать. Запускал на самописной конфе на обычных формах и на бухгалтерии 3.0.
Выкладывается, скорее, как шаблон, если кому-то вдруг нужно нечто подобное. Аналоги искал, нашел один, но мне он не подошел.
При написании небольших автоматизированных тестов часто надо обойти всю конфигурацию и проверить, например, для всех форм какое-нибудь свойство. Это всё легко делается через свойство глобального контекста "Метаданные", но чтоб дорбаться до обхода реквизитов надо написать кучу вложенных циклов. При этом код становится слабочитаемым и слабомодифицируемым.
Ниже приведен небольшой модуль, который решает задачу легко и удобно. Создана специальная функция РазвернутьСтрокуОбходаМетаданных, которая может по строке типа "Метаданные.Справочники.*.Реквизиты.*" построить массив строк с перечислением всех реквизитов всех справочников. При помощи этой и нескольких других функций в экспортных функциях модуля реализованы вполне прикладные задачи - получение всех реквизитов, всех макетов, всех форм конфигурации и построение таблицы всех составных типов.
Похожие FAQ
Еще в этой же категории
Как программно получить Картинку из базы и сохранить ее преобразовав в другой формат? 4
//Получим и сохраним Общую картинку из библиотеку картинок конфигурации ИмяКартинки = Метаданные.ОбщиеКартинки.OutlookExpress; ВыбраннаяКартинка = БиблиотекаКартинок ; // Сохраним полученную картинку в c: temp ВыбраннаяКартинка.Записать(" c: te Получить список Справочников конфигурации 2
НаКлиенте Процедура ПоКнопкеЧтениеИзМетаданных(Команда) // Вставить содержимое обработчика. Перем СписокСправочников; СписокСправочников = Новый СписокЗначений; СписокСправочников = СправочникиИзМетаданных(); Для Сч = 0 По СписокСправочников Получить список Документов конфигурации 0
//ЭлементыФормы.ОбъектПоиска - Поле Выбора на форме СписокВыбора = ЭлементыФормы.ОбъектПоиска.СписокВыбора; Для Каждого Документ Из Метаданные.Документы Цикл //Проверим, есть ли права на просмотр? Да- добавляем, Нет - пропускаем Если ПравоДосту Перебор Основных Реквизитов формы 0
//Перебор Основных Реквизитов формы Для Каждого Рек из ЭтаФорма.Метаданные().Реквизиты Цикл Сообщить(рек.Имя+" - " +рек.Синоним+" - " +Строка(рек.Тип)); КонецЦикла; // или так Для Каждого Рек из Метаданные().Реквизиты Цикл Сообщить(рек.Имя+" Пример обращения к метаданным 0
спрНомен = Метаданные.Справочники.Номенклатура; Сообщить(" Имя справочника " " " + спрНомен.Имя + " " " " ); Сообщить(" Комментарий " + спрНомен.Комментарий); Сообщить(" ВидИерархии " + спрНомен.ВидИерархии); Сообщить(" КоличествоУровней " + Посмотреть все в категории Метаданные
Читайте также: