Пятница, 17.05.2024, 22:10
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Прочее » Коллизии наименования процедур и функций (Совпадение наименований в глобальном и локальном контексте)
Коллизии наименования процедур и функций
PythonДата: Суббота, 21.03.2020, 18:37 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 10
Статус: Оффлайн
Добрый день.
В настоящее время занимаемся разработкой очень специфической конфигурации, ориентированной исключительно на работу в фоне через WS в многопоточном режиме - серверное нетиражируемое приложение, работающее в единственном экземпляре. В связи с использованием совершенно необычной для 1С архитектуры в нарушение всех правил было принято решение вынести максимально возможное количество функций в глобальные привилегированные модули. Процедуры и функции имеют короткие названия операций, например, "Получить" "Отправить", "Сформировать", "Заполнить" и т.д. В разработке используется ваше расширение, за что приносим низкий поклон. Но возникают накладки с наименованиями процедур и функций в локальном контексте модулей расширения, которые повторяют глобальные. Как вы посоветуете решить проблему?
Единственным вариантом пока видится экспорт расширения в XML с добавлением в расширении префиксов и это можно полностью автоматизировать, проанализировав текст глобальных модулей и составив список замены для локальных. Не думаю, что это будет просто (никогда не пробовал), но глядя на вашу "адаптацию расширения", думаю, что возможно.
Посоветуйте, пожалуйста.
Заранее, спасибо.
 
tormozitДата: Суббота, 21.03.2020, 20:05 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6203
Репутация: 159
Статус: Оффлайн
К сожалению здесь чуда ждать не стоит. Лучшее решение здесь будет - переводить глобальные модули в неглобальные с помощью обработки с ИТС

https://its.1c.ru/db/metod8dev/content/1504/hdoc

Описание и установка внешней обработки "Замена вызовов общих модулей"Внешняя обработка "Замена вызовов общих модулей" предназначена для
перевода общих модулей из глобальных в не глобальные, и соответствующей
замены вызовов процедур и функций этих модулей в конфигурации. Также
обработка позволяет выполнить и обратную замену.
Обработка позволяет:
  • выбрать общие модули, для которых будет выполняться замена;
  • выгрузить файлы конфигурации на диск;
  • выполнить замену;
  • загрузить измененные файлы в конфигурацию.

Либо можно ее доработать для добавления суффиксов всем глобальным методам.
 
PythonДата: Воскресенье, 22.03.2020, 09:27 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 10
Статус: Оффлайн
Ожидал именно такого ответа )))
Убрать глобальники не сложно, префиксы добавить - тем более. Просто не хотелось бы. Сначала я конфу делал вообще без глобальников. Потом решил наступить на горло песне. Конфигурация изолированная, как хочу, так и пишу. Код и так довольно сложный, чем меньше он будет загроможден префиксами/обращениями к модулям - тем лучше. Ладно, подумаю еще.

Еще вопрос есть, обращаюсь за советом.
Возникла задача поддерживать расширение для нескольких конфигураций одновременно. То есть, грубо говоря, поддерживать ядро расширения и одновременно несколько форков с заимствованием под разные конфигурации. Как правильно подойти к этому - еще не решил. Пока что разделили хранилище конфигурации на основное и специализированные - под каждую конфу. Но перекидывать объекты и код из одного хранилища в другое придется руками. EDT пробовал, будет еще хуже. Git без EDT - возможный вариант. Но он затормозит процесс чисто технически. Честно говоря, хочется организовать это все с помощью экспорта/импорта расширения через XML. Ну и соответственно слияния базового набора XML с частными. Как считаете, есть перспективы у такого решения, или лучше не связываться даже?
 
Форум » Основной » Прочее » Коллизии наименования процедур и функций (Совпадение наименований в глобальном и локальном контексте)
  • Страница 1 из 1
  • 1
Поиск: