Коллизии наименования процедур и функций
|
|
Python | Дата: Суббота, 21.03.2020, 18:37 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 10
Статус: Оффлайн
| Добрый день. В настоящее время занимаемся разработкой очень специфической конфигурации, ориентированной исключительно на работу в фоне через WS в многопоточном режиме - серверное нетиражируемое приложение, работающее в единственном экземпляре. В связи с использованием совершенно необычной для 1С архитектуры в нарушение всех правил было принято решение вынести максимально возможное количество функций в глобальные привилегированные модули. Процедуры и функции имеют короткие названия операций, например, "Получить" "Отправить", "Сформировать", "Заполнить" и т.д. В разработке используется ваше расширение, за что приносим низкий поклон. Но возникают накладки с наименованиями процедур и функций в локальном контексте модулей расширения, которые повторяют глобальные. Как вы посоветуете решить проблему? Единственным вариантом пока видится экспорт расширения в XML с добавлением в расширении префиксов и это можно полностью автоматизировать, проанализировав текст глобальных модулей и составив список замены для локальных. Не думаю, что это будет просто (никогда не пробовал), но глядя на вашу "адаптацию расширения", думаю, что возможно. Посоветуйте, пожалуйста. Заранее, спасибо.
|
|
| |
tormozit | Дата: Суббота, 21.03.2020, 20:05 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 6392
Репутация: 165
Статус: Оффлайн
| К сожалению здесь чуда ждать не стоит. Лучшее решение здесь будет - переводить глобальные модули в неглобальные с помощью обработки с ИТС
https://its.1c.ru/db/metod8dev/content/1504/hdoc
Описание и установка внешней обработки "Замена вызовов общих модулей"Внешняя обработка "Замена вызовов общих модулей" предназначена для перевода общих модулей из глобальных в не глобальные, и соответствующей замены вызовов процедур и функций этих модулей в конфигурации. Также обработка позволяет выполнить и обратную замену. Обработка позволяет:
- выбрать общие модули, для которых будет выполняться замена;
- выгрузить файлы конфигурации на диск;
- выполнить замену;
- загрузить измененные файлы в конфигурацию.
Либо можно ее доработать для добавления суффиксов всем глобальным методам.
|
|
| |
Python | Дата: Воскресенье, 22.03.2020, 09:27 | Сообщение # 3 |
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 10
Статус: Оффлайн
| Ожидал именно такого ответа ))) Убрать глобальники не сложно, префиксы добавить - тем более. Просто не хотелось бы. Сначала я конфу делал вообще без глобальников. Потом решил наступить на горло песне. Конфигурация изолированная, как хочу, так и пишу. Код и так довольно сложный, чем меньше он будет загроможден префиксами/обращениями к модулям - тем лучше. Ладно, подумаю еще.
Еще вопрос есть, обращаюсь за советом. Возникла задача поддерживать расширение для нескольких конфигураций одновременно. То есть, грубо говоря, поддерживать ядро расширения и одновременно несколько форков с заимствованием под разные конфигурации. Как правильно подойти к этому - еще не решил. Пока что разделили хранилище конфигурации на основное и специализированные - под каждую конфу. Но перекидывать объекты и код из одного хранилища в другое придется руками. EDT пробовал, будет еще хуже. Git без EDT - возможный вариант. Но он затормозит процесс чисто технически. Честно говоря, хочется организовать это все с помощью экспорта/импорта расширения через XML. Ну и соответственно слияния базового набора XML с частными. Как считаете, есть перспективы у такого решения, или лучше не связываться даже?
|
|
| |