Метаданные ++ (для 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
283
.epf 67,68Kb 283 Скачать

См. также

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

5. dusha0020 (файл скачал) 20.05.2013 16:23
А вот эта мне нравится еще больше предыдущей. И не забывайте, что человек выложил публикацию и отвечает всем в свой день рождения! Еще раз поздравляю в оффтоп. Счастья, здоровья, любви и побольше новых интересных разработок!
Ответили: (6)
+ 2 [ Altair777; ula1c; ]
# Ответить
1. tango 20.05.2013 10:44
нормальный ход
+ 1 [ Altair777; ]
# Ответить
10. vladir (файл скачал) 21.05.2013 09:45
Отличная обработка. Правда посмотреть как работает не могу, попытка скачать ограничилась лишь снятием $m и записью что файл скачан, сам файл получить не удалось...
Ответили: (15)
+ 1 [ Altair777; ]
# Ответить

Комментарии

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

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

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

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

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

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

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


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

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

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

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

2) в модуле обработки добавьте код:
Функция ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт
Возврат Новый
ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(ДлинаСтроки, ДопустимаяДлина.Переменная));
КонецФункции
// ПолучитьОписаниеТиповСтроки()
# Ответить
27. Altair777 22.05.2013 10:23
(25) echo77,
Обновил файл, 5 с/м перевел ;)

Прикрепленные файлы:

ScreenShot 64.png
# Ответить
28. help1Ckr 22.05.2013 11:21
(3) Ёпрст, Да. снегопат делает ненужными многие обработки. Это мегавесч. Но за неимением оного очень даже хорошая обработка
+ 1 [ Altair777; ]
# Ответить
29. AlexO 22.05.2013 11:29
Ну вот это уже более понятно.
(17) Altair777,
если сделаю на УП

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Ничто не мешает. Кроме того, что для этого нужен конфигуратор.
Ответили: (49)
# Ответить
49. AlexO 22.05.2013 16:51
(48) Altair777,
Кроме того, что для этого нужен конфигуратор.

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

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

После этого Вы начали безосновательный флуд в комментариях.
Ответили: (51)
+ 1 [ Bukaska; ]
# Ответить
51. AlexO 22.05.2013 17:08
(50) Altair777,
А встроенные подсказки и Снегопаты об этом знают? Смогут ли они дать контекстную подсказку по реквизитам?

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

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


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

Прикрепленные файлы:

Таблица.png
# Ответить
57. Altair777 13.08.2013 10:25
(56) Abadonna,
Ага! А потом ты еще имена полей попросишь? :)
Ответили: (60) (61)
# Ответить
58. Altair777 13.08.2013 10:25
(55) DMSDeveloper,
очень рад!
# Ответить
59. Altair777 13.08.2013 10:26
(54) Al-X, для этого и писалось :)
# Ответить
60. Abadonna (файл скачал) 13.08.2013 10:30
(57)
А потом ты еще имена полей попросишь? :)

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

А по сабжу - уже готова версия с деревом объектов. Но... см (53)
В нее и вставлю.
# Ответить
64. Altair777 13.08.2013 10:51
(62) tango,
ага! :) У меня 2 SyncMaster S23B300
# Ответить
65. Famza (файл скачал) 27.08.2013 08:36
Зачет, однозначно
Ответили: (66) (72)
# Ответить
66. Altair777 27.08.2013 12:29
(65) Famza,

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

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

п.2 - сорри, не очень понял о чем речь?
Если речь идет об объектах/полях - то все отборы в вашей власти :)
Ответили: (70)

Прикрепленные файлы:

ScreenShot 74.png
# Ответить
69. Altair777 28.08.2013 17:48
(67) Famza,
+ 68
Ответили: (70)

Прикрепленные файлы:

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

	ВернутьСтрока="";
	Для нн=1 по Вернуть.Количество() Цикл
		ВернутьСтрока=ВернутьСтрока+Вернуть[нн-1]+?(нн=Вернуть.Количество(), "", ", ");
	КонецЦикла;
	Возврат ВернутьСтрока;
КонецФункции
...Показать Скрыть
Ответили: (76)

Прикрепленные файлы:

meta++.png
# Ответить
75. Altair777 13.05.2014 13:06
(73) 7OH, такая возможность уже есть
все никак не дойдут руки выложить новую версию :)
# Ответить
76. Altair777 13.05.2014 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.2014 13:10
(73) 7OH,
прошел ровно год, и я обновил разработку :)
# Ответить
78. pvlunegov (файл скачал) 25.06.2014 09:02
Цены бы не было разработке, если бы прикрутить в нее редактор форм как в конфигураторе (без возможности изменения)
Например, в форме есть реквизит, а как он называется в конфигураторе, я не знаю.
Причем таких реквизитов (название на форме не совпадает с названием в метаданных) великое множество.
Ваша разработка удобна для просмотра метаданных, но ради получения имени реквизита метаданных, используемого в форме - приходится лезть в конфигуратор.
Ответили: (79)
+ 1 [ Altair777; ]
# Ответить
79. Altair777 25.06.2014 11:40
(78) pvlunegov, спасибо за столь лестный отзыв. И отдельно - за пожелание.
Как мне кажется, кое-что сделать можно.
# Ответить
80. DrZombi 29.06.2014 13:42
Реально титанический труд, но есть камень в твой огород, можешь написать тоже самое, но для Тонкого клиента :)
Все таки за ним будущее :_
Ответили: (81)
# Ответить
81. Altair777 30.06.2014 15:27
(80) DrZombi, это был титанический труд, а переписывать для тонкого клиента - вдвойне :)
тем более, сначала хочется по максимуму наполнить функционал чтобы потом не делать двойные изменения
# Ответить
82. DrZombi 14.07.2014 13:49
Вот я валенок, только сейчас заметил, что работа Понравилась!!!
Но как и раньше, такое бы и на тонком клиенте.
Да еще с мастером запросов :)
Ответили: (83)
# Ответить
83. Altair777 08.10.2015 09:59
(82) DrZombi, почти дозрел чтобы сделать на УФ :)
# Ответить
84. Berrimor 31.03.2016 04:56
100-ый плюсик в копилку :) Работа титаническая, но практический смысл (при условии использования снегопата) извлечь из разработки сложно, имхо
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016