gifts2017

РедакторТЗ для восьмёрки (программирование, отладка)

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

Инструмент, предназначенный для отладки всяких навороченных алгоритмов, работающих с данными сложной структуры. Позволяет покопаться в этих самых данных, и понять почему не работает. При этом можно "погрузиться вглубь" данных до любого уровня вложенности.
Аналог Редактора ТЗ для семёрки (http://infostart.ru/public/15487/ )

В настоящий момент умеет показывать:
- Массив
- ФиксированныйМассив
- ComSafeArray
- Структура
- Соответствие
- ТаблицаЗначений
- ДеревоЗначений
- СписокЗначений
- СтрокаТаблицыЗначений
- СтрокаДереваЗначений
- ЭлементСпискаЗначений
- ТабличнаяЧасть
- РезультатЗапроса
- КоллекцияДвижений
- прочие коллекции
- КлючИЗначение
- элемент справочника
- документ

Кроме того добавлена связка с подсистемой ИнструментыРазработчика:
- вызов редактора реквизитов
- вызов исследователя объкетов
(см. меню Действия)

Использование.

Без добавления в конфигурацию:
ВнешниеОбработки.Создать("X:\Инструменты_v8\РедакторТЗ.epf").Редактор(тз);

Если модификация конфигурации допустима:

добавляем РедакторТЗ в обработки и в каком-нибудь глобальном модуле добавляем процедуру

Процедура РедакторТЗ(ТЗ, Заголовок = "", Модально = Ложь, ФормаВладелец = Ложь) Экспорт
    обр = Обработки.РедакторТЗ.Создать();
    обр.Редактор(ТЗ, Заголовок, Модально, ФормаВладелец);
КонецПроцедуры

 

[-] 07.02.2012: Не устанавлмвался заголовок окна

[-] 07.02.2012: Не открывался вложенный объект при выборе строки


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

Наименование Файл Версия Размер Кол. Скачив.
РедакторТЗ.epf
.epf 12,96Kb
07.02.12
88
.epf 12,96Kb 88 Скачать

См. также

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

Комментарии

1. Альберт Кадымов (sword444) 14.01.12 00:19
Обработка нужная. Как раз такая ситуация, что при переносе в виртуальной таблице засели не те цифры, хотя по регистрам бухгалтерии все идет. Добавил обработку во внешние обработки. Запускаю и пустая форма. В чем может быть проблема или я что-то не то делаю?
Использую БП 8.2 2.0.29.2
2. Алексей (ADirks) 16.01.12 07:42
(1) sword444, ну ты напиши, чего делаешь то
3. Альберт Кадымов (sword444) 16.01.12 21:47
Короче дело обстоит так. Был осуществлен перенос с Бух 7.7 на Бух 8.2. Правила были поправлены в нужном месте и добавлены новые виды документов которые нужны в новой базе. Все прошло гладко. Оборотно-сальдовая ведомость бьет в копеечку, т.е. по регистрам бухгалтерии все в идеале.
Не знаю как так могло произойти, но одна зараза осталась. При формировании выписке на 01.01.2012 года на начало дня формируется неверный остаток. Хотя еще раз повторюсь, по регистрам бухгалтерии все в идеале.
Залез в конфигуратор, решил посмотреть откуда отчет "Выписка" берет данные на начало и конец дня. Выяснилось, что из виртуальной таблице при отборе. Как туда залезть, ума не приложу. Что я только не делал, и обнулял остатки по счету, и чистил регистры, ВСЕ БЕСПОЛЕЗНО.
Потом увидел твой инструмент, решил как ты рекламируешь "Позволяет покопаться в этих самых данных, и понять почему не работает. При этом можно "погрузиться вглубь" данных до любого уровня вложенности."
Сделал как было в описании, а там "нуль".
Где я ошибся? Буду рад любой помощи. Приложен скрин, может подскажешь источник проблемы

p.s. Совет: базу выгрузить и загрузить снова, не помогает.
Прикрепленные файлы:
4. Алексей (ADirks) 17.01.12 07:22
Дело в том, что РедакторТЗ - инструмент не самодостаточный - от того, что ты просто запустишь его толку не будет.
Надо его запускать именно программно, в той точке кода, где данные есть. Причём данные не любые, а перечисленные в описании.
к примеру:
ВнешниеОбработки.Создать("X:\Инструменты_v8\РедакторТЗ.epf").Редактор(РезультатЗапроса);
тогда оно покажет РезультатЗапроса.

В твоём случае, если я правильно понял, надо взять любую консоль запросов (их есть тут в ассортименте), и выполнить тот запрос что в отчёте.
5. Альберт Кадымов (sword444) 17.01.12 20:24
(4) спасибо за пояснение, буду пробовать
6. Сергей Старых (tormozit) 07.02.12 22:03
Если модификация конфигурации допустима, то возможно кому то покажется удобнее использовать подсистему Инструменты разработчика, где исследователь объектов и коллекций на мой взгляд значительно функциональнее.
7. Владимир Чаклин (vec435) 08.02.12 09:22
(3) sword444, возможно нужно использовать просмотровщик временных таблиц
8. Алексей (ADirks) 08.02.12 09:31
(6) tormozit, Инструменты разработчика - замечательная вещь!
РедакторТЗ немножко отличается от Исследователя, именно когда нужно просмотреть массив данных.
Кстати, если подсистема установлена, то из редактора можно вызвать исследователь и редактор реквизитов.
9. Сергей Старых (tormozit) 08.02.12 10:35
(8) Посмотрел внимательнее. Действительно в твоем редакторе коллекций ориентация на редактирование, а не исследование. В ИР в исследователе коллекций на данный момент нет возможности редактирования, хотя в исследователе объектов она есть. Кстати ИР 2.30 появился простенький редактор ТЗ и массива.
10. Алексей (ADirks) 08.02.12 18:33
(9) tormozit, не совсем так. Редактирование - в настоящий момент это скорее побочный эффект, да и то результат никуда не сохраняется. Основное различие в том, что редактор (правильней было бы назвать viewer, но традиция) сразу показывает данные, а исследователь показывает все свойства и методы объекта, которые позволяют добраться в частности и к данным. На приложенной картинке это хорошо видно - здесь я скормил обоим РезультатЗапроса.

Если есть желание, то можно объединить усилия. Т.е. вставить редакторТЗ в подсистему Инструменты. Я потихоньку допиливаю его по мере личной необходимости, а так глядишь процесс быстрее пойдёт.
Прикрепленные файлы:
11. Сергей Старых (tormozit) 08.02.12 18:51
В ИР в паре с исследователем объектов работает исследователь коллекций (также как и в конфигураторе диалог "Вычислить выражение"). Часто я пишу "исследователь объектов", но подразумеваю пару этих инструментов. Ты видел исследователь коллекций? Исследователь коллекций открывается например по двойному клику на строке свойства в исследователе объектов и способен работать с любой коллекцией.
12. Алексей (ADirks) 08.02.12 19:46
(11) tormozit, оказывается видел, но не обратил внимания на заголовок.
Но. Почему я взялся делать свою смотрелку. Потому что в исследователе надо сначала ткнуть на метод Выгрузить(), а потом ещё раз ткнуть на получившуюся коллекцию. Т.е. многовато телодвижений для частной задачи.

Пример
структ = Новый Структура("тз1", рз);
структ.Вставить("тз2", рз);

структ2 = Новый Структура("стр1", структ);
Исследовать(структ2);

в результате, чтобы добраться до данных в структ2.стр1.тз1 получается как на картинке. Одно окошко мне тут как минимум не нужно (ИО, _Значение_.стр1["тз1"].Значение.Выгрузить()), и лишние клики мышью.
Может быть, есть более простой путь, но я не нашёл.
Если такого пути нет, то предложение: сделать в ИК действие, которым сразу откроются актуальные данные значения под курсором. Т.е. в окошке (ИК, _Значение_.стр1["тз1"]) нажимаю что-нибудь, и открывается сразу (ИК, _Значение_.стр1["тз1"].Значение.Выгрузить()[0]).

И ещё предложение, сделать глобальный метод ИсследоватьКоллекцию().
Прикрепленные файлы:
13. Алексей (ADirks) 08.02.12 19:49
... и ещё предложение: в ИО и ИК сразу активизировать табличное поле, а то с клавиатуры не удобно работать
14. Сергей Старых (tormozit) 08.02.12 20:23
Метод ИсследоватьКоллекцию на мой взгляд будет излишеством, т.к. есть методы Ис и Исследовать, которые позволяют управлять как исследовать объект. Например ис(ГлавныйИнтерфейс, 1) сразу откроет исследование коллекции ГлавныйИнтерфейс, а ис(ГлавныйИнтерфейс) откроет исследование объекта ГлавныйИнтерфейс.
15. Сергей Старых (tormozit) 08.02.12 20:24
16. Сергей Старых (tormozit) 08.02.12 20:28
(12) Понимаю. Я же ставил целью сделать более удобный аналог вычислителя выражения из отладчика платформы, для которого важна в первую очередь универсальность. Буду рад предложениям, которые не ударят по универсальности, но сделают его более удобным.
17. Дмитрий Ташланов (Necytij) 08.02.12 22:14
(13) ADirks, (16) tormozit,
Простите, но не зная что такое ваши Исследователи коллекций и ТЗ, мне, например, не понятно какая обработка и тем более в какой версии что делает, и какая наконец-то дает данные онлайн редактировать?? Или я неправильно понял о чем спор идет? Потому как этот момент я бы с радостью использовал, при отладке бывает чтобы получить определенную ТЗ, приходиться сначала перебрать множество данных перед ней. А так можно было бы и в запросе подправить чего надо, и к следующему шагу перейти с верными данными...
А если же она просто показывает те же данные, что и встроенный в платформе расчет, то думаю абсолютному большинству эта разработка не пригодиться.
18. Сергей Старых (tormozit) 12.02.12 02:06
Вышла ИР 2.31
Изменения касательно данного направления:

Исследователь объектов

+добавлена кнопка «Внутр» для вычисления внутреннего представления зачения
+При выборе значений-ссылок теперь открывается редактор объекта БД
+по двойному клику на строке вычисленного значения открывается наиболее специализированный редактор, а исследователю коллекций отдается приоритет на ячейке "Количество элементов»

Исследователь коллекций

+добавлена кнопка "Контекстная справка" отображающая справку по текущему свойству элемента коллекции
+реализована возможность редактирования значений в ячейках
+добавлена кнопка "Обновить"

Редактор таблицы значений

+возможность редактирования колонок
+поддержка дерева значений
+кнопка Обновить
19. Алексей Ко (Жолтокнижниг) 05.10.12 16:39
Неплохо бы еще было, чтоб обратно при закрытии упаковывался в массив, структуру и тд
20. andpyxa (andpyxa) 12.12.13 19:26
Дерево деревом не показывает.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа