Как получить структуру конфигурации 1с
Выгрузка информации о структуре информационной базы
Итак, для создания правил обмена данными нам нужна информация о структуре информационных баз участвующих в обмене. Если мы будем знать структуру информационных баз, то сможем задать какие объекты информационной базы источника должны преобразовываться в объекты информационной базы приемника. То есть по сути, сможем настроить правила обмена данными между двумя информационными базами.
У нас имеется информационная база по которой нам нужно получить информацию о ее структуре. Выгрузим информацию о структуре информационной базы в файл. Для этого используется внешняя обработка MD81Exp.epf и MD80Exp.epf для конфигураций на платформе "1С:Предприятии 8.1" и "1С:Предприятии 8.0" а так же MD77Exp.ert для конфигураций на платформе "1С:Предприятии 7.7". Эти обработки входят в комплект дистрибутива конфигурации "Конвертация данных 2.0".
Для подготовки XML-файла содержащего описание структуры метаданных конфигурации нужно запустить внешнюю обработку соответствующую версии платформы , указать путь для файла, в который необходимо выгрузить информацию о структуре информационной базы и нажать кнопку "Выгрузить".
Если наша информационная база работает на базе платформы 1С:Предприятие 8.1, то процесс выгрузки информации о структуре информационной базы будет выглядеть следующим образом:
1. Открытие информационной базы, информацию о структуре метаданных которой необходимо получить (одинаков для всех платформ)
2. Открытие внешней обработки MD81Exp.epf. Для этого достаточно в главном меню открыть пункт "Файл\Открыть" и указать путь по которому располагается обработка MD81Exp.epf (для платформы 7.7 и 8.0 нужно открывать обработки MD77Exp.ert соответственно MD80Exp.epf).
3. Указание имени файла, в который необходимо сохранить информацию о структуре информационной базы
Эти действия позволили нам выгрузить информацию структуре информационной базы.
Осталось только загрузить данную информацию в программу и можно будет приступить к настройке правил обмена данными.
Работа во встроенном языке с объектами метаданных
Во встроенном языке "1С:Предприятия" предоставляется доступ к структуре метаданных конфигурации. Эта возможность предназначена в основном для создания универсальных алгоритмов, которые могли бы единообразно работать с различными объектами конфигурации. В этом разделе приводится информация об особенностях работы с метаданными во встроенном языке.
Доступ к метаданным предоставляется только на чтение. Программное изменение метаданных не поддерживается.
В документации по встроенному языку не приводится перечень свойств объектов метаданных и коллекций подчиненных объектов. Для ознакомления со структурой объектов и составом свойств необходимо использовать отчет по конфигурации (в режиме Конфигуратор меню Конфигурация – Отчет по конфигурации). Имена, отображаемые в этом отчете, соответствуют именам свойств и коллекций подчиненных объектов.
Структура метаданных в отчете и в программной модели не содержит ветки "Общие". Эта ветка используется только в дереве метаданных для удобства редактирования. В отчете по конфигурации и в программной модели все объекты, входящие в ветку "Общие", подчинены непосредственно корневому объекту.
Доступ к структуре метаданных осуществляется через свойство Метаданные глобального контекста. Это свойство предоставляет доступ к корневому объекту конфигурации и коллекциям объектов верхнего уровня. Каждый объект предоставляет соответственно доступ к своим свойствам и подчиненным объектам. Таким образом, можно получить доступ к любому объекту.
Например:
Кроме того, у некоторых типов предназначенных для работы с прикладными объектами, имеется метод Метаданные() , предназначенный для получения объекта метаданных, отвечающего за конкретный тип.
Например:
Однако такие методы есть не у всех типов, используемых для работы с прикладными объектами. Если необходимо получить объект метаданных, отвечающий за некоторый тип прикладного объекта, то можно использовать метод НайтиПоТипу() .
Например:
Объекты метаданных можно сравнивать на равенство. При этом проверяется идентичность объектов, а не совпадение значений свойств. То есть проверяется то, что сравнивается именно один и тот же объект конфигурации.
Например:
С помощью метода Родитель() можно получить вышестоящий объект метаданных.
Например:
Для представления объекта метаданных пользователю нужно использовать преобразование значения к строке или метод Представление() .
Например:
Объекты метаданных не могут быть сериализованы. Для получения строкового значения, соответствующего объекту метаданных, независимого от языка интерфейса пользователя нужно использовать метод ПолноеИмя() .
Например:
Для поиска объекта метаданных, соответствующего значению перечисления, можно использовать методику, описанную в разделе "Как получить имя значения перечисления, заданное в метаданных?".
Метаданные можно использовать, чтобы проверить, относится ли, например, значение к справочникам. Методика такой проверки описана в разделе "Как проверить, что тип значения относится к справочникам, документам и т. д.?".
Некоторые свойства объектов метаданных имеют перечислимый тип. Это специальные перечисления. Доступ к ним в языке выполняется через коллекцию СвойстваОбъектов , предоставляемую корневым объектом метаданных. Состав этих перечислений описан в документации, в разделе, описывающем работу с объектами метаданных.
Например:
Некоторые свойства объектов метаданных являются коллекциями значений и представляются типом КоллекцияЗначенийСвойстваОбъектаМетаданных .
Например:
В разделе документации, описывающем работу с объектами метаданных, приводятся также описания специфических типов свойств метаданных, например, таких как ПараметрыВводаПоСтроке .
Следует учитывать, что не все значения свойств метаданных могут быть получены из встроенного языка. Программный доступ к объектам метаданных не позволяет получать, например, значения свойств, хранящих формы, модули, макеты, разделы справочной информации, картинки, интерфейсы, стили, наборы предопределенных объектов, права.
Для получения форм и макетов используются специализированные методы.
Для получения значений, идентифицирующих стили и элементы стилей, а также картинок, используются специализированные коллекции.
Например:
Для проверки прав текущего пользователя используются специализированные методы глобального контекста ПравоДоступа() и ПараметрыДоступа() .
Техническое описание внутреннего устройства опубликовано мной в статье Краткое описание формата файлов *.1CD (файловых баз 1Сv8). Однако она достаточно сумбурна, плоха для восприятия, поэтому здесь я попытаюсь описать формат немного более популярно. Чтобы не было путаницы с термином «файл», сразу замечу, что когда я буду иметь в виду файл базы *.1CD, я буду говорить «файл базы», когда же я буду говорить про внутренние файлы, содержащиеся внутри базы, я буду употреблять просто термин «файл».
На самом нижнем уровне файл базы данных 1CD состоит из страниц размером 4 килобайт (0x1000).
По сути, весь файл базы состоит из массива четырехкилобайтных страниц. Каждая страница имеет свой номер (индекс). Здесь и далее каждый прямоугольник с красной рамкой обозначает одну страницу.
Файлы
На более высоком уровне находятся файлы. Файл состоит из одной или более страниц. У каждого файла есть ровно одна заголовочная страница, в которой размещается массив номеров страниц размещения. В каждой странице размещения, в свою очередь, находится массив номеров страниц данных. Заголовочная страница и страницы размещения – это служебные страницы, которые нужны только для хранения служебных данных (сигнатура, длина файла, версия) и для нахождения страниц данных. Собственно содержимое файла хранится в страницах данных.
Структура таблиц
Каждая таблица состоит из нескольких файлов:
- файла описания таблицы DESCR;
- файла записей DATA;
- файла индексов INDEX;
- файла данных неограниченной длины BLOB.
Файл описания таблицы DESCR содержит текстовое описание таблицы – имя таблицы, состав полей и индексов. А также файл DESCR содержит номера файлов DATA, INDEX и BLOB. Таблица адресуется с помощью файла описания таблицы. Структуру файлов таблиц мы в данной статье рассматривать не будем, подробности можно узнать из моей статьи, ссылку на которую я приводил выше. Файл индексов может отсутствовать, если в таблице нет ни одного индекса. Файл данных неограниченной длины тоже может отсутствовать, если в таблице нет ни одного поля с данными неограниченной длины.
Адресация
База состоит из таблиц. Таблицы, в свою очередь, состоят из файлов. И наконец, файлы состоят из страниц. Адресом страницы является ее порядковый номер (индекс) в файле базы. Адресом файла является номер его заголовочной страницы. Адресом таблицы является адрес ее файла описания, а значит, номер заголовочной страницы файла описания. Т.е. о каком бы объекте мы бы не говорили – странице, файле или таблице, адресом объекта всегда является просто номер страницы.
Как запустить epf файл для выгрузки из 1С метаданных
for each fileName in FileList ( 'F:\1С_Аналитика\db_xml\*.xml' ) FROM '$(fileName)' ( XmlSimple , Table is [ Table / Fields / Field ] ) ;После небольшой корректировки получаем отчет, можете скачать (но там ничего не понятно, нужна расшифровка метаданных): Таблицы и поля из 1С Предприятия 8.3 после обработки Tool 1CD.exe и выгрузкой в XML.xlsx
1С Script Builder реализован в виде внешней 1С-обработки и предназначен для автоматизированного проектирования скрипта загрузки данных из БД 1С версии 8.x в аналитическое приложение QlikView. Использование 1С Script Builder позволяет получить максимальную скорость загрузки данных и максимальную гибкость при формировании самых сложных запросов.
ВНИМАНИЕ! В коде последнюю запятую перед SQL надо удалить. Не знаю, как программными средствами убрать.
На вкладке LOAD Script For QlikView приведен загрузочный скрипт. Не забывайте про запятую, которую нужно убрать.
Итак, для создания правил обмена данными нам нужна информация о структуре информационных баз участвующих в обмене. Если мы будем знать структуру информационных баз, то сможем задать какие объекты информационной базы источника должны преобразовываться в объекты информационной базы приемника. То есть по сути, сможем настроить правила обмена данными между двумя информационными базами.
У нас имеется информационная база по которой нам нужно получить информацию о ее структуре. Выгрузим информацию о структуре информационной базы в файл. Для этого используется внешняя обработка MD81Exp.epf и MD80Exp.epf для конфигураций на платформе "1С:Предприятии 8.1" и "1С:Предприятии 8.0" а так же MD77Exp.ert для конфигураций на платформе "1С:Предприятии 7.7". Эти обработки входят в комплект дистрибутива конфигурации "Конвертация данных 2.0".
Для подготовки XML-файла содержащего описание структуры метаданных конфигурации нужно запустить внешнюю обработку соответствующую версии платформы , указать путь для файла, в который необходимо выгрузить информацию о структуре информационной базы и нажать кнопку "Выгрузить".
Если наша информационная база работает на базе платформы 1С:Предприятие 8.1, то процесс выгрузки информации о структуре информационной базы будет выглядеть следующим образом:
- Открытие информационной базы, информацию о структуре метаданных которой необходимо получить (одинаков для всех платформ)
- Открытие внешней обработки MD81Exp.epf. Для этого достаточно в главном меню открыть пункт "Файл\Открыть" и указать путь по которому располагается обработка MD81Exp.epf (для платформы 7.7 и 8.0 нужно открывать обработки MD77Exp.ert соответственно MD80Exp.epf).
- Указание имени файла, в который необходимо сохранить информацию о структуре информационной базы
- Нажатие на кнопку Выполнить
Эти действия позволили нам выгрузить информацию структуре информационной базы.
Осталось только загрузить данную информацию в программу и можно будет приступить к настройке правил обмена данными.
Загрузка информации о структуре информационной базы
Когда файл с информацией о структуре метаданных готов, его можно загрузить в конфигурацию "Конвертация данных".
Для этого достаточно открыть "Панель функций" и выбрать пункт "Загрузить структуру метаданных конфигурации".
После чего откроется форма в которой необходимо указать путь к файлу, в котором хранится информация о структуре информационной базы.
Имеется возможность загрузить данные о структуре конфигурации в новый элемент, либо модифицировать уже загруженную структуру метаданных информационной базы.
После нажатия на кнопку "Выполнить загрузку" программа загрузит информацию о структуре информационной базы (Процесс загрузки информации о структуре метаданных информационной базы может потребовать некоторого времени. О ходе загрузки данных программа будет Вас информировать сообщая количество загруженных объектов, их свойств и предопределенных значений).
После окончания загрузки программа откроет информацию о загруженных данных. При этом будет создан новый элемент справочника "Конфигурации". Этот элемент справочника в дальнейшем будет соответствовать информации о выгруженной конфигурации.
В справочнике "Конфигурации" хранится информация о информационной базе из которой были выгружены данные. Имеется возможность посмотреть информацию о структуре информационной базы.
В верхней части формы в виде дерева представлена структура метаданных. В табличной части на закладке "Свойства" показаны реквизиты, табличные части объектов метаданных. Для документов дополнительно показана структура записей регистров, движения по которым делает соответствующий документ.
Если информация о структуре метаданных информационной базы источника и приемника загружена полностью, то все готово для создания правил обмена данными.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Войдите как ученик, чтобы получить доступ к материалам школы
Создание конфигураций 1С: основы
Автор уроков и преподаватель школы: Владимир Милькин
Наконец, мы приступаем к созданию и доработке конфигураций 1С. Если вы не читали введение к этому модулю - пожалуйста, прочтите его: ссылка.
Конфигурация, конфигурация . а что это вообще такое?
Из чего состоит 1С
Давайте ещё раз вспомним, что 1С делится на две большие части:
- Это собственно сама программа 1С (её ещё называют платформой 1С:Предприятие).
- И данные с которыми работает эта платформа (их ещё называют базой данных).
У платформы есть версия. Раньше использовалась "семёрка" (версия 7.7), теперь используется 8.3 - это самая последняя версия платформы - её мы используем в наших уроках.
Какие бывают базы
Платформа обычно одна, а вот баз данных может быть сколь угодно много, это и:
- бухгалтерские базы (1С:Бухгалтерия)
- базы для управления персоналом и расчетом зарплаты (1С:Управление персоналом)
- базы для управления торговлей (1С:Управление торговлей)
- базы для автоматизации практически любой другой отрасли (парикмахерские, автосервисы, салоны красоты, общепиты и другие)
Конфигурация - основа базы
Так вот в основе любой базы данных 1С лежит конфигурация, которая определяет какие именно данные мы сможем хранить в базе и каким образом мы сможем их обрабатывать. Можно сказать, что конфигурация - это словарь базы данных.
Таким образом у бухгалтерской базы - своя конфигурация, у зарплатной своя, а у торговой своя. Эти конфигурации в чём-то похожи друг на друга, но в чём-то отличаются. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Эти отличия связаны со спецификой отрасли, которую автоматизирует база.
Как выглядит платформа
Это набор исполняемых файлов (программ), которые устанавливаются в папку "Program Files" и обычно запускаются ярлыком с рабочего стола:
Как выглядит база данных
Самый главный файл "1Cv8.1CD" - именно в нём хранится база. Все остальные файлы являются служебными и при их удалении мы потеряем разве что журнал регистрации.
Как выглядит конфигурация
На рисунке представлено так называемое "дерево конфигурации", которое состоит из различных разделов, с которыми мы познакомимся позже. Повторюсь, то что мы видим в дереве конфигурации это ещё не сами данные, а только виды данных, которые мы сможем хранить в базе (например, "Банки", "Валюты" и т.п.).
Конфигурация "зашита" внутри базы (файл "1Cv8.1CD") вместе с данными.
Сравнение с Word
Если вам всё ещё не понятна разница между платформой и базой данных, то можно рассмотреть ещё такую абстракцию:
Платформа 1С - это программа Microsoft Office Word для работы с текстовыми документами, а база данных - это текстовый документ с которым работает Word. Сама программа Word не хранит в себе никаких данных, но вот файлы, которые мы создаём при помощи него как раз и являются хранилищем различной информации.
Когда мы запускаем ярлык 1С с нашего рабочего стола - мы запускаем платформу.
. мы делаем выбор, какую из них открыть и она загружает её в память компьютера.
Два режима работы с базой
Как мы уже говорили выше любая база состоит из собственно данных и конфигурации (словаря), которая определяет как с этими данными можно работать. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Именно поэтому существует два отдельных режима работы c базой данных:
- режим конфигуратора (когда мы работаем только с конфигурацией базы, не затрагивая её данные)
- режим предприятия (когда мы работаем только с данными базы).
Ещё можно сказать, что режим конфигуратора предназначен для программистов, а режим предприятия - для пользователей.
И то, что программист придумает в режиме конфигуратора будет определять то, что пользователь увидит в режиме предприятия.
Переключение между этими двумя режимами производится вот этими двумя кнопками:
Установка платформы
Для обучения программированию нам понадобится 1С 8.3 (не ниже 8.3.13.1644).
На вашем рабочем столе должен появиться вот такой ярлык:
Создаём пустую базу
Итак, давайте же создадим нашу базу данных, но не так как мы это делали на самом первом уроке школы (ссылка) - на этот раз мы сделаем это осознанно, с объяснением каждого шага:
1. Запустим платформу 1С на нашем рабочем столе. Этот ярлык ведёт к исполняемому файлу из папки "C:\Program Files\1cv8t\".
2. Перед нами открылся список баз 1С:
В нём уже присутствует база "Учебная" из прошлых уроков. Обратите внимание на то, что при выделении базы внизу пишется путь к её папке. Если мы откроем эту папку в проводнике, то обнаружим там тот самый файл "1Cv8.1CD", о котором шла речь выше.
3. Нажмём кнопку "Добавить".
4. Выберем пункт "Создание новой информационной базы" и нажмём кнопку "Далее":
Второй пункт нужен, если мы принесли уже готовую базу данных с другого компьютера и захотели подключить её папку в наш список баз.
5. Выберем пункт "Создание информационной базы без конфигурации . " и нажмём кнопку "Далее":
Мы выбрали второй пункт, потому что будем создавать базу данных с нуля, а не из шаблонов, которые могут присутствовать у нас на компьютере. Вообще при разработке новой базы она почти всегда создаётся с нуля.
6. В качестве имени базы укажем "Азы" и нажмём кнопку "Далее":
В качестве имени базы можно указывать любое подходящее по смыслу название.
7. В качестве каталога базы укажем любую пустую папку (в данном случае это папка "Азы" в моих документах). Нажмём кнопку "Далее":
Вообще же лучше выбирать местом для хранения баз данных диск отличный от системного. Совсем хорошо, если это отдельный физический диск.
8. Укажем вариант аутентификации "Выбирать автоматически", режим запуска "Толстый клиент". В качестве версии 1С:Предприятия ничего не будем указывать, нажмём кнопку "Готово":
Толстый клиент, тонкий клиент, веб-клиент - это всё варианты платформы 1С. Тонкий и веб-клиент предназначены для работы с базой данных через интернет. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Толстый клиент - предназначен для всего остального, в том числе только он позволяет работать с базой в режиме конфигуратора. А это как раз то, что нам требуется, ведь мы сейчас будем именно разрабатывать.
9. В списке появилась наша база "Азы", которую мы только что создали. Выделим её и внизу отобразится путь к папке с базой:
Зайдём в эту папку через проводник и увидим там уже знакомый файл "1Cv8.1CD", который содержит всю базу данных:
Читайте также: