Универсальная обработка
1)Обработчик ТаблицыЗначений (Т) (списказначений)
1.1)Если ей передать таблицузначений (Т) (списокзначений) - покажет его на своей форме и дальше с ней
можно извращаться
(добавлять колонки с реквизитами значений из другой
колонки (в том числе ВнутреннийИдентификатор, КоличествоСтрок табличной части
Помеченность на удаление, саму табличную часть как ТаблицаЗначений)),
показывать реквизит (.../шапку, табличную часть) значения из ячейки, сортировать,
свертывать, сохранять в значение внутр в файл, ....,
скидывать в dbf (с ограничениями по колонкам),
разворачивать в плоскую таблицу значения из списков из колонки Т (создает таблицу
с копиями строк для каждого значения из списка),
получать таблицузначений как сумму строк таблицзначений из колонки (т.о.
можно получить суммарную табличную часть списка документов)
поиск дублей строк по любому набору колонок,
некоторые математические действия со значениями колонок, подсчитывает итог
текущей колонки, выдает Т на печать,...)
1.2)Можно загружать Т из файла внутр
1.3)Можно загружать табличную часть любого документа
2)Может использоваться для открытия формы документа/элементасправочник (через команду вызова)
(делает интелектуально (открывает на просмотр, если заблокирован),
открывает форму списка, если нет формы элемента и т.п.),
показа движений регистров документа ...
3)Может быть использован отдельный обработчик не универсальный для пристыковки не
универсальных расчетов значений по содержимому ячеек колонки
(приложен пример ПоказатьТ_Доб_НеУниверсальность.ert)
(удобно использовать, в том числе, из UCoice.ert )
В ПоказатьТ_Доб_НеУниверсальность.ert класть обработчики не универсальные, чтобы ПоказатьТ.ert открывалась во всех базах
В ПоказатьТ_Доб_НеУниверсальность.ert можно класть строки выполнения последовательности действий (см. в модуле ПоказатьТ_Доб_НеУниверсальность)
(например, "НаборДействий_ДобавитьРеквизит(ТЧ),СложитьТ,Свернуть(Клиент@Приход#Расход),Печать" -
выполнится указанный набор действий (т.е. получим печатную таблицу суммы табличный частей
документов из текущей колонки, свернутую по "Клиент","Приход,Расход"
(т.е. считаем, что Клиент,Приход,Расход - есть колонки в ТабличныхЧастях
документов из текущей колонки) )
(сама обработки такой строки происходит в ПоказатьТ.ert)
Вставляем в использующий модуль или в глобальный модуль:
"
/_________________________________________________________________________
Функция ПоказатьТ(Т="",ПоказатьЭлемент="",Эл="",Кол="",Стр="",НеСтандартно="",
ПоказатьРеквизиты=0,Модально=0) Экспорт
КонтФормы=СоздатьОбъект("СписокЗначений");
КонтФормы.ДобавитьЗначение(Т,"Т");
КонтФормы.ДобавитьЗначение(ПоказатьЭлемент,"ПоказатьЭлемент");
КонтФормы.ДобавитьЗначение(Эл,"Эл");
КонтФормы.ДобавитьЗначение(Кол,"Кол");
КонтФормы.ДобавитьЗначение(Стр,"Стр");
КонтФормы.ДобавитьЗначение(НеСтандартно,"НеСтандартно");
КонтФормы.ДобавитьЗначение(ПоказатьРеквизиты,"ПоказатьРеквизиты");
ИФ=КаталогИБ()+"ExtForms\ПоказатьТ.ert";
Если ФС.СуществуетФайл(ИФ)=1 Тогда
Если Модально=1 Тогда
ОткрытьФормуМодально("Отчет#",КонтФормы,ИФ);
Возврат КонтФормы;
Иначе
ОткрытьФорму("Отчет#",КонтФормы,ИФ);
КонецЕсли;
Иначе
СообщитьБезОграничения("Файл """+ИФ+""" не найден","!");
КонецЕсли;
КонецФункции
//_________________________________________________________________________
Функция ПоказатьЭлемент(Эл="",ТИлиСпис="",Кол="",Стр="",НеСтандартно="",
ПоказатьРеквизиты=0,Модально=0) Экспорт
Воз=ПоказатьТ(ТИлиСпис,1,Эл,Кол,Стр,НеСтандартно,ПоказатьРеквизиты,Модально);
Возврат Воз;
КонецФункции
"
Я сам на форму вывожу для каждой таблицы, списка, реквизита типа документ/справочник кнопку "О" (типа "открыть"), в которую вставляю ПоказатьЭлемент(Эл)/ПоказатьТ(Т) - открывается форма элемента/документа или Т, в место процедуры обработки клика на ТаблицеЗначений вставляю вызов ПоказатьЭлемент(,Т) - открывается форма реквизита из ячейки
Не полный перечень возможных вызовов:
//Показывает: СписокЗначений (в виде таблицы значений), ТаблицаЗначений,
//ЭлементСправочника,Документ,Текст
//(предусмотрен показ ТабличнойЧасти документа (в виде таблицы значений))
//реквизты шапки документа, элемента справочника
//таблицу значений можно свернуть (результат в отдельной такой же обработке),
//отсортировать по набору колонок
//любую ячейку таблицы значений можно рекурсивно посмотреть
//из формы обработки можно загрузить ТабличнуюЧасть любого документа
//(по кнопке)
//ТаблицуЗначений можно вывести в ПечатнуюФорму
//можно сохранить Т в файл (внутр), загрузить Т из файла (внутр)
//можно ДобавитьКолонкуИзФайлаВнутр
//можно ВычестьИзКолонкиКолонку
//проверить, что значения любой 1 колонки не разбросаны (= лежат рядом)
//поиск повторяющихся по выбранным колонкам строк
//выбрать показываемые колонки
//посмотреть частично выбранную информацию по структуре метаданных
//пока далеко не все можно посмотреть
//ПРИМЕРЫ ВЫЗОВОВ
//1) ПоказатьТ(Т) - покажет Т (ТаблицуЗначений,СписокЗначений,
// ТабличнуюЧастьДокумента,Текст (через текстовый документ))
//2) ПоказатьЭлемент(Эл) - покажет Эл (ТаблицуЗначений,СписокЗначений,
// Документ,ЭлементСправочника,Строку,Число)
//3) ПоказатьЭлемент(,Т) - покажет элемент из текущей строки и текущей
// колонки (см. ПоказатьЭлемент(Эл) (текущее есть только у Т формы)
//4) ПоказатьЭлемент(,Спис) - покажет элемент из текущей строки
// (текущее есть только у Спис формы)
//5) ПоказатьЭлемент(,ТИлиСпис,Кол,Стр) - для Т покажет из колонки Кол
// (если не пуста, иначе из текущей) из строки Стр (если не пуста, иначе
// из текущей); для Спис из строки Стр (если не пуста, иначе из текущей)
//6) ПоказатьЭлемент(Эл,,,,,1) - показывает все реквизиты элемента или
// шапки документа
//7) ПоказатьТ(ИФ,1) - покажат файл ИФ (если расширение doc,rtf,xls и др
// (жестко задано в коде), то запустить соответствующее приложение)
//8) ПоказатьЭлемент(ЭлДок,,,,,1)
// Показать Реквизиты Шапки документы + другую информацию (время и т.д.)
// (причем если ЭлДок - форма, то покажет значения реквизитов именно из
// формы)
// Показать Реквизиты Элемента справочника
//9) НеСтандартно=СоздатьОбъект("СписокЗначений");
// НеСтандартно.ДобавитьЗначение(1,"Закрыть");
// НеСтандартно.ДобавитьЗначение("Вернуть","Команда");
// щВоз=ПоказатьЭлемент(Об,,,,НеСтандартно,1,1);
// ТФормыОбработки=щВоз.Получить("ТФормыОбработки");
// Получить ТРеквизитыШапкиДокумента
//10)ПоказатьТ(СтрКаталог,,,,,"Каталог")
// откроет каталог (можно СтрКаталог задавать относительно ИБ (глДобСтрОтносительноИБ="..\")
// Параметр НеСтандартно используется для передачи спец команд и спец
//режимов