История цивилизации является историей изобретения велосипеда.
Во все эпохи именно те народы получали преимущества историческом
развитии, чьи велосипеды оказывались удобней, быстрее и надежней.
так или примерно так говорил пророк К. Маркс...
Изменения от 01-03-2014, версии 8.1.1.5 (для платформы 8.1) и 8.2.1.5 (для платформы 8.2):
1. Расширен список объектов доступных для просмотра:
- Табличные части объектов (включая системные - навроде "ПланСчетовВидыСубконто.");
- Строки табличных частей объектов;
- Наборы записей регистров (включая "системные" - навроде "ПоследовательностьНаборЗаписей.");
- Записи регистров;
- Ключи записей регистров;
Кроме этого объекты некоторых типов
(например, "СистемнаяИнформация","ПользовательИнформационнойБазы","ОписаниеТипов" и многие другие) представляются
для просмотра в функции ViewValue() в виде структуры с одноименными свойствами с помощью метода ОбъектВСтруктуру()
общего модуля ViewAddIn. Список этих объектов не является закрытым и при желании может дополнен.
2. Добавлена обработка "КонсольЗапросов1СADO" версии 8.1.1.3 из подсистемы "COMExchange", консоль используется в
функции ViewValue() для "просмотра" объектов типа "Запрос" (идея подсказана q_i в //infostart.ru/public/236904/).
3. Интеграция с обработкой 1С:Администратор (требуемая версия не ниже 5.6):
При клике по ячейке табличного объекта, содержащего ссылочное значение, пользователь с полными правами
имеет возможность открыть ссылочный объект для редактирования в обработке 1С:Администратор.
Обработка 1С:Администратор может использоваться как встроенная в конфигурацию, так и в виде внешней обработки,
сохраненной в стандартных справочниках "ВнешниеОбработки"/"ДополнительныеОтчетыИОбработки"
под наименованием "Администратор1С".
Особенности обновления на данную версию подсистемы:
После объединения конфигурации с базой данных следует удалить общие формы "ViewValuesTable" и "ChooseFromTable",
поскольку они перенесены в сервисную обработку "ViewValues" и более уже не используются подсистемой.
Изменения от 03-07-2013, версии 8.1.1.4 (для платформы 8.1) и 8.2.1.4 (для платформы 8.2):
1. Версии для платформ 8.1 и 8.2 существенно отличаются. Для последней часть объектов поддерживают работу в управляемом приложении.
2. Добавлен альтернативный диалог настройки периода. Подробнее...
3. В комплект поставки включены выгрузки баз демоконфигураций. Демообработки включены в их состав.
Изменения от 07-01-2013, версия 8.1.1.3 для 1С:Предприятие-8х (обычное приложение):
1. Добавлено контекстное меню действий со значением в ячейке таблицы ( Рис.17 ). Это меню выводится при клике мышью по ячейке
для режима просмотра значений 'Из меню', на который заменены режимы 'В диалоге' и 'В списке'.
2. Добавлена возможность управления шириной колонок просматриваемых таблиц (подробности в описании общей формы ‘ViewValuesTable’).
Изменения от 08-08-2012, версия для 1С:Предприятие-7.7:
1. Добавлен сервис сохранения в файл просматриваемого объекта и открытия объекта для просмотра из файла ( Рис.5-3 ), аналогичный тому, что есть в версии подсистемы для 1С:Предприятие-8х.
Также для удобства просмотра таблиц, сохраненных во внешних файлах, можно открывать форму просмотра таблиц без указания табличного объекта ( Рис.5-3 ).
Для этого надо в табло формул набрать функцию ViewTable() без параметров;
2. В состав подсистемы добавлена обработка "РедактированиеСпискаЗначений_sys" ( Рис.1-2 ) - упрощенная альтернатива обработке "УОПО".
Пример использования смотрите в обработчике соответствующей кнопки на Рис.1-2 в демонстрационной обработке.
3. В архив комплекта поставки добавлены дополнительные файлы (для удобства установки и обновления подсистемы):
- Файл ViewValues-77.txt (содержит процедуры подсистемы из глобального модуля) и
- Файлы с обработками подсистемы в диалогах которого использованы пиктограммы.
Рекомедуемый порядок установки и обновления следующий:
1) Объединяем конфигурацию с файлом *.MD из комплекта поставки (без объединения "корня" конфигурации);
2) Добавляем (заменяем) в глобальный модуль процедуры из файла ViewValues-77.txt
3) При необходимости (если "слетели" картинки на кнопках в диалогах обработок) заменяем эти обработки на одноименные из комплекта поставки;
Изменения от 08-08-2012, версия для 1С:Предприятие-8х (обычное приложение):
1. Добавлен общий модуль "MarkTables" и общая форма "ChooseFromTable", реализующие сервис пометки и выбора строк из объектов "ТаблицаЗначений", "ДеревоЗначений" и "СписокЗначений". Сервис носит универсальный характер и может быть использован везде, где требуется выбор (отметка) ряда значений из списка в виде таблицы или дерева значений.
Подробности задокументированы в описании подсистемы. Пример использования смотрите в обработчиках команд меню "Структура таблиц ИБ" в общей форме "ViewValueTable".
2. Перед просмотром дерева значений со структурой таблиц базы открывается форма "ChooseFromTable" ( Рис.16-2 ) для подтверждения фильтра по объектам метаданных базы (по умолчанию фильтр заполнен << По всем объектам конфигурации>>). Установка фильтра по отдельным метаданным значительно ускоряет формирование дерева со структурой таблиц, при этом в дереве показываются узловые строки, принадлежащие только выбранным в фильтре объектам метаданных ( Рис.16-3 );
3. При сохранении просматриваемого объекта во внешнем файле также сохраняется структура с настройками его отображения (в отдельном файле под тем же именем и с расширением *.obj8prm).
При открытии для просмотра объекта из файла, если существует соответствующий файл с сохраненными настройками отображения - эти настройки также восстанавливаются и применяются.
Изменения от 01-05-2012, версия для 1С:Предприятие-8х (обычное приложение):
- Добавлено меню действий формы просмотра таблиц ( Рис.15 ). В это меню перенесена команда "Обновить" и добавлены новые команды (см. ниже);
- Добавлена возможность сохранять просматриваемый объект во внешнем файле с помощью функции ЗначениеВФайл(...) , команда "Сохранить" меню действий формы;
- Добавлена возможность открывать на просмотр объект из внешнего файла с помощью функции ЗначениеИзФайла(...) , команды "Открыть" и "Открыть в новом окне" меню действий формы;
- Добавлена возможность вывода для таблиц пиктограмм в одной из колонок ( Рис.16-1 ), об этом и о других возможностях управления отображением таблиц смотрите в описании подсистемы.
- Следует отметить, что на настоящий момент при сохранении табличного объекта во внешний файл (см.п.2) параметры его отображения теряются. Особенно это каксается вывода пиктограмм;
- Для удобства просмотра таблиц, сохраненных во внешних файлах, предусмотрена возможность открытия формы просмотра таблиц без указания табличного объекта ( Рис.14 ) . Для этого достаточно в табло формул набрать функцию ViewTable() без параметров;
- Добавлена возможность формирования и просмотра в отдельном окне дерева значений со структурой физических таблиц ( Рис.16-1 ) , команды подменю "Структура таблиц ИБ" меню действий формы;
- В список поддерживаемых для просмотра типов добавлен тип "ФиксированнаяКоллекция" (для платформы 1С-8.2);
1) Описание практической проблемы:
У каждого программиста 1С («семёрочного») есть голубая мечта: «посмотреть, что там у меня такое получилось в таблице значений или в списке значений».
По этой причине имеется масса разработок, решающих эту задачу на платформе 1С-7.7:
//infostart.ru/public/19967/ (29)
//infostart.ru/public/71992/ (10)
//infostart.ru/public/90626/ (9)
//infostart.ru/public/14523/ (56) - глПросмотрТЗ(ТЗ)
//infostart.ru/public/77306/ (7) - класс ИнспекторОбъектов
//infostart.ru/public/69026/ (12) - индексированные таблицы
Под платформой 1С-8.x проблема не стоит так остро (в отладчике можно просмотреть большинство объектов), но мечта, похоже, у некоторых остаётся:
//infostart.ru/public/21592/ (9). В круглых скобках указан рейтинг работ на момент изучения вопроса.
Предлагаю свой вариант решения задачи в виде подсистемы «ViewValues» в двух версиях: для платформы 1С-7.7 и для платформы 1С-8.x (обычное приложение).
2) Описание подсистемы «ViewValues», версия для платформы 1С-7.7:
a) Состав:
Функции глобального модуля:
1) Функция ViewText(Объект,Заголовок=’’,,) Экспорт – для просмотра текстов и многострочных строк из любого места конфигурации;
2) Функция ViewTable(Объект,Заголовок=’’,,,) Экспорт – для просмотра ‘табличных’ объектов из любого места конфигурации;
3) Функция ViewValue(Объект,,Заголовок=’’) Экспорт – комбинированная функция для “просмотра” объектов произвольного типа из любого места конфигурации.
4) + вспомогательные процедуры и функции.
Обработки:
5) ВыводТекста_sys - просмотр текстов и многострочных строк;
6) ВыводТаблицыЗначений_sys - просмотр “табличных” объектов;
b) Возможности и использование:
1) Подсистема позволяет просматривать “табличные”объекты следующих типов:
- "ТаблицаЗначений" (Рис.3)
- "ИндексированнаяТаблица" - объект ВК 1CPP.dll
- "СписокЗначений" (Рис.4)
- "Структура" - объект ВК 1CPP.dll
- "DynaValue" - объект ВК 1CPP.dll
2) Значение из ячейки просматриваемой таблицы кликом мыши можно открыть на просмотр.
3) Если значение в ячейке ссылочного типа, то при клике мышью по ячейке выводится контекстное меню (Рис.3,Рис.4 и Рис.5-1), позволяющее выполнить с объектом следующие действия:
- открыть на просмотр-редактирование, открыть в списке (журнале);
- пометить на удаление, снять пометку на удаление, удалить непосредственно;
- провести, отменить проведение документа;
- сформировать структуру подчинённости документа;
- сформировать отчёт о движениях документа (полный вариант: регистры, проводки, история справочников);
- изменить дату-время документа (требуется обработка ‘Изменение времени документа’);
- открыть объект для редактирования в обработке 'Редактор Реквизитов' (автор Цылёв Владислав vet7777@mail.ru);
4) Если в просматриваемом объекте содержатся ‘вложенные’ “табличные” объекты, подсистема позволяет кликом мыши по ячейке просмотреть и их (Рис.5-1, Рис.5-2).
5) Имеется возможность вывести просматриваемый объект для печати в табличный документ.
Использовать подсистему очень просто: в любом месте программного кода для просмотра интересуемого объекта достаточно вставить вызов функции ViewTable (Объект,Заголовок).
c) Требования и установка:
1) Никаких особенных требований к программному окружению нет.Желательно иметь загруженные ВК 1cpp.dll, FormEx.dll и подключённый класс КОП 'Общие.Форма.Привязка' (включен в состав файла MD из комплекта поставки). Внешние компоненты и класс подключаются аналогично тому, как описано в статье об обработке Консоль1CQA (там же можно их скачать).Но без них тоже все будет как-то работать (без привязок в формах и прямых запросов при формировании структуры подчинённости документа). 2) Для установки нужно добавить обработки в конфигурацию базы при объединении с файлом MD из комплекта поставки.Рекомендуется добавить из файла MD класс КОП 'Общие.Форма.Привязка' (обработки Defcls и КОП_ОбщиеФормаПривязка) и обеспечить загрузку ВК 1cpp.dll, FormEx.dll. Кроме этого, придётся добавить вручную в глобальный модуль базы функции из глобального модуля файла MD.
3) Описание подсистемы «ViewValues», версия для платформы 1С-8.x:
a) Состав:
Подсистема ‘ViewValues’ - содержит общее описание и выделяет остальные объекты, входящие в подсистему.
Общий глобальный модуль ‘ViewValues’, содержит экспортные функции:
1) Функция ViewTable(Объект,Заголовок,,,) Экспорт – для просмотра ‘табличных’ объектов из любого места конфигурации;
2) Функция ViewValue(Объект,Заголовок,,,) Экспорт – комбинированная функция для “просмотра” объектов произвольного типа из любого места конфигурации.
3) + вспомогательные процедуры и функции.
Общая форма ‘ViewValuesTable’ – предназначена для просмотра общих “табличных” объектов и объектов, представляющих коллекции значений.
b) Возможности и использование:
1) Подсистема позволяет просматривать “табличные” объекты следующих типов:
- "Массив" (Рис.6)
- "Структура" (Рис.7)
- "Соответствие"
- "СписокЗначений" (Рис.8)
- "ТаблицаЗначений" (Рис.11)
- "ДеревоЗначений" (Рис.12, Рис.13)
- "COMSafeArray"
- "ФиксированныйМассив"
- "РезультатЗапроса" (Рис.10)
2) Подсистема позволяет просматривать любые другие объекты, являющиеся коллекциями значений (Рис.9-1 и Рис.9-2), для которых доступен перебор элементов в цикле “Для каждого …. Из … Цикл”.
3) Подсистема позволяет отслеживать состояние объекта по ходу исполнения кода и просмотреть его актуальное состояние (см. на примере просмотра массива, Рис.6).
4) Значение из ячейки просматриваемой таблицы при клике мышью можно открыть на просмотр.
5) Если в просматриваемом объекте содержатся ‘вложенные’ “табличные” объекты, подсистема также позволяет просмотреть их кликом мыши по ячейке (Рис.7, Рис.11,Рис.13).
6) Просматриваемый объект можно вывести на печать стандартными средствами платформы по работе со списками.
Использовать подсистему также просто:
в любом месте программного кода (или в табло формул) для просмотра интересуемого объекта достаточно вставить вызов функции ViewTable (Объект,Заголовок).
Например, если в табло формул набрать ViewTable(Отчеты) (Рис.9-2), то откроется для просмотра список менеджеров отчётов конфигурации. Причём при клике мышью в списке открывается основная форма отчёта.
c) Установка и ограничения:
Установка:
осуществляется объединением конфигурации базы с файлом CF из комплекта поставки. Модули приложений – не объединять!
Ограничения:
подсистема предназначена для работы в режиме обычного приложения. Её адаптация для режима управляемого приложения вряд ли целесообразна. Так как на стороне клиента в этом режиме многие “табличные” объекты попросту не доступны.
4) Описание файлов поставки:
1)ViewValues-77.rar – архив содержит файл ViewValues-77.MD с конфигурацией подсистемы (версия для 1С-7.7).
2)ViewValues-77_Sampls.rar – архив содержит демонстрационную обработку ViewValues-77_Sampls.ert (Рис.1), показывающую работу подсистемы. Все примеры в статье для платформы 1С-7.7 получены с её помощью. Для работы обработки требуется ВК 1cpp.dll (использованы прямые запросы и индексированные таблицы).
3) ViewValues-8x.rar – архив содержит файлы конфигураций:
ViewValues-8.1.14.cf - для платформы 1С-8.1;
ViewValues-8.2.14.cf - для платформы 1С-8.2;
4)ViewValues-8x_Sampls.rar – содержит демонстрационные обработки
ViewValues-81_Sampls.epf - для платформы 1С-8.1;
ViewValues-81_Sampls.epf - для платформы 1С-8.2 (Рис.2-1, Рис.2-2 и Рис2-3);
показывающую работу подсистемы. Все примеры в статье для платформы 1С-8.x получены с её помощью.
Назначение подсистемы:
1) Основное применение – просмотр различных таблиц в режиме 1С:Предприятие в целях отладки.
2) Также возможно использование при выводе информационных сообщений, если требуется вывести информацию из некого списка или таблицы.
Авторские права и условия распространения:
Подсистема предназначена для свободного, то есть, бесплатного распространения c возможностью внесения изменений при сохранении авторской информации в описаниях объектов.
Благодарности:
Выражаю благодарность всем своим коллегам по отделу ИТО за дружбу, поддержку и взаимопомощь. Желаю им всем поскорей найти хорошую работу.
1. Добавлен сервис сохранения в файл просматриваемого объекта и открытия объекта для просмотра из файла ( Рис.5-3 )
Изменения от 07-01-2013, версия 8.1.1.3