Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll

16.08.10

Разработка - Разработка внешних компонент

Восстанавливаю ранее опубликованную статью. Может кому пригодится...
Иногда очень хочется что-нибудь добавить в стандартную конфигурацию, но потом возникают проблемы, связанные с "затиранием" кода при обновлении. Каждый раз помнить где и что - напряжно.
При данном подходе в Глобальный Модуль добавляется всего одна (!) строчка

В Глобальный Модуль добавляем всего одну строчку:

Процедура ПриНачалеРаботыСистемы()
   
//....................................
   
ОткрытьФорму("Отчет",Контекст,КаталогИБ()+"СтартСистемы.ert");
КонецПроцедуры
// ПриНачалеРаботыСистемы()

Запускаемая при старте системы обработка  "СтартСистемы.ert":

Перем Путь,Имя;
Перем
лСервис; // местная
Процедура Сформировать()
   
// здесь процедуры, ктр. необходимо выполнить при входе ВСЕХ пользователей
   
РасположениеФайла(Путь,Имя);
    ФС.
УстТекКаталог(Путь);
   
лСервис.ДобавитьГлобальныйМодуль("#ЗагрузитьИзФайла ДопГМ.txt");
КонецПроцедуры

Процедура
СформироватьАвтопилот()
   
//-- тут можно написать что-то для режима автозапуска программы
    //-- например, стартануть обработку восстановления последовательности
КонецПроцедуры

Процедура
ПриОткрытии()
    ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+
"FormEx.dll");
   
// лСервис - локальный контекст, только для загрузки дополнительного Глобального Модуля
   
лСервис = СоздатьОбъект("Сервис");
   
Сформировать();
    Если ВРЕГ(ИмяПользователя())=
"AUTOPILOT" Тогда
       
СформироватьАвтопилот();
    КонецЕсли;
    СтатусВозврата(
0);
КонецПроцедуры


Примерный текст дополнительного Глобального модуля уже подгруженного formex

Перем Сервис Экспорт;
Перем
L Экспорт;
//-- любые другие глобальные переменные
Процедура ПослеОткрытия(Конт)
   
ФормаРасш = СоздатьОбъект("РасширениеФормы");
   
//-- да! забыл... тут лучше поставить блок попытка-исключение,
    //--а то ругается на список Констант
   
Попытка
       
ФормаРасш.УстановитьФорму(Конт.Форма);
    Исключение
        Возврат;
    КонецПопытки;
   
Тип=ФормаРасш.ТипОбъекта();
   
ПолныйТип=ФормаРасш.ПолныйТипОбъекта();
   
// -- далее полный простор для творчества
КонецПроцедуры

//------------------------------------------------------------------------------------------------
//-- в теле модуля - это фактически продолжение ПриНачалеРаботыСистемы()
Сервис= СоздатьОбъект("Сервис"); // это уже глобальная для всей системы
//-- грузим любые необходимые нам DLL
//-- или выполняем другие действия при старте системы
ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"MiracleV8.dll");
L=СоздатьОбъект("AddIn.MiracleClass");
L.RUS();
ТекстОкна=" Мой текст";
L.SetMainText(ТекстОкна);
L.SetMainIcon(КаталогИБ()+"Main.ico");


Преимущества подхода:

1. Всего одну строчку добавить в ГМ после обновления.

2. СтартСистемы.ert, и ДопГМ правятся "на лету", никого выгонять из базы не надо.

Изменения станут доступными пользователю после его перезахода в 1С

Недостаток:

При синтаксис-контроле система, естественно, не видит глобальные процедуры, функции и

переменные (например, при их вызове в отчете), объявленные в ДопГМ, и ругается.

 

См. также

Разработка внешних компонент Программист Платформа 1С v7.7 1C77 Абонемент ($m)

Компонента позволяет в среде 1С 7.7 генерировать двухмерный QR код из любого текста длиною до 1800 символов и сохранять его в файле BMP формата. Из файла он может быть загружен в объект 1С "Картинка".

1 стартмани

29.01.2025    188    0    mdbruyfn    4    

4

Разработка внешних компонент Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    5349    1    0    

3

Разработка внешних компонент WEB-интеграция Программист Платформа 1С v7.7 1C77 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно сначала послать несколько запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.

2000 руб.

27.05.2022    9136    23    17    

34

Разработка внешних компонент Программист Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    6332    2    19    

4

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v7.7 1C77 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    10177    14    softmaker    13    

5

Разработка внешних компонент Защита ПО и шифрование Программист Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9538    28    mdbruyfn    10    

9

Разработка внешних компонент Программист Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7694    7    mdbruyfn    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. fAngel 371 15.08.10 12:08 Сейчас в теме
а что мешает свой код в глобальники оставлять выделенным комментариями в конце глобальника тогда и искать процедуру ПриНачалеРаботыСистемы не придется и синтаксические ошибки можно проверить и никаких сюрпризов с ЗагрузитьИзФайла
2. Abadonna 3969 15.08.10 12:12 Сейчас в теме
(1) Ничего не мешает, но:
1. Надо искать различия в тексте :(
2. Надо народ выгонять, ежели надумаешь что-нибудь поменять (не обновление, а текущее изменение). А кто работал с толпой отмороженных юзверей числом в 50 человек знает как это не всегда просто.
А проигнорировать якобы ошибку, связанную с ДопГМ, какие проблемы?
Плюс к тому: знаю кучу народа, который активно уже пользует ДопГМ, и даже не один
3. Abadonna 3969 15.08.10 12:18 Сейчас в теме
Кстати, я очень активно использовал ЗагрузитьИзФайла и для модулей форм и проведения для особо часто меняемых документов/справочников. И никаких сюрпризов эдак лет за пять не наблюдал. Зато удобств - целая куча.
Пример из жизни: запретил запись Контрагента с пустым ИНН. Заплакали бухи мат. группы, им приходит накладная на материалы, приходовать надо, а в накладной ИНН нема... Будет только через несколько дней в Счет-фактуре. Модуль элемента Контрагенты у меня во внешнем файле, легкое движение руки - и мат. группа снова счастлива.
И никаких воплей остальных: "у меня там... а вы...!"
maxpiter; +1 Ответить
14. victuan 4280 16.08.10 08:15 Сейчас в теме
(3) У меня для таких случаев давно ПодключаемыйМодуль 1с++ трудится.
16. Abadonna 3969 16.08.10 08:18 Сейчас в теме
(14) Можно и так, только когда я начинал "ЗагрузитьИзФайла" 1с++ еще и в помине не было
17. Ёпрст 1065 16.08.10 08:22 Сейчас в теме
(16) да, но turbomd.dll появилась очень давно..
20. Abadonna 3969 16.08.10 08:25 Сейчас в теме
(17)
но turbomd.dll появилась очень давно..

Если честно, я её вообще просохатил :D
4. venger 2124 15.08.10 15:06 Сейчас в теме
5. Abadonna 3969 15.08.10 15:07 Сейчас в теме
6. venger 2124 15.08.10 15:09 Сейчас в теме
(5) С разукрашкой - это отсилы минута, со вставкой уже в публикацию и т.д.;-) Эт я так поворчать;-)
7. Abadonna 3969 15.08.10 15:11 Сейчас в теме
(6) Надо ж еще с разукрашкой разобраться... Я по сей день толком понять не могу, как картинку в статью вставить :( Требует URL, на файлообменник что ли закидывать?
8. venger 2124 15.08.10 15:37 Сейчас в теме
(7) Я в профиль в фотки кидаю, а в урле дописываю www, перед infostart....
9. Abadonna 3969 15.08.10 15:39 Сейчас в теме
(8) Почему было не сделать нормально, как обычное прикрепление файла - со своего HDD? :(
10. Abadonna 3969 15.08.10 19:24 Сейчас в теме
(4) Сань, я исправился :D
Пойду гляну, если не ставил плюс за разукрашку - поставлю.
Однако, ставил: "Вы уже голосовали..."
11. venger 2124 15.08.10 19:56 Сейчас в теме
(10) О, как красивее стало;-) Да и как потом другим объяснять, что мол раскрасте, если сам Abadonna не раскрашивает;-)
12. Abadonna 3969 15.08.10 19:58 Сейчас в теме
22. Abadonna 3969 16.08.10 08:30 Сейчас в теме
(4) Сань, я не только исправился, но и перевыполнил план ;)
Вот тут результат:
http://infostart.ru/public/73902/
13. Ёпрст 1065 16.08.10 07:59 Сейчас в теме
....а для всего остального.. есть turbomd.dll
15. Ёпрст 1065 16.08.10 08:17 Сейчас в теме
+13 ибо при #ЗагрузитьИзФайла нет возможности поправить форму и моксель..
А это - не комильфо..
18. Abadonna 3969 16.08.10 08:24 Сейчас в теме
(15) Справедливо. Но мне обычно в 90% случаев хватает обработки ПослеОткрытия()
Че-нить там на форме прикрыть, сделать так чтобы у разных юзверей с одинаковым набором прав они были все-таки чуть разные, не плодя лишних прав в Конфе и т.д.
21. Ёпрст 1065 16.08.10 08:26 Сейчас в теме
(18) форму чего-либо часто приходится править, особо, если это не типовая конфа..или есть новые объекты - форму журналов/списков..
Да и встроенные отчеты приходится править.. тот-же моксель в нём...
19. Ёпрст 1065 16.08.10 08:24 Сейчас в теме
+17 году так..в 2004 ..
а ВыполняемыйМодуль - так вообще совсем недавно..максимум год-два..
23. alexk-is 6544 16.08.10 08:40 Сейчас в теме
(0) Картинки для главной страницы не хватает
24. Abadonna 3969 16.08.10 08:45 Сейчас в теме
(23) Дык а что туда сунуть? От фонаря, или кода кусок?
Заценил мою доработочку "Разукрашки" под Дельфю? ;)
25. Арчибальд 2709 16.08.10 08:59 Сейчас в теме
(24) Ну, раз ты к конфе кое-что прикрутить позволяешь...
Прикрепленные файлы:
27. Abadonna 3969 16.08.10 09:14 Сейчас в теме
(25) Приболчено, насяльника ;)
26. alexk-is 6544 16.08.10 09:03 Сейчас в теме
(24) Да. Заценил. Для внешнего набора ключевых слов оставлял версию "Разукрашка (2.1.0.2)"
Теперь подумываю как прикрутить подобный механизм к (3.1.0.2). При работе с запросами теперь ведь используется не один, а два набора ключевых слов. Соответственно старые методы уже не подходят.

По поводу картинки. Когда не знаю что нарисовать, ставлю коробку с ракетой :)
28. Abadonna 3969 16.08.10 09:21 Сейчас в теме
(26)
Теперь подумываю как прикрутить подобный механизм к (3.1.0.2)

Самое прикольное, что я скачал сразу версию 3.1.0.2, но и наборы слов XML, и долго недоумевал какого лешего у меня ничего не меняется после изменения XML ;)
Пока не догадался в модуль глянуть
29. mikukrnet 182 16.08.10 17:19 Сейчас в теме
Для полноты картины надо еще меню заменить на динамическое http://infostart.ru/public/66085/
30. Abadonna 3969 16.08.10 17:42 Сейчас в теме
(29) Ну я примерно это и подразумевал, когда писал
//-- грузим любые необходимые нам DLL
//-- или выполняем другие действия при старте системы

;)
31. mikukrnet 182 17.08.10 12:34 Сейчас в теме
А нельзя ли по аналогии с turbomd сделать скрипт для OpenConf который подгружает дополнительный глобальный модуль в основной глобальник, а при закрытии конфигуратора - выгружает обратно.

Решился бы вопрос с синтаксическим контролем. Иначе дополнительный глоб. модуль фактически нежизнеспособен, ведь правильно было б взять его и почти целиком выгрузить во внешний, чтоб потом на лету менять все что понадобится
32. Abadonna 3969 17.08.10 14:39 Сейчас в теме
(31) А попроси умельцев по OpenConf, может приделают.
Но я как-то обходился и с кривым синтаксис-контролем...
Как минимум два года особых напрягов не возникало
33. пользователь 16.11.10 10:57
Сообщение было скрыто модератором.
...
Оставьте свое сообщение