Шаблон внешнего отчета не на СКД
1. С чего всё начиналось
Началось всё с шаблона внешней обработки //infostart.ru/public/303564/. Этот шаблон, как водится, предназначен для лентяев, к каковым, в первую очередь, отношу себя. Идея, повторюсь, не нова, но после очередного сотворения внешнего отчета не на СКД (про СКД/Не СКД чуть ниже), которых пришлось наваять несколько, вдруг понял, что уже созрел свести в маленький шаблон то, что приходится копипастить много раз.
2. Тех. подробности
Обработка сделана для управляемого приложения, платформа 8.3.18.1334, рисовал, по традиции, в БП 3.0 (релиз 3.0.89.51) версия БСП 3.1.3.417.
Пример заполнения сделан конструктором, без изысков, просто чтоб было.
3. Цели и задачи
Не ставил цели создать что-то оригинальное – всё, что здесь есть, валяется на просторах инета, синтаксис помощнике и методической поддержке.
Маленькое отступление: Почему не СКД? Ведь не круто итд. ИМХО – СКД реально нужен тогда, когда понимаешь, что нужен отчет, в котором пользователем будут создавать различные варианты получения данных. Если же нужна строго фиксированная структура отчета, множества вариантов даже не предполагается, то почему бы быстренько, практически на коленке, не запилить простенькую (или не очень) табличку, которую особо одарённый юзвер не сможет поломать, как его левой пятке захочется?
Буду рад любым предложениям, замечаниям.
4. Что тут есть
4.1. Регистрация из формы отчета (как и шаблоне обработки)
4.2. Версия и признак того, что данная версия не зарегистрирована в дополнительных отчетах и обработках в заголовке отчета. Если версия совпадает с зарегистрированной «(Не зарегистрировано в ИБ)» пропадает.
4.3. В табличном поле выводится состояние отчета.
ВНИМАНИЕ: Код:
&НаКлиенте
Процедура Сформировать(Команда)
ТекстПредупреждения = "Не заполнены реквизиты:";
Если Не ЗначениеЗаполнено(НаДату) Тогда
ТекстПредупреждения = ТекстПредупреждения + Символы.ПС + "На дату;";
КонецЕсли;
Если Не ЗначениеЗаполнено(Организация) Тогда
ТекстПредупреждения = ТекстПредупреждения + Символы.ПС + "Организация;";
КонецЕсли;
Если ТекстПредупреждения = "Не заполнены реквизиты:" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента(Элементы.ТабДок, "ФОРМИРОВАНИЕОТЧЕТА");
СформироватьНаСервере();
ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента(Элементы.ТабДок);
Иначе
ПоказатьПредупреждение(, Лев(ТекстПредупреждения, СтрДлина(ТекстПредупреждения) + 1) + "!");
КонецЕсли;
КонецПроцедуры
Ничего общего с формированной печатной формой шаблона не имеет! Привожу просто как пример того, как проверяю заполненность реквизитов перед формированием отчета. При изменении этих реквизитов производится очистка табличного документа и изменяется статус – опять таки для целей демонстрации работы шаблона,не более того. Для своих реквизитов просто делаем аналогично.