пятница, 24 октября 2008 г.

СКД для печати документов

Попробовал вот тут заюзать СКД для формирования печатных форм документов. Весьма не плохо получилось. Смысл такой: вместо макета в виде табличного документа составляем схему компоновки данных (если несколько печатных форм, соответственно несколько схем). Она лучше тем, что она кроме ресурса собственно шаблона печатной формы документа, еще содержит алгоритм вывода и расчета параметров табличного документа.

Составляем нехитрую процедуру в общем модуле, которая печатает любой документ (любого вида). Она определяет схему из метаданных документа, и используя настройку по-умолчанию, ставит отбор по ссылке и формирует печатную форму. Никаких циклов при формировании табличного документа.

Макет печатной формы располагается в СКД. Для печати не нужно получать объект документа. Разработка быстрее, код вообще писать не надо, разве что мелкий на языке СКД для вычисления значений сложных параметров в макете.

Данные для печати формируются запросом (запросами), причем исходные запросы простейшие со * в предложении ВЫБРАТЬ, а СКД сама включает в состав получаемых с сервера полей (выбранных полей), те поля и разименования ссылок, которые были использованыв макете.

Получается все оптимально, минимальное количество кода, и эффективно. Конечно таким способом не вывести абсолютно любую форму, но думаю что где-то 90% печатных форм - запросто.

Есть конечно и непонятные глюки в процессе настройки компоновки, и некоторые непроработанные вещи, но вцелом идея очень зачетная.

Комментариев нет: