пользователям программных продуктов Scala 5.1, iScala 2.1, iScala 2.2, iScala 2.3, iScala 3.0, iScala 3.1 (и так далее)

Канал MSRS — что делать, если он недоступен из-за очень старой версии?

Недавно изменилась форма российского счёта-фактуры. Если у Вас iScala не старее версии 2.3 SR2, тогда Вы можете использовать канал MSRS чтобы очень быстро создать или откорректировать любой документ со сложным форматированием. А что делать, если у Вас Scala 5.1, например? На прошлой неделе я общался с клиентом, которому необходимо изменить форму счёта-фактуры именно для этой версии. Я посмотрел, как это сделано и прослезился. При печати используется MS Word и макросы, которые исходный текстовый документ форматируют в красивый табличный вид. Сразу вспомнился анекдот начала 90-х про нового русского, который приходит в парк с сыном, видит художника, пишущего картину маслом, и восклицает: «Смотри, сынок, как люди без полароида-то мучаются». Не стал я «мучиться без полароида», попросил клиента подождать ещё пару дней, когда освободится автор макроса, ему, скорее всего внести изменения будет много проще, чем мне разбираться. Однако, сама по себе задача, что называется, меня «заела». Ещё в самом начале моей работы со Скалой я рассматривал возможность дизайна DDF документов в формате HTML, но неразрешимостью задачи стало то, что раздел HEAD в документе повторяется при печати, если у Вас в заказе на продажу, например, много строк. Тогда я ещё не был знаком с XSLT преобразованиями. А сейчас знаком благодаря Epicor Service Connect 🙂

Так как меня «заело», я «достал с полки» виртуальную машину со Скалой 5.1, «стряхнул с неё пыль» и начал экспериментировать. И у меня получилось 🙂

Этим я с Вами и поделюсь.

Настраиваю DDF файл (он, как Вы, наверное, помните, в кодировке OEM-866):

DDF file with XML tagsПосле этого настраиваю специальный принтер. С помощью .bat файла он копирует заголовок и печатаемый файл в новый файл с расширением .xml и вызывает Internet Explorer, передавая ему получившийся файл.
Настройка принтера для печати через внешнюю программу в Scala 5.1
Фактически, в полученном файле только данные, никакого форматирования:
Содердимое распечатанного документа до форматированияКак ни странно, это именно то, что нам нужно. Ведь привести это в требуемый вид — дело техники. Для этого нам понадобится то самое XSLT преобразование, о котором я писал выше:

XSLT преобразование в форму счёта-фактурыДобавляем ссылку на преобразование в исходный файл и теперь при печати счёта-фактуры из Scala открывается браузер и в нём появляется форма счёта-фактуры:

Данные напечатанного документа преобразованы в форму счета-фактурыПодходит ли этот метод, например, для iScala 2.2? Да. Вопрос только в создании правильного .bat файла 🙂