gifts2017

Недокументированное использование стандартной обработки "Все функции"

Опубликовал Сергей Рудаков (fishca) в раздел Программирование - Практика программирования

Недокументированное использование стандартной обработки "Все функции"

О том, что некоторые платформенные действия реализованы через внешние обработки, знают уже практически все.

Начало было положено на сайте небезызвестного Снегопата

Далее была публикация Карук Евгении.

"Платформенная обработка ""Все функции"""

В результате, вооружившись почерпнутыми знаниями у старших товарищей, я получил вот такую картинку:

 

И это не фотошоп :) ;)

Для этого всего-то потребуются утилиты, входящие в пакет ICU (http://site.icu-project.org/download)

derb -d unpuck -i . файл_ресурсов.res - распаковка в текстовый файл "файл_ресурсов.txt"

На скриншоте показана внешняя обработка добавленная в файл ресурсов

Для того, чтобы эта обработка могла быть запущена, необходимо подправить код обработки "Все функции"

Код обработки можно найти в форме обработки, которая также представлена на этом же ресурсе

Код обработки можно получить обычным текстовым редактором, например

Далее выполняем

genrb -s unpuck -d unpuck -i . файл_ресурсов.txt - получаем в каталоге unpuck файлик файл_ресурсов.res

Остается положить этот файлик в каталог C:\Program Files (x86)\1cv8\8.3.8.2027\bin платформы, чьи ресурсы мы изменяли и получить в результате:

Далее можно найти применение в корпоративной среде через создание своего дистрибутива платформы со встроенными дополнительными обработками.

Было бы вообще идеальным вариантом, если бы 1С дала возможность использования своих ресурсов, а не только редактирования существующих.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Роман Ложкин (webester) 27.08.16 06:31
Привычное и очевидное нытье про пункт в лицензионном соглашении о запрете на анализ и декомпиляцию, исполняемых файлов и ресурсов программы(ну или как то так) и про то, что вы пират молодой человек :) А так да, уже было и про подмену иконки рабочего стола и что то еще не помню уже. Все это теряет смысл, как только тебе надо обслуживать парк из чуть больше чем 10машин у которых еще и платформа регулярно обновляется. Если же, ты в состоянии сделать столько приседаний, для включения обработок в дистрибутив платформы и в поддерживание всего этого в рабочем виде, то тут проще засунуть обработку в нужное место в интерфейсе :)
ABudnikov; for-elenak; fishca; mant; Новиков; CSiER; shalimski; ZOMI; Danila-Master; +9 Ответить 1
2. борян петров (TODD22) 27.08.16 08:20
А в чём профит? Нужно столько телодвижений что бы просто добавить обработку....
3. Сергей Рудаков (fishca) 27.08.16 11:10
(1) webester, в этих ресурсах лежат не только обработки, но также и формы: управляемые .lf и обычные .f
управляемую, по крайней мере, можно вытянуть с помощью v8unpak и пощупать ручками ;) - а это можно было бы при желании использовать как репозиторий обработок для повторного использования.
(2) TODD22, http://infostart.ru/public/154077/ - вот здесь можно было обойтись и редактированием ресурсов
в холдинге может быть очень много разных конфигураций - баз еще больше, а платформа одна и вот в нее можно вшить свои универсальные внутрикорпоративные вещи, жаль только это не разрешено официально
4. Mo (Uplomb) 28.08.16 19:54
Полезная информация.
Очень хорошо, что она изложена доступно и понятно.
Автору - Огромное Спасибо!
5. Сергей Рудаков (fishca) 29.08.16 10:32
Первое что я бы "зашил" в платформу это Инструменты разработчика от Старых Сергея!
olgerd666; xavi; ABudnikov; necropunk; +4 Ответить
6. Serg (serg_infostart) 30.08.16 11:37
В эти пункты никто кроме программистов и консультантов не лазит. Ну может какие-то "продвинутые" юзеры.
Все функции доступные пользователям должны располагаться в соответствующих подсистемах.
Если только для себя что-то разместить, чтоб не искать... Но тоже не понятно, что именно. Есть ведь доп.обработки из БСП.

Статья интересная, но я пока не могу придумать, как бы я смог ее применить. Плюсанул, чтобы не потерять.
7. Сергей Рудаков (fishca) 30.08.16 14:11
И чтобы не потеряться еще добавим ссылок: Недокументированное использование стандартных форм
За что автору жирный плюс!
8. Ivan Lapin (YLioY) 30.08.16 18:02
А можно поподробней , или помочь , что я делаю не так ? Как с помощью утилиты распаковать в txt , а потом назад. Я скачал (icu4c-57_1-Win32-msvc10) , дальше в командню строку ввел (D:\1C\Files\ForAll\Standard_Forms_and_processing\ICU_4C\icu4c-5
7_1-Win32-msvc10\icu\bin\derb -d "C:\Program Files (x86)\1cv8\8.3.8.1652\bin\mng
base_root.res" unpuck -i ."D:\1C\Files\ForAll\Standard_Forms_and_processing\Stan
dart_Forms\SC\8_3_8_1652\test.txt" ) и получил ошибку "derb: error 2 while opening resource file: U_MISSING_RESOURCE_ERROR " .

Пробовал разные варианты C:\Users\I.lapin>D:\1C\Files\ForAll\Standard_Forms_and_processing\ICU_4C\icu4c-5
7_1-Win32-msvc10\icu\bin\derb -d unpuck -i "C:\Program Files (x86)\1cv8\8.3.8.16
52\bin\mngbase_root.res" "D:\1C\Files\ForAll\Standard_Forms_and_processing\Stand
art_Forms\SC\8_3_8_1652\file_res.txt"
9. Сергей Рудаков (fishca) 30.08.16 19:46
1. Запускаю в каталоге, где находится derb
derb -d unpuck -i . mngbase_root.res - в каталоге unpuck - появляется файл mngbase_root.txt
Лучше утилиты вынести в отдельную папку и там уже экспериментировать.
mngbase_root.res - лежит также в каталоге где derb
10. Олег Трубачеев (trubacheev) 31.08.16 15:25
1. Скачал icu
2. Скопировал в папку с icu файл mngbase_ru.res
3. запустил команду derb -d unpuck -i . mngbase_ru.res - в результате получил файл unpack\mngbase_ru.txt - все хорошо
4. далее просто пытаюсь выполнить команду (даже не модифицируя файл mngbase_ru.txt): genrb -s unpuck -d unpuck -i . mngbase_ru.txt и получаю ошибку:
unpuck\mngbase_ru.txt:568: warning: Mixing quoted and unquoted strings
unpuck\mngbase_ru.txt:569: warning: Mixing quoted and unquoted strings
unpuck\mngbase_ru.txt:570: warning: Mixing quoted and unquoted strings
unpuck\mngbase_ru.txt:571: warning: Mixing quoted and unquoted strings
unpuck\mngbase_ru.txt:526: invariant characters required for table keys
unpuck\mngbase_ru.txt:421: parse error. Stopped parsing resource with U_INVALID_FORMAT_ERROR
couldn't parse the file mngbase_ru.txt. Error:U_INVALID_FORMAT_ERROR

что я делаю не так?
Спасибо
11. Ivan Lapin (YLioY) 31.08.16 15:45
Спасибо заработало . Еще один вопрос , какой файл res нужно изменять mngbase_root , mngbase_ru или может другой (там их вроде несколько ) , а то я взял mngbase_root поменял код обработки Help , поставил отказ при открытии и возврат , все сработало , поместил вместо основного файла , а результата нету , потом взял все тоже самое пробывал с mngbase_ru но он даже без изменений не хотел собираться назад с txt файла. Да и папку unpuck я не сразу сообразил создать , так как сама она не создавалась. Обработку перед этим я открывал визуально http://prntscr.com/cchq26 , так что вроде таже только все на английском.
12. Сергей Рудаков (fishca) 01.09.16 09:09
(10) trubacheev, у меня получилось собрать ресурсный файл только заменив двойные кавычки на одинарные, исправлять надо начиная с 421 строки полученного текстового файла.
Насколько это правильно и как скажется на работоспособности платформы не могу сказать, т.к. не проводил такой эксперимент.
(11) YLioY, mngbase_root - английская версия , mngbase_ru - русская версия ресурсов, ресурсный файл не собирается из-за смешения одинарных и двойных кавычек, если я правильно понял.
trubacheev; +1 Ответить
13. Максим Жохов (ZhokhovM) 19.09.16 12:11
(7) fishca, о, спасибо, что напомнил меня)))
14. Сергей Рудаков (fishca) 19.10.16 10:31
На сайте ИТС 1С двинулась в сторону локализации ресурсов https://its.1c.ru/db/metod8dev#content:5864:hdoc
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа