gifts2017

Анализ конфигураций

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

Конфигурация «Анализ конфигурации» предназначена для поддержки разработки и тестирования конфигураций на платформе 1С:Предприятие 8.
Возможности программы:
1. Расширенный синтаксический контроль модулей.
2. Сравнение версий одной конфигурации.
3. Анализ программного кода

Конфигурация «Анализ конфигурации» (далее АК) предназначена для поддержки разработки и тестирования конфигураций на платформе 1С:Предприятие 8.

Функциональные возможности АК:

  1. Расширенный синтаксический контроль модулей, в т.ч. предоставляет следующую информацию:
    • Обращения из программного кода к несуществующим объектам метаданных.
    • Вызовы процедур и функций общих модулей с некорректным составом параметров.
  2. Сравнение версий одной конфигурации – "новой" и "старой".
    • Предоставляет следующую информацию об изменениях в общих модулях:
      • Перемещения экспортных процедур и функций между общими модулями.
      • Список процедур и функций, которые были удалены или добавлены в "новой" версии по сравнению со "старой".
      • Список измененных функций и процедур, в т.ч., отдельно список "критичных" изменений - изменения в списке параметров, изменение признака Экспорт.
    • Возможность сравнения списка ошибок между двумя версиями
  3. Анализ программного кода, в т.ч. предоставляет следующую информацию:
    • Построение call-графов для любого модуля конфигурации.
    • Поиск неиспользуемых экспортных процедур и функций общих модулей.
    • Просмотр всех обращений к процедурам и функциям общих модулей с выводом всех передаваемых параметров в таблице.
    • Анализ подсистем.
Более подробное описание можно посмотреть на сайте программы.

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

Наименование Файл Версия Размер
ak_1.0.1.14.zip 1035
.zip 780,14Kb
11.11.10
1035
.zip 780,14Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Козий (sergey301) 11.11.10 09:22
Вот это полезный софт! Гораздо полезный, чем 1С:Автоматизированная проверка конфигураций
2. Айк Давидян (Ike) 11.11.10 09:31
Конфа действительно внушает, аналогов нет! Всем качать!
sergey301; allexF; +2 Ответить
3. Александр Овсянников (_LEV_) 11.11.10 09:33
Жирный плюс!
sergey301; allexF; syncmas; +3 Ответить
4. Роман Мусий (ph_1984) 11.11.10 09:44
Автору респект за труд, очень полезная конфигурация.
5. Антон Степанов (Stepa86) 11.11.10 09:58
Было бы шикарно, если б сбор данных о конфе (http://www.stal76.ru/ak/load.html) был автоматизирован, как в "Автоматизированная проверка конфигураций" от 1С.

0. Папка для выгрузки хранится на метаданных (справочник Конфа, где есть путь, Логин, Пароль, папка для выгрузки файлов и еще че нить)
1. Запуск обработки "Выгрузка информации о конфигурации 8.1" (или 8.2) через передачу параметра /Execute
2. Выгрузка модулей тож через параметр, вот так например:

Процедура ВыгрузитьМодули(Конфигурация) Экспорт
	
	// очищаем каталог выгрузки
	ОчиститьКаталог(Конфигурация.КаталогОбмена);
	
	// Получаем сведения
	СтрокаЗапуска = КаталогПрограммы() + "1cv8.exe DESIGNER /F"""
	              + Конфигурация.КаталогКонфигурации + """ /N"""
	              + Конфигурация.Пользователь + """ /P""" + Конфигурация.Пароль
	              + """ /DumpConfigFiles """ + Конфигурация.КаталогОбмена
	              + """ -Module";
	
	ЗапуститьПриложение(СтрокаЗапуска,, Истина);
	
КонецПроцедуры // ВыгрузитьМодули()
...Показать Скрыть


3. Выгрузка cf - тож через параметр и передать этот файл консольному ReadCfg.exe


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

artbear; allexF; +2 Ответить 2
6. Влад Кацманевич (cool.clo) 11.11.10 10:16
как сказал бы мистер Бернс - excellent!!!+++
7. Алексей Ф (allexF) 11.11.10 10:33
Конфигурация очень хорошая. Вообще не понятно почему 1С сама такую не делает или не предоставляет такие сервисы средствами конфигуратора.

По большому счету автоматизированная проверка от 1С не смотрится на этом фоне совсем никак. Ребята из 1С в своей автоматизированной проверке умеют разве что проверять заголовки полей на соотвествие стандартов от которых мало что зависит. А эта конфигурация помогает искать именно ошибки в коде, которые могут вызвать проблемы с работой.

Совет ребятам из 1С ознакомиться с данной конфигурацийе и сделать соотвествующие выводы для себя.
cool.yju; sergey301; +2 Ответить 1
8. Михаил (K_Mixa) 11.11.10 10:39
9. Вадим Кац (ya.di-di2011) 11.11.10 11:01
10. Алексей Шабалин (blik) 11.11.10 12:54
ошибка в "ВыгрузкаИнформацииОКонфигурации_81.epf "при выгрузке "ПодпискаНаСобытие" массив Источник.Типы - пустой, хотя в источнике подписки стоит "ПерерасчетНаборЗаписей"

{ВнешняяОбработка.ВыгрузкаИнформацииОКонфигурации(256)}: Индекс находится за границами массива
Возврат ПолучитьПараметрыПриЗаписиИлиПередЗаписью(Источник.Типы()[0], Ложь);

Выгрузку производил из нетиповой ЗУП 8.1 2.5.25.4
11. Яков Коган (Yashazz) 11.11.10 13:20
Да, толковая и полезная вещь. Графы особенно впечатлили. Сразу хочется ещё много всяких плюшек, но и в таком виде - отлично.
12. Эстер Коган (e.kogan) 11.11.10 13:33
Огромный плюс. Просто огроменный. Такой объём работы...
Будет время - обязательно покопаюсь в графах )
13. VVV (V_V_V) 11.11.10 13:45
Я наверное извращенец, но у меня в общих модулях имеется модуль под оригинальным названием ОбщийМодуль. :D Так вот, при выгрузке конфы (самописная 8.2) для анализа ругается:
{ВнешняяОбработка.ВыгрузкаИнформацииОКонфигурации.МодульОбъекта(83)}: Поле объекта недоступно для записи (ОбщийМодуль)
Для Каждого ОбщийМодуль Из Метаданные.ОбщиеМодули Цикл

Поменял в "Для Каждого ОбщийМодуль" на ОбщийМодульКонф (соответственно в самом цикле тоже) - заработало.
14. Александр Степанов (stal76) 11.11.10 13:48
(10) Мне не удается воспроизвести ошибку. Какую версию платформы используете? И что показывает отладчик если просмотреть значение Источник.Типы?

(11) Список плюшек можно выслать мне на email, посмотрю, может пересекается с моими )))
15. Александр Степанов (stal76) 11.11.10 13:50
(5) Были планы автоматизировать загрузку, но это не решается так просто как вы написали. Например, если конфигурация подключена к хранилищу, то указанный код не будет работать. Также может потребоваться перед проверкой, обновить конфигурацию из хранилища ....
16. Марк (webdiktor) 11.11.10 14:06
Спасибо автору! Один помучался - другим лафа.
17. Алексей Шабалин (blik) 11.11.10 14:06
(14) Платформа 8.1.15.14. Источник.Типы - пустой. Есть подписка на событие, в качестве источника указан ПерерасчетНаборЗаписей, если указываю в качестве источника документ, то ошибка не возникает.
18. Александр Степанов (stal76) 11.11.10 14:22
(17) Попробуйте исправленной версией обработки.
(13) Изменил имя переменной.
Прикрепленные файлы:
ВыгрузкаИнформацииОКонфигурации_81.epf
19. Антон Степанов (Stepa86) 11.11.10 14:26
(15) в случае подключения к хранилищу 1Ска откроет окно подключения к хранилищу. Вроде можно подключатся и даже обновлятся из хранилища с помощью скрипта с вызовом 1Ски с различными параметрами, но у меня как то руки не дошли до конца разобраться...

Лучше иметь хотя бы такой полуавтоматический сборщик данных для избранных случаев, чем каждый раз по инструкции ручками делать
20. Антон Степанов (Stepa86) 11.11.10 14:30
+(19) как вариант просить на вход cf конфы (или путь хранить в константе или на справочнике) , этот cf грузить в спец. конфу, из этой конфы все данные вытягивать по алгоритму (5) и дальше запускать уже анализ
21. Александр Рытов (Арчибальд) 11.11.10 14:48
От закоренелого семерочника с признательностью...
22. Артур Аюханов (artbear) 11.11.10 15:39
Хорошая работа проделана :) +1
23. влад владыч (cool.gjg) 11.11.10 16:50
24. влад владыч (cool.gjg) 11.11.10 16:50
(23) то есть в ТОП-ку...автор гений!!!
Sintson; Арчибальд; +2 Ответить
25. Максим Полянский (yandextesting) 12.11.10 00:38
26. Александр Синцов (Sintson) 12.11.10 00:38
Автор - я в восхищении! Поставил, протестил, очень понравилось!!!
27. Сергей Старых (tormozit) 12.11.10 08:26
Солидный труд. Однако получение данных из конфигурации все же нужно и можно автоматизировать.
PowerBoy; Stepa86; artbear; +3 Ответить 1
28. Борис Скворцов (gaglo) 12.11.10 11:01
Очень большой и жирный плюс.
Жутко хотелось бы увидеть этот алмаз в виде ограненного бриллианта; по-моему, не хватает всего-то (;-[) добавленной в комплект документации, соответствующей текущей версии, а то пришлось странички на сайте программы тырить и сохранять себе локально.
29. Александр Степанов (stal76) 12.11.10 11:27
(27) Я полностью согласен с тем, что нужна автоматическая загрузка данных из проверяемой конфигурации и мне не меньше чем вам лень нажимать много кнопок. Для себя, я пока сделал bat файл, который выполняет большую часть работы по нажиманию кнопок. Для создания такого файла можно воспользоваться замечательной обработкой: http://infostart.ru/public/16006/
Есть определенные мысли по развитию функционала автоматической загрузки, например, нужно каждую ночь выполнять: обновление конфигурации из хранилища, загрузку данных в АК, формирование некоего отчета, который будет отправляться по почте.
На данный момент я хочу привести в нормальный вид еще одну из своих старых разработок и опубликовать ее. После этого можно будет заняться и автоматизацией загрузки. Если конечно будет время ....
30. Александр Степанов (stal76) 12.11.10 11:30
(28) Я планировал сделать, чтобы по нажатию на кнопку справки открывалась соответствующая страничка на сайте. Успел пока сделать в форме настройки программы, постараюсь сделать аналогично и во всех остальных формах.
31. Anatolii Karasev (KapasMordorov) 12.11.10 11:30
(7)
Похоже, автор и работал в 1Се.
В смысле в ЗАО.
32. Serj (Serj1C) 12.11.10 12:29
Классная вещь!

На заметку:
На почти типовом ЗУПе (2.5.27.6) дает ошибку:
Ошибка при обработке файла "....Обработка.ОбновлениеКонфигурации.Макет.ДопФайлОбновленияКонфигурации.Макет.txt"
В строке 29 непредусмотренный символ как разделитель: '{'

в самом файле лежит текст ява-скрипта типа:
...
function format(str)
{
...
...Показать Скрыть

+ ошибка из (10), но файл выгрузки не обновлял, так пока первая версия и стоит
33. Александр Степанов (stal76) 12.11.10 12:33
(32) А зачем же вы макеты то выгружаете? Нужно же только модули конфигурации. )))
Ошибку указанную в (10) исправил в (18).
34. Сергей Старых (tormozit) 12.11.10 13:48
(31) Это мы узнаем, если он покажет нам грамматику)
35. Валерий Агеев (awa) 12.11.10 14:48
(0) Великолепная разработка!
Анализ конфигураций выдал мне ошибку "Не обнаружена функция общего модуля" на строке
... = ИсторияИзменений.Количество()

Оказалось, что у меня есть общий модуль ИсторияИзменений, а в одном из документов есть табличная часть ИсторияИзменений. То есть реальная проблема не в отсутствии метода в общем модуле, а в одинаковых именах разных объектов.
Ради интереса создал в тестовой базе табличную часть "Справочники" - 1С не выдала ошибку!
Поэтому очень хотелось бы иметь проверку, что нет совпадений имен разных объектов контекста, таких, как:
- свойства глобального контекста;
- общие модули;
- табличные части объекта;
- реквизиты объекта;
- реквизиты формы;
- переменные модуля.
Такое совпадение имен объектов - источник трудноуловимых глюков.

И еще один момент - в моей конфигурации оказалось несколько закрытых общих модулей. Проверяет ли Анализ конфигураций обращения к таким модулям?
36. Александр Степанов (stal76) 12.11.10 15:02
(35) В описании вида ошибок я указывал на такую возможную причину ложного срабатывания. Пока остается только отметить эту ошибку как исключение ... )))
С закрытыми общими модулями не проверял, но по идее, если текст общего модуля не выгрузился в файл, то АК будет воспринимать этот общий модуль как пустой и все обращения к нему как ошибку. Также, при загрузке должно вывестись сообщение, что отсутствует текст с модулем.
37. Александр Степанов (stal76) 12.11.10 15:26
(34) "А пулемет я вам ребята не дам".
Если речь идет о формальном описании языка 1С, то его у меня нет, хотел бы на него сам посмотреть. Писал по принципу - что вижу, то и разбираю. Прогонял парсер на многих конфигурациях, увидел много всего интересного. Особо понравилась ловушка для пишущих парсеры:
Перейти ~КонецПроцедуры;
~КонецПроцедуры:
38. Сергей Старых (tormozit) 12.11.10 15:30
(37) Оригинальная грамматика и парсер на ее основе - ничем не "подкосишь". Дальше по убыванию надежности идет неоригинальная грамматика и парсер на ее основе. А потом идут все парсеры без грамматики. Да, грамматика - формальное описание языка.
39. Валерий Агеев (awa) 12.11.10 15:33
(36) Да, при загрузке модулей было сообщение, что текст модуля отсутствует. Как пожелание на будущее развитие - так как есть обработка cf-файла, то принципиально возможно вытащить имена и количество параметров процедур и функций закрытого модуля из потока image (скомпилированного образа текста модуля).
40. Андрей Ильин (ailin) 13.11.10 09:25
Конфигурация понравилась.
Где можно узнать подробнее о свойствах и функциях парсера "stparser_1.0.0.7.dll" ?
41. Александр Степанов (stal76) 13.11.10 09:29
(40) В общем модуле РаботаСПарсером. Я постарался получше его закомментировать.
42. Андрей Ильин (ailin) 13.11.10 09:46
(41) Да, я видел.
Хотелось бы описание каждой функции для оценки возможности использования компоненты,а в общем модуле только вызовы функций.
Кстати, в конфгурации используюутся все методы компоненты?
43. Александр Степанов (stal76) 13.11.10 10:01
(42) В общем модуле используются все функции компонент, при этом, в самой конфигурации не используется последняя функция общего модуля ХэшСтроки, которая вычисляет md5 от произвольной строки (была добавлена по просьбе знакомых). А так, компонента разрабатывалась именно под нужды АК и ничего большего пока не умеет.
44. Андрей Ильин (ailin) 13.11.10 10:11
(43) Спасибо, понятно. Буду смотреть детально.
А есть планы по развитию компоненты и какие?
45. Gambler (Gambler) 13.11.10 20:13
Отличная конфигурация!

При загрузке текстов модулей УПП Для Украины типовой возникло несколько ошибок:

Выдается ошибка "непредусмотренный символ как разделитель" при наличии в имени переменной украинской буквы (є)

Использование є в идентификаторе - возможно ошибка разработчиков типовой, хотя в платформе такое проходит.

Выдается ошибка "непредусмотренный символ как разделитель" на строках

СписокВыбора = Новый СписокЗначений();
СписокВыбора.Добавить(";101", "(101) Сплата суми податкового зобов'язання (штрафної санкції) або податкового боргу*");
СписокВыбора.Добавить(";106", "(106) Сплата пені*");
СписокВыбора.Добавить(";109", "(109) Оплата податкового векселя*");
СписокВыбора.Добавить(";116", "(116) Сплата процентів за користування податковим кредитом*");
СписокВыбора.Добавить(";121", "(121) Сплата адміністративного штрафу*");
СписокВыбора.Добавить(";107", "(107) Повернення зайво сплачених коштів");
СписокВыбора.Добавить(";108", "(108) Перерахування коштів з одного бюджетного рахунку на інший");
СписокВыбора.Добавить(";110", "(110) Відшкодування ПДВ на рахунок платника");
СписокВыбора.Добавить(";111", "(111) Відшкодування процентів за бюджетною заборгованістю");
СписокВыбора.Добавить(";117", "(117) Погашення податкового боргу за рахунок продажу активів підприємства-банкрута");
СписокВыбора.Добавить(";118", "(118) Погашення податкового боргу за рахунок продажу активів платника, що перебувають в податковій заставі");
СписокВыбора.Добавить(";119", "(119) Погашення податкового боргу за рахунок продажу активів платника за рішенням суду");
СписокВыбора.Добавить(";120", "(120) Погашення податкового боргу за рахунок ПДВ, відшкодованого на рахунок кредитора");
СписокВыбора.Добавить(";122", "(122) Стягнення податкового боргу за податковим зобов'язанням (штрафною санкцією)");
СписокВыбора.Добавить(";123", "(123) Стягнення пені");
СписокВыбора.Добавить(";124", "(124) Стягнення несплачених процентів за користування податковим кредитом");

Элемент.СписокВыбора = СписокВыбора;

При замене украинских букв на русские ошибка не исчезает.

Выдается ошибка "непредусмотренный символ как разделитель" на строках

//Фінансовий результат (прибуток +, збиток -) від
//Реализации

При замене украинских букв на русские ошибка не исчезает.
46. Александр Степанов (stal76) 13.11.10 20:31
Пришлите мне пожалуйста файл с модулем на котором "спотыкается" парсер по почте: mail@stal76.ru.
47. Максим Полянский (yandextesting) 14.11.10 20:47
Мысль: вместо Graphviz или помимо его использовать для отображения связей MindManager
48. Александр Степанов (stal76) 16.11.10 11:22
(47) Насколько я понял, MindManager - коммерческий продукт.
С ходу не нашел как его можно использовать для построения графов, если подскажите - буду благодарен.
49. Сергей Данилов (pencroff) 17.11.10 17:51
При анализе интерфейсов с помощью утилиты ReadCFg.exe. Возникает ошибка (на рисунке).



Что посоветуете?
50. Александр Степанов (stal76) 17.11.10 21:13
(49) Проверяемая конфигурация 8.1 или 8.2?
Также вышлите мне, пожалуйста, ответ по email - я вышлю вам версию программы с выводом отладочной информации.
51. TheDeadStone TheDeadStone (TheDeadStone) 18.11.10 12:55
Как я раньше жил без этого??
52. George Bell (GeorgeB) 19.11.10 14:32
На первом же шаге настройки получаю ошибку:

Ошибка подключения внешней компоненты из файла C:\App\1C_Tools\Analysis\stparser_1.0.0.7.dll:
{ОбщийМодуль.РаботаСПарсером(23)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту):
Ошибка при загрузке внешней компоненты.

Windows 7 Max 32 bit, 1С 8.1.15.14
Что делать? :oops:
53. Александр Степанов (stal76) 19.11.10 14:56
(52) Вы можете установить программу Dependency Walker (http://www.dependencywalker.com/) и прислать мне по почте скриншот с результатом ее проверки dll-ки?
54. bsi bsi (bsi) 19.11.10 22:31
55. Александр Степанов (stal76) 19.11.10 22:41
(54) В ссылку по ошибке добавил в конец скобку. Вот правильная ссылка: http://www.dependencywalker.com/
Указанная ошибка в 52 возникала из-за настроек User Account Control.
56. Jem (jem) 23.11.10 10:57
При загрузке данных в базу останавливается на ошибке:
"Ошибка при обработке файла C:\Dats\...\Обработка.Настройки.Форма.Форма.Форма.Модуль.txt
В строке 1351 непредусмотренный символ как разделитель "|" (124) "
С этой строки начинается запрос. Синтаксических ошибок в нем нету.

Это ошибка или как это обойти?
57. Александр Степанов (stal76) 23.11.10 14:45
(56) Пришлите мне, пожалуйста, на email часть текста модуля содержащего указанную строку.
58. Василий (васисубатор) 25.11.10 17:06
при загрузке данных в 8.2 валится по нехватке памяти
59. Алена Алешина (марокко) 26.11.10 05:07
При загрузке cf в 1С:Предприятие 8.2 (8.2.12.92) ругается , грузить не хочет , говорит о несовместимости
60. Александр Степанов (stal76) 26.11.10 08:30
61. Vasiliy Novosad (Fr1end) 01.12.10 12:54
При загрузке модулей ругается на украинские буквы как на неправильный разделитель, ну и ошибка как в (56)
62. svcoder (svcoder) 18.01.11 18:28
Предлагаю при заполнении регистра сведений Вызовы кроме ресурса НомерСтроки также заполнять имя процедуры/функции, которой принадлежит данная строка. Это необходимо для построения косвенных зависимостей. Например необходимо установить какие процедуры/функции общего модуля необходимы для правильной работы документа Документ1, при этом:
Документ1 вызывает процедуру ОбщийМодуль1.Процедура1
ОбщийМодуль1.Процедура1 вызывает процедуру ОбщийМодуль2.Процедура2
Соответственно в отчете ОбращенияПодсистемы необходимо выводить, что Документ1 зависит от ОбщийМодуль2.Процедура2
63. Александр Степанов (stal76) 20.01.11 11:54
(62) Я тоже думал о добавлении такого же ресурса.
В отчете "Анализ модуля" требуется эта информация, но она вычисляется в самом отчете.
64. svcoder (svcoder) 20.01.11 15:16
Еще можно сделать граф интерактивным, например с помощью DGML и просмотром его в VS 2010. По крайней мере открытие текста модуля и сделать возможность выводить продолжить дерево за пределы текущего модуля. Например при первом формировании показывается только текущий модуль и вызовы из него в другие модули и вызовы его из других модулей. А затем уже можно перейти в другой модуль.
65. Александр Степанов (stal76) 20.01.11 15:32
(64) А есть свободные просмотрщики DGML?
66. svcoder (svcoder) 20.01.11 16:12
Я думаю, что в VS 2010 есть отдельная компонента которая просматривает DGML, которая может использоваться в других приложениях
67. Сергей (Che) Коцюра (CheBurator) 20.01.11 20:44
Просто шедеврально! +100!!!
68. svcoder (svcoder) 24.01.11 01:55
Все-таки нужна возможность использования внешней программы для сравнения текстов модулей. Я например использую Araxis Merge. Он например умеет показывать отличия внутри строки.
Кроме того, стандартное сравнение игнорирует регистр символов, а хэш вычисляется с учетом его, поэтому в результате хэши разные, а сравнение выводит что файлы равны
69. svcoder (svcoder) 25.01.11 00:02
1. При загрузке больших конфигураций (УПП со средним количеством доработок) приложение начинает валиться с ошибкой "Недостаточно памяти". Нужно записывать наборы по несколько модулей, а загрузку выполнять внутри одной транзакции.
2. Если хэш модуля не поменялся - можно его не грузить и не обновлять информацию в связанных с ним регистрах сведений. Очень помогает при обновлении рабочей конфигурации
70. svcoder (svcoder) 25.01.11 21:05
Еще необходим контроль прав доступа на конкретную версию конфигурации в зависимости от пользователя. То есть один пользователь загружает типовые, другие пользователи грузят свои рабочие. Соответственно пользователь может модифицировать только свои версии конфигурации
71. Александр Степанов (stal76) 25.01.11 22:42
(68) С внешней программой мысль хорошая, тем более что программа умеет сравнивать три версии. В описании я не написал, но если видели, есть возможность сравнения модулей, функций и процедур между различными версиями.
Кроме указанных проблем при сравнении, есть еще проблема с "кривыми" разделителями строк. Также, высказывалось пожелание, при сравнении функций и процедур, учитывать впереди стоящий комментарий.
(69) 1. Ошибку "Недостаточно памяти" можно попытаться обойти, установив параметр "/3Gb" в boot.ini. Постараюсь сделать возможность переключения способа загрузки.
2. Мысль хорошая, только возникает сложность при удалении старых версий.
(70) Неожиданное для меня пожелание. Никто из знакомых его не высказывал, но согласен, что это может быть нужным.
72. svcoder (svcoder) 25.01.11 23:15
(71) Я реализовал для себя решение проблемы с памятью и обновлением. Если интересно могу скинуть .cf.
73. Александр Степанов (stal76) 25.01.11 23:31
(72) На mail@stal76.ru, я посмотрю. Спасибо.
Если под обновлением понимается загрузка, то по этому поводу я высказал свое мнение в 29-м комментарии.
74. Леонид Лесин (Leoway) 16.02.11 10:00
При анализе интерфейсов с помощью утилиты ReadCFg.exe. Возникает ошибка (на рисунке).
75. Александр Степанов (stal76) 16.02.11 10:07
(74) База, из которой выгружаете cf sql-ная?
76. Леонид Лесин (Leoway) 16.02.11 10:26
77. Александр Степанов (stal76) 16.02.11 10:36
(76) Попробуйте пожалуйста выполнить следующее:
1. Сделать пустую файловую базу и загрузить в нее этот cf.
2. Из созданной файловой базы выгрузите cf и запустите на нем ReadCFg.exe.
Какой будет результат?
Старый cf пока сохраните где-нибудь, он может понадобиться еще.
Указанную ошибку постараюсь исправить в ближайшее время.
78. Леонид Лесин (Leoway) 16.02.11 10:40
(77) спасибо, буду пробовать
79. Александр Степанов (stal76) 16.02.11 12:31
(78) Скиньте мне пожалуйста пустое письмо на mail@stal76.ru
80. Kom-off (Kom-off) 28.04.11 13:23
Хотел посмотреть эту разработку (собственно, и не отказался от такой мысли до сих пор), но... Загрузил с сайта программы последнюю версию. Загрузить данные стандартной конфигурации УПП не смог - возникает ошибка "Недостаточно памяти". Платформа 8.2.13.205, загружал конфигурацию УПП 1.3.9.1 (но дело не в этом). Посмотрел. В обработке "ЗагрузкаДанныхОКонфигурации" в качестве реквизитов используются наборы записей регистров сведений, в которые при загрузке данных о конфигурации пишется и пишется, пишется и пишется, пока по недостатку памяти не отвалится. Решить эту проблему можно промежуточными записями этих наборов регистров и их очисткой для дальнейшего заполнения. Память, занимаемая приложением 1С при этом не растет.
1. В конце функции ОбработатьМодуль() обработки ЗагрузкаДанныхОКонфигурации перед выходом следующий код (ну, 1000 можно там заменить на желаемое):

масНаборовЗаписей = ПолучитьСписокНаборовЗаписей();
Для Каждого НаборЗаписей Из масНаборовЗаписей Цикл
Если НаборЗаписей.Количество() > 1000 Тогда
НаборЗаписей.Записать(Ложь);
НаборЗаписей.Очистить();
КонецЕсли;
КонецЦикла;

2. В процедуре ЗаписатьНаборыЗаписейРегистров() обработки ЗагрузкаДанныхОКонфигурации заменить код:
НаборЗаписей.Записать();
на код:
НаборЗаписей.Записать(Ложь);

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

масНаборовЗаписей = ПолучитьСписокНаборовЗаписей();
Для Каждого НаборЗаписей Из масНаборовЗаписей Цикл
НаборЗаписей.Отбор.Версия.Установить(ЗагружаемаяВерсия, Истина);
НаборЗаписей.Очистить();
НаборЗаписей.Записать(Истина);
КонецЦикла;

После этих изменений загрузка данных о конфигурации УПП у меня прошла успешно, при этом память клиента 1С не была больше 300 мегабайт.
81. Александр Степанов (stal76) 28.04.11 13:50
(80) Есть в планах исправить эту проблему.
82. desty (lustin) 07.06.11 12:35
(0) Вопрос автору:

А нет в планах реализовать расчет Цикломатическую сложность модуля
83. Александр Степанов (stal76) 07.06.11 12:46
(82) Показатель интересный, но не знаю, насколько он будет объективно отражать сложность связей, например, в общем модуле.
Спасибо за предложение.
84. desty (lustin) 07.06.11 14:46
(83) я сейчас пытаюсь проанализировать способ расчета величины покрытия авто-тестами конфигурации, цикломатическая сложность как показатель может для этого применяться.
Вспомнил про Вашу конфигурацию - решил обратить Ваше внимание.
85. Александр Степанов (stal76) 07.06.11 15:12
(84) На счет использования в тестировании особо не думал.
Была мысль сделать отчет, который мог быть полезен для тестирования внесенных изменений в конфигурацию. Например, внесли изменения в несколько функций общих модулей. Отчет должен был бы показать функции и процедуры всех модулей конфигурации которых коснулось это изменение, т.е. то, что нужно протестировать.
86. Владимир Лышенко (vovche) 22.09.11 01:53
я ваш фанат! :) последний пару месяцев хотел такой инструмент
87. Евгений Билык (evgeniy.bilyk) 26.09.11 13:37
автору спасибо, полезная весчь
88. Федор Дударев (dudf) 08.11.11 15:10
У меня при выборе пути к парсеру выдает ошибку: "Ошибка подключения внешней компоненты к файлу D:\ak\... : Общий модуль, работа с парсером(23): ошибка при вызове метода контекста(ЗагрузитьВнешнююКомпоненту)".
89. Александр Степанов (stal76) 08.11.11 16:09
(88) Какая используется операционная система, есть ли права администратора? Если используется Windows 7, то скорее всего нужно настроить UAC (User Account Control).
90. Федор Дударев (dudf) 08.11.11 16:34
win7, права администратора присутствуют.
91. Александр Степанов (stal76) 08.11.11 16:42
(90) Попробуйте на время отключить UAC и проверить, будет ли загружаться компонента.
92. Федор Дударев (dudf) 08.11.11 16:44
Да, спасибо огромное! Оказывает еще нужно было перезагрузиться(хотя он не оповещал, что необходим ребут для принятия изменений).
93. Александр Степанов (stal76) 08.11.11 16:45
(92) Только теперь неплохо бы его включить назад и настроить соответствующим образом.
94. Сергей Васильев (himm) 11.11.11 14:53
Хотелось бы попробовать вашу конфигурацию.

Все делал по инструкции с Вашего сайта(http://www.stal76.ru/ak).Только у меня при Выгрузке данных из проверяемой конфигурации появляется ошибка

{ОбщийМодуль.ОбщегоНазначения(17)}: Поле объекта не обнаружено (Параметры)
Запрос.Параметры.Вставить(Элемент.Ключ, Элемент.Значение);

Пробовал я на 1С:Предприятие 8.1, учебная версия (8.1.9.57)
на 3-х разных конфигурациях
на 14-ой и 15-ой версии Вашей конфигурации



И ещё при использование ReadCFg, выводится следующее сообщение, например
Прикрепленные файлы:
95. Сергей Васильев (himm) 11.11.11 14:56
И так во всех случаях при использование ReadCFg
Создано файлов:0

Это влияет на что нибудь?
96. Сергей Васильев (himm) 11.11.11 14:59
И так во всех случаях при использование ReadCFg
Имел ввиду то, что все время , независимо от конфигурации и других параметров

Создано файлов 0
97. Александр Степанов (stal76) 11.11.11 15:02
(94) Опишите пожалуйста порядок ваших действий при которых происходит ошибка. В какой момент?
(95) Сообщение программы ReadCFG говорит о том, что в вашей конфигурации нет ни одного общего модуля.
98. Сергей Васильев (himm) 11.11.11 15:08
Ошибка происходит при загрузке данных о конфигурации
в Обработке "Загрузка данных о конфигурации".
99. Сергей Васильев (himm) 11.11.11 15:08
(97) Загружал конфигурацию в которой есть общие модули.

ReadCFG сообщает следующее
Прикрепленные файлы: