#std723¶
Особенности разработки конфигураций для ОС Linux и macOS¶
1.¶
В большинстве случаев платформа сама обеспечивает кроссплатформенную работу клиентского и серверного кода.
Дополнительные меры нужны только в отдельных сценариях.
2.¶
Для ключевых функций прикладного решения используйте кроссплатформенные механизмы платформы.
2.1.¶
Вместо Windows-технологии COM (COMОбъект) используйте кроссплатформенные механизмы.
Например:
- для администрирования кластера вместо
v83.ComConnectorприменяйтеras/rac; - для путей к рабочим каталогам используйте
РабочийКаталогДанныхПользователя,КаталогДокументов,КаталогВременныхФайлов.
2.2.¶
Внешние компоненты, поставляемые с конфигурацией, разрабатывайте на технологии Native API.
Это обеспечивает поддержку Linux, macOS и веб-клиента.
2.3.¶
Для механизмов, использующих объект Почта, рассмотрите переход на ИнтернетПочта или внешнюю компоненту с поддержкой почтовых клиентов Linux/macOS.
2.4.¶
Если в составе конфигурации есть изображения WMF/EMF, замените их на PNG/JPG.
2.5.¶
Используйте кроссплатформенные средства платформы для работы с файловой системой.
2.5.1.¶
В Linux имена файлов регистрозависимы. Указывайте пути в коде строго в одном регистре.
2.5.2.¶
Не формируйте вручную разделители пути и маску всех файлов.
Используйте ПолучитьРазделительПути и ПолучитьМаскуВсеФайлы.
Если применяется БСП, используйте функции модулей ОбщегоНазначения и ОбщегоНазначенияКлиент.
3.¶
Для второстепенных сервисных функций допустимо отключать функциональность в Linux/macOS.
Например, скрывать команду или выводить понятное сообщение, что операция доступна только в Windows.
Пример
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Информация = Новый СистемнаяИнформация;
Если Информация.ТипПлатформы <> ТипПлатформы.Windows_x86
И Информация.ТипПлатформы <> ТипПлатформы.Windows_x86_64 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Печать в Microsoft Word доступна только при работе в ОС Windows.'"));
Возврат;
КонецЕсли;
...
КонецПроцедуры