Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)

Автор Пиит, 02 апреля 2024, 13:02

« назад - далее »

АЛьФ

Цитата: Forum123 от 02 апреля 2024, 18:57
Цитата: АЛьФ от 02 апреля 2024, 16:12Ну, это я добавлю.
Извиняюсь за вопрос, так как не знаю всех новшеств формекс.
Динамическая загрузка диалогвых форм реализована?

Есть только ПриЗагрузкеМодуляФормы и ПриЗагрузкеФормы, в которых можно подменить адрес внутри md, откуда грузится модуль или форма. Для остального есть TurboMD.

Forum123

Цитата: item от 02 апреля 2024, 19:26Огласите весь список, пжалуйста.
Народ распугать?
Понемножку.
-  mxl а-ля 8.x - обещаю реализовать (если кто-нибудь напишет мануал по устройству меданных);
                         Для 1С 7.7 уже API разработано, можно использовать в любом ЯП и конечно в 1С 7.7

-  создание объектов любой сложности на основании методанных и поддержка C++ структур.
  У меня уже это реализовано.

Это мой пяточок.

Это API можно будет использовать в любом ЯП и 1С 7.7 конечно.




АЛьФ

Цитата: Forum123 от 02 апреля 2024, 20:05
Цитата: item от 02 апреля 2024, 19:26Огласите весь список, пжалуйста.
Народ распугать?
Понемножку.
-  mxl а-ля 8.x - обещаю реализовать (если кто-нибудь напишет мануал по устройству меданных);
                         Для 1С 7.7 уже API разработано, можно использовать в любом ЯП и конечно в 1С 7.7

-  создание объектов любой сложности на основании методанных и поддержка C++ структур.
  У меня уже это реализовано.

Это мой пяточок.

Это API можно будет использовать в любом ЯП и 1С 7.7 конечно.


Так где это можно скачать и посмотреть?

Злоп

Цитата: Forum123 от 02 апреля 2024, 19:03Много чего можно  и нужн в 1С 7.7 реализовать как в 1С 8.x.
- только не нумеровать 10 элементов от 0 до 9...
!!!

Forum123

Цитата: АЛьФ от 02 апреля 2024, 21:16ак где это можно скачать и посмотреть?
В отпусках буду вести разработку хранилища ресурсов.
Самое главное то, что в нём будут находится фонты.
При этом будут метаданные о их назначении.

Зачем это?

Всё дело в том, что вот скажем имеются две ячейки в mxl используют скажем шрифт Times New Roman (Кириллический).
Так вот если во второй ячейки используется подчёркивание, то для корректной работы нужно использовать файл фонта, который позволяет подчёркивать символами.
Вообщем нюансы имеются.
Когда используем API MSDN, то Microsoft "прячет" от программиста все эти нюансы.
У меня ныне mxl может корректно использовать три вида шрифта.
Так вот ресурсный файл полностью решит эти проблемы.
Кроме этого в него можно будет поместить все метаданные 1С 7.7 и использовать.

На самом деле в хранилище ресурсов можно будет помещать данные любого типа и использовать (например библиотека книг).
Фишка в том, что API позволит пользователю создать такое хранилище, которое он считает удобным.

Хранилище ресурсов тщательно оттестирую и тогда уже опубликую ActiveX.

Sorry, ещё много чего нужно сделать.
А за API mxl не вру.
Корректно работает и тщательно оттестировано на сложных отчётах (в частности корректно работает c набором mxl Йокселя для тестирования).
Вообщем работает хорошо.


Forum123

Цитата: Forum123 от 03 апреля 2024, 07:57В отпусках буду вести разработку хранилища ресурсов.
Фирма 1С использовала конечно API Windows.
У меня не используются dll Windows.
Для шрифтов у меня свой форк freetype.
Постепенно добавляю в него своё API.
Конечно добавлю в freetype возможность использования хранилища ресурсов.

За два месяца 100% всё API не разработаю конечно.

alyuev

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

Далее в при старте системы

миф = СоздатьОбъект("MetaInfoClasses");
миф.ЗагрузитьОписаниеКлассов("//# класс ГлобальныйМодульПочты = МодульПочты@MD {};"); //Доп глобальник для функций почты.    Если инициализировать в Defcls, то КЗК перестанет его шифровать!!!

//И дальше объявляем глобальную переменную:
глМодульПочты    = СоздатьОбъект("ГлобальныйМодульПочты");

//И в нужном месте вызываю
Рез=глМодульПочты.ПодписьВПисьме(РусАнгл,Фрм1,ТекДолжн,ПочтАдресОтправителя,ОБъектВК);

При этом модуль внутренней обработки успешно шифруется КЗК2! И она является классом!
Единственное, что для нас неудобно - это функция Я() - у нас есть такая глобальная функция для перевода фраз на другой язык и в модуле обработке приходится вместо неё делать замену на язык().



Пиит

Цитата: alyuev от 04 апреля 2024, 17:44
миф = СоздатьОбъект("MetaInfoClasses");
миф.ЗагрузитьОписаниеКлассов("//# класс ГлобальныйМодульПочты = МодульПочты@MD {};");

Интересно, имеет право на жизнь.
А у меня в алсах и слов то таких нету. (версия 3.1.0.9)

Конечно, глМодульПочты нельзя назвать в полном смысле глобальным модулем.
Как и любой представитель любого класса, как и ВыполняемыйМодуль, это всего лишь удобная переменная, которую можно случайно затереть пустым значением "", и синтаксический анализ не поможет.


Arbuz

Цитата: alyuev от 04 апреля 2024, 17:44
миф = СоздатьОбъект("MetaInfoClasses");
миф.ЗагрузитьОписаниеКлассов("//# класс ГлобальныйМодульПочты = МодульПочты@MD {};");
А что, так можно было!? Как-то я пропустил это вот ЗагрузитьОписаниеКлассов... и мучился.

Цитата: item от 04 апреля 2024, 18:08...
Как и любой представитель любого класса, как и ВыполняемыйМодуль, это всего лишь удобная переменная, которую можно случайно затереть пустым значением "", и синтаксический анализ не поможет.


Не понятно в чём претензия. Любую переменную (вне парадигмы ООП, оно тут вообще каким боком?) всегда можно "случайно" затереть и что?


А доп глобальники (и доп события) я использую от упомянутого Wirth'а из его V7Crypt. Там всё с некоторыми ограничениями, например, события формекса в доп глобальники не транслируется.

Пиит

Цитата: Arbuz от 05 апреля 2024, 16:30Не понятно в чём претензия. Любую переменную (вне парадигмы ООП, оно тут вообще каким боком?) всегда можно "случайно" затереть и что? 

Какая же это претензия? Мы здесь два брата-акробата, нашли друг друга.
Делаем одно и то же разными способами. Не бузите.

Цитата: Arbuz от 05 апреля 2024, 16:30А доп глобальники (и доп события) я использую от упомянутого Wirth'а из его V7Crypt. Там всё с некоторыми ограничениями, например, события формекса в доп глобальники не транслируется.

У меня на версии V7Crypt_1.0.1.6 было всё плохо.
Два доп.глобальника, гмЧат и гмВебСервер, в итоге три раза срабатывает ПриЗавершенииРаботы, даже если его нету. ОбработкаВнешнегоСобытия должна быть в каждом, иначе Исключение, но это хрен с ним, всё поборол. Главное - не работает в них отладчик, вылетает нах.
Начал тестить ПриЗаписиДокумента(), пустое тело, так иногда, по неизвестным причинам, документ просто не хочет записываться, тыркаешь как пустую кнопку.
В общем, отложил в сторону.
Пичалька, эти события - те что надо события.




alyuev

Цитата: Arbuz от 05 апреля 2024, 16:30А что, так можно было!? Как-то я пропустил это вот ЗагрузитьОписаниеКлассов... и мучился.

Я это стал использовать, когда решили разделить классы внутренние (для клиентов) и внешние (для себя). Для себя внешние - чтобы проще и быстрее было отлаживать. Всё же внешняя обработка, а не целый MD-шник. Обновил, закинул куда надо, перегрузил налету классы - и можно тестировать/работать.

alyuev

//**************************************************************************//*
//Это для того, чтобы можно было обновлять класс и не перезаходить	********//*
	миф = СоздатьОбъект("MetaInfoClasses");									//*
	миф.ОчиститьДанныеОптимизацииКлассов();									//*
//**************************************************************************//*

Пиит

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