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

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

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

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

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

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

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

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

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

 

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

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

20 Comments

  1. sword444

    Обработка нужная. Как раз такая ситуация, что при переносе в виртуальной таблице засели не те цифры, хотя по регистрам бухгалтерии все идет. Добавил обработку во внешние обработки. Запускаю и пустая форма. В чем может быть проблема или я что-то не то делаю?

    Использую БП 8.2 2.0.29.2

    Reply
  2. ADirks

    (1) sword444, ну ты напиши, чего делаешь то

    Reply
  3. sword444

    Короче дело обстоит так. Был осуществлен перенос с Бух 7.7 на Бух 8.2. Правила были поправлены в нужном месте и добавлены новые виды документов которые нужны в новой базе. Все прошло гладко. Оборотно-сальдовая ведомость бьет в копеечку, т.е. по регистрам бухгалтерии все в идеале.

    Не знаю как так могло произойти, но одна зараза осталась. При формировании выписке на 01.01.2012 года на начало дня формируется неверный остаток. Хотя еще раз повторюсь, по регистрам бухгалтерии все в идеале.

    Залез в конфигуратор, решил посмотреть откуда отчет «Выписка» берет данные на начало и конец дня. Выяснилось, что из виртуальной таблице при отборе. Как туда залезть, ума не приложу. Что я только не делал, и обнулял остатки по счету, и чистил регистры, ВСЕ БЕСПОЛЕЗНО.

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

    Сделал как было в описании, а там «нуль».

    Где я ошибся? Буду рад любой помощи. Приложен скрин, может подскажешь источник проблемы

    p.s. Совет: базу выгрузить и загрузить снова, не помогает.

    Reply
  4. ADirks

    Дело в том, что РедакторТЗ — инструмент не самодостаточный — от того, что ты просто запустишь его толку не будет.

    Надо его запускать именно программно, в той точке кода, где данные есть. Причём данные не любые, а перечисленные в описании.

    к примеру:

    ВнешниеОбработки.Создать(«X:Инструменты_v8РедакторТЗ.epf»).Редактор(РезультатЗапроса);

    тогда оно покажет РезультатЗапроса.

    В твоём случае, если я правильно понял, надо взять любую консоль запросов (их есть тут в ассортименте), и выполнить тот запрос что в отчёте.

    Reply
  5. sword444

    (4) спасибо за пояснение, буду пробовать

    Reply
  6. tormozit

    Если модификация конфигурации допустима, то возможно кому то покажется удобнее использовать подсистему Инструменты разработчика, где исследователь объектов и коллекций на мой взгляд значительно функциональнее.

    Reply
  7. vec435

    (3) sword444, возможно нужно использовать просмотровщик временных таблиц

    Reply
  8. ADirks

    (6) tormozit, Инструменты разработчика — замечательная вещь!

    РедакторТЗ немножко отличается от Исследователя, именно когда нужно просмотреть массив данных.

    Кстати, если подсистема установлена, то из редактора можно вызвать исследователь и редактор реквизитов.

    Reply
  9. tormozit

    (8) Посмотрел внимательнее. Действительно в твоем редакторе коллекций ориентация на редактирование, а не исследование. В ИР в исследователе коллекций на данный момент нет возможности редактирования, хотя в исследователе объектов она есть. Кстати ИР 2.30 появился простенький редактор ТЗ и массива.

    Reply
  10. ADirks

    (9) tormozit, не совсем так. Редактирование — в настоящий момент это скорее побочный эффект, да и то результат никуда не сохраняется. Основное различие в том, что редактор (правильней было бы назвать viewer, но традиция) сразу показывает данные, а исследователь показывает все свойства и методы объекта, которые позволяют добраться в частности и к данным. На приложенной картинке это хорошо видно — здесь я скормил обоим РезультатЗапроса.

    Если есть желание, то можно объединить усилия. Т.е. вставить редакторТЗ в подсистему Инструменты. Я потихоньку допиливаю его по мере личной необходимости, а так глядишь процесс быстрее пойдёт.

    Reply
  11. tormozit

    В ИР в паре с исследователем объектов работает исследователь коллекций (также как и в конфигураторе диалог «Вычислить выражение»). Часто я пишу «исследователь объектов», но подразумеваю пару этих инструментов. Ты видел исследователь коллекций? Исследователь коллекций открывается например по двойному клику на строке свойства в исследователе объектов и способен работать с любой коллекцией.

    Reply
  12. ADirks

    (11) tormozit, оказывается видел, но не обратил внимания на заголовок.

    Но. Почему я взялся делать свою смотрелку. Потому что в исследователе надо сначала ткнуть на метод Выгрузить(), а потом ещё раз ткнуть на получившуюся коллекцию. Т.е. многовато телодвижений для частной задачи.

    Пример

    структ = Новый Структура(«тз1», рз);

    структ.Вставить(«тз2», рз);

    структ2 = Новый Структура(«стр1», структ);

    Исследовать(структ2);

    в результате, чтобы добраться до данных в структ2.стр1.тз1 получается как на картинке. Одно окошко мне тут как минимум не нужно (ИО, _Значение_.стр1[«тз1»].Значение.Выгрузить()), и лишние клики мышью.

    Может быть, есть более простой путь, но я не нашёл.

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

    И ещё предложение, сделать глобальный метод ИсследоватьКоллекцию().

    Reply
  13. ADirks

    … и ещё предложение: в ИО и ИК сразу активизировать табличное поле, а то с клавиатуры не удобно работать

    Reply
  14. tormozit

    Метод ИсследоватьКоллекцию на мой взгляд будет излишеством, т.к. есть методы Ис и Исследовать, которые позволяют управлять как исследовать объект. Например ис(ГлавныйИнтерфейс, 1) сразу откроет исследование коллекции ГлавныйИнтерфейс, а ис(ГлавныйИнтерфейс) откроет исследование объекта ГлавныйИнтерфейс.

    Reply
  15. tormozit

    (13) Сделаю.

    Reply
  16. tormozit

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

    Reply
  17. Necytij

    (13) (16) tormozit,

    Простите, но не зная что такое ваши Исследователи коллекций и ТЗ, мне, например, не понятно какая обработка и тем более в какой версии что делает, и какая наконец-то дает данные онлайн редактировать?? Или я неправильно понял о чем спор идет? Потому как этот момент я бы с радостью использовал, при отладке бывает чтобы получить определенную ТЗ, приходиться сначала перебрать множество данных перед ней. А так можно было бы и в запросе подправить чего надо, и к следующему шагу перейти с верными данными…

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

    Reply
  18. tormozit

    Вышла ИР 2.31

    Изменения касательно данного направления:

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

    +добавлена кнопка «Внутр» для вычисления внутреннего представления зачения

    +При выборе значений-ссылок теперь открывается редактор объекта БД

    +по двойному клику на строке вычисленного значения открывается наиболее специализированный редактор, а исследователю коллекций отдается приоритет на ячейке «Количество элементов»

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

    +добавлена кнопка «Контекстная справка» отображающая справку по текущему свойству элемента коллекции

    +реализована возможность редактирования значений в ячейках

    +добавлена кнопка «Обновить»

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

    +возможность редактирования колонок

    +поддержка дерева значений

    +кнопка Обновить

    Reply
  19. Жолтокнижниг

    Неплохо бы еще было, чтоб обратно при закрытии упаковывался в массив, структуру и тд

    Reply
  20. andpyxa

    Дерево деревом не показывает.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *