Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
Просьба развёрнуто пояснить: что подразумевается под работой с метаданными?
Ничего не понятно из описания.
Под «работой с метаданными» в контексте данной темы следует понимать извлечение любых данных, содержащихся в конкретной конфигурации 1С (только для MS SQL). 😀
Не понятна цель изложенных в (0) действий. Картинок нет, описания развертки проекта нет…
(3) — то есть можно просмотреть пользовательские данные 1С? Список элементов справочника/документа/регистра?
Да. Описание развертки проектов для создания clr-функций можно найти в хелпе Майкрософт. Оно стандартное, без особенностей для конкретной ситуации. 😀
❗ ❗ ❗ ❗ ❗
Сильно. Автору респект.
Минусы и нытье в комментах непонятно.
ИМХО. Это самая сильная вещь на ИС за последние 2 года с момента опубликования V8unpack
(8) German, не преувеличивай. Всё, что здесь есть — это чтение двоичных данных из поля BINARYDATA таблиц CONFIG и PARAMS и их распаковка (deflate).
В качестве примера производится парсинг записи DBNames из таблицы PARAMS, содержимое которой имеет вид
…
{92b8043c-b023-496a-9498-fcfad09de34a,»Fld»,394},
{c38ad01d-6049-4ff0-a15f-e8e89616971c,»ByParentField»,395},
{c38ad01d-6049-4ff0-a15f-e8e89616971c,»ByField»,396},
{f47b419b-4aed-4975-83d8-978c710710d1,»ReferenceChangeRec»,397},
{41bda9ce-9cd4-4285-afc9-c5126dc0330e,»Fld»,398},
…
и попытка чтения всех подряд полей с GUID-именами, распарсенными из DBNames, в таблице CONFIG.
То, что в DBNames содержатся идентификаторы не только основных таблиц объектов 1С, а также идентификаторы полей, индексов и вспомогательных таблиц объектов 1С, никак не учитывается. Также нет никакого реального разбора данных из CONFIG. На самом деле, разбор метаданных надо начинать с записи root таблицы CONFIG. Так что, до реального извлечения «любых данных, содержащихся в конкретной конфигурации 1С» еще очень далеко.
А минусы, как я понимаю, за совершенно невнятное описание, что же на самом деле выложено.
(9) пример бессмысленный, но я считаю полезной именно саму технологию распаковки.
идею можно развить в действительно полезные вещи.
Согласен с German. Я ведь и писал именно про демонстрацию идеи и ее оценку хотел получить (для начала).Что же касается »реального извлечения», то до него уже не так уж далеко. Собственно, модифицирована функция, и примеры. Просто я не очень понимаю, как это добавить сюда.
Что касается мутности описания, оно действительно рассчитано на людей, которые знают про clr и проблему с sqlbinary в 1cv8. 😉
(10) Какая технология? Вся технология заключается в распаковке двоичных данных (deflate). Двоичные данные упакованы zip-ом и хранятся как поток без заголовка. Это давным давно всем известно, точно также потоки упакованы в cf. Т.е. вся технология, представленная в этой публикации заключается в строке
DeflateStream deflstrm = new System.IO.Compression.DeflateStream(param.Stream, CompressionMode.Decompress);
То же самое делает zlib1.dll, который используется в v8unpack. То же самое я делаю в Tool_1CD c помощью библиотеки Abbrevia. Нет в этой публикации ничего нового.
Минусов, конечно, автор не заслуживает, но и на плюс пока не тянет.
(8) Да, я тоже провел аналогию с V8unpack — не дотягивает пока. Зато идея мне нравится.
GUI клиент к 1С на Java с использованием J1C 🙂
PS: Самая сильная вещь за последнее время, мне кажется —
Собственно говоря, можно было бы попробовать «порасплетать» метаданные и более вдумчиво, благо, предложенная идея вполне это позволяет сделать. Просьба дать ссылки на любые ресурсы, где описано, как устроена конфигурация восьмерки «изнутри». То есть, как устроенные эти дивные файлы ( или записи 😀 ) с фигурными скобками.
(14)Ei 😉
Спасибо, обязательно посмотрю.
(14)http://infostart.ru/public/19734/ (правда, для файловых БД, но что-то общее по-любому будет)
dglucas_, спасибо большое, очень интересно!
Но воспользоваться не получается.
Тестовый скрипт Test.sql возвращает пустую таблицу.
Скрипт
SEL ECT * FROM [mybase].[dbo].[fn_GetBinary] (
(Select TOP 1 BinaryData Fr om Config)) k
также возвращает пустую таблицу… 🙁
Возможно неправильно подключил?
Скрипты подключения во вложении (один вспомогательный просто разрешает выполнение CLR)