Одна обработка для нескольких конфигураций

Версия для печатиPDF-версия

Платформа:

Конфигурация:

   Приветствую всех.

   Когда-то приспособил (переделал из старой) внешнюю обработку (печатную форму) для конфигурации, используемой мной. Недавно знакомые попросили и для их конфигурации сделать аналогичную печатную форму. Конфигурации существенно различаются (структурой справочников, именами переменных...), но переделать имеющуюся обработку под вторую конфигурацию удалось достаточно легко.

  Теперь возникло желание объединить обработки для двух конфигураций воедино. Чтобы в случае, если потребуются доработки, редактировать один файл и не беспокоится что при редактировании второго файла придётся бороться со вторым набором ошибок....

   На первый взгляд, всё просто: из метаданных получаю имя конфигурации, потом:

	   Если первая_конфигурация Тогда
	      получить_данные_первым_способом
	   КонецЕсли
	
	   Если вторая_конфигурация Тогда
	      получить_данные_вторым_способом
	   КонецЕсли

и остаётся сформировать и вывести печатную форму, независимо от конфигурации.

   На практике - пришлось обломаться: в первой конфигурации нет функций и переменных второй конфигурации и наоборот. В результате обработка не запускается ни тут, ни там. Пришлось строки, относящиеся к другой конфигурации, закрывать комментариями. Опять получилось два варианта обработки. Это не то, что я хотел. Можно ещё попытаться вынести  "получить_данные_первым_способом" и "получить_данные_вторым_способом" во внешние файлы и каким-то образом вызывать нужный файл... Почему-то мне не хочется плодить файлы.

   Кто-нибудь подскажет более хорошее решение, чтобы одну обработку, в одном файле, можно было бы использовать с несколькими конфигурациями?

 

Если возможно, скопировать недостающие функции и переменные из обеих конфигураций в обработку.

   Неплохая идея. Но, к сожалению, в данном случае её применить не удаётся. Из одной конфигурации скопировать недостающие функции было не сложно. А в другой конфигурации модуль, вызывающий внешнюю обработку, весьма плотно завязан на главный модуль (а там ещё функции связаны цепочкой одна за другую) - либо придётся очень много копировать из главного модуля во внешнюю обработку, либо очень внимательно разбираться что копировать необходимо,  а что - можно ампутировать.

Upd:

Нашёл обсуждение подобного вопроса на Украинском форуме 1С (http://pro1c.org.ua/index.php?showtopic=2910). 5 лет назад там предлагалось воспользоваться директивой

#ЗагрузитьИзФайла

Пытаюсь придумать как мне может помочь директива, полностью подменяющая весь программный модуль...

Надо завязывать уже с 7-кой. Вот в 8-ке есть специальная процедура Выполнить(ТекстКода), в которую можно запихать любой кусок кода.

   Процедура Выполнить(ТекстКода) мне нравится, я её хочу. ;-) И вообще, мысль о переходе на новую платформу хорошая, правильная: надо двигаться вперёд, переходить на новые версии, новые технологии, новую технику... Только вот какая незадача: справочники и остатки перенести в 8-ку я смогу, это не сложно. А сколько времени, сил и денег мне потребуется для переноса всех "нетиповых" дополнений и доработок с 7-ки в типовую конфигурацию на 8-ку?

   У нас пару лет назад меняли НСБУ (нац. стандарты бухучёта): план счетов, порядок проводок и много ещё каких мелких и крупных изменений. Большинство разработчиков 1С отказались обновлять конфигурации для 7-ки. Ожидалось что все в массовом порядке перейдут на обновлённую 8-ку. Так фиг вам! Множество бухгалтеров решило что им проще приспособить старый план счетов под новые стандарты, в ручную корректировать проводки, каждый раз допиливать отчёты под новые требования, чем переходить с доработанных конфигураций на типовые.

   Вот и я лучше ещё подожду. По слухам, сейчас на платформах 8.1 - 8.4 отрабатывается возможность совместного использования конфигураций, созданных для разных версий платформы (начиная с 8.0). В следующей версии, 8.5, должна уже появиться и поддержка конфигураций для 7.7. Вот тогда уже я спокойно перейду на 8-ку и буду потихоньку , в меру сил, возможностей и потребностей, обновлять свою конфигурацию под новые технологии. :-)