gifts2017

Метаданные ++ (для 1С 8.2 обычное приложение)

Опубликовал Альтаир (Altair777) в раздел Программирование - Инструментарий

Данная обработка позволяет в режиме предприятия смотреть существующие в данной конфигурации объекты метаданных.
Сильно расширенное и основательное навороченное продолжение предыдущей версии.

 

 

 

 

Сделано по мотивам Метаданные +

Основное назначение данной обработки - возможность в режиме Предприятия просматривать реквизиты и свойства объектов метаданных

 

Поддерживаются следующие типы объектов:

  • - Общие объекты;
  • - Константы;
  • - Справочники;
  • - Документы;
  • - Журналы документов;
  • - Перечисления;
  • - Отчеты;
  • - Обработки;
  • - Планы видов характеристик;
  • - Планы видов расчета;
  • - Регистры сведений;
  • - Регистры накопления;
  • - Регистры бухгалтерии;
  • - Регистры расчета;
  • - Планы счетов;
  • - Бизнес-процессы;
  • - Задачи;
  • - Внешние источники данных.

При клике по строке левой табличной части происходит попытка открытия форм списков всех стандартные типов объектов и некоторых Общих: План обмена, Общая форма, Общий макет, Общая картинка, или переключение Интерфейса.

 

В новой версии обработки используются две табличные части. Поэтому рекомендуется использовать автооткрытие и автосохранение настроек, иначе при каждом открытии формы будет происходить заполнение табличных частей.

Данный подход замедляет открытие/закрытие обработки, но зато предоставляет новые возможности. Такие, например, как просмотр всех реквизитов и свойств объектов метаданных, сравнение двух объектов, стандартные отборы на табличные части.

 

Почему появилась эта разработка?

Иногда возникает необходимость просмотреть реквизиты какого-то объекта метаданных, не заходя в конфигуратор.

Особенно такая возможность востребована при наличии 2 (или больше Wink )  мониторов. Очень удобно открыть конфигуратор на одном мониторе и, не переключаясь между его окнами, посмотреть реквизиты и их типы значений на соседнем мониторе.

Войти в 2 конфигуратора одной базы нельзя, зато можно открыть много-много предприятий и в одном из них запустить данную обработку. Вот как это выглядит у меня:

 


 

При выборе типов объектов показывается количество объектов данного типа.

 

 

В отличие от предыдущей версии, Общие картинки выводятся с предпросмотром:

 

 

Можно попытаться открыть любую форму и любой текстовый или табличный макет.

Для этого, при выборе соответствующей формы/макета на правой панеле, нужно использовать две специальные кнопочки:

 

 

Небольшое замечание: при выводе стандартных реквизитов пропускаются некоторые совсем уж стандартные Smile.

Например, для регистров "Активность" и "НомерСтроки".

 

Для просмотра значений "больших" реквизитов (например, графы журнала, движения документа или ввод на основании) очень удобна кнопка "Просмотр значения" на правой табличной части или двойной клик по значению. При ее нажатии открывается специальная форма:

Обратите внимание на флажок "Просмотр значения списком". Когда он установлен, строка значения выводится без "запятых" и каждое значение на новой строке.

 

 В новой версии реализован режим одновременного показа всех реквизитов по всем объектам:

.

 

Т.к. теперь все данные помещены в 2 табличные части, можно настроить гибкие отборы по Объектам и их Реквизитам.

 

 

Уникальный режим сравнения двух объектов метаданных: 

При выборе не общего типа на левой командной панели становится доступна кнопка  "Сравнить":

.

 

После ее нажатия открывается форма сравнения двух объектов. Выбирать для сравнения можно только однотипные объекты - например, справочник и справочник, документ и документ, и т.д. Можно регулировать режим отображения реквизитов и свойств этих объектов - все или только отличающиеся.

.

 

Ну, и напоследок, еще один бонус:

В меню формы Действия есть кнопочка "Показать все картинки". При ее нажатие в табличный документ выводятся все Общие картинки конфигурации:

 

Можно выбирать количество колонок при выводе в табличный документ. По умолчанию - 5. 

 

 Данная обработка тестировалась в следующих конфигурациях:

  • - Бухгалтерский учет для Украины;
  • - УТП для Украины;
  • - УПП для Украины; 
  • - УПП для России;
  • - Библиотека стандартных подсистем Версия 2.1.3.51.

Но и в других конфигурациях проблем быть не должно.

 

Совет №1. Объекты в левой таблице можно отсортировать по порядку наименования или по тому порядку, в которой они располагаются в конфигурации. Используйте кнопку "Порядок базы".

Совет №2. В меню "Действия" и на командной панели формы есть пункт "Стандартные настройки". При его выборе устанавливаются "стандартные" отборы, видимость колонок и одинаковая ширина панелей с табличными частями. Кстати, между ними есть разделитель для регулировки ширины.

Совет №3. Все поля в табличных частях доступны для показа и отбора. Жестких отборов нет, так что пробуйте, экспериментируйте.

 

P.S. вот подобная разработка Просмотр значений реквизитов справочников и документов

 

 

 

Новая версия от 20.05.2014

 

Добавлен режим отображения в виде дерева объектов

Дерево

 

Добавлены:

  • окно настроек
  • показ полных имен в типах реквизитах
  • имена таблиц базы данных

Настройки

 

Показ преодпределенных элементов:

 

Преодопределенные

 

  

 Форма сравнения переписана под табличную часть, что дает возможность дополнительных отборов

Форма сравненияв

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Метаданные2Плюс.epf
.epf 67,68Kb
20.05.14
288
.epf 67,68Kb 288 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Михаил Ражиков (tango) 20.05.13 10:44
2. Альтаир (Altair777) 20.05.13 11:07
Первый, кто найдет ошибку, получит вознаграждение в 5 с/м ;)
3. Епрст (Ёпрст) 20.05.13 12:48
Не пригодится
как то снегопатом обхожусь пока.
Ну разве что сравнение объектов можно поглядеть
4. Альтаир (Altair777) 20.05.13 13:16
(3) Ёпрст, сравнение объектов - это круто :)
Вот был такой случай - знакомый 1С-ник жалуется, не могу понять. Создал новый документ - он проводится, а движения по нему нет.
Документ не отличается от почти такого же. Начиная разбираться и, оказывается, свойство "Запись движений при проведении" было "Записывать выбранные".
Он их визуально сравнивал, но это свойство доступно только по правой кнопке.
5. Andrey Smirnov (dusha0020) 20.05.13 16:23
А вот эта мне нравится еще больше предыдущей. И не забывайте, что человек выложил публикацию и отвечает всем в свой день рождения! Еще раз поздравляю в оффтоп. Счастья, здоровья, любви и побольше новых интересных разработок!
Altair777; ula1c; +2 Ответить 1
6. Альтаир (Altair777) 20.05.13 16:36
(5) dusha0020, спасибо, Андрей
Кстати, тебя тоже с днюхой! Всего-всего тебе и побольше :)

7. Юрий Осипов (yuraos) 21.05.13 05:57
(2) Altair777,
Задумка отличная, но чего то не хватает в интерфейсе
...
Ах да!
В конфигураторе все как-то в виде дерева представлено!
8. Александр Крынецкий (echo77) 21.05.13 07:45
Да, вид в виде дерева - более привычнее.
А можно настроить размер картинок в отчете по общим картинкам? (Чтобы больше картинок умещалось на экране)
9. Алексей Роза (DoctorRoza) 21.05.13 08:47
Вещь из разряда "must have для программиста". Когда все-таки приходится писать запросы в конфигураторе и нужно посмотреть значения перечислений и др. предопределенных элементов, то норм. Соглашусь с мнениями коллег, нужно отображение в виде дерева, как в левой таблице так и в правой. Добавить также вариант для управляемого интерфейса. Для программиста поле представление объекта нужно отчасти, в основном Имя, так что какой-нибудь флажок или настройка отображения. Добавить поиск объекта метаданных/реквизита по представлению, нужная штука, для УПП однозначно или в конфе 1С-Совместимо. По нажатию кнопки открыть страничку разработки открывается страница Метаданные+, а не актуальная. А в целом, постоянно такая обработка нужна.
10. Владимир (vladir) 21.05.13 09:45
Отличная обработка. Правда посмотреть как работает не могу, попытка скачать ограничилась лишь снятием $m и записью что файл скачан, сам файл получить не удалось...
11. Альтаир (Altair777) 21.05.13 10:15
(7) yuraos,
В конфигураторе все как-то в виде дерева представлено!

Речь идет о левой табличной части? Тут есть плюс и минус - дерево привычнее, но ТЧ, имхо, удобнее.
Полностью заменять не буду, сделаю оба варианта по переключателю.
Спасибо за предложение.
12. DrZombi DrZombi (DrZombi) 21.05.13 10:15
Для обычного приложения не интресно :(
Автор, лучше давай для Управляемого :)
И лучше не на форуме :)
13. Альтаир (Altair777) 21.05.13 10:17
(8) echo77, приму к сведению.
Но не через размер, а через количество колонок. Так будет нормально?
14. DrZombi DrZombi (DrZombi) 21.05.13 10:18
Посмотрел, ну... да, работа проделана, но лючше бы ты такое реализовал на управляемом приложении :)
Цены бы тогда не было бы ;)
15. Альтаир (Altair777) 21.05.13 10:19
(10) vladir, попробуйте еще раз.
За повторное скачивания одного и того же файла в течение одного дня с/м не должно сниматься.
Если что - пишите в личку
16. Альтаир (Altair777) 21.05.13 10:29
(9) DoctorRoza, спасибо за такой обстоятельный комментарий.
Но пока что успел только поменять ссылку на страничку разработки :)
Поиск тоже нужен, но я обхожусь отборами (ведь все поля обеих табличных частей доступны для видимости и отборов).

А управляемые формы... У нас на них только "Документооборот", как вспомню так и вздрогну
Так что, это дело не ближайшего будующего.
17. Альтаир (Altair777) 21.05.13 10:30
(14) DrZombi, если сделаю на УП, то цену я определю ;)
18. Владимир (vladir) 21.05.13 10:46
(15) Altair777, спасибо. Со второго раз действительно получилось скачать. Буду сегодня посмотреть :)))
19. Альтаир (Altair777) 21.05.13 10:55
(18) vladir, не за что :)
Надеюсь, повторно с/м не сняли
20. Владимир (vladir) 21.05.13 11:15
(19) Altair777, на этот раз не сняли. А вот месяца полтора назад была такая же ситуация, потратил на эксперименты по скачиванию 4 или 5 с/м. Мелочь, конечно, но напрягло :( Обработка, ВЕСЧЬ! Бывает надо посмотреть, что есть что в реквизитах объекта.
21. Альтаир (Altair777) 21.05.13 11:22
(8) echo77, обновил с выбором количества колонок при печати всех картинок
22. Альтаир (Altair777) 21.05.13 11:34
(20) vladir,
> Бывает надо посмотреть, что есть что в реквизитах объекта
Вот именно! :)

Вот пример:
КонтрагентДляОтбора = ДопМодуль.ВернутьКонтрагентаПоИНН("", КодПоЕДРПОУДляПоиска);

Это разработчик знает (или может догадаться по имени функции), что вернется ссылка на справочник Контрагенты.
А встроенные подсказки и Снегопаты об этом знают? Смогут ли они дать контекстную подсказку по реквизитам?
23. Юрий Осипов (yuraos) 21.05.13 17:10
(19) Altair777,
у меня подобная фигня на работе через IE наблюдается.
У него что-то нарулено с безопасностью.
После теста на "интеллект" IE блокирует загрузку файла.
Говоришь ему - да, мол хочу загрузить.
IE после этого торгуется малость и снова показывает
страничку с тестом "интеллекта" без загрузки файла.
24. Юрий Осипов (yuraos) 21.05.13 17:14
(23)
ЗЫ
Самое интересное, что прихожу домой
и через Operu скачиваю файл,
который на работе неудалось скачать через IE
и при этом s-мани повторно не снимаются
(снимаются 1 раз на работе при первой попытке).
25. Александр Крынецкий (echo77) 22.05.13 07:29
(2) Нашел!

{Обработка.Метаданные2Плюс.Форма.Форма.Форма(504,35)}: Переменная не определена (ОбщегоНазначения)
ВремТабл.Колонки.Добавить("Имя", <<?>>ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(50));


Не работает ни черта в моей самописной конфигурации
:-)

Создал такую же экспортную процедуру в модуле обработки. Пока все пашет
26. Альтаир (Altair777) 22.05.13 10:19
(25) echo77,
Да-с, не заметил-с...

Те, кто уже скачал:

1) в модуле формы замените строку 504
ВремТабл.Колонки.Добавить("Имя", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(50));
на
ВремТабл.Колонки.Добавить("Имя", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(50));

2) в модуле обработки добавьте код:
Функция ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт
Возврат Новый
ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(ДлинаСтроки, ДопустимаяДлина.Переменная));
КонецФункции
// ПолучитьОписаниеТиповСтроки()
27. Альтаир (Altair777) 22.05.13 10:23
(25) echo77,
Обновил файл, 5 с/м перевел ;)
Прикрепленные файлы:
28. Саша Безымяный (help1Ckr) 22.05.13 11:21
(3) Ёпрст, Да. снегопат делает ненужными многие обработки. Это мегавесч. Но за неимением оного очень даже хорошая обработка
Altair777; +1 Ответить
29. Алекс Ю (AlexO) 22.05.13 11:29
Ну вот это уже более понятно.
(17) Altair777,
если сделаю на УП

Зачем оно нужно? :)
30. Алекс Ю (AlexO) 22.05.13 11:30
(9) DoctorRoza,
Вещь из разряда "must have для программиста".

У вас весь ИС - "must have" :)
31. Алекс Ю (AlexO) 22.05.13 11:34
(22) Altair777,
Вот пример:
КонтрагентДляОтбора = ДопМодуль.ВернутьКонтрагентаПоИНН("", КодПоЕДРПОУДляПоиска);
Это разработчик знает (или может догадаться по имени функции), что вернется ссылка на справочник Контрагенты.

А что, обработка скажет, в данную вариативную переменную возвратится именно ссылка на Контрагента? Она что - оценит функцию ВернутьКонтрагентаПоИНН на предмет типа возврата?
32. Альтаир (Altair777) 22.05.13 11:57
(29) AlexO, я вот сейчас попробовал запустить В Документообороте (на УП) - фигня получается:)
33. Альтаир (Altair777) 22.05.13 11:58
(30) AlexO,
У вас весь ИС - "must have" :)

кроме Вашей разработки? ;)
34. Альтаир (Altair777) 22.05.13 12:00
(31) AlexO, читайте внимательно последнюю строку из приведенной Вами цитаты...
Это разработчик знает (или может догадаться по имени функции), что вернется ссылка на справочник Контрагенты.
Читайте и думайте.
35. Виталий Черненко (SeiOkami) 22.05.13 12:15
А у меня такая ошибка при открытии:

{ВнешняяОбработка.Метаданные2Плюс.МодульОбъекта(1724,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповСтроки)
Функция <<?>>ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт


Конфа сложная самописная)
36. Альтаир (Altair777) 22.05.13 12:22
(35) SeiOkami, это просто несчастный случай :)
Как я понимаю, такая функция уже есть в общем глобальном модуле?
Попробуйте удалить эту функцию из модуля обработки.

Сейчас переименовал все экспортные процедуры и функции и обновил файл обработки.
Можете еще раз скачать - за повторное скачивание в течение дня денег не снимает.
37. Алекс Ю (AlexO) 22.05.13 13:06
(34) Altair777,
Читайте и думайте.

"Разработчик - знает"
"Читайте и думайте"
"Обработка - ?"
Достройте, пожалуйста, логическую цепочку :)
38. Альтаир (Altair777) 22.05.13 13:18
(37) AlexO,
Разработчик знает
Разработчик открывает МД++
Разработчик находит Справочники - Контрагенты
Разработчик видит реквизиты
Разработчик копипастит идентификаторы в свой код
39. Алекс Ю (AlexO) 22.05.13 13:52
(38) Altair777,
Разработчик находит Справочники - Контрагенты
Разработчик видит реквизиты

Все равно непонятно - как связаны реквизиты (объекта видимо, надо полагать) и возвращаемое функцией значение.
Обработка делает анализ функции?
40. Альтаир (Altair777) 22.05.13 14:12
(39) AlexO,
Обработка не делает анализ функции.
Анализ функции делает программист. Или уже не делает, если знает.
И программист находит с помощью обработки реквизиты нужного объекта.

Неужели до сих пор непонятно?
41. Алекс Ю (AlexO) 22.05.13 14:22
(40) Altair777,
И программист находит с помощью обработки реквизиты нужного объекта.

Странный программист.. сертифицированный 1С, небось? :)
А если там объект получают "через 31 функцию", или просто его же там и создают? Или запросом?
42. Альтаир (Altair777) 22.05.13 14:38
(41) AlexO, я так понимаю что сейчас уже пошел чистый флуд и жажда наживы?
Любой нормальный программист получает результат функции осознанно, а не просто так.
И он знает что она вернет.
43. Алекс Ю (AlexO) 22.05.13 14:40
(42) Altair777,
И он знает что она вернет.

Так зачем тогда обработка, если и так наперед известно, что она вернет? :)
Мы с чего начали?
"А что, обработка скажет, в данную вариативную переменную возвратится именно ссылка на Контрагента?"

А пришли - к
Любой нормальный программист получает результат функции осознанно, а не просто так.
И он знает что она вернет.

Змей укусил себя за хвост. А где же обработка? :)
44. Альтаир (Altair777) 22.05.13 14:43
(43) AlexO, обработка позволяет показать реквизиты возвращаемого объекта.
45. Алекс Ю (AlexO) 22.05.13 14:50
(44) Altair777,
обработка позволяет показать реквизиты возвращаемого объекта.

А как она видит этот возвращаемый объект, если запущена только обработка? Вы научились перехватывать процессы 1С?
46. Альтаир (Altair777) 22.05.13 14:54
(45) AlexO,
еще раз прочитайте (38)

P.S. Большая просьба - для Ваших словесных упражнений найдите другую публикацию.
47. Алекс Ю (AlexO) 22.05.13 16:39
(46) Altair777,
Большая просьба -

Такая же большая просьба - четко отвечать :)
Ведь если обработка ничего такого не видит, а возвращаемое значение должен "знать" программист, который по отладке получает возвращаемое значение и потом смотрит - "а какие же это реквизиты у этого типа?", так что мешает ему их посмотреть в дереве метаданных?
Вот этот тонкий момент как-то все время обходится стороной :)
48. Альтаир (Altair777) 22.05.13 16:50
(47) AlexO,
> так что мешает ему их посмотреть в дереве метаданных?

Ничто не мешает. Кроме того, что для этого нужен конфигуратор.
49. Алекс Ю (AlexO) 22.05.13 16:51
(48) Altair777,
Кроме того, что для этого нужен конфигуратор.

А как иначе тогда узнаешь тип возвращаемого значения, если:
- не помнишь/не знал
- конфигуратора нет
- данная обработка этого не делает
?
50. Альтаир (Altair777) 22.05.13 17:00
(49) AlexO,

Прочитайте (22)
Это разработчик знает (или может догадаться по имени функции), что вернется ссылка на справочник Контрагенты.
А встроенные подсказки и Снегопаты об этом знают? Смогут ли они дать контекстную подсказку по реквизитам?

После этого Вы начали безосновательный флуд в комментариях.
51. Алекс Ю (AlexO) 22.05.13 17:08
(50) Altair777,
А встроенные подсказки и Снегопаты об этом знают? Смогут ли они дать контекстную подсказку по реквизитам?

Это вот был вопрос к Снегопату с подсказкой, или реплика в защиту обработки?
Но за сравнение объектов спасибо, это можно глянуть :)
52. Альтаир (Altair777) 22.05.13 17:12
(51) AlexO, это было напоминание - с чего Вы начали флуд
53. Альтаир (Altair777) 31.05.13 10:18
Новая версия с деревом объектов почти готова. Не хватает только картинки с коллекцией иконок объектов.

Вот, что у меня есть:


Может, кто поделится? Или подскажет, где скачать готовую.
54. Алексей Опарихин (Al-X) 06.06.13 10:38
Хорошая вещь !!! Именно посмотреть реквизиты не заходя в конфу - мне и не хватало !!!
Спасибо !
55. Андрей Окипний (DMSDeveloper) 06.06.13 13:42
Ай спасибо, мил человек!
Как вовремя мне попалось твое творение. Нет нужды теперь самому мастырить подобное.
56. Аркадий Кучер (Abadonna) 13.08.13 09:35
(0) А слабо еще вот это добавить? ;)
Прикрепленные файлы:
57. Альтаир (Altair777) 13.08.13 10:25
(56) Abadonna,
Ага! А потом ты еще имена полей попросишь? :)
58. Альтаир (Altair777) 13.08.13 10:25
59. Альтаир (Altair777) 13.08.13 10:26
(54) Al-X, для этого и писалось :)
60. Аркадий Кучер (Abadonna) 13.08.13 10:30
(57)
А потом ты еще имена полей попросишь? :)

Я-то ничего не попрошу. Чужой кокаин не нюхаю, свой есть - качественный, безглючный, на модули "ОбщегоНазначения" не ссылается :)))
61. Аркадий Кучер (Abadonna) 13.08.13 10:34
(57) Altair777, а если серьезно, то для SQL-баз имена таблиц очень даже не лишние!
К примеру, DELETE FROM ... а from=???, надо знать!
62. Михаил Ражиков (tango) 13.08.13 10:35
(6) Altair777, фига се мониторчики
63. Альтаир (Altair777) 13.08.13 10:50
(60) Abadonna,
А тоже кокаин не нюхаю. А как насчет водочки? ;)

А по сабжу - уже готова версия с деревом объектов. Но... см (53)
В нее и вставлю.
64. Альтаир (Altair777) 13.08.13 10:51
(62) tango,
ага! :) У меня 2 SyncMaster S23B300
65. Иван Иванов (Famza) 27.08.13 08:36
66. Альтаир (Altair777) 27.08.13 12:29
(65) Famza,

Спасибо большое!
Все никак не закончу новую версию - не насобираk картинок для дерева.
Напишите в личку e-mail - вышлю свежую версию, потестируете :)
67. Иван Иванов (Famza) 28.08.13 10:15
(66) Altair777, спасибо, получил.
Но тут возникло 2 момента, так сказать.
Момент 1 - наугад открывал Обработки.АвтоОбменДанными в ЗУП 2.5.70.1:
Ошибка открытия объекта.
{ВнешняяОбработка.Метаданные2Плюс.МодульОбъекта(292)}: Ошибка при вызове метода контекста (ПолучитьФорму): Недопустимое значение параметра (параметр номер '1').
Может какую проверку добавить, чтоб ошибки не вываливало?
Момент 2 - просьба:
Можно Нужно ли добавить в условие отбора ссылку на элемент?
68. Альтаир (Altair777) 28.08.13 17:43
(67) Famza,

п.1 - Специально не делал такую проверку, чтобы было нагляднее в чем проблемы

п.2 - сорри, не очень понял о чем речь?
Если речь идет об объектах/полях - то все отборы в вашей власти :)
Прикрепленные файлы:
69. Альтаир (Altair777) 28.08.13 17:48
(67) Famza,
+ 68
Прикрепленные файлы:
70. Иван Иванов (Famza) 29.08.13 09:23
(68), (69) Altair777, речь не об объектах/полях, а конкретных ссылках. Например, справочник сотрудников выбрали, а в обработке в отбор включить ссылку на элемент "Петров", чтобы открыть не форму списка, а форму объекта, в которой все реквизиты есть - иначе открывается форма создания - пустая и ненаглядная. Может это и не улучшение, а просто убрать лишний клик мышкой.
71. Альтаир (Altair777) 30.08.13 17:43
(70) Famza,
Данная обработка предназначена для показа структуры базы данных, а открытие форм - это дополнительная фича.
Я не могу придумать логической связи между метаданными справочника "Сотрудники" и конкретным элементом "Петров".
Если уж Вам хочется держать Петрова всегда под рукой :) .... Каталог внутренних и внешних объектов (для 1С8)
72. Иван Иванов (Famza) 02.09.13 09:15
(71) Altair777, спасибо. Это была просто хотелка - добавить поле дополнительного отбора. А про обработку я писал (65)
73. Семён Павлюков (7OH) 09.05.14 13:28
Хотелось бы видеть в представление реквизита полное имя.
Например: "Документ.РКО" или "Перечисление.ВидыОпераций", а не просто "РКО" или "ВидыОпераций".
Отделу аналитики довольно сложно по укороченному имени понять, что именно лежит в реквизите.
Сделаете ?
74. Семён Павлюков (7OH) 09.05.14 14:38
Мой вариант доработки
Функция Алт_ВернутьТипРеквизита(Реквизит) Экспорт
	// типов может быть несколько и надо определить каждый
	Вернуть = Новый СписокЗначений;
	Для каждого РеквизитТип Из Реквизит.Тип.Типы() Цикл
		ТипРеквизитаМД = РеквизитТип;//Реквизит.Тип;
		Попытка
			Если Тип(ТипРеквизитаМД) = ТипСтрока Тогда
				Тип = Строка(ТипРеквизитаМД) + " (" + ТипРеквизитаМД.КвалификаторыСтроки.Длина + ") [" + ТипРеквизитаМД.КвалификаторыСтроки.ДопустимаяДлина + "]";
			ИначеЕсли Тип(ТипРеквизитаМД) = ТипЧисло Тогда
				Тип = Строка(ТипРеквизитаМД) + " (" + ТипРеквизитаМД.КвалификаторыЧисла.Разрядность + "." + ТипРеквизитаМД.КвалификаторыЧисла.РазрядностьДробнойЧасти
				+ ") [" + ТипРеквизитаМД.КвалификаторыЧисла.ДопустимыйЗнак + "]";
			ИначеЕсли Тип(ТипРеквизитаМД) = ТипДата Тогда
				//Тип = Строка(ТипРеквизитаМД) + " [" + ТипРеквизитаМД.КвалификаторыДаты.ЧастиДаты+ "]";
				Тип = ТипРеквизитаМД.КвалификаторыДаты.ЧастиДаты;
			ИначеЕсли Тип(ТипРеквизитаМД) = ТипБулево Тогда
				Тип = ТипРеквизитаМД;
			КонецЕсли; 
		Исключение
			Тип = "";
		КонецПопытки;
		
		Если Не Тип="" Тогда
			Вернуть.Добавить(Тип);
			Продолжить;
		КонецЕсли;
		Попытка
			ТипМетаданных = Метаданные.НайтиПоТипу(РеквизитТип);
			Если ТипМетаданных=Неопределено Тогда
				Вернуть.Добавить(ТипРеквизитаМД);
				Продолжить;
			КонецЕсли;
		Исключение
			Вернуть.Добавить(ТипРеквизитаМД);
			Продолжить;
		КонецПопытки;
		
		Если Метаданные.Документы.Содержит(ТипМетаданных) Тогда
			Вернуть.Добавить("Документ."+ТипМетаданных.Имя);
		ИначеЕсли Метаданные.Справочники.Содержит(ТипМетаданных) Тогда
			Вернуть.Добавить("Справочник."+ТипМетаданных.Имя);
		ИначеЕсли Метаданные.Перечисления.Содержит(ТипМетаданных) Тогда
			Вернуть.Добавить("Перечисление."+ТипМетаданных.Имя);
		ИначеЕсли Метаданные.ПланыСчетов.Содержит(ТипМетаданных) Тогда
			Вернуть.Добавить("ПланСчетов."+ТипМетаданных.Имя);
		ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(ТипМетаданных) Тогда
			Вернуть.Добавить("ПланВидовХарактеристик."+ТипМетаданных.Имя);
		КонецЕсли;
	КонецЦикла;

	ВернутьСтрока="";
	Для нн=1 по Вернуть.Количество() Цикл
		ВернутьСтрока=ВернутьСтрока+Вернуть[нн-1]+?(нн=Вернуть.Количество(), "", ", ");
	КонецЦикла;
	Возврат ВернутьСтрока;
КонецФункции
...Показать Скрыть
Прикрепленные файлы:
75. Альтаир (Altair777) 13.05.14 13:06
(73) 7OH, такая возможность уже есть
все никак не дойдут руки выложить новую версию :)
76. Альтаир (Altair777) 13.05.14 13:08
(74) 7OH,
вот мой вариант:

Функция Алт_ВернутьТипРеквизита(Реквизит) Экспорт
	
	Если ПолныеИменаВТипахЗначений Тогда
		
		ОписТипов = Реквизит.Тип;
		МасТипов = ОписТипов.Типы();
		i = 0;
		СтрокаТипов = "";
		Для Каждого Тип Из МасТипов Цикл
			НайдОбТип = Метаданные.НайтиПоТипу(Тип);
			Если НайдОбТип <> Неопределено Тогда
				//Тип объекта метаданных	
				СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + Метаданные.НайтиПоТипу(Тип).ПолноеИмя();	
			Иначе
				//Примитивный тип	
				Если Тип = Тип("Строка") Тогда
					ДлинаСтр = ОписТипов.КвалификаторыСтроки.Длина;
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Строка (" + (?(ДлинаСтр = 0, "Неограничено)", Формат(ДлинаСтр, "ЧГ=")+") ["+Строка(ОписТипов.КвалификаторыСтроки.ДопустимаяДлина)+"]")); 
				ИначеЕсли Тип = Тип("Число") Тогда
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Число ("+Строка(ОписТипов.КвалификаторыЧисла.Разрядность)+"."+Строка(ОписТипов.КвалификаторыЧисла.РазрядностьДробнойЧасти)+") [" + Строка(ОписТипов.КвалификаторыЧисла.ДопустимыйЗнак) + "]";  
				ИначеЕсли Тип = Тип("Дата") Тогда
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + ОписТипов.КвалификаторыДаты.ЧастиДаты;
				ИначеЕсли Тип = Тип("Булево") Тогда	  
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Булево";
				ИначеЕсли Тип = Тип("УникальныйИдентификатор") Тогда	  
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Уникальный идентификатор";
				ИначеЕсли Тип = Тип("ХранилищеЗначения") Тогда	  
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Хранилище значения";
				ИначеЕсли Тип = Тип("ДвоичныеДанные") Тогда	  
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Двоичные данные";
				ИначеЕсли Тип = Тип("ОписаниеТипов") Тогда	  
					СтрокаТипов = СтрокаТипов + ?(i = 0, "", ", ") + "Описание типов";
				КонецЕсли;	  
			КонецЕсли;
			i = i + 1;  
		КонецЦикла;
		Возврат СтрокаТипов;
	
	Иначе
		ТипРеквизитаМД = Реквизит.Тип;
		Попытка
			Если Тип(ТипРеквизитаМД) = ТипСтрока Тогда
				Тип = Строка(ТипРеквизитаМД) + " (" + ТипРеквизитаМД.КвалификаторыСтроки.Длина + ") [" + ТипРеквизитаМД.КвалификаторыСтроки.ДопустимаяДлина + "]";
			ИначеЕсли Тип(ТипРеквизитаМД) = ТипЧисло Тогда
				Тип = Строка(ТипРеквизитаМД) + " (" + ТипРеквизитаМД.КвалификаторыЧисла.Разрядность + "." + ТипРеквизитаМД.КвалификаторыЧисла.РазрядностьДробнойЧасти
					+ ") [" + ТипРеквизитаМД.КвалификаторыЧисла.ДопустимыйЗнак + "]";
			ИначеЕсли Тип(ТипРеквизитаМД) = ТипДата Тогда
				//Тип = Строка(ТипРеквизитаМД) + " [" + ТипРеквизитаМД.КвалификаторыДаты.ЧастиДаты+ "]";
				Тип = ТипРеквизитаМД.КвалификаторыДаты.ЧастиДаты;
			ИначеЕсли Тип(ТипРеквизитаМД) = ТипБулево Тогда
				Тип = ТипРеквизитаМД;
			КонецЕсли; 
			//Возврат Тип;
		Исключение
			//Сообщить(Реквизит);
			Тип = ТипРеквизитаМД;
		КонецПопытки;
		
		Возврат Тип;
	КонецЕсли; 
	
КонецФункции
...Показать Скрыть
77. Альтаир (Altair777) 20.05.14 13:10
(73) 7OH,
прошел ровно год, и я обновил разработку :)
78. Петр Лунегов (pvlunegov) 25.06.14 09:02
Цены бы не было разработке, если бы прикрутить в нее редактор форм как в конфигураторе (без возможности изменения)
Например, в форме есть реквизит, а как он называется в конфигураторе, я не знаю.
Причем таких реквизитов (название на форме не совпадает с названием в метаданных) великое множество.
Ваша разработка удобна для просмотра метаданных, но ради получения имени реквизита метаданных, используемого в форме - приходится лезть в конфигуратор.
79. Альтаир (Altair777) 25.06.14 11:40
(78) pvlunegov, спасибо за столь лестный отзыв. И отдельно - за пожелание.
Как мне кажется, кое-что сделать можно.
80. DrZombi DrZombi (DrZombi) 29.06.14 13:42
Реально титанический труд, но есть камень в твой огород, можешь написать тоже самое, но для Тонкого клиента :)
Все таки за ним будущее :_
81. Альтаир (Altair777) 30.06.14 15:27
(80) DrZombi, это был титанический труд, а переписывать для тонкого клиента - вдвойне :)
тем более, сначала хочется по максимуму наполнить функционал чтобы потом не делать двойные изменения
82. DrZombi DrZombi (DrZombi) 14.07.14 13:49
Вот я валенок, только сейчас заметил, что работа Понравилась!!!
Но как и раньше, такое бы и на тонком клиенте.
Да еще с мастером запросов :)
83. Альтаир (Altair777) 08.10.15 09:59
(82) DrZombi, почти дозрел чтобы сделать на УФ :)
84. Евгений (Berrimor) 31.03.16 04:56
100-ый плюсик в копилку :) Работа титаническая, но практический смысл (при условии использования снегопата) извлечь из разработки сложно, имхо
85. Олег Каратаев (Kyrales) 25.10.16 05:32
Ошибка при попытке открытия:
{ВнешняяОбработка.Метаданные2Плюс.МодульОбъекта(617)}: Значение не является значением объектного типа (Имя)
СтрокаДляСвертки.Что = СтрРекв[Реквизит].Имя;
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа