Парсировщик (НОВЫЙ инструмент для изучения метаданных + загрузка предопределенных значений из табличного документа)

Опубликовал bambr1975 в раздел Программирование - Инструментарий

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

Выкладываю свое видение решения давно наболевшей проблемы. Результат еще сырой - буду доделывать. Сообщайте об ошибках.

Всем разработчикам, идеи и начинания которых так или иначе использовались при создании этой обработки громадное спасибо. А именно -

Disa_da - проект V8Unpack 2.0 - использован в качестве начинки обработки

Disa_da - Разбор файла описания1С 81 - использован в скорректированном виде в качестве дополнительного инструмента изучения метаданных

MMF - проект Плагин TotalCommander-а просмотра файлов 1C v8 - все визуальное оформление сделано по образу и подобию

German - использована идея построения дерева предопределенных значений из полученного в результате  обработки V8Unpack-ом служебного файла.

awa - использован накопленный материал по статическим GUID-ам

MAV - в качестве просмотра файлов справки использован HTML-Editor, входящий в состав CD к книге "1С:Предприятие 7.7/8.0 Системное программирование"

Ну, и, собственно сама обработка "Загрузка данных из табличного документа" (с диска ИТС).

Обновление 15.08.2011

Добавлено дерево файлов для удобной навигации по файлам каталога распаковки

Доработаны существующие механизмы по их применимости к обработкам/конфигурациям версии 8.2.

Устранена причина ошибки "не найдена библиотека zlib1"

Все очевидные (для меня, по крайней мере) недочеты исправлены.

 

Файлы

Наименование Файл Дата Размер Кол. Скачив.
Парсировщик.epf
.epf 365,28Kb
19.08.11
379
.epf 19.08.11 365,28Kb 379 Бесплатно

См. также

Лучшие комментарии

16. bambr1975 30.01.2012 07:25
Разработка "Парсировщика" носила экспериментационный характер. Всерьез я ничего редактировать таким образом не рекомендую.
Касательно отличий "базовых" версий КОНФИГУРАЦИЙ от "ПРОФ" есть отличный материал - http://infostart.ru/public/98417/
В любом случае - главное отличие этих версий от версий "ПРОФ" в другом строении форм - наверное, именно этим и обеспечивается их монопользовательский режим.
А "включить возможность изменения" в случае наличия у Вас "базовой" ПЛАТФОРМЫ все равно не получится - этот пункт меню будет заблокирован.
Ответили: (17)
+ 1 [ Rustig; ]
# Ответить
4. detec (файл скачал) 12.06.2010 09:40
На 64-битной ОС пишет, что не может найти библиотеку zlibeng.dll. Я её регистрировал и в c:\Windows\System32\, и в c:\Windows\SysWOW64\

А вообще просьба всем тем, кто использует разного рода внешние компоненты в разработках. Тестируйте свои творения под 64-битными ОС. Мир не ограничен узкими окошками 32-битной XP SP2-3. Куча разработок с Инфостарта у меня полетела в мусорку, т.к. не была реализована корректная работа на 64 битах.
Ответили: (6) (7)
+ 1 [ Луна5; ]
# Ответить

Комментарии

1. artbear 07.05.2010 13:39
Молодец! Уже за идею плюсую
Ответили: (22)
# Ответить
2. German (файл скачал) 07.05.2010 23:14
а может вот так ?

1. Загрузить элементы
2. Изменить им свойство предопределенности?

http://main.1c-ei.ru/Articles/ismeta

так что преимущество под сомнением :)
Ответили: (3)
# Ответить
3. bambr1975 08.05.2010 10:40
(2) Пальму первенства отбирать не собираюсь. Копаем одно и то же, в разное время и в разном месте. Спасибо за проявленный интерес. Большая честь! :)
# Ответить
4. detec (файл скачал) 12.06.2010 09:40
На 64-битной ОС пишет, что не может найти библиотеку zlibeng.dll. Я её регистрировал и в c:\Windows\System32\, и в c:\Windows\SysWOW64\

А вообще просьба всем тем, кто использует разного рода внешние компоненты в разработках. Тестируйте свои творения под 64-битными ОС. Мир не ограничен узкими окошками 32-битной XP SP2-3. Куча разработок с Инфостарта у меня полетела в мусорку, т.к. не была реализована корректная работа на 64 битах.
Ответили: (6) (7)
+ 1 [ Луна5; ]
# Ответить
5. mozz (файл скачал) 21.04.2011 10:26
Автору респект и уважуха!
# Ответить
6. bambr1975 15.08.2011 12:24
(4) Выложил новую версию. Ошибка повторяться не должна.
# Ответить
7. andrewbc (файл скачал) 23.08.2011 23:20
Извиняюсь, но вообще не работает в режиме управляемого приложения под 8.2. Пора бы уже это учитывать. (Это в добавку к (4)).
Ответили: (8)
# Ответить
8. bambr1975 24.08.2011 18:52
(7) Возможно, позже сделаю.
# Ответить
9. mevgenym (файл скачал) 08.09.2011 09:44
оч хорошо сделано, правда хотел поломатую конфу восстановить, не получилось, но эт неважно
# Ответить
10. karbofos (файл скачал) 06.10.2011 14:07
Нужная вещь. Беру на вооружение. Автору респект.
# Ответить
11. CaSH_2004 07.10.2011 22:00
Подскажите страждущему О ИСКУШЕННЫЕ КОВЫРЯЛЩИКИ ВНУТРЕННОСТЕЙ, есть ли какой способ (желательно без танцев с бубном в полнолуние в 13-ю пятницу 13-го числа, если такое бывает) чтобы можно было в обычную обработку (epf) засунуть двоичные данные не заходя в конфигуратор, как например все делают с макетом в конфигураторе - засовывают разные компоненты и другие файлы. Есть потребность но не вижу инструмента, на 7-ке вроде встречал но сейчас (во всяком случае хранение и распаковка как в 1С8) но уже не хочется бедную лохматить.
Отзовитесь О МОГУЩЕСТВЕННЫЕ!!!
Ответили: (12)
# Ответить
12. svvinks 10.10.2011 19:51
(11) CaSH_2004, Без бубна - это обработку записать в дополнительные обработки и прилепить к ней макет в виде параметра
Ответили: (13)
# Ответить
13. CaSH_2004 10.10.2011 22:51
(12)Это ты про что? Я хочу в одной обработке все хранить в виде макетов или еще чего, а ты про конфу что-ли?
# Ответить
14. bissov 12.12.2011 13:03
Это очень круто, спасибо!!!
# Ответить
15. Rustig 30.01.2012 02:30
(0) попробовал распаковать базовую версию, добавить предопределенный элемент, далее запаковать файлы в конфу: получилось. Только не понимаю, остается ли базовая версия от таких манипуляций "базовой"? И почему, считается, что "базовые" конфигурации нельзя редактировать, если можно "включить возможность изменения" через настройку поддержки? вопрос скорее организационно-юридический, чем технический. и все же не понимаю - можете прокомментировать? заранее спасибо.
# Ответить
16. bambr1975 30.01.2012 07:25
Разработка "Парсировщика" носила экспериментационный характер. Всерьез я ничего редактировать таким образом не рекомендую.
Касательно отличий "базовых" версий КОНФИГУРАЦИЙ от "ПРОФ" есть отличный материал - http://infostart.ru/public/98417/
В любом случае - главное отличие этих версий от версий "ПРОФ" в другом строении форм - наверное, именно этим и обеспечивается их монопользовательский режим.
А "включить возможность изменения" в случае наличия у Вас "базовой" ПЛАТФОРМЫ все равно не получится - этот пункт меню будет заблокирован.
Ответили: (17)
+ 1 [ Rustig; ]
# Ответить
17. Rustig 30.01.2012 14:03
(16) Спасибо большое за ответ! Нашел ответы на свои вопросы. :)
# Ответить
18. Kaperang 26.03.2012 11:08
А как закачать предопределенные значения? Копался полчаса, так и не нашел.
# Ответить
19. Kaperang 26.03.2012 11:13
Вроде нашел. Если у объекта уже есть предопределенные значения, в дереве метаданных у этого объекта уже отображается раздел "Предопределенные". Можно запустить форму просмотра и загрузки предопределенных значений выбрав этот пункт. А как быть, если у объекта нет предопределенных значений и соответствующего раздела в модуле?
Ответили: (20)
# Ответить
20. bambr1975 26.03.2012 11:30
(19) Kaperang, для этого надо просто хотя бы раз открыть форму предопределенных значений этого объекта в конфигураторе в стандартном режиме (при включенной возможности изменения конфигурации, естественно).
# Ответить
21. Kaperang 02.05.2012 17:10
Коллега, я снова к Вам с поклоном... :oops:

В прошлый раз Вы мне сформулировали паттерн имени объекта следующего вида "\{\d,[\d]+,\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\},""(\S+?)"",\n?"
Теперьмне нужно сформулировать паттерн синонима объекта. Пример текста для изменения:
"{1,
{47,314e75be-9c96-4a70-a5fb-f73d37e7306f,5e66eea4-01d2-497a-9769-07c9207a4dde,de2fb776-fa0b-4bb3-a39f-f77b7cba2605,f12f2c3d-cb90-439f-8a2c-cb4556571835,2e22d328-007d-41e2-a237-73afc542b898,93f7a53d-21bc-40a9-9026-f5d3dee901ce,4c2e70c5-c785-47b6-bf54-d6f8e2263b15,bcae4342-d29a-4958-8d80-463ca084a4b3,
{0,
{0,
{0,0,961f1aa0-9c85-4fd3-b49a-c081a737f64a},"ааАвтомобили",
{1,"ru","Автомобили"},"Автомобили"}
},2,1,
"

Не поможете по старой памяти?
Ответили: (22)
# Ответить
22. bambr1975 02.05.2012 17:51
(21) Kaperang - с церемониями Вы явно переборщили
\{\d,[\d]+,\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\},""\S+?"",\n?\{\d+(,[^,]*,""([^""]*(("""")?[^""]*("""")?)*[^""]*)"")*\}
Срабатывает на сложные многоязычные синонимы с множественными кавычками
Искать Match.SubMatches(1) (если синоним многоязычный - нужен доп. цикл для разбора Match.SubMaches(0) - иначе в результат попадет последний найденный - но обычно язык один - этого достаточно для нахождения)
# Ответить
23. Kaperang 03.05.2012 15:45
Спасибо, помогло!
Правда выскочил забавный баг: параллельно изменились тексты интерфейсов - везде проставился префикс.
Причем, файлик, где хранится сама структура интерфейса, вроде как не затрагивается. Правится только "файл заголовка".
Теоретически названия пунктов меню должны были взяться из этого файлика, т.е. без префиксов. Ан нет, в меню "ааНоменклатура", "ааКонтрагенты" и т.д.
В итоге, подправил через "Групповой поиск и замену".
# Ответить
24. p_kuzmichev 05.09.2013 15:57
Супер!!! Вот только конфигуратор не видит изменения, внесенные в парсере. Т.е. стандартный механизм сравнения конфигураций, не видит различий в конфах, хотя я их внес в парсере, и, если открыть обьект, они действительно есть. Мало того, можно даже не включая возможности редактирования конфигурации, внести в нее изменения.
# Ответить
25. p_kuzmichev 05.09.2013 15:58
Супер!!! Вот только конфигуратор не видит изменения, внесенные в парсере. Т.е. стандартный механизм сравнения конфигураций, не видит различий в конфах, хотя я их внес в парсере, и, если открыть обьект, они действительно есть. Мало того, можно даже не включая возможности редактирования конфигурации, внести в нее изменения.
Ответили: (26) (27)
# Ответить
26. bambr1975 05.09.2013 20:32
(25) p_kuzmichev, если вы загрузите полученную конфигурацию в пустую базу - изменения там будут. У Вас изменения не отобразились, потому что Вы просто накатили полученную конфигурацию на такую же, с теми же идентификаторами версий объектов. А таблица versions у меня не меняется... Поэтому при сравнении (а сравниваются версии объектов, а не их внутреннее представление) ничего не показывает. Парсировщик - не хирургический инструмент. Это скорее, просто инструкция к внутреннему представлению файлов 1С.
Ответили: (27)
# Ответить
27. Madj 31.10.2013 10:59
(26) bambr1975, можно ли каким-то образом изменять таблицу versions, чтобы видеть внесенные изменения?
(25) p_kuzmichev, можно загрузить конфигурацию после упаковки в пустую базу, затем воспользоваться "Выгрузить конфигурацию в файлы". И опять же в пустую "Загрузить конфигурацию из файлов" - это покажет изменения, но загрузка таким образом может добавлять свои изменения, например, в ролях. Изменения модей объектов и модулей формы показывает корректно.
Ответили: (28)
# Ответить
28. bambr1975 31.10.2013 11:15
>можно ли каким-то образом изменять таблицу versions, чтобы видеть внесенные изменения?
(27) Madj, поправочка - не таблицу versions, а внутренний файл versions (ну, с кем не бывает).
Можно, но у меня такой задачи не стояло. Подобным способом вносить изменения в конфигурацию я не рекомендую (об этом уже говорилось). Потому что действительно, как вы и сказали - для этого есть стандартные средства. Правда не подо все задачи они подходят. Но меня, конечно, очень радует, что вам стандартных средств достаточно.
# Ответить
29. Bac3 (файл скачал) 11.04.2015 23:31
Большое спасибо!
Нашел ошибку в своей конфигурации. Исправил

Была ошибка "нарушена целостность структуры конфигурации".
Оказалось что не хватало файла для объекта метаданных перечисления.
Распаковал рабочую базу и взял оттуда скопировал в эту.
Упаковал обратно и все норм стало!
:)
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл