К возможностям обработки, помимо заявленных вывода и печати содержимого таблицы и списка значений, относятся:
- по DblClick на ячейке таблицы данных отображение содержимого вложенных таблиц и списков значений (открывается новая форма обработки)
- отображение структуры таблицы (выводятся только заполненные поля; поле «Заголовок» выводится только в случае если оно заполнено и есть хотя бы одно отличие от имени колонки) и типы значений списка
- отбор данных по заданным условиям по полям таблицы значений
- настройка сортировки таблицы значений
- настройка видимости колонок таблицы значений
- автоподбор ширины колонок в таблице на форме (по опции) и в печатной таблице
- расширенное представление значений: элемент справочника представляется по шаблону "Код | Наименование"; группа элементов — по шаблону "Код || Наименование"; документ, не зависимо от периодичности нумератора, — по шаблону "Представление (или идентификатор, если не задано) №НомерДок от ДатаДок"; строка заключается в кавычки
- если в таблице данных не задан тип поля, то в таблице структуры, для полей где поле "Тип" не заполнено, по DblClikck появляется контекстное меню, которое позволяет определить варианты типов для незаполненных реквизитов по табл. данных.
Баги на текущий момент:
В строке под таблицей данных (где выводится адрес текущей ячейки и расширенное представление текущего значения) данные могут не обновляться при переходе между колонками (проблема в том, что в этом случае не вызывается формула текстового поля).
Вместе с обработкой идет пример её использования.
Вызывать можно как из конфигуратора (можно и не модально), так и из отладчика. Делается это одной строкой (пример, когда обработка идёт как внешняя и лежит в корне диска С):
ОткрытьФормуМодально("Обработка#", ТабЗн, "C:\ВыводУниверсальныхКоллекций.ert");
При вызове из конфигуратора можно передать в качестве параметра не просто таблицу значений, но и её заголовок и внутреннее имя обработки. Последнее необходимо для открытия вложенных таблиц и списков, когда обработка вызывается как внутренняя. Делается это следующим образом:
СпПараметров = СоздатьОбъект("СписокЗначений");
СпПараметров.Установить("ЗаголовокОбработки", "Номенклатура");
СпПараметров.Установить("Данные", ТабЗн);
СпПараметров.Установить("ИмяВнутрОбработки", "ВыводУниверсальныхКоллекций");
ОткрытьФорму("Обработка.ВыводУниверсальныхКоллекций#", СпПараметров);
Буду благодарен за помощь в отлове багов (исправление, разумеется, на мне) и высказывание пожеланий. В планах есть дальнейшее развитие темы, так что следите за обновлениями.