Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: Пиит от 02 апреля 2024, 13:02

Название: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 13:02
Доброго здоровья, Алексей Леонидович!
Если есть в Сервисе возможность получить внешний модуль, насколько трудоемко получить модуль встроенной обработки?
Перекопал все алсы по 1спп, но так и не нашел возможности создать ВыполняемыйМодуль на основе модуля конфигурации, а реализация объектов на внешних файлах имхо есть моветон.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 13:21
Теоретически есть РасширениеФормы.ТекстМодуля.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 14:29
Цитата: item от 02 апреля 2024, 13:02Если есть в Сервисе возможность получить внешний модуль, насколько трудоемко получить модуль встроенной обработки?
Можете получить так.
В текущем отчёте открываете диалоговую форму, содержащюю требуемый модуль.
В ней при открытии формексом получаете текст модуля и сохраняете её.
И отрабатываете СтатусВозврата(0);

Код типа:

 ФормаРасш        = СоздатьОбъект( "РасширениеФормы" );
 ФормаРасш.УстановитьФорму( Форма );

 Конт             = Форма.Параметр;                        // Получить список параметров

 Получаете и сохраняете текст модуля

 СтатусВозврата(0);


Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 14:33
Цитата: АЛьФ от 02 апреля 2024, 13:21Теоретически есть РасширениеФормы.ТекстМодуля.

Ну, в общем выкрутил, вернул текст модуля ПриОткрытии через гл.переменную,
потому как ВыполняемыйМодуль таки не дружит с Формой и Параметром, и не хочет такой текст потом компилировать.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 14:34
Цитата: Forum123 от 02 апреля 2024, 14:29Код типа:

Всё так, только вот так:

РасшФормы = СоздатьОбъект("РасширениеФормы");
глТекстМодуля = РасшФормы.ТекстМодуля;
СтатусВозврата(0);
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 14:38
Цитата: item от 02 апреля 2024, 14:34Всё так, только вот так:
Вот и чудненько!

А зачем сохранять в глобальную переменную?
В контексте основного модуля в какую-нибудь переменную сохраняйте.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 14:42
Имхо, весь функционал ВыполняемыйМодуль должен быть в формексе, а не в iсpp.
Концепцию ООП он там нарушает, как бельмо, а к формексу пристегнулся бы, как родной.
И не путали бы почитатели в своих хотелках формы с модулями.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 14:45
Цитата: item от 02 апреля 2024, 14:42И не путали бы почитатели в своих хотелках формы с модулями.
А что это за кнопка "Понравилось".
Для чего она?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 14:46
Цитата: Forum123 от 02 апреля 2024, 14:38А зачем сохранять в глобальную переменную?
В контексте основного модуля в какую-нибудь переменную сохраняйте.

"Галя, я не выкупаю."
И чево потом? Где создать ВыполняемыйМодуль? В модуле обработки? И зарекурсировать его окончательно?

Задача у меня простая, создать коллекцию объектов, разгрузив глобальный модуль.

Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 14:49
Цитата: item от 02 апреля 2024, 14:46И чево потом? Где создать ВыполняемыйМодуль? В модуле обработки? И зарекурсировать его окончательно?
Не так.
Из полученного исходника берёте текст требуемых функций и динамически добавляете в контекст модуля.
И используете!
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 14:49
Цитата: item от 02 апреля 2024, 14:46
Цитата: Forum123 от 02 апреля 2024, 14:38А зачем сохранять в глобальную переменную?
В контексте основного модуля в какую-нибудь переменную сохраняйте.

"Галя, я не выкупаю."
И чево потом? Где создать ВыполняемыйМодуль? В модуле обработки? И зарекурсировать его окончательно?

Задача у меня простая, создать коллекцию объектов, разгрузив глобальный модуль.



Почему тогда не дополнительные глобальники, а выполняемый модуль?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 14:51
Цитата: Forum123 от 02 апреля 2024, 14:49
Цитата: item от 02 апреля 2024, 14:46И чево потом? Где создать ВыполняемыйМодуль? В модуле обработки? И зарекурсировать его окончательно?
Не так.
Из полученного исходника берёте текст требуемых функций и динамически добавляете в контекст модуля.
И используете!


Каким образом?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 14:53
Цитата: item от 02 апреля 2024, 14:46Задача у меня простая, создать коллекцию объектов, разгрузив глобальный модуль.
Почему тогда не классы? Они прекрасно живут и в составе md.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 14:53
Цитата: АЛьФ от 02 апреля 2024, 14:51Каким образом?
1cpp позволяет в конекст модуля добавлять динамически новые процедуры и функции.
Доступ к ним через "Конт.".
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 14:56
Цитата: Forum123 от 02 апреля 2024, 14:53
Цитата: АЛьФ от 02 апреля 2024, 14:51Каким образом?
1cpp позволяет в конекст модуля добавлять динамически новые процедуры и функции.
Доступ к ним через "Конт.".
Каким образом?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 14:57
Цитата: АЛьФ от 02 апреля 2024, 14:56Каким образом?
Класс ВыполняемыйМодуль / ExecuteModule

УстановитьМодуль / AssignSource Устанавливает текст модуля на выполнение.
...
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 14:59
Цитата: Forum123 от 02 апреля 2024, 14:57
Цитата: АЛьФ от 02 апреля 2024, 14:56Каким образом?
Класс ВыполняемыйМодуль / ExecuteModule
И как с помощью этого класса добавить динамически в модуль новые процедуры и функции?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 15:00
Цитата: АЛьФ от 02 апреля 2024, 14:49Почему тогда не дополнительные глобальники, а выполняемый модуль?

Что-то можно и в глобальные модули, и даже правильнее будет так, вопросов нет.
А ВыполняемыйМодуль в том случае, когда нужно завернуть в объект, с переменными и тд.
Без классов и прочего ООП, попроще, как в восьмерке типа.

Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:01
Цитата: item от 02 апреля 2024, 14:42Имхо, весь функционал ВыполняемыйМодуль должен быть в формексе, а не в iсpp.
Концепцию ООП он там нарушает, как бельмо, а к формексу пристегнулся бы, как родной.
И не путали бы почитатели в своих хотелках формы с модулями.

FormEx как бы намекает на то что это расширение форм, ну а в 1с++ всякого разного много натыкано.
А Классы и  ВыполняемыйМодуль выполняют примерно идентичные задачи, так что совсем не место этому в  FormEx. Да и кто же нынче будет это перетаскивать? Тем более что многочисленные попытки собрать 1с++ не увенчались успехом.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:04
Можно скомуниздить код из 1с++ ModuleString.cpp CModuleString::LoadModuleFromMD там кода кот наплакал...
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:05
Назначаем исходник, компилируем и используем.

   ВыполняемыйМодуль01 = СоздатьОбъект( "ВыполняемыйМодуль" );
 
   ВыполняемыйМодуль01.НазначитьКонтекст( КонтОбъекта );

     глВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(
      Конт,
      VpНаимФункции,
      спСписок
     );

// --- Если вызываем процедуру или функцию
//
    if  ( VpTypeFormul <> -1 )  Then

     глВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(
      Конт,
      VpНаимФункции,
      спСписок
     );

    endif;

// --- Если просто выражение
//
    if  VpTypeFormul = -1  Then

     глВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(
      Конт,
      FormulaWWW,
      спСписок
     );

    endif;

   endif;                                                  // if  2 = 2  Then

  endif;                                                   // if  ПустоеЗначение( ИмяПоляWWW ) = 0  Then

Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:06
Цитата: Djelf от 02 апреля 2024, 15:04Можно скомуниздить код из 1с++ ModuleString.cpp CModuleString::LoadModuleFromMD там кода кот наплакал...
Non problem.
Код не сложный.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 15:14
Цитата: Forum123 от 02 апреля 2024, 15:05Назначаем исходник, компилируем и используем.

   ВыполняемыйМодуль01 = СоздатьОбъект( "ВыполняемыйМодуль" );
 
   ВыполняемыйМодуль01.НазначитьКонтекст( КонтОбъекта );

     глВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(
      Конт,
      VpНаимФункции,
      спСписок
     );




Это создание нового модуля, а не добавление новых функций и процедур в существующий.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 15:15
Цитата: Djelf от 02 апреля 2024, 15:04Можно скомуниздить код из 1с++ ModuleString.cpp CModuleString::LoadModuleFromMD там кода кот наплакал...
Не вижу смысла тянуть этот код. Дорабатывать и расширять там вроде нечего, со своими задачами он и в нынешнем виде  составе 1С++ справляется.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 15:17
Цитата: Djelf от 02 апреля 2024, 14:53Почему тогда не классы? Они прекрасно живут и в составе md.
Классы, согласитесь, чуть сложнее в описании и прочем.
Я думаю, что 90% написанных сообществом классов не имеет наследников и применяется исключительно для красоты кода, по сути как ВыполняемыйМодуль.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:21
Цитата: АЛьФ от 02 апреля 2024, 15:14Это создание нового модуля, а не добавление новых функций и процедур в существующий.
НазначитьКонтекст / AssignContext Устанавливает контекст модуля.
УстановитьМодуль(стрТекстМодуля)
КомпилироватьМодуль / Compile Компилирует модуль, установленный с помощью метода УстановитьМодуль.
ВыполнитьМодуль / Execute Выполняет модуль, установленный с помощью метода УстановитьМодуль и откомпилированный методом КомпилироватьМодуль.

Самое главное, что функция выполняется в контексте текущего модуля и может использовать все переменные и функции.

Кстати 1С 7.7 легко интегрируется с Net и из нёё можно много функционала использовать.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 15:25
Цитата: Djelf от 02 апреля 2024, 15:01FormEx как бы намекает на то что это расширение форм, ну а в 1с++ всякого разного много натыкано.
А Классы и  ВыполняемыйМодуль выполняют примерно идентичные задачи, так что совсем не место этому в  FormEx...

Формекс тоже был в составе 1с++ ))
И сейчас обе компоненты кое-где пересекаются друг с другом, и как мы видим, не могу друг без друга.
Есть ведь в формексе события, глобальные модули и ВыполнитьПроцедуру, а это немного не про формы.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:28
Цитата: item от 02 апреля 2024, 15:25Формекс тоже был в составе 1с++ ))
Тогда лучше не в формекс добавлять, а новую ВК разработать, которая полностью заменит formex и 1cpp.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:29
Цитата: АЛьФ от 02 апреля 2024, 15:15Не вижу смысла тянуть этот код. Дорабатывать и расширять там вроде нечего, со своими задачами он и в нынешнем виде  составе 1С++ справляется.
Если был бы доступ из кода 1С то да, но такого метода нет.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 15:29
Цитата: Forum123 от 02 апреля 2024, 15:28
Цитата: item от 02 апреля 2024, 15:25Формекс тоже был в составе 1с++ ))
Тогда лучше не в формекс добавлять, а новую ВК разработать, которая полностью заменит formex и 1cpp.


Да, да, только в сутках 24 часа... ))
Дружище, когда мы уже пощупаем Ваше API ?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:30
Цитата: Forum123 от 02 апреля 2024, 15:28Тогда лучше не в формекс добавлять, а новую ВК разработать, которая полностью заменит formex и 1cpp.
А еще лучше на gcc, Мама, роди меня обратно...
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 15:33
Цитата: Djelf от 02 апреля 2024, 15:29
Цитата: АЛьФ от 02 апреля 2024, 15:15Не вижу смысла тянуть этот код. Дорабатывать и расширять там вроде нечего, со своими задачами он и в нынешнем виде  составе 1С++ справляется.
Если был бы доступ из кода 1С то да, но такого метода нет.
Не уловил что значит "доступ из кода 1С".
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:36
Цитата: Djelf от 02 апреля 2024, 15:30А еще лучше на gcc, Мама, роди меня обратно...
Уже разработал возможность грузить в memory метаданные и данные любой конфигурации (и системные таблицы).
С ними можно работать!
Но в 1001 раз акцентирую, что это не 1С (в других тредах немного рассказывал о сути разработки).
Метаданные и данные загружаются в дерево!

Как на хабре всё красиво.
Есть единомышленники, коллективы, ...
В жизни хорошо если на три буквы не пошлют.
И за это спасибо и весьма радует!
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:46
Цитата: АЛьФ от 02 апреля 2024, 15:33Не уловил что значит "доступ из кода 1С".
Если мы загрузили форму, то у нас есть полный доступ, а если мы не открыли форму то и доступа нет.
ТС хочет выудить код формы без открытия самой формы и этот код есть в 1с++.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:49
Цитата: Forum123 от 02 апреля 2024, 15:36Как на хабре всё красиво.
Может просто банят оперативно?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:52
Цитата: Djelf от 02 апреля 2024, 15:49Может просто банят оперативно?
У меня на нём никогда аккаунта не было.

Программисты всех других программистов считают дураками.
Это аксиома!
Так что в шестую палату наведываться нет никакого желания.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Djelf от 02 апреля 2024, 15:53
Да не тебя же, тебя то зачем? Токсичных постеров...
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 15:56
Цитата: Djelf от 02 апреля 2024, 15:53Да не тебя же, тебя то зачем? Токсичных постеров...
На хабре неадекватов много.

О разработках лучше ничего не говорить.
Такова селяви не только у меня.

Если кто расковыряет mxl 1С 8.x, то обещаю для семёрки его реализовать.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 16:03
Цитата: Djelf от 02 апреля 2024, 15:46...ТС хочет выудить код формы без открытия самой формы и этот код есть в 1с++

Это да, именно так, моргать фокусом ПриНачалеРаботыСистемы это не наш метод.
И в 1с++ я такого не нашел.


Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 16:12
Цитата: Djelf от 02 апреля 2024, 15:46
Цитата: АЛьФ от 02 апреля 2024, 15:33Не уловил что значит "доступ из кода 1С".
Если мы загрузили форму, то у нас есть полный доступ, а если мы не открыли форму то и доступа нет.
ТС хочет выудить код формы без открытия самой формы и этот код есть в 1с++.
Аааа... Ну, это я добавлю.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: alyuev от 02 апреля 2024, 17:09
Цитата: АЛьФ от 02 апреля 2024, 14:59
Цитата: Forum123 от 02 апреля 2024, 14:57
Цитата: АЛьФ от 02 апреля 2024, 14:56Каким образом?
Класс ВыполняемыйМодуль / ExecuteModule
И как с помощью этого класса добавить динамически в модуль новые процедуры и функции?

Ну, как бы так:
л_ВМ.УстановитьМодуль(ТекстМодуля);
л_ВМ.НазначитьКонтекст(Конт);
л_ВМ.КомпилироватьИВыполнитьМодуль();

Я так добавляю налету кнопки на ActiveX. Если у кнопки есть Идентификатор - создаю виртуальную (ТекстМодуля) процедуру, которая инициализирует класс-обработчик и саму ActiveX кнопку на форме.

Вот тут выкладывал - https://www.1cpp.ru/forum/YaBB.pl?num=1351073387/0#0
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 17:13
Цитата: АЛьФ от 02 апреля 2024, 16:12Аааа... Ну, это я добавлю

Вот, и глобальные модули могут заиграть по-другому, с идентификатором аля 8.
Одновременно с подключением доп.гл.модуля, можно обернуть его же в ВыполняемыйМодуль,
присвоив глобальной переменной - МойМодуль.

Ну, и далее два способа, хошь - МойМодуль.МойМетод() и МойМодуль.МояПерем, а хошь,
напрямую - МойМетод() и МояПерем.


Конечно, события остаются за глобальными модулями.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 18:57
Цитата: АЛьФ от 02 апреля 2024, 16:12Ну, это я добавлю.
Извиняюсь за вопрос, так как не знаю всех новшеств формекс.
Динамическая загрузка диалогвых форм реализована?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 02 апреля 2024, 19:03
Цитата: item от 02 апреля 2024, 17:13Вот, и глобальные модули могут заиграть по-другому, с идентификатором аля 8.
Много чего можно  и нужн в 1С 7.7 реализовать как в 1С 8.x.
Многое можно и много удобней сделать (уже рассказывал в других тредах).
Такого рода функционал фирма 1С не скоро реализует.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 02 апреля 2024, 19:26
Цитата: Forum123 от 02 апреля 2024, 19:03Много чего можно  и нужн в 1С 7.7 реализовать как в 1С 8.x.

Огласите весь список, пжалуйста.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 20:03
Цитата: Forum123 от 02 апреля 2024, 18:57
Цитата: АЛьФ от 02 апреля 2024, 16:12Ну, это я добавлю.
Извиняюсь за вопрос, так как не знаю всех новшеств формекс.
Динамическая загрузка диалогвых форм реализована?

Есть только ПриЗагрузкеМодуляФормы и ПриЗагрузкеФормы, в которых можно подменить адрес внутри md, откуда грузится модуль или форма. Для остального есть TurboMD.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: 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 конечно.



Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: АЛьФ от 02 апреля 2024, 21:16
Цитата: 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 конечно.


Так где это можно скачать и посмотреть?
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Злоп от 02 апреля 2024, 23:20
Цитата: Forum123 от 02 апреля 2024, 19:03Много чего можно  и нужн в 1С 7.7 реализовать как в 1С 8.x.
- только не нумеровать 10 элементов от 0 до 9...
!!!
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Forum123 от 03 апреля 2024, 07:57
Цитата: АЛьФ от 02 апреля 2024, 21:16ак где это можно скачать и посмотреть?
В отпусках буду вести разработку хранилища ресурсов.
Самое главное то, что в нём будут находится фонты.
При этом будут метаданные о их назначении.

Зачем это?

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

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

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

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

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

За два месяца 100% всё API не разработаю конечно.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: alyuev от 04 апреля 2024, 17:44
Кстати, по доп-глобальникам я использую внутреннюю обработку. Например, с названием МодульПочты

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

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

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

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

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


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

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

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

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

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


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


А доп глобальники (и доп события) я использую от упомянутого Wirth'а из его V7Crypt. Там всё с некоторыми ограничениями, например, события формекса в доп глобальники не транслируется.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 05 апреля 2024, 16:54
Цитата: Arbuz от 05 апреля 2024, 16:30Не понятно в чём претензия. Любую переменную (вне парадигмы ООП, оно тут вообще каким боком?) всегда можно "случайно" затереть и что? 

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

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

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



Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: alyuev от 08 апреля 2024, 13:50
Цитата: Arbuz от 05 апреля 2024, 16:30А что, так можно было!? Как-то я пропустил это вот ЗагрузитьОписаниеКлассов... и мучился.

Я это стал использовать, когда решили разделить классы внутренние (для клиентов) и внешние (для себя). Для себя внешние - чтобы проще и быстрее было отлаживать. Всё же внешняя обработка, а не целый MD-шник. Обновил, закинул куда надо, перегрузил налету классы - и можно тестировать/работать.
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: alyuev от 08 апреля 2024, 13:50
//**************************************************************************//*
//Это для того, чтобы можно было обновлять класс и не перезаходить ********//*
миф = СоздатьОбъект("MetaInfoClasses"); //*
миф.ОчиститьДанныеОптимизацииКлассов(); //*
//**************************************************************************//*
Название: Re: Хотелка: Сервис.ПолучитьМодульОбработки(<ИмяОбработки>)
Отправлено: Пиит от 11 апреля 2024, 13:07
Добавлю здесь, что нехитрым способом обманул компилятор ВыполняемогоМодуля,
который испытывает сильную неприязнь к Форме и ее атрибутам.
Таки обработку вполне можно использовать по прямому назначению, не только как хранилище,
если обращаться в модуле к реквизитам формы через собственный контекст,
через Перем Конт = глВзятьКонтекст(Контекст).
Пригодится, например, для интерактивного управления заключенного в обработку Объекта,
и не нужно будет плодить дополнительных Обработок.