Управление торговлей: Как использовать УниверсальныйОтчет в корыстных целях. для 1С


Так сложилось исторически, что в основном занимаюсь я оперативным учётом, как на 8-ке так и на 7-ке, периодически меня озадачивают.

  • Хотим, чтобы этот документ заполнялся, как в том отчёте с возможностью тех же фильтров.  
  • Или я сам озадачиваюсь - надо заполнить какую-нибудь табличку данными "как в том отчёте" + дать возможность отборами рулить пользователю

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

  • Надо сделать возможность "перемещения товаров" на основе фильтров используемых отчетом "Ведомость по товарам и ГДТ организации"

Уж зачем и почему - не знаю - просто надо. Поэтому, прикинув в очередной раз что придётся ковыряться в куче кода и собирать запрос по кусочкам - мне стало грустно. Взглянув уныло на реквизиты предлагаемого к надруганию отчёта меня осенило, а что если... воспользоваться механизмом "Внешние обработки заполнения табличных частей" и не просто так, а с выдумкой:

 Процедура Инициализировать(_Объект,_ИмяТабличнойЧасти,_ТабличноеПолеОбъекта) Экспорт
 // берём нужный отчёт
 ОбъектОтчет = Отчеты.ВедомостьТоварыИГТДОрганизаций.Создать();
 // получаем форму и отдаём на откуп пользователю настройку всех
 ФормаОтчета = ОбъектОтчет.ПолучитьФорму();
 ФормаОтчета.ОткрытьМодально();
 // теперь у нас после закрытия формы остался объект отчёта
 // со всеми настройкам что там начудил юзер
 // а универсальный отчёт(на базе которого построено
 // большее количество типовых отчётов в УТ) имеет экспортную функцию
 // и она с радостью отдаст всё что нажито непосильным трудом
 Результат = ОбъектОтчет.УниверсальныйОтчет.ПолучитьРезультат();
 // теперь поимеем с результата ТЗ, а уж дальше делаем с ней всё что нам угодно
 ТЗ = Результат.Выгрузить();
 // посмотрите на результат
 ТЗ.ВыбратьСтроку();
 //  ну а дальше каждый делает в меру своей испорченности.
 КонецПроцедуры

Некоторые несложные умозаключения: воспользоваться УниверсальнымОтчетом можно не только через посреднические отчёты, но и напрямую, правда придётся заполнять кучу настроек. Если в каком-либо отчёте не используется УниверсальныйОтчет - наверняка используется Построитель - аналогичный финт ушами сработает. Как быть если отчёты нарисованы на компоновке - я не задумывался, не сложилось у меня с нею.. но сдаётся мне что и там можно сделать аналогично.

Собственно всё. Спасибо за внимание.

Update 2009.11.19 добавил обработку для примера и во избежание непоняток

https://infostart.ru/public/60715/

Скачать:
60715_Upravlenie_torgovley_Kak_ispolzovat_UniversalnyyOtchet_v_korystnyh_tselyah..epf