Размер шрифта:
Перевод конфигураций на платформе "1С:Предприятие 8.2" на платформу "1С:Предприятие 8.3" без режима совместимости с версией 8.2
Play

Перевод конфигураций на платформе "1С:Предприятие 8.2" на платформу "1С:Предприятие 8.3" без режима совместимости с версией 8.2

В документе приведена методика по обеспечению совместимости прикладных решений, разработанных на платформе " 1С:Предприятие 8.2 ", с платформой " 1С:Предприятие 8.3 ". Этот процесс условно делится на два этапа - Подготовительный и Финальный.

  • Подготовительный этап
    • Конфликт имен свойств
    • Конфликт имен картинок
    • Изменение свойств фиксированной структуры
    • Помещение во временное хранилище несериализуемых значений
    • Пересмотр работы с предопределенными элементами в РИБ
    • Вызов метода "Показать" для реквизитов управляемой формы
    • Максимальная длина имен объектов метаданных
    • Пересмотр форм с элементами, связанными с недоступными командами
    • Отключение режима совместимости в расширениях
    • Переименования методов и свойств
    • Доработка механизмов работы с отборами, условным оформлением, группировками и порядком в динамических списках
    • Запрос с ключевым словом "ИТОГИ ПО ОБЩИЕ", выгруженный в режиме "ОбходРезультатаЗапроса.ПоГруппировкам"
    • Изменения имен классов COM-объектов
    • Отказ от события "НачалоВыбораИзСписка" для полей ввода в режиме выбора из списка
    • Отказ от свойства "КнопкаСпискаВыбора" для полей ввода
    • Изменение типа значения, возвращаемого методом глобального контекста "БезопасныйРежим()"
    • Изменение результата запроса к константам
    • Замена свойства конфигурации "ОсновнаяРоль" на "ОсновныеРоли"
    • Отказ от свойств "Пользователь" и "Пароль" для объекта "ИнтернетПрокси"
    • Поддержка команды "Показать в списке"
    • Пересмотр внешнего вида всех форм
    • Перевести картинки в наборы картинок
    • Изменение возвращаемого значения СистемнаяИнформация.ВерсияОС
    • Системное перечисление ВариантОткрытияОкна более не доступно
    • Конфликт имен стандартных команд
    • Конфликт имен методов глобального контекста
    • Удалить пустые обработчики оповещения
    • Ключевое слово Экспорт для процедур и функций формы
    • Новое свойство ПолноеИмя объекта ОписаниеПереданногоФайла
    • Отказ от неиспользуемых свойств пользовательских настроек компоновки данных
    • Отказ от неиспользуемого элемента интерфейса ПанельИнструментов
    • Рефакторинг вычисляемых полей схемы компоновки данных, содержащих выражения представления
    • Поле временной таблицы, значение которого NULL, преобразуется в составной тип

    Действия этого этапа рекомендуется выполнить до перехода на " 1С:Предприятие 8.3 " с отключенным режимом совместимости. Выполнение этих действий не нарушает обратную совместимость – конфигурация может продолжать выпускаться на " 1С:Предприятии 8.2 " или " 1С:Предприятии 8.3 " с включенным режимом совместимости с 8.2.

    По каждой проблеме несовместимости дается краткая инструкция по выявлению проблемных мест в конфигурации и выполнению адаптации.

    Нельзя использовать имена переменных, совпадающие с новыми свойствами, которые появились в " 1С:Предприятии 8.3 ":

    • Новое свойство ЭтотОбъект в управляемых формах и общих модулях.
    • Новые свойства в управляемых формах:
      • АвтоНавигационнаяСсылка ,
      • НавигационнаяСсылка ,
      • ВертикальнаяПрокрутка ,
      • ОписаниеОповещенияОЗакрытии ,
      • ПараметрыВыбора .
      • Представление

      Для устранения несовместимости необходимо найти переменные и реквизиты форм с такими названиями и переименовать их.

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

      Нельзя использовать имена картинок, совпадающие с именами из библиотеки картинок. При реструктуризации выдается сообщение о неуникальности имен картинок.

      Для устранения несовместимости необходимо выявить картинки с неуникальными именами (провести реструктуризацию в версии 8.3 на копии метаданных) и переименовать их.

      В " 1С:Предприятии 8.3 " при присвоении значений свойствам фиксированной структуры ( ФиксированнаяСтруктура ) возникает ошибка "Поле объекта недоступно для записи".

      Для устранения несовместимости необходимо:

      • Выявить все места присваивания значений свойствам фиксированной структуры:
        • функциональным тестированием основных сценариев работы;
        • или поиском конструктора Новый ФиксированнаяСтруктура по модулям конфигурации и анализом на предмет изменения отдельных свойств созданной структуры;

        В " 1С:Предприятии 8.3 " при помещении во временное хранилище значений, сериализация которых не поддерживается (например, ДокументОбъект.<Имя документа>, СправочникОбъект.<Имя справочника> и пр.), возникает ошибка "Переданное значение не может быть помещено во временное хранилище".

        Для устранения несовместимости необходимо:

        • выявить все места помещения значений во временное хранилище (поиском метода глобального контекста ПоместитьВоВременноеХранилище );
        • проверить, что возможна сериализация типов значений объектов, помещаемых во временное хранилище. Для этого необходимо свериться с синтакс-помощником, убедившись, что в группе " Доступность " явно указана фраза " Сериализуется ". При этом следует отличать сериализацию от XDTO-сериализации и XML-сериализации. Например, для типов СправочникОбъект.<Имя справочника> сериализация не поддерживается, хотя поддерживается XDTO-сериализация и XML-сериализация;
        • если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.

        В " 1С:Предприятии 8.3" в дочерних узлах РИБ предопределенные элементы автоматически не создаются (и не обновляются при изменении в метаданных), а должны быть переданы из главного узла вместе с изменениями конфигурации.

        Для устранения несовместимости необходимо:

        a) обеспечить загрузку сообщения обмена в подчиненный узел РИБ до выполнения другого прикладного кода, который обращается к получаемым из главного узла предопределенным элементам;

        b) в прикладной логике загрузки данных из главного узла (обработчик события ПриПолученииДанныхОтГлавного , правила регистрации объектов) избегать обращений к предопределенным элементам, поскольку нет гарантии, что они уже были загружены из сообщения обмена;

        c) код обработчиков обновления ИБ, который обрабатывает предопределенные элементы, не должен выполняться в подчиненных узлах РИБ:

        СОВЕТ При использовании в конфигурации подсистемы "Обмен данными" Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше требования (а) и (б) снимаются.

        В " 1С:Предприятии 8.3 " для реквизитов управляемых форм с типами ТабличныйДокумент , ГрафическаяСхема и ТекстовыйДокумент при вызове метода Показать() возникает ошибка "Недопустимая операция для реквизита формы".

        Для перехода на версию 8.3.6 необходимо найти все места в коде, в которых для реквизитов управляемых форм указанных типов (или их копий «по ссылке») вызывается метод Показать() , и далее:

        • Если документ не выводится в элементах формы, тогда следует отказаться от реквизита формы, а для хранения использовать локальную клиентскую переменную (если это необходимо).
        • Если документ выводится в элементах формы, тогда следует отказаться от метода Показать() , заменив его на:
          • Если требуется активизировать элемент формы - документ, тогда необходимо использовать свойство формы ТекущийЭлемент .
          • Если требуется активизировать страницу окна с документом, тогда необходимо использовать свойство ТекущаяСтраница группы формы с видом Страницы.
          • Если требуется активизировать окно с документом, тогда необходимо вызывать метод формы Активировать .

          В "1С:Предприятии 8.3" (версия 8.3.7) введено ограничение длины имени объекта метаданных в 80 символов. Это требование предъявляется к новым объектам метаданных и при изменении имени существующих.

          При переходе на версию 8.3 рекомендуется найти все объекты метаданных с именами более 80 символов и сократить их.

          Подробнее см. параграф "Основные свойства" главы "Объекты конфигурации" в документации "Руководство разработчика".

          Начиная с версии 8.3.12, в режиме 1С:Предприятие на формах отсутствуют элементы (в коллекции Элементы ), связанные с командами и реквизитами форм и объектов, которые не доступны в конкретных режимах работы формы и по правам доступа.

          Например, в тех случаях, когда форма выступает одновременно как форма списка и как форма выбора (режим выбора устанавливается программно), и на ней размещен элемент формы для стандартной команды Выбрать, то при открытии формы в режиме формы списка и обращении к свойствам этого элемента возникнет ошибка:

          Поле объекта не обнаружено (СписокВыбрать) Элементы.СписокВыбрать.Видимость = РежимВыбора;

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

          1. В конфигураторе установить у динамического списка свойство РежимВыбора в Истина .
          2. Обращение к свойствам элементов, связанных со стандартной командой Выбрать , следует делать в коде только после проверки существования элемента в коллекции Элементы .

          Для конфигураций, использующих Библиотеку стандартных подсистем , рекомендуется воспользоваться процедурой ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы .Например, было:

          Элементы.СписокВыбрать.Видимость = РежимВыбора;Элементы.СписокСоздать.Видимость = ПравоДоступа("Добавление", Метаданные.Справочники.Валюты);

          следует удалить код установки видимости, т.к. он более не требуется.

          ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "СписокВыбрать", "КнопкаПоУмолчанию", РежимВыбора);

          В расширениях конфигурации необходимо отключить режим совместимости:

          Данную процедуру необходимо обязательно выполнять непосредственно после перевода разработки конфигурации на " 1С:Предприятие 8.3 " и отключения режима совместимости. После переключения режима совместимости рекомендуется перезагрузить конфигуратор.

          По каждой проблеме дается краткая инструкция по выявлению "проблемных" мест в конфигурации и выполнению перехода.

          В " 1С:Предприятии 8.3 " изменены имена свойств и методов некоторых объектов (см. таблицу 1).

          Для перехода на версию 8.3 необходимо найти места использования этих свойств и методов и заменить все их использования в конфигурации согласно таблице.

          Таблица 1. Переименования методов и свойств в версии 8.3

          Имя свойства Режим использования синхронных вызовов расширений платформы и внешних компонент.

          Свойство управляемой формы

          Тип менеджера перерасчетов регистра расчета

          РегистрРасчетаПерерасчеты<Имя регистра расчета>

          ПерерасчетыМенеджер<Имя регистра расчета>

          Запись таблицы внешнего источника данных. Изменены только английские имена

          Набор записей внешнего источника данных. Изменены только английские имена

          Методы установки и получения рассчитанных итогов менеджеров регистров накопления остатков и бухгалтерии

          Имя свойства объекта, описывающего тестируемые элементы формы

          Элементы системного перечисления ОтображениеОбычнойГруппы

          Методы получения и установки заголовка окна клиентского приложения

          Свойство поля ввода

          Метод Выбрать() объектов РезультатЗапроса и ВыборкаИзРезультатаЗапросаИзменены только английские имена

          Имя метода глобального контекста. Старый метод поддерживается для совместимости.

          Имя параметра события ОбработкаНавигационнойСсылки.

          Имя параметра событий АвтоПодбор и ОкончаниеВводаТекста для полей ввода.

          Ключ отбора, используемого в методах ПолучитьИдентификаторы и ПолучитьЗаголовки объекта ИнтернетПочта.

          Имя метода объекта СредстваГеопозиционирования (мобильная платформа). Изменены только английские имена.

          Свойство табличного документа.

          Имя параметра, содержащего имя создаваемого каталога в методе НачатьСозданиеКаталога().

          Наименование системного перечисления, содержащего варианты выравнивания элементов и их заголовков.

          Значение колонки Назначение для таблицы ExtensionInfo в таблице значений, возвращаемой методом ПолучитьСтруктуруХраненияБазыДанных().

          Значение колонки Назначение для таблицы ODataSettings в таблице значений, возвращаемой методом ПолучитьСтруктуруХраненияБазыДанных().

          Методы загрузки таблицы стилей XSL объекта ПреобразованиеXSL (XSLTransform).

          Методы управления основным окном клиентского приложения.

          Системное перечисление. ОриентацияМетокДиаграммы ОриентацияПодписейДиаграммы

          Свойства объекта ОбластьПостроенияДиаграммы.

          Cвойства и методы объекта Диаграмма.

          Cвойства объекта ОбластьПостроенияДиаграммы.

          Свойство объекта Шрифт.

          Обработчик события поля табличного документа.

          Кроме того, начиная с версии 8.3.12, для объектов Диаграмма , ДиаграммаГанта , СводнаяДиаграмма свойства ОтображатьЛегенду и ОтображатьЗаголовок устарели. Вместо них следует использовать свойства расположения объектов:

          В версии 8.3.13 устарело свойство АдресаУведомленияОДоставке объекта ИнтернетПочтовоеСообщение . Вместо него следует использовать свойство УведомитьОПрочтении .

          Доработка механизмов работы с отборами, условным оформлением, группировками и порядком в динамических списках

          В " 1С:Предприятии 8.3 " для работы с отборами, условным оформлением, группировками и порядком в динамических списках используются механизмы системы компоновки данных. Подробнее см. главу "Система компоновки данных" в документации "Руководство разработчика".

          Отборы и элементы условного оформления, устанавливаемые в конфигураторе в редакторе настроек динамического списка (далее - в конфигураторе), помещаются в коллекцию КомпоновщикНастроек.Настройки , а устанавливаемые программно через свойства ".Отбор" и ".УсловноеОформление" – в коллекцию КомпоновщикНастроек.ФиксированныеНастройки. Таким образом:

          • ДинамическийСписок.Отбор соответствует свойству ДинамическийСписок.КомпоновщикНастроек.ФиксированныеНастройки.Отбор ,
          • ДинамическийСписок.УсловноеОформление соответствует свойству ДинамическийСписок.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление .

          Например, схема работы свойства ДинамическийСписок.Отбор и настроек, выполняемых в конфигураторе:

          При этом если отбор по одному и тому же полю одновременно присутствует в коллекциях Настройки.Отбор и ФиксированныеНастройки.Отбор , то возникает ошибка времени выполнения "Невозможно применить фиксированные настройки. Пересекаются элементы отбора".

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

          В отличие от остальных, свойство Группировка не связано напрямую с новыми коллекциями , однако имеет аналоги: КомпоновщикНастроек.ФиксированныеНастройки.Структура и КомпоновщикНастроек.Настройки.Структура . Группировки, программно добавленные через свойство Группировка, отключаются, если пользователь перенастроил состав группировок либо если заполнено свойство КомпоновщикНастроек.Настройки.Структура .

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

          В большинстве случаев если это предустановленные настройки, которые пользователь не должен видеть и изменять, то:

          • для отборов, условного оформления и группировок следует перенести создание настроек и работу с ними в программный код и использовать свойства динамического списка Отбор , УсловноеОформление и Группировка ;
          • для порядка следует исключить всю коллекцию из состава пользовательских настроек в конфигураторе (сняв флажок Включать в пользовательские настройки ) или программно (установив пустую строку в свойстве Порядок.ИдентификаторПользовательскойНастройки ).

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

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

          В тех случаях, когда для настройки динамического списка ранее были предусмотрены собственные элементы управления на форме (например, поля с быстрыми отборами сверху списка, команды для быстрой смены группировки и пр.), следует выбрать один из двух вариантов:

          • для задействования новых возможностей платформы перенести создание настроек в конфигуратор (см. Настройка списка в свойствах динамического списка) и задать свойство Группа пользовательских настроек таблицы формы, связанной с этим динамическим списком;
          • для сохранения текущего поведения перенести создание настроек в программный код и использовать свойства динамического списка Отбор и УсловноеОформление . А для сохранения текущего поведения с группировками и порядком, следует:
            • при программной работе использовать свойство КомпоновщикНастроек.ПользовательскиеНастройки, если пользователи должны иметь возможность перенастраивать группировки и порядок с помощью команды Все действия - Настроить список ;
            • в противном случае снять флажок Включать в пользовательские настройки в свойствах группировок динамического списка в конфигураторе и работать в коде со свойствами Группировка и Порядок .
            Запрос с ключевым словом "ИТОГИ ПО ОБЩИЕ", выгруженный в режиме "ОбходРезультатаЗапроса.ПоГруппировкам"

            Запрос, в котором указано ключевое слово ИТОГИ ПО ОБЩИЕ и который выгружен в режиме ОбходРезультатаЗапроса.ПоГруппировкам в "1С:Предприятии 8.3", возвращает результат, отличающийся от версии 8.2. Узлы группировок в версии 8.2 располагались на одном уровне с общим итогом, в версии 8.3 они будут вложены в общий итог, который располагается в корне дерева значений.

            Для перехода на версию 8.3 необходимо:

            • выявить все запросы с ИТОГИ ПО ОБЩИЕ , выгружаемые в режиме ОбходРезультатаЗапроса.ПоГруппировкам ;
            • пересмотреть обработку дерева значений, перенеся обход строк с группировками внутрь обхода строки с общим итогом.

            Пример запроса и выгрузки результата, которые потребуют пересмотра:

            Изменения имен классов COM-объектов

            В " 1С:Предприятии 8.3 " изменено имя класса COM-объектов – для COM-соединителя вместо "V82.COMConnector" используется "V83.COMConnector", а вместо "V82.Application" используется "V83.Application".

            Для устранения несовместимости необходимо заменить все вхождения старых имен на новые.

            СОВЕТ При использовании "Библиотеки стандартных подсистем" рекомендуется использовать универсальную функцию ОбщегоНазначения.ИмяCOMСоединителя() .

            Отказ от события "НачалоВыбораИзСписка" для полей ввода в режиме выбора из списка

            В " 1С:Предприятии 8.3 " у поля ввода не вызывается НачалоВыбораИзСписка . Это связано с появлением нового свойства поля ввода КнопкаВыпадающегоСписка , которое позволяет по кнопке выводить выпадающий список, формирующийся автоматически. Подробнее см. документацию "Руководство разработчика".

            Для устранения несовместимости необходимо найти поля ввода с обработчиком НачалоВыбораИзСписка и перенести его код в другие обработчики согласно критериям:

            • код по добавлению элементов в список выбора следует разместить в обработчике формы ПриСозданииНаСервере . Кроме того, если состав списка выбора зависит от значений других полей, то код по изменению элементов списка выбора следует вызывать в обработчиках изменения соответствующих полей, например при помощи обработчиков ПриИзменении ;
            • реализацию кода, не связанного с заполнением списка выбора, необходимо пересмотреть с использованием тех средств, которые предоставляет платформа "1С:Предприятие" версии 8.3.3.

            СОВЕТ Для значений ссылочного типа рекомендуется заполнять свойство Представление элемента списка значений во избежание лишних серверных вызовов.

            Отказ от свойства "КнопкаСпискаВыбора" для полей ввода

            В " 1С:Предприятии 8.3 " у поля ввода отсутствует свойство КнопкаСпискаВыбора . Вместо него теперь следует использовать новое свойство КнопкаВыпадающегоСписка . Подробнее см. документацию "Руководство разработчика".

            Для устранения несовместимости необходимо при помощи приложенного отчета найти поля ввода, у которых в свойстве КнопкаСпискаВыбора было установлено значение " Да ", и явно установить в свойстве КнопкаВыпадающегоСписка значение " Да " в том случае, если кнопка выпадающего списка не выводится при значении " Авто ".

            В " 1С:Предприятии 8.3 " метод глобального контекста БезопасныйРежим() возвращает тип Строка , если безопасный режим был установлен с указанием имени профиля безопасности.

            Для устранения несовместимости необходимо найти все места использования метода БезопасныйРежим() , в которых результат неявно преобразовывался к типу Булево , и исправить на код с явным сравнением результата со значением Ложь . Таким образом, при установленном профиле безопасности код будет выполняться так же, как и в безопасном режиме.

            В случае, если константа хранит значение типа ХранилищеЗначения , УникальныйИдентификатор или ВнешнийИсточникДанныхТаблицаСсылка , обращение к полю Значение таблицы константы, при обработке выборки из запроса к этой таблице, возвращает значение соответствующего типа.

            Замена свойства конфигурации "ОсновнаяРоль" на "ОсновныеРоли"

            В " 1С:Предприятии 8.3 " у объекта ОбъектМетаданных: Конфигурация отсутствует свойство ОсновнаяРоль (тип ОбъектМетаданных: Роль ). Вместо него теперь следует использовать новое свойство ОсновныеРоли (тип КоллекцияЗначенийСвойстваОбъектаМетаданных ).

            Для устранения несовместимости необходимо при помощи приложенного отчета найти места обращения к свойству ОсновнаяРоль и выполнить переход на свойство ОсновныеРоли .

            В " 1С:Предприятии 8.3 " у объекта ИнтернетПрокси отсутствуют свойства Пользователь и Пароль . Эти параметры теперь следует передавать в методе Установить() а читать при помощи новых методов Пользователь() и Пароль() .

            Для устранения несовместимости необходимо найти все места работы с объектом ИнтернетПрокси , в которых использовались свойства Пользователь и Пароль , и исправить их:

            • Если код изменял свойства Пользователь и Пароль , тогда соответствующие значения следует передавать в методе Установить() .
            • Если код читал свойства Пользователь и Пароль , тогда следует использовать новые методы Пользователь() и Пароль() .

            СОВЕТ При использовании конфигурации "Библиотека стандартных подсистем" для получения объекта ИнтернетПрокси рекомендуется использовать программный интерфейс подсистемы "Получение файлов из интернета".

            В " 1С:Предприятии 8.3 " в формах всех ссылочных объектов предусмотрена стандартная команда «Показать в списке». Эта команда выводится автоматически, но для некоторых списков может не срабатывать.

            Для устранения несовместимости необходимо провести анализ форм списков ссылочных объектов метаданных:

            • Если для объекта метаданных используется несколько форм списков, тогда в его модуле менеджера необходимо определить событие ОбработкаПолученияФормы , в котором зачитать значение параметра ТекущаяСтрока и, если он не пустой, уточнить какую форму списка следует использовать для отображения этой ссылки.
            • Если в форме списка используются собственные отборы, тогда в модуле формы следует определить событие ОбработкаПерехода , в котором либо очищать отборы, либо устанавливать их таким образом, чтобы они не скрывали выделенный элемент списка (ссылка элемента передается в параметре ОбъектПерехода ).

            Подробнее про эти события см. главу "Формы" в документации "Руководство разработчика".

            В "1С:Предприятии 8.3" (версия 8.3.7) изменился механизм отображения элементов управляемой формы. В частности, исчезло свойство ШиринаПодчиненныхЭлементов , но появились свойства АвтоМаксимальнаяШирина , МаксимальнаяШирина , АвтоМаксимальнаяВысота , МаксимальнаяВысота , Объединенная и другие.

            Для устранения несовместимости необходимо провести анализ внешнего вида каждой формы в режиме предприятия и, если внешний вид формы не соответствует проектному виду, изменить компоновку элементов формы с использованием новых возможностей платформы.

            Подробнее про эти свойства см. параграф "Правила размещения элементов формы" главы "Формы" в документации "Руководство разработчика".

            Для возможности масштабирования картинок управляемой формы в интерфейсе Такси на платформе "1С:Предприятие 8.3" версии 8.3.10 и выше рекомендуется все картинки в конфигурации перевести в наборы картинок. Для этого необходимо выполнить следующие действия:Сделать несколько вариантов картинки в размерах для масштаба в 85, 100, 125, 150, 175, 200, 300 и 400 %%, так же вариант для приложения в интерфейсе 8.2 и 8.2 (обычное приложение), если предусмотрены эти режимы работы. Поместить картинку в zip-архив. Включить в архив файл manifest.xml с описанием соответствия размеров и типов экрана.Загрузить zip-архив в конфигурацию как картинку.Пример manifest.xml для набора из картинок:

            На платформе "1С:Предприятие 8.3" версии 8.3.10 изменено представление операционной системы Windows, начиная с версии Vista и далее, в свойстве СистемнаяИнформация.ВерсияОС. Текст свойства содержит пользовательское представление названия операционной системы в дополнение к технической информации (версия, номер сборки и т.д.).Необходимо пересмотреть места использования данного свойства.К примеру, для Windows 7 значения свойства «ВерсияОС» будет "Microsoft Windows 7 version 6.1 Service Pack 1 (Build 7601)" вместо "version 6.1 Service Pack 1 (Build 7601)".

            В тонком и веб-клиентах на платформе "1С:Предприятие 8.3" версии 8.3.10 стало невозможно открыть форму в отдельном окне при работе в режиме интерфейса В закладках.Игнорируется указание варианта открытия окна (параметр Окно) при использовании методов ОткрытьФорму(), ПолучитьФорму(), а также в значении свойства структуры ПараметрыВыполненияКоманды.Окно с помощью системного перечисления ВариантОткрытияОкна.Необходимо найти все места использования системного перечисления ВариантОткрытияОкна и пересмотреть код с отказом от его использования.В большинстве случаев такие формы можно перевести на открытие в режиме блокирования окна владельца или независимо (что технически не приводит к открытию отдельного окна в веб-браузере, но визуально будет выглядеть для пользователя так же, как открытие отдельного окна).

            Начиная с версии 8.3.12, команды справочников, документов и других объектов метаданных не должны иметь те же названия, что и стандартные команды этих объектов метаданных. Например, для справочника нельзя создавать команду с именем Изменить .

            Команды с конфликтующими имена выявляются проверкой конфигурации. Такие команды в конфигурации следует переименовать.

            Начиная с версии 8.3.12, реализованы новые методы глобального контекста, которые могут совпадать по имени с существующими функциями в коде конфигурации:

            1. ПроверитьБит
            2. ПроверитьПоБитовойМаске
            3. УстановитьБит
            4. ПобитовоеИ
            5. ПобитовоеИли
            6. ПобитовоеНе
            7. ПобитовоеИНе
            8. ПобитовоеИсключительноеИли
            9. ПобитовыйСдвигВлево
            10. ПобитовыйСдвигВправо

            Необходимо выполнить проверку конфигурации с синтаксическим контролем модулей по предметам: "Тонкий клиент", "Веб-клиент", "Сервер", "Внешнее соединение", "Внешнее соединение (вариант клиент-сервер)". Исправить все найденные ошибки вида "Процедура или функция с указанным именем уже определена" путем переименования функций в конфигураторе.

            Ранее для некоторых асинхронных клиентских методов платформы требовалось обязательное создание обработчиков оповещения, указывая их в конструкторе объекта ОписаниеОповещения . Начиная с версии 8.3.12, в тех случаях, когда реальная обработка результата не требовалась и были созданы пустые обработчики оповещения, их рекомендуется удалить.

            Для этого ребуется выполнить проверку конфигурации в режиме «Логическая проверка модулей – Поиск пустых обработчиков». Удалить найденные пустые обработчики и исправить конструктор ОписаниеОповещения .

            Оповещение = Новый ОписаниеОповещения("ОткрытьПроводникЗавершение", ЭтотОбъект);НачатьЗапускПриложения(Оповещение, "explorer.exe /select, """ + ИмяФайла + """");

            Процедура ОткрытьПроводникЗавершение (КодВозврата, Контекст) Экспорт . КонецПроцедуры

            Оповещение = Новый ОписаниеОповещения;НачатьЗапускПриложения(Оповещение, "explorer.exe /select, """ + ИмяФайла + """");

            Начиная с версии 8.3.13 в определении серверных процедур и функций формы, вызываемых из общих модулей, следует добавить ключевое слово Экспорт . Такая потребность возникает при встраивании подключаемых механизмов в произвольные формы конфигурации, которые предполагают выполнение контекстного серверного вызова в форме. Например, для изменения состава реквизитов формы или получения настроек компоновки данных.Большую часть случаев возможно выявить посредством глобального поиска по подстроке «.Подключаемый». Далее проанализировать вызовы найденных процедур и функций с директивой компиляции &НаСервере.

            Новое свойство ПолноеИмя объекта ОписаниеПереданногоФайла , содержит полный путь к файлу, а свойство Имя – только краткое имя файла (начиная с версии 8.3.13). При этом в веб-клиенте значение свойства ПолноеИмя пустое.

            Необходимо выполнить глобальный поиск подстрок НачатьПолучениеФайлов( и НачатьПомещениеФайлов( . Проанализировать реализации обработчиков оповещения и в случае пустого значения свойства ПолноеИмя , использовать свойство Имя :

            Процедура ПриПолученииФайлов(ПолученныеФайлы, ДополнительныеПараметры) Экспорт Для Каждого ПолученныйФайл Из ПолученныеФайлы Цикл ИмяФайла = ?(ЗначениеЗаполнено(ПолученныйФайл.ПолноеИмя), ПолученныйФайл.ПолноеИмя, ПолученныйФайл.Имя); КонецЦикла;КонецПроцедуры

            СОВЕТ При использовании БСП рекомендуется применять процедуры СохранитьФайлы и ЗагрузитьФайлы общего модуля ФайловаяСистемаКлиент .

            Начиная с версии 8.3.13, не допустимо чтение и запись значений следующих свойств пользовательских настроек компоновки данных:

            Выбор, ЗначенияВложенныхПараметров, Идентификатор, Имя, ИспользоватьВГруппировке, ИспользоватьВЗаголовке, ИспользоватьВЗаголовкеПолей, ИспользоватьВИерархическойГруппировке, ИспользоватьВОбщемИтоге, ИспользоватьВОтборе, ИспользоватьВПараметрахобъекта, Колонки, ЛевоеЗначение, Отбор, Параметр (только при попытке установить значение свойства), ПараметрыВывода, Поля, ПоляГруппировки, Порядок, Представление, ПредставлениеПользовательскойНастройки Применение, РежимОтображенияобъекта, Родитель, Серии, Состояние, Строки, Структура, ТипГруппы, Точки, УсловноеОформление.

            Рекомендуется выполнить глобальный поиск по подстроке " .ПользовательскиеНастройки ". После проанализировать найденные места на предмет обращения к неиспользуемым свойствам, выполнив одно из следующих действий:

            • Заменить на обращение к свойствам основных настроек.
            • При использовании метода ЗаполнитьЗначенияСвойств :

            ЗаполнитьЗначенияСвойств(<Приемник>, ЭлементПользовательскойНастройки);ЗаполнитьЗначенияСвойств(ЭлементПользовательскойНастройки, <Источник>);

            указать явно заполняемые свойства:

            ЗаполнитьЗначенияСвойств(<Приемник>, ЭлементПользовательскойНастройки, "Использование, ВидСравнения, ПравоеЗначение");ЗаполнитьЗначенияСвойств(ЭлементПользовательскойНастройки, <Источник>, "Значение");

            Например, в БСП в форме УсловияОтборовОтчета хранилища настроек ХранилищеВариантовОтчетов , строка:

            ЗаполнитьЗначенияСвойств(Строка, ЭлементОсновнойНастройки, "Представление, ПредставлениеПользовательскойНастройки");Строка.ВидСравнения = ЭлементПользовательскойНастройки.ВидСравнения;

            Начиная с версии 8.3.15, объект ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения невозможно создать для панели ПанельИнструментов :

            Рекомендуется выполнить глобальный поиск по подстроке " ПанельИнструментов ". Далее проанализировать на предмет использования данного литерала в добавлении элемента интерфейса, например:

            Если используется, то удалить строку.

            Начиная с версии 8.3.15, компоновщик макета компоновки данных, при формировании выражения групповых и итоговых записей для вычисляемых полей, не использует выражение представления, указанное у вычисляемого поля.

            В связи с этим, необходимо найти макеты с типом СхемаКомпоновкиДанных , содержащими вычисляемые поля, для которых определены выражения представления.

            • Если переопределяется только представление поля, то рекомендуется перенести его в состав полей наборов данных (см. вкладку Наборы данных ).
            • Если же для вычисляемого поля задаются и значение и представление то необходимо:
              • Их разделить на два поля, одно из которых будет содержать выражение значения, а другое - выражение представления.
              • Создать макет поля представления (см. МакетПоляСхемыКомпоновкиДанных ):
                • В расшифровке сослаться на вычисляемое поле, которое содержит значение.

                Для примера см. отчет Результаты проверки учета (БСП):

                • Поле ПроблемныйОбъектРасчет было заменено на:
                  • Поле для вычисления представления - ПроблемныйОбъектПредставление .
                  • Поле для вычисления значения (расшифровки) - РасшифровкаПоля .
                  • Также см. вкладку Макет , схемы компоновки данных.

                  Рекомендуется провести анализ использования полей временных таблиц, которые могут принимать NULL и применить функцию языка запросов ЕСТЬNULL() .

                  Например, на ERP 2.0.10.51 была зарегистрирована ошибка (00-00192919):

                  В случае, если планируется поддержать работоспособность конфигурации в ОС Linux и OS X, необходимо выявить механизмы, которые не работают в ОС Linux и OS X (согласно описанию ниже). По каждому из них принять решение о том, является ли он ключевым для прикладного решения или второстепенным (вспомогательным, обслуживающим).

                  Затем на первом этапе:

                  • корректно отключить в ОС Linux и OS X второстепенные механизмы;
                  • для ключевых механизмов - задействовать возможности платформы 8.3 по унификации работы на различных операционных системах.

                  На втором этапе задействовать возможности платформы 8.3 по унификации работы на различных операционных системах и для второстепенных механизмов, ранее отключенных на первом этапе.

                  Скрыть или отключить механизмы в, которые рассчитаны только на работу в ОС Windows

                  Выявить механизмы, которые не работают в ОС Linux и OS X, согласно списку ограничений клиентского приложения, работающего под ОС Linux и OS X:

                  • не поддерживается технология COM и весь перечень возможностей, связанных с этой технологией:
                    • не поддерживается работа с объектом COMОбъект ;
                    • запуск клиента "1С:Предприятия" в режиме Automation-сервера;
                    • внешние компоненты, созданные с использованием COM-технологии;

                    Далее либо скрыть команды этих механизмов из командного интерфейса, либо (если скрыть невозможно), выводить сообщение вида "<Операция> доступна только при работе в ОС Windows".

                    СОВЕТ При использовании "Библиотеки стандартных подсистем" рекомендуется использовать универсальные функции ЭтоLinuxКлиент() , ЭтоWindowsКлиент() и ЭтоOSXКлиент() из общего модуля ОбщегоНазначенияКлиентСервер.

                    Элемент управления "ПолеHTMLДокумента" и поле формы вида "Поле HTML документа"

                    Внешний вид ПоляHTMLДокумента может отличаться в зависимости от ОС, в которой запущено клиентское приложение. Это связано с тем, что в OC Linux и OS X вывод реализован на основе библиотеки WebKit вместо Internet Explorer.

                    Учесть, что внешний вид и объектная модель HTML-документа (DOM-модель), доступ к которому осуществляется с помощью свойства ПолеHTMLДокумента.Документ , могут отличаться от таковых при работе в клиентском приложении, работающего на ОС Windows.

                    • Задействовать только стандартные элементы DOM-модели, которые доступны во всех вариантах работы.
                    • При подготовке HTML содержимого ориентироваться на стандарты - не следует использовать специфичные для конкретного браузера методы и свойства.
                    Задействовать возможности платформы "1С:Предприятие 8.3" по унификации работы в различных операционных системах Аналоги COM-технологии

                    В ряде случаев использование COM-технологий можно перевести на механизмы " 1С:Предприятия 8.3 ":

                    • для администрирования кластера серверов "1С:Предприятия" следует использовать сервер администрирования ( ras ) и утилиту администрирования ( rac ). При работе в OS X утилиты rac и ras недоступны.
                    • для получения путей к рабочим каталогам следует использовать методы глобального контекста РабочийКаталогДанныхПользователя() , КаталогДокументов() , КаталогВременныхФайлов() .

                    В остальных случаях следует рассмотреть альтернативы COM-технологии, работающие в ОС Linux и OS X, например технологию создания внешних компонентов Native API.

                    Подробнее см. главу "Внешние компоненты" в документации "Руководство разработчика".

                    Аналоги объекта "Почта"

                    Рассмотреть альтернативные варианты:

                    • по переводу механизмов, работавших с объектом Почта , на объект ИнтернетПочта ;
                    • по разработке внешних компонент для ОС Linux и OS X, работающих с установленными почтовыми клиентами в ОС Linux и OS X.
                    Аналог метафайлов Windows

                    Заменить картинки в формате WMF и EMF, включенные в состав конфигурации, на растровые, например PNG или JPG.

                    В платформе "1С:Предприятие 8.3" появилась возможность полностью отказаться от модальных методов, заменив их на блокирующие, что позволит улучшить отзывчивость интерфейса и повысить удобство работы в закладочном режиме.

                    Данная процедура является обязательной после установки свойства конфигурации " Режим использования модальности " в " Не использовать ".

                    Следует найти все вызовы модальных методов и согласно таблице 2 заменить их немодальными методами с блокированием окна владельца или всего интерфейса.