Доступ к данным V7 из других систем. Классы MetaDataStream.
Опять субконто…
Для того, чтобы определиться с именами классов, достаточно всего лишь открыть MMS в любом текстовом редакторе. Далее открываем желтую книжицу на странице с названиями агрегатных типов данных и ищем в файле "Document", "Register", "Reference"…
Стоп, "Reference", то бишь справочник, – не находим. Конечно, справочники описаны, но называются они, – "SbCnts". Я понимаю, что, скорее всего, это название осталось со старых времен, что названия в метасловаре никак не могут повлиять ни на производительность, ни на устойчивость системы. Но вот слово «Субконто» (абсолютно не связанное с реальным миром) должно быть близко многим, кто работал с V7. «Как много в этом слове…»
;-)
Комментарии к таблице
В первой колонке – имена классов. Классы самого верхнего уровня (они выделены отступом) приведены все – даже те, которые в решении поставленной задачи использоваться не будут. Подклассы приведены только в той мере, в которой необходимо. Полностью пропущены формы, отчеты, графы отбора и пр. Наша цель – не имитация интерфейса, и не повторение бизнес-логики системы. Нам нужны только данные (причём первичные данные) и ничего более.
Те классы, которые будут в дальнейшем использоваться выделены жирным (bold).
В таблице не описана первая строка MMS:
{"MainDataContDef","xxxx","yyyy", "zzzzz"}
zzzz используется мной для определения версии ("7107" для 7.5, или "7120" для 7.7), "yyyy" – что-то похожее на указатель компонент V7 (ОУ/БУ/Расчет).
TaskItem – самый первый класс (ID всегда единица). Есть отличия между 7.5 и 7.7: в 7.7 на один параметр больше и присутствуют ссылки на общий журнал. Этот класс используется для получения текстовой информации о конфигурации.
GenJrnlFldDef – общие реквизиты документов. Они понадобятся нам при импорте документов.
DocSelRefObj, DocNumDef, ReportList, Algorithms, RecalcRules, CalcVars, Groups, Document Streams – исключаю из рассмотрения, как избыточные для поставленной задачи.
Consts – константы. В принципе, тоже можно было бы не рассматривать, но есть несколько служебных констант (ТипУчета, НомерРелиза и т.п.) из-за которых всё-таки таблица констант будет создана.
Calendars – проблема с подклассом Holidays (пока не обрабатывается) – с рабочими днями всё в порядке.
Buh – самый монстрообразный и путаный класс. Собственно, в этом классе всегда один объект (кстати говоря, создающийся сразу после TaskItem, его ID=2), не имеющий имени, зато состоящий аж из 49-и реквизитов. И если подклассы/объекты других классов как-то соответствуют «дереву конфигуратора», то здесь не всегда так. Например, реквизиты операций и реквизиты проводок, имеющие в конфигураторе отдельные формы
для заполнения, фактически пишут данные непосредственно в объект класса Buh.
Архив рассылки по адресу: www.anobis.ru
По вопросам размещения Ваших статей и информации в наших рассылках - пишите нам: osbekar@mail.ru
ICQ: 340597008