gifts2017

Обработка «Поиск не существующих объектов метаданных в текстах модулей конфигурации»

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

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

Обработка «Поиск не существующих  объектов метаданных в текстах модулей конфигурации»

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

Может использоваться для проверки модулей:

·После  переноса объектов метаданных из типовых конфигураций в собственную.

· После изменения имени или удаления объектов метаданных из конфигураций

· При подготовке конфигурации к сертификации

 

Порядок  работы:

· В режиме конфигуратор  1С: Предприятие 8.1 выполняем  выгрузку текстов модулей объектов  метаданных в текстовые файлы («Конфигурация»-> «Выгрузить файлы конфигурации») (рис 1)

· Открыть обработку в режиме Предприятие (Файл-> Открыть) 

· В форме обработки выбрать:

o   Каталог модулей (где располагаются выгруженные модули)

o   Вид объекта (что будем  анализировать)

· Нажимаем кнопку «Найти объекты»

После завершения анализа данных будет заполнена  табличная часть «Список объектов».

В Таблице красным цвет будут выделены не существующие объекты метаданных.

Синим цветом не используемые в текстах модулей объекты метаданных.

 

При помощи обработки можно обнаружить, что в общем модуле «Типовые отчеты» типовой конфигурации «Бухгалтерия предприятие, версия  1.6.14.4» присутствуют ссылки на несуществующие объекты:

Справочник «Периоды»

Справочник «Категории объектов»

Справочник «Произвольные отчеты»

 Типовая функция "Проверка конфигурации" не делает то, что умеет обработка.  

"Проверка конфигурации" не найдет не существующий объект конфигурации , который описан например в текст запроса.

Пример:

СоединениеПоСчетам = "                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних("+ТекстУсловия+") КАК

Обработка найдет, что регистр сведений "СчетаБухгалтерскогоУчетаОС" не существует в конфигурации

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

Наименование Файл Версия Размер Кол. Скачив.
ПоискНеСуществующихОбъектов
.1247754673 25,97Kb
25.09.09
252
.1247754673 25,97Kb 252 Скачать

См. также

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

Комментарии

1. Евгений (wirg) 16.07.09 19:17
ну вообще параноя, если не существует, значит у когото руки чесались и голова не думала перед удалением объекта конфигурации и обработка тут не нужна, только топор поможет
2. Ярослав Волохов (YVolohov) 16.07.09 19:22
(1) Не совсем, у 1С есть аналогичная (только более расширенная) разработка, она тестирует конфигурацию на готовность к получению 1С:Совместимо. Среди прочих критериев анализируется и этот.
3. Алексей Коробов (WiseSnake) 16.07.09 22:10
Господин "хороший"
Я не понял, почему удалилась обработка с моими комментариями? и создалась новая??? Я что каждое Ваше выкладывание должен комментировать?

Я Вас предупреждаю! Не надо создавать повторы!!!

Еще раз задаю вопрос: Чем не устраивает "Проверка конфигурации"???

Минус за повтор....
4. Андрей Ильин (ailin) 17.07.09 09:43
Ответ на комментарий (3).
Перед написанием обработки я не знал функции "Проверка конфигурации" (хотя есть сертификат спеца по платформе 1С 8.0 :-)). После Вашего вопроса я бегло посмотрел возможности функции "Проверка конфигурации" и ошибочно понял, что моя обработка повторяет функции конфигурации и поэтому решил удалить обработку. После детального анализа пришел к выводу, что типовая функция не делает то, что умет обработка.
А в точнее:
«Проверка конфигурации» не сможет найти не существующего объекта конфигурации, например в текст запроса:
СоединениеПоСчетам = " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних("+ТекстУсловия+") КАК
А обработка найдет, что регистра сведений «СчетаБухгалтерскогоУчетаОС» не существует в конфигурации как объекта метаданных.

И еще я пришел к выводу, что с сайта можно очень легко удалить свою программу. Хотелось бы, что бы удаленные программы хранились в заблокированном виде (например, были помечены на удаление как в 1С) и при повторном подтверждении удаления удалялись с сайта.

Ответ на комментарий (2)
Если Вы имеете в виду конфигурацию «Автоматизированная проверка конфигураций» или обработку «00165_2 Утилита для тестирования конфигураций 8_1 с погрузкой 8.1.epf», то принцип действия этих утили по поиску ошибок прост - это открытие форм объектов конфигураций и отображение ошибок возникающих при открытии.
Этими утилитами пользовался в первую очередь.
На мой взгляд, при тестировании конфигурации можно использовать утилиты(функции) в следующем порядке:
1. «Синтаксический контроль модулей»
2. «Проверка конфигурации»
3. «Поиск не существующих объектов.epf»
4. «00165_2 Утилита для тестирования конфигураций 8_1 с погрузкой 8.1.epf»
5. Конфигурация «Автоматизированная проверка конфигураций»
5. Анатолий (hame1e00n) 17.07.09 12:37
Очень нужная обработка, плюс. А можно сделать так, чтобы не приходилось выгружать модули в каталог? Или это обусловлено только тем, что модули доступны из конфигуратора, а обработка может работать только в предприятии?
6. Андрей Ильин (ailin) 17.07.09 12:54
(5) Спасибо за оценку работы.
Хотелось бы реализовать эту возможность, но 1С не позволяет получить доступ к текстам модулей форм и объектов в режиме "Предприятие".


См. описание свойства "МодульОбъекта" для объектов метаданных

ОбъектМетаданных: Справочник (MetadataObject: Catalog)
МодульОбъекта (ObjectModule)
Использование:
Только чтение.
Описание:
Тип: Неопределено.
Примечание:
Данное свойство всегда имеет значение Неопределено, т.к. во встроенном языке не предусмотрена работа со значением данного свойства.
При запуске конфигуратора в пакетном режиме из командной строки существует возможность выгрузить тексты модулей конфигурации. Для этого следует использовать параметр запуска /DumpConfigFiles с ключом –Module.
susorov; hame1e00n; +2 Ответить
7. Алексей Коробов (WiseSnake) 17.07.09 14:18
(4) Спасибо за развернутый ответ. Протестируем Вашу обработочку, кажется есть рациональное зерно. Минус убрал...
8. Алексей Константинов (alexk-is) 17.07.09 15:56
(0) Ошибка в верстке материала. Проверьте теги. Материал не виден под ie6 :(
9. Андрей Ильин (ailin) 17.07.09 16:08
(8) Что надо сделать, что бы стало видно под ie6. Я добавлял материал в Firefox-e
10. Андрей Ильин (ailin) 17.07.09 16:11
Разобрался, теперь видно.
11. Алексей Константинов (alexk-is) 17.07.09 16:14
12. Makc Saipl (Saipl) 20.07.09 11:51
Спасибо как раз переписываю ЗУП под себя, поможет убрать мусор !
13. Денис (DionisioSPb) 22.07.09 16:41
Полезная вещь.
Есть одно пожелание: не учитывать вхождение искомых строк в комментарии.
Например такую строку нужно игнорировать, если объект МД ВоинскийУчет отсутствует:
// РегистрСведений.ВоинскийУчет.СрезПоследних(&ДатаАктуальности) КАК ВоинскийУчет
14. Андрей Ильин (ailin) 22.07.09 18:59
Спасибо за оценку работы. В ближайшее время подготовлю обновление
15. Денис (DionisioSPb) 23.07.09 10:13
Кстати, было бы неплохо исключать из ошибок методы планов обмена, их-то точно нет в метаданных.
Например ПланыОбмена.ПрочитатьИзменения, ПланыОбмена.УдалитьРегистрациюИзменений и т.д.
16. Андрей Ильин (ailin) 23.07.09 11:51
(13), (15) пожелания реализовал, обработку обновил
17. Алексей Шошин (alexsh76) 19.10.09 14:58
Понравилось. Только вопрос, находит ли обработка ссылки в модулях например на РегистрНакопления.ТоварыОрганизаций когда они представлены в виде: Движения.ТоварыОрганизаций.Загрузить()?
Показалось что нет, но очень бы хотелось.
18. Андрей Ильин (ailin) 19.10.09 18:24
(17) Да, не ищет. В ближайшее время сделаю.
19. Евгений (jk3) 09.11.09 16:18
По-поводу ручной выгрузки текстов модулей:
посмотри обработку ПроверкаКонфигурацииДляПереводаНа82.epf с диска ИТС, там модули выгружаются автоматически через вызов 1cv8.exe с параметром DumpConfigFiles
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа