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

Инструмент, предназначенный для отладки всяких навороченных алгоритмов, работающих с данными сложной структуры. Позволяет покопаться в этих самых данных, и понять почему не работает. При этом можно "погрузиться вглубь" данных до любого уровня вложенности.
Аналог Редактора ТЗ для семёрки (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 не будет опубликован. Обязательные поля помечены *