Как тебе такое, снеговик?

https://blogs.klerk.ru/users/1911762/post178121/
Ковыряясь в API Озона, оказалось, что он может по запросу вернуть документы для печати (наклейки, лейблы, акты приема-сдачи и пр.) в формате pdf.
https://cb-api.ozonru.me/apiref/ru/#...ckagalabel_fbs
Но возвращает он их не файлом, а в виде "строки base64"
Любой файл, любого вида можно преобразовать в набор вот такой абракадабры текста.
Вот здесь внешняя обработка для 1С игра-квест "Как сдать отчетность":
Открыть оригинал изображения (668x720, 0.92 Мб)
И, соответственно, эту абракадабру можно декодировать обратно в исходный файл.
А передается как строка.

Редактировано: 21 октября, 13:26

Комментарии:
Когда-то давным-давно (лет 15 тому как) в прошлой жизни, была эта тема, но долгие ковыряния ни к чему не приводили - утилита, которая использовалась для декодирования (чья-то корявая поделка) декодировала какой-то хлам. И автор хлопал глазками "а я че, я ниче".
Сегодня, вернувшись к этой задаче, как-то сразу и быстро все срослось.
Как всегда, чем использовать чужие приблуды, лучше найти эту же библиотеку в Windows'е.
Так оно и оказалось.
Сижу радуюсь удаче и думаю как это можно использовать.
Первое, что хотелось сделать еще тогда, давно-давно:
Добавить во внешнюю обработку видео.
С некоторых пор, стараюсь добавлять в обработку не только текстовое описание, но и видеоинструкцию.
Для этого приходилось выкладывать ролик на ютуб, а из обработки запускать приложение с гиперссылкой на ролик - в результате, в новом окне открывается браузер по умолчанию и ролик начинает проигрываться.
Все работает, но, во-первых: для этого нужен доступ в тырнет, а, во-вторых, самое главное: ролик то один на всю обработку и показать конкретный маленький кусочек я не могу и показать где в этом ролике смотреть (если он на 10 минут, а мне нужно только несколько кадров на 5-7 секунд по конкретной теме) тоже не могу.
Теперь же, при помощи этой технологии, я могу эти коротенькие видео вставлять прямо в обработку, налету их декодировать и показывать.
Вторая очевидная группа задач - картинки и пиктограмки в формах 1С.
Причем, как в печатных, так и на формах отчетов, документов, справочников.
Например, при формировании печатной формы Счета на оплату (формируется сразу с печатями и подписями, сохраняется в PDF и присоединяется к мейлу для заказчика), приходится "картинки" печатей и сканы подписей хранить в обработке - кто хочешь открывай, копируй и т.д.
Теперь же, я могу их хранить где-нибудь в укромном месте в виде текста - фиг найдете, где они спрятаны и как их получить.
И самая главная проблема - это можно делать во внешней печатной форме, но нельзя во встроенной - картинки добавятся в библиотеку конфигурации и затрутся при очередном обновлении.
Тоже самое с картинками на форме.
Вот бесплатная загрузка курсов валют с сайта РБК во всех конфигурациях 1С:

Видите логотип в верхнем левом углу?
Он сохранен в библиотеке картинок внутри конфигурации.
Вот она:

Все обновления типовых конфигураций переводят загрузку на новую обработку, чтобы сделать ее платной и брать деньги за загрузку денег.
Вот это убожество:


Чтобы не вводить пользователей в необходимость платить за воздух и послать на фиг все эти прокладки (1С и РБК), мною была выложена бесплатная обработка для бесплатной загрузки курсов с сайта ЦБ.

Она входит в том числе НЭБО (новая эра без обновлений), если кто пропустил.
https://blogs.klerk.ru/users/1911762/post175776/
Чтобы "заткнуть" платные обработки так, чтобы пользователь ничего не замечал и обновления не затирали мою бесплатную, нужно их добавить в конфигурацию, а не использовать как внешние.
И тут опять проблема с логотипом в левом верхнем углу: если я просто положу картинку на форму, то ее придется добавить в библиотеку. Первое же типовое обновление его затрет.
Поэтому мне приходится для #красотыудачи делать обработку с пустой картинкой

При открытии, обработка скачивает с моего сайта картинку и загружает ее в пустое место на макете.
Муторно и хлопотно.
Причем, нашелся-таки один (единственный пока) поганый комп у кого-то из клиентов, на котором админ-дегенерат так права пользователя зарезал, что прав на просмотр скаченной картинки не хватает.
Зато теперь я могу их (картинки) и иконки кнопок хранить прямо в обработке в текстовом виде.
Вот что ОЗОН животворящий делает!!!
Еще одно применение - стороннее приложение, компонента или библиотека (библиотека - *.dll - в виндоусе - это тоже приложение, но оно не имеет пользовательского интерфейса, у него нет "окна", оно работает "за кадром").
Иногда приходится использовать (запускать) другие приложения прямо из 1С. Например: zip-архиватор. Он по большому счету нужен в любой рег.отчетности - если сформированный xml-файл очень большой, его по правилам нужно архивировать для того чтобы сдать или отправить в ИФНС. Но у самого движка 1С такой доступной функции нет. Поэтому, например, в последних комплектах квартальной отчетности добавлена специальная zip-утилита от моей любимой фирмы Папук. Причем, в коде они даже не проверяют есть она там или нет, т.е. падение 1С и некорректная работа практически гарантирована разработчиком.
А я могу нужный мне софт закодировать в текст и сохранить его в самой обработке, а когда он понадобится, я его декодирую (превращу в экзешник) в папке временных файлов, запущу, он отработает все, что надо и я его после этого удалю в корзину.
Сейчас, если вы почитаете руководство пользователя, там написано куда, в какую папку нужно переписать эти файлы внешних приложений и компонент, но, во-первых: кто их читает эти руководства(?), ну, признайтесь - никто и никогда, а потом нужно все-таки где-то их брать чтобы скопировать, на копирование могут быть ограничены системные права и т.д. и т.п.
Мой вариант не требует со стороны пользователя никаких действий, все свое я приношу вам с собой. Не благодарите ...
На злобу дня.
Я могу сделать генератор ответов на запросы ФНС полностью автоматическим.
Для этого добавлю документам реализация новый реквизит с типом безразмерная строка. Показывать в форме его не буду, изменять не дам. Тоже самое в справочниках, например, Договоры.
После отгрузки при помощи специальной обработки бумажные документы сканируются, сканы кодируются в строку base64 и записываются в этот реквизит.
Таким образом сканы можно хранить в базе.
При поступлении запроса нужно будет выбрать контрагента и период и все сканы автомат запихнет в один pdf.
Как тебе такое, Мишустин?
Открыть оригинал изображения (640x852, 389.91 Кб)
Еще одна острая потребность - вспомогательные обработки.
Например, практически у каждого рег. отчета из состава квартальной отчетности есть (и, как правило, несколько) вспомогательные обработки, которые вызываются из основной. Многие из них даже не открываются пользователю и вы их не видите, но они есть и их много.
Прежде всего, это обработки заполнения.
Дело в том, что эти отчеты универсальные, т.е. работают в разных типовых конфигурациях. И при использовании встроенных процедур и функций конфигурации (т.н. Глобального модуля) возникает проблема - в разных конфигурациях вызов одной и той же процедуры может быть с разными параметрами. Поэтому использовать такой вызов в одном отчете/обработке нельзя - она будет вылетать при запуске с синтаксической ошибкой, причем во всех базах.
Другая необходимость - дополнительная форма. У отчета есть только одна форма, а очень часто нужно вывести пользователю другую форму поверх исходной. Например, ввод адреса из адресного классификатора. Или вот в Декларации по НДС есть много "составных" полей, которые к тому же должны формироваться по специальным правилам, например: "номер СФ", потом символ ";" потом "дата СФ" в определенном формате, таких значений в одном поле может быть несколько (сколько угодно) и они должны быть разделены символом ",".
Для каждого такого случая делаются отдельные обработки, которые лежат там же в папке реготчетов RpГГqК.grp.
Так вот, в случае, если вам нужны вспомогательные обработки для вашего отчета/обработки/документа/справочника и т.д., их можно хранить прямо в самой исходной обработке в виде текста, а при вызове на лету их декодировать в нормальный вид во временную папку, штатно запускать, а после использования все временное также программно удалять.
И не надо будет, во-первых, разбрасывать все время кучи этих вспомогательных обработок в папки с основной, а, во-вторых, не надо думать, есть ли где-то нужная обработка или нет - она всегда в наличии...
Yes!
Есть первый клиент для моего ноухау!
Сканы оригиналов документов отгрузки и договоры будут храниться в документах и в справочнике в базе.
Подборка документов за период будет формироваться автоматически.
Будет использоваться в двух ситуациях, которые сейчас отнимают очень много времени:
- формирование ответов по встречкам и
- для подтверждения нулевой ставки НДС при экспорте.
По плану, весь пакет документов можно будет получить одним нажатием кнопки.
В понедельник начну делать.
В предвкушении успеха жутко чешутся руки ...
Статейку напишу про эту технологию.
Надо только методу название придумать.
Есть у кого идеи?
- Принцип ДекодеРулит
- Техника КодеРулирования
- Мысль в строке абракадабры
- Смысл хаоса текста
 

Подтвердите удаление записи