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