По каждой проблеме несовместимости дается краткая инструкция по выявлению "проблемных" мест в конфигурации и выполнению адаптации. Выявить "проблемные" места поможет обработка, приведенная в конце данной статьи.
Запрос с ключевым словом РАЗЛИЧНЫЕ
Запрос, в котором указано ключевое слово РАЗЛИЧНЫЕ, а в предложении УПОРЯДОЧИТЬ ПО указано выражение, отсутствующее в списке выборки, считается некорректным. При исполнении такого запроса в 1С:Предприятии 8.2 будет выдана ошибка.Для устранения несовместимости необходимо:
- выявить все запросы с РАЗЛИЧНЫЕ и УПОРЯДОЧИТЬ ПО с помощью приложенной обработки;
- дополнить список выражений в ВЫБРАТЬ выражениями из раздела УПОРЯДОЧИТЬ ПО, если требуется;
- тем самым получим тот же результат, который был в 1С:Предприятии 8.1, но при этом запрос станет синтаксически правильным.
ВАЖНО!
Не требуется переносить поля из УПОРЯДОЧИТЬ ПО в ВЫБРАТЬ, если в УПОРЯДОЧИТЬ ПО написано выражение "от ссылки", например, Товар.Наименование и при этом в предложении ВЫБРАТЬ поле Товар уже есть.
Например, запросНе требуется переносить поля из УПОРЯДОЧИТЬ ПО в ВЫБРАТЬ, если в УПОРЯДОЧИТЬ ПО написано выражение "от ссылки", например, Товар.Наименование и при этом в предложении ВЫБРАТЬ поле Товар уже есть.
Копировать в буфер обмена
ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудник, ВидРасчета ... УПОРЯДОЧИТЬ ПО Сотрудник.Наименование, Сотрудник.ДатаРождения, ВидРасчета.Кодсинтаксически верен, так как УПОРЯДОЧИТЬ ПО выполняется по полям ссылок Сотрудник и ВидРасчета, а такие ссылки в ВЫБРАТЬ уже есть.
Анализа типа параметра обработчика ОбработкаЗаполнения
В 1С:Предприятии 8.2 обработчик ОбработкаЗаполнения требует анализа типа, приходящего в качестве параметра значения.Для устранения несовместимости необходимо:
- выявить все обработчики ОбработкаЗаполнения (поможет приложенная обработка);
- убедиться в том, что в коде обработчика есть анализ типа параметра;
- если нет – вставить в код условие вида
Если ТипЗнч(Основание) = Тип("…"),
где Основание – параметр обработчика ОбработкаЗаполнения.
Дополнительный вызов обработчика ОбработкаЗаполнения
В 1С:Предприятии 8.2 обработчик ОбработкаЗаполнения вызывается при программном вводе нового элемента с помощью вызова методов ПолучитьФормуНовогоДокумента, ПолучитьФормуНовогоЭлемента и аналогичных. В результате чего следующий код дважды вызовет обработчик объекта ОбработкаЗаполнения:Копировать в буфер обмена
ФормаСчетаФактуры = Документы.СчетФактуры.ПолучитьФормуНовогоДокумента(); // обработчик ОбработкаЗаполнения вызывается автоматически ФормаСчетаФактуры.Заполнить(ДокументОснованиеСсылка); // приводит к повторному вызову обработчика ОбработкаЗаполнения ФормаСчетаФактуры.Открыть();Для устранения несовместимости необходимо:
- выявить все вызовы метода Заполнить(), которые применяются совместно с методами вида ПолучитьФормуНового;
- заменить вызов ПолучитьФормуНового на пару вызовов ПолучитьФорму и Открыть. Например:
ОбъектСчетаФактуры = Документы.СчетФактуры.СоздатьДокумент(); ОбъектСчетаФактуры.Заполнить(ДокументОбъект.Ссылка); ФормаСчетаФактуры = ОбъектСчетаФактуры.ПолучитьФорму(); ФормаСчетаФактуры.Открыть();
Конфликт имен методов и свойств
Нельзя использовать имена переменных, совпадающие с новыми методами и свойствами, которые появились в 1С:Предприятии 8.2:- перечисления ГруппировкаКолонок и ОтображениеКнопки;
- метод ПроверитьЗаполнение у объектов, манипулирующих данными (СправочникОбъект, НаборЗаписей и т. п.)
- новые методы глобального контекста:
- ПредопределенноеЗначение(),
- СмещениеЛетнегоВремени(),
- ЗаблокироватьДанныеДляРедактирования(),
- РазблокироватьДанныеДляРедактирования(),
- ПолучитьЗначенияОтбораЖурналаРегистрации(),
- УстановитьПривилегированныйРежим(),
- ПривилегированныйРежим().
Также нельзя использовать имена картинок, совпадающие с новыми картинками из библиотеки картинок:
- НастройкиОтчета,
- Форма,
- ХранилищеНастроек,
- АктивныеПользователи,
- ЖурналРегистрации,
- ЖурналРегистрацииПоПользователю,
- ПоказатьДанные,
- Свойства.
Поле "Тип" у таблиц журналов документов
В 1С:Предприятии 8.2 для таблиц журналов документов реализовано виртуальное поле Тип, содержащее тип документа. Для устранения несовместимости необходимо:- выявить журналы с такой графой (с помощью приложенной обработки);
- переименовать и исправить все их использования в коде конфигурации.
Изменение поведения операции языка запросов ВЫРАЗИТЬ
В 1С:Предприятии 8.2 операция языка запросов ВЫРАЗИТЬ возвращает строку переменной длины (без концевых пробелов) при приведении к типу СТРОКА. Для устранения несовместимости необходимо:- найти запросы с ВЫРАЗИТЬ;
- проанализировать, является ли получаемое выражение результатом выборки (находится в ВЫБРАТЬ);
- проверить, как обрабатывается соответствующее поле результата запроса – нет ли там кода, опирающегося на то, что длина получаемой строки равна заданной в запросе.
Схемы компоновки данных, содержащие объединяемые наборы данных
В 1С:Предприятии 8.2 для схем компоновки данных, которые содержат объединяемые наборы данных, изменено поведение при отборе по полю, которое присутствует только в одном объединяемом наборе данных. Например, имеется набор данных – объединение, в котором имеется два дочерних набора данных:- набор данных Продажи с полями Контрагент, Номенклатура, Сумма;
- и набор данных Оплата с полями Контрагент, Сумма.
В конфигурациях прежнее поведение системы компоновки данных "обходилось" путем ввода "фиктивных" полей в объединяемые наборы данных.
Для устранения несовместимости необходимо:
- выявить все схемы компоновки данных с наборами данных – объединениями;
- если требуется сохранить текущее поведение 1С:Предприятия 8.1, завести одинаковый набор полей в объединяемых наборах данных;
- если текущее поведение 1С:Предприятия 8.1 считается ошибкой, ничего не предпринимать (записать ошибку).
Изменение имен идентификаторов групп полей настройки СКД
В 1С:Предприятии 8.2 идентификаторы групп полей настройки СКД были изменены на русскоязычные:-
"SystemFields" -> "СистемныеПоля";
-
"SerialNumber" -> "НомерПоПорядку";
-
"GroupSerialNumber" -> "НомерПоПорядкуВГруппировке";
-
"Level" -> "Уровень";
-
"LevelInGroup" -> "УровеньВГруппировке";
-
"GroupPercent" -> "ПроцентВГруппе";
-
"OverallPercent" -> "ПроцентОбщий";
-
"DataParameters" -> "ПараметрыДанных";
-
"UserFields" -> "ПользовательскиеПоля".
-
Заменить в коде старые идентификаторы на новые. Например,
Если ДоступноеПоле.Поле <> Новый ПолеКомпоновкиДанных("SystemFields") Тогда
заменить наКопировать в буфер обмена
Если ДоступноеПоле.Поле <> Новый ПолеКомпоновкиДанных("СистемныеПоля") Тогда
Ограничение длины реквизита метаданных типа "Строка фиксированной длины"
В 1С:Предприятии 8.2 реквизит метаданных типа "Строка фиксированной длины" не может быть длиной более 100 символов. Для устранения несовместимости необходимо:- выявить все такие реквизиты с помощью приложенной обработки;
- если такие реквизиты есть, необходимо перепроектировать функционал:
- заменить на строки переменной длины;
- и провести анализ использования данных этих реквизитов – нет ли кода, рассчитывающего на фиксированную длину (наличие хвостовых пробелов).
Проверка заполнения стандартного реквизита "Наименование"
В 1С:Предприятии 8.2 изменено поведение стандартного реквизита Наименование справочников, планов видов характеристик, планов счетов, планов видов расчета и задач. По умолчанию свойство "Проверка заполнения" установлено в значение "Выдавать ошибку". Для устранения несовместимости необходимо:- Выявить все формы элементов объектов, в которых реквизит Наименование не редактируется (отсутствует на форме).
- Убедиться, что реквизиту Наименование устанавливается значение перед записью в форме. Если реквизит Наименование не редактируется пользователем, то его следует заполнить из кода на встроенном языке.
Удаление некоторых свойств табличного документа
В 1С:Предприятии 8.2 удалены свойства ЦветФонаГруппировки, ЦветТекстаГруппировки, ЦветФонаЗаголовков и ЦветТекстаЗаголовков табличного документа. Для устранения несовместимости необходимо:- выявить использование таких идентификаторов в текстах модулей (с помощью приложенной обработки);
- если они есть, необходимо перепроектировать функционал, избавившись от их использования.
Изменение представления приложения 1CV8
В 1С:Предприятии 8.2 изменено представление приложения 1CV8 – вместо "1С:Предприятие" используется "Толстый клиент":- в методе ПредставлениеПриложения;
- в системных формах.
- проверить наличие строкового литерала "1С:Предприятие" в модулях (с помощью приложенной обработки);
- проанализировать, не сравнивается ли он с именем приложения;
- см. метод ПолучитьСоединенияИнформационнойБазы и свойство ИмяПриложения.
Изменения имени класса COM-соединителя
В 1С:Предприятии 8.2 изменено имя класса COM-соединителя – вместо "V81.COMConnector" используется "V82.COMConnector".Для устранения несовместимости необходимо выявить все вхождения "V81.COMConnector" и заменить их на вызов функции, получающей имя COM-соединителя универсально:
Копировать в буфер обмена
// Вернуть имя COM-класса для работы с 1С:Предприятием 8 через COM-соединение. Функция ИмяCOMСоединителя() Экспорт СисИнфо = Новый СистемнаяИнформация; ПодстрокиВерсии = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СисИнфо.ВерсияПриложения, "."); Возврат "v" + ПодстрокиВерсии[0] + ПодстрокиВерсии[1] + ".COMConnector"; КонецФункции
Изменение поведения метода "Заблокировать" объекта "БлокировкаДанных"
В 1С:Предприятии 8.2 изменено поведения метода Заблокировать() объекта БлокировкаДанных. Если объект БлокировкаДанных был неправильно проинициализирован, то возникает ошибка о неверном типе устанавливаемого значения. Ранее в 1С:Предприятии 8.1 в этом случае ошибка не возникала, и установка управляемой блокировки не производилась.Например, если блокировка по типу МоментВремени для реквизитов типа Дата ранее игнорировалась, то теперь следующий код приводит к ошибке:
Копировать в буфер обмена
Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ТоварыВНаличии"); ЭлементБлокировки.УстановитьЗначение("Склад", Склад); ЭлементБлокировки.УстановитьЗначение("Период", Новый МоментВремени(Дата, Ссылка)); Блокировка.Заблокировать();выдает ошибку:
{Документ.ПриходныйОрдер.МодульОбъекта(<номер строки>)}: Ошибка при вызове метода контекста (Заблокировать): Неверный тип устанавливаемого значения для поля блокировки
РегистрНакопления.ТоварыВНаличии.Период - Момент времени
по причине:
Неверный тип устанавливаемого значения для поля блокировки
РегистрНакопления.ТоварыВНаличии.Период - Момент времени
Для устранения несовместимости необходимо:
- выявить все вызовы метода контекста Заблокировать(),
- убедиться, что объект БлокировкаДанных инициализируется допустимым образом. В частности, вместо типа МоментВремени в качестве значения блокировки используется тип Дата.
Изменение поведения свойств "Вывод" и "ОриентацияСтраницы" табличного документа
В 1С:Предприятии 8.2 попытка присвоить некорректные значения свойствам Вывод и ОриентацияСтраницы табличного документа приводит к ошибке. Ранее в 1С:Предприятии 8.1 в этом случае ошибка не возникала, а некорректное присваивание игнорировалось.Для устранения несовместимости необходимо:
- выявить все места присваивания свойств Вывод и ОриентацияСтраницы табличного документа,
- убедиться, что присваиваются допустимые значения.
Увеличены отступы слева и справа от текста в ячейках табличного документа
При том же шрифте и тех же размерах колонки текст ячейки табличного документа может не помещаться по ширине. Для устранения несовместимости необходимо:- выявить колонки табличного элемента, которым устанавливается фиксированная ширина без возможности изменения пользователем,
- увеличить ширину таких колонок либо разрешить изменение их ширины в режиме 1С:Предприятия.
Удаление свойства подсистемы некоторых объектов метаданных
Свойство Подсистемы некоторых объектов метаданных (таких как Справочник, Документ и т. п.) не поддерживается в режиме совместимости "Не использовать".Для устранения несовместимости необходимо:
-
Выявить все обращения к этому свойству, для этого использовать поиск подстроки ".Подсистемы" ;
-
Отказаться от использования свойства Подсистемы, пересмотрев логику соответствующего модуля. Вместо этого свойства следует использовать свойство Состав у объекта метаданных Подсистема.
Комментариев нет:
Отправить комментарий