Перейти к содержанию
#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.'"));
        Возврат;
    КонецЕсли;

    ...
КонецПроцедуры
См. также
Проверки

#acc:1365 #acc:1366

Источник

https://its.1c.ru/db/v8std#content:723