Здравствуйте. Вопрос из рубрики бред.
Во внешней обработке хочу оставить совместимость для работы со старыми версиями платформы.
Уперся в непреодалимое, до этого подобные проблемы решал окольными путями...
Клиентский метод, появившийся в платформе только в 8.3.15, например "НачатьПомещениеФайлаНаСервер", вызывает ошибку компиляции модуля при запуске на 8.3.10, не смотря на то, что фактически данный код не будет вызван логикой (вообще работа с файловой системой не вызывается, если платформа не 8.3.13+, это все контролируется самой программой), однако, конечно, компилятору на это все равно.
И вот финальный гвоздь - на Сервере такое я решал через Выполнить(НекомпилируемыйКод), но на Клиенте Выполнить недоступен в ВебКлиенте, соответствено нужно решать для чего оставлять поддержку - для старых платформ, или для работы с файлами в веб-клиенте.
Мечтать не вредно: вот бы существовали директивы препроцессора для версий платформ. Как мне кажется это логично, но у них этого нет.
Есть еще решения, или я все варианты перебрал?
Во внешней обработке хочу оставить совместимость для работы со старыми версиями платформы.
Уперся в непреодалимое, до этого подобные проблемы решал окольными путями...
Клиентский метод, появившийся в платформе только в 8.3.15, например "НачатьПомещениеФайлаНаСервер", вызывает ошибку компиляции модуля при запуске на 8.3.10, не смотря на то, что фактически данный код не будет вызван логикой (вообще работа с файловой системой не вызывается, если платформа не 8.3.13+, это все контролируется самой программой), однако, конечно, компилятору на это все равно.
И вот финальный гвоздь - на Сервере такое я решал через Выполнить(НекомпилируемыйКод), но на Клиенте Выполнить недоступен в ВебКлиенте, соответствено нужно решать для чего оставлять поддержку - для старых платформ, или для работы с файлами в веб-клиенте.
Мечтать не вредно: вот бы существовали директивы препроцессора для версий платформ. Как мне кажется это логично, но у них этого нет.
Есть еще решения, или я все варианты перебрал?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) Отличная идея, это проще, чем (3) с макетами, спасибо!! Не подумал что то сам, действительно, модуль формы же не компилируется без вызова.
Тем более что у меня уже есть служебная форма, используемая, по сути, как модуль на клиенте, для меня не проблема будет сделать подобные с кусками спорного кода.
Тем более что у меня уже есть служебная форма, используемая, по сути, как модуль на клиенте, для меня не проблема будет сделать подобные с кусками спорного кода.
(3) упс, сам решал подобные зигзаги
еще как вариант, делайте макеты с бинарным кодом обработок по разные версии
запускаете свою обработку
определяете версию платформы, и режим совместимости
получаете нужный макет с кодом, формируете из него обработку и используете процедуры,
только во всех макетах должны быть одинаковые имена процедур,
еще как вариант, делайте макеты с бинарным кодом обработок по разные версии
запускаете свою обработку
определяете версию платформы, и режим совместимости
получаете нужный макет с кодом, формируете из него обработку и используете процедуры,
только во всех макетах должны быть одинаковые имена процедур,
(4) Интересный подход. Он, конечно, все еще больше усложняет, но я буду иметь его в виду, особенно если у меня таких методов станет больше чем один... Да и подумать над реализацией там тоже есть над чем, можно, например, в таких макетах держать только клиентский код общего назначения...
Про выполнить на клиенте - не знаю, может в этом и есть какой-то смысл, но вот помещать файлы я давненько уже не пользовал - обхожусь двоичными данными, которые просто передаю в серверную функцию ("СервернаяФункция( Новый ДвоичныеДанные(ИмяФайла) )"). Да, если файл триллион гигабайт - это, конечно, не комильфо, но откуда на клиенте такие файлы и сколько на сервере вообще места свободного? Ну и работа с потоками в памяти зачастую оставляет без необходимости это все на сервере в этот файл сохранять.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот