18.08.2010
В документе приведена методика по обеспечению совместимости прикладных решений, разработанных на платформе 1С:Предприятие 8.1, с платформой 1С:Предприятие 8.2. Данную процедуру рекомендуется выполнять перед конвертацией конфигурации в 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.2 для схем компоновки данных, которые содержат объединяемые наборы данных, изменено поведение при отборе по полю, которое присутствует только в одном объединяемом наборе данных. Например, имеется набор данных – объединение, в котором имеется два дочерних набора данных:
задан отбор Номенклатура Равно "Стол". Тогда результат компоновки будет содержать только записи из набора данных Продажи, удовлетворяющие условию отбора.
В конфигурациях прежнее поведение системы компоновки данных "обходилось" путем ввода "фиктивных" полей в объединяемые наборы данных.
Для устранения несовместимости необходимо:
В 1С:Предприятии 8.2 идентификаторы групп полей настройки СКД были изменены на русскоязычные:
Для устранения несовместимости необходимо:
Если ДоступноеПоле.Поле <> Новый ПолеКомпоновкиДанных("SystemFields") Тогда
Копировать в буфер обменазаменить на
Если ДоступноеПоле.Поле <> Новый ПолеКомпоновкиДанных("СистемныеПоля") Тогда
В 1С:Предприятии 8.2 реквизит метаданных типа "Строка фиксированной длины" не может быть длиной более 100 символов. Для устранения несовместимости необходимо:
В 1С:Предприятии 8.2 изменено поведение стандартного реквизита Наименование справочников, планов видов характеристик, планов счетов, планов видов расчета и задач. По умолчанию свойство "Проверка заполнения" установлено в значение "Выдавать ошибку". Для устранения несовместимости необходимо:
В 1С:Предприятии 8.2 удалены свойства ЦветФонаГруппировки, ЦветТекстаГруппировки, ЦветФонаЗаголовков и ЦветТекстаЗаголовков табличного документа. Для устранения несовместимости необходимо:
В 1С:Предприятии 8.2 изменено представление приложения 1CV8 – вместо "1С:Предприятие" используется "Толстый клиент":
Для устранения несовместимости необходимо:
В 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 в этом случае ошибка не возникала, а некорректное присваивание игнорировалось.
Для устранения несовместимости необходимо:
При том же шрифте и тех же размерах колонки текст ячейки табличного документа может не помещаться по ширине. Для устранения несовместимости необходимо:
Свойство Подсистемы некоторых объектов метаданных (таких как Справочник, Документ и т. п.) не поддерживается в режиме совместимости "Не использовать".
Для устранения несовместимости необходимо:
Обработка ПроверкаКонфигурацииДляПереводаНа82.epf для конфигураций на платформе 1С:Предприятии 8.1 находится в каталоге: 1CIts/EXE/EXTREPS/Uniprocs82/
Вы можете скопировать обработку прямо сейчас.