Процедура УстановитьУправляемуюБлокировку(СтруктураПараметров, КоллекцияЗначенийБлокировки = Неопределено, КоллекцияОписанияИсточника = Неопределено, Отказ = Ложь, Заголовок = «») Экспорт
Если НЕ ТипЗнч(СтруктураПараметров) = Тип(«Структура») Тогда
Возврат;
КонецЕсли;
ИспользоватьЗначенияБлокировки = КоллекцияЗначенийБлокировки <> Неопределено
И (ТипЗнч(КоллекцияЗначенийБлокировки) = Тип(«Структура»)
ИЛИ ТипЗнч(КоллекцияЗначенийБлокировки) = Тип(«Соответствие»))
И КоллекцияЗначенийБлокировки.Количество() > 0;
ИспользоватьИсточникДанных = КоллекцияОписанияИсточника <> Неопределено
И (ТипЗнч(КоллекцияОписанияИсточника) = Тип(«Структура»)
ИЛИ ТипЗнч(КоллекцияОписанияИсточника) = Тип(«Соответствие»))
И КоллекцияОписанияИсточника.Количество() > 0
И СтруктураПараметров.Свойство(«ИсточникДанных»);
Если НЕ ИспользоватьЗначенияБлокировки И НЕ ИспользоватьИсточникДанных Тогда
Возврат;
КонецЕсли;
Блокировка = Новый БлокировкаДанных;
ТипТаблицы = ?(СтруктураПараметров.Свойство(«ТипТаблицы»), СтруктураПараметров.ТипТаблицы, «РегистрНакопления»);
ИмяТаблицы = СтруктураПараметров.ИмяТаблицы;
ПространствоБлокировки = ТипТаблицы + «.» + ИмяТаблицы;
ЭлементБлокировки = Блокировка.Добавить(ПространствоБлокировки);
РежимБлокировки = ?(СтруктураПараметров.Свойство(«РежимБлокировки»), СтруктураПараметров.РежимБлокировки, РежимБлокировкиДанных.Исключительный);
ЭлементБлокировки.Режим = РежимБлокировки;
Если ИспользоватьЗначенияБлокировки Тогда
Для каждого ЭлементКоллекции Из КоллекцияЗначенийБлокировки Цикл
ЭлементБлокировки.УстановитьЗначение(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
КонецЦикла;
КонецЕсли;
Если ИспользоватьИсточникДанных Тогда
ИсточникДанных = СтруктураПараметров.ИсточникДанных;
Если ТипЗнч(ИсточникДанных) = Тип(«МенеджерВременныхТаблиц») Тогда
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = ИсточникДанных;
ТекстЗапроса = «»;
Для каждого ЭлементКоллекции Из КоллекцияОписанияИсточника Цикл
ТекстЗапроса = ТекстЗапроса + «,
| Таб.» + ЭлементКоллекции.Значение;
КонецЦикла;
ТекстЗапроса = Сред(ТекстЗапроса, 2);
ТекстЗапроса =
«ВЫБРАТЬ РАЗЛИЧНЫЕ»
+ ТекстЗапроса + »
|ИЗ
| » + СтруктураПараметров.ИмяВременнойТаблицы + » КАК Таб»;
Запрос.Текст = ТекстЗапроса;
Результат = Запрос.Выполнить();
ЭлементБлокировки.ИсточникДанных = Результат;
Иначе
ЭлементБлокировки.ИсточникДанных = ИсточникДанных;
КонецЕсли;
Для каждого ЭлементКоллекции Из КоллекцияОписанияИсточника Цикл
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
КонецЦикла;
КонецЕсли;
Попытка
Блокировка.Заблокировать();
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(), Отказ, Заголовок);
ВызватьИсключение «Операция не выполнена»;
КонецПопытки;
КонецПроцедуры
Перейти к контенту
Всем доброго дня!
Делаю расширение с версионированием. Скопировал стандартный механизм в расширение. Все работало ок.
Тут добавил новый документ в типы объекта расширения и при попытке заблокировать таблицу получаю следующую ошибку
{ЭИТ ОбщийМодуль.ЭИТ_ВерсионированиеОбъектов.Модуль(1402)}: Ошибка при вызове метода контекста (Заблокировать): Неверный тип значения: РегистрСведений.ЭИТ_ВерсииОбъектов.Объект
Вот код, который приводит к ошибке.
Если ТранзакцияАктивна() Тогда
БлокировкаДанных = Новый БлокировкаДанных();
ЭлементБлокировки = БлокировкаДанных.Добавить(«РегистрСведений.ЭИТ_ВерсииОбъектов»);
ЭлементБлокировки.УстановитьЗначение(«Объект», Ссылка);
БлокировкаДанных.Заблокировать();
КонецЕсли;
проблема только в одной базе. Делаю ее копию через восстановление бэкапа sql — все работает
База продакшн почти 24/7, так что час на бэкап и его восстановление — непозволительная роскошь
Пробовал и добавить новый тип в этот регистр, и убрать этот документ и добавить заново — ничего не помогает
Причем если добавлять запись в регистр руками — то тип выбрать и записать можно. То есть в базе эти данные храниться могут. Проблема только в блокировке.
Остальные типы — и справочники, и документы записываются без проблем.
Может у кого есть какие идеи?
-
Добрый день. При проведении документа в БП 3.0 последней версии Реализация товаров и услуг, выдает ошибку — Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ПрочиеРасчеты.РасчетныйДокумент — Возврат товаров от покупателя
Не можем понять даже при чем тут Возврат товаров от покупатля. -
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 8.157
- Симпатии:
- 553
- Баллы:
- 204
-
Offline
nickpugachev
Профессионал в 1С
Команда форума- Регистрация:
- 28 май 2012
- Сообщения:
- 3.397
- Симпатии:
- 156
- Баллы:
- 104
обработчик проведения пытается заблокировать остатки регистра по измерению РасчетныйДокумент по значению. В значении указывает документ возврата товаров, которого нет среди типов значения измерения — вот и ошибка.
скорее всего что-то сделали не так в возврате, раз он его ловит на расчетах.
-
«В значении указывает документ возврата товаров, которого нет среди типов значения измерения» — в 1С не такой специалист, где можно посмотреть, что он указывает? Перерыл весь документ.
— Объединение сообщений, 7 июл 2014 —
В общем пока не понимаю что делать
Последнее редактирование: 7 июл 2014
-
Это пишет в отладчике
{ОбщийМодуль.РеализацияТоваровУслугФормыКлиент.Модуль(70)}: Ошибка при вызове метода контекста (Записать)
Если Форма.Записать(ПараметрыЗаписи) Тогда
по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
Если Форма.Записать(ПараметрыЗаписи) Тогдапо причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
ВызватьИсключение НСтр(«ru=’Операция не выполнена’»); -
Ошибка устранена. Дело оказалось в косячном обновлении 34.10 откатил до 33 и все нормально начало проводиться
Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ИПМПЗОтгруженные.ДокументОтгрузки — Списание с расчетного счета Интересно они когда нибудь эту ошибку поправят? Ошибки уже больше года, а воз и ныне там
если писать на мисту — то нет, пиши в 1с
И что это даст? Неужели нужно 1001 письмо чтобы исправить? Или за год никто не написал и я буду первым? А насчет мисты ты зря так думаешь, там мониторят и правят ошибки, плюс на мисте есть много людей которые поближе к 1С чем я, и поэтому вероятность исправление будет выше, чем от моего одинокого письма
ты сам привёл темы на мисте, целых 3, а их наверно и больше было. результата то нет) Да исправят когданибудь… пути 1с неисповедимы
Ну так может кто поближе, знают то, что я не знаю. Например что в 33 релизе это исправят
или как обойти эту ошибку
собсно таки надо личку на мисте. написал бы сюда
дык исправь, иль на автоматический режим регистр переведи.
Да чтоб я знал как, не спрашивал бы
нет БП под рукой, судя по ошибке — неправильно параметры задаёт, в СП описано что должно быть (типы) и т.д., это проверь сначала в отладчике, что в параметры лезет
Он просто зачем то пытается наложить блокировку на ИПМПЗОтгруженные, при этом в измерении регистра ДокументОтгрузки, не включен документ (списание с расчетного счета), который передается ему в качестве параметра (берется из ТЧ документа корректировка долга)
В принципе, чтобы не заморачиватся можно прописать Если СтруктураПараметров.ИмяТаблицы=»ИПМПЗОтгруженные» тогда Возврат; КонецЕсли; Или добавить в измерения Списание со счета
движения регистра будут корректные в итоге? тогда да, заглушку ставь
Ну эта же блокировка, т.е. на движение не влияет, а только на параллельную работу
Вечером, сейчас люди работают, а дома в файловой версии эта ошибка не воспроизводится
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Stasya |
|
||
---|---|---|---|
|
При проведении документа в серверной версии бухгалтерии 1с 8.2 (обычное приложение) вылетает ошибка: Изменено 28.08.13 07:55:49 |
Yandex |
|
||
---|---|---|---|
Jonsony |
|
||
---|---|---|---|
релиз платформы? без этого ноги не просто искать |
Stasya |
|
||
---|---|---|---|
ой, извитие. Платформа: 8.2.17.157, релиз БП 2.0.44.5 |
Stasya |
|
||
---|---|---|---|
отбой, слетел режим совместимости с 8.2.13. Установила, все заработало. |
Stasya |
|
||
---|---|---|---|
Вопрос закрыт! |
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку |
-
Добрый день. При проведении документа в БП 3.0 последней версии Реализация товаров и услуг, выдает ошибку — Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ПрочиеРасчеты.РасчетныйДокумент — Возврат товаров от покупателя
Не можем понять даже при чем тут Возврат товаров от покупатля. -
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 8.157
- Симпатии:
- 553
- Баллы:
- 204
-
Offline
nickpugachev
Профессионал в 1С
Команда форума- Регистрация:
- 28 май 2012
- Сообщения:
- 3.397
- Симпатии:
- 156
- Баллы:
- 104
обработчик проведения пытается заблокировать остатки регистра по измерению РасчетныйДокумент по значению. В значении указывает документ возврата товаров, которого нет среди типов значения измерения — вот и ошибка.
скорее всего что-то сделали не так в возврате, раз он его ловит на расчетах.
-
«В значении указывает документ возврата товаров, которого нет среди типов значения измерения» — в 1С не такой специалист, где можно посмотреть, что он указывает? Перерыл весь документ.
— Объединение сообщений, 7 июл 2014 —
В общем пока не понимаю что делать
Последнее редактирование: 7 июл 2014 -
Это пишет в отладчике
{ОбщийМодуль.РеализацияТоваровУслугФормыКлиент.Модуль(70)}: Ошибка при вызове метода контекста (Записать)
Если Форма.Записать(ПараметрыЗаписи) Тогда
по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
Если Форма.Записать(ПараметрыЗаписи) Тогдапо причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена{ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
ВызватьИсключение НСтр(«ru=’Операция не выполнена'»); -
Ошибка устранена. Дело оказалось в косячном обновлении 34.10 откатил до 33 и все нормально начало проводиться
Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ИПМПЗОтгруженные.ДокументОтгрузки — Списание с расчетного счета Интересно они когда нибудь эту ошибку поправят? Ошибки уже больше года, а воз и ныне там
если писать на мисту — то нет, пиши в 1с
И что это даст? Неужели нужно 1001 письмо чтобы исправить? Или за год никто не написал и я буду первым? А насчет мисты ты зря так думаешь, там мониторят и правят ошибки, плюс на мисте есть много людей которые поближе к 1С чем я, и поэтому вероятность исправление будет выше, чем от моего одинокого письма
ты сам привёл темы на мисте, целых 3, а их наверно и больше было. результата то нет) Да исправят когданибудь… пути 1с неисповедимы
Ну так может кто поближе, знают то, что я не знаю. Например что в 33 релизе это исправят
или как обойти эту ошибку
собсно таки надо личку на мисте. написал бы сюда
дык исправь, иль на автоматический режим регистр переведи.
Да чтоб я знал как, не спрашивал бы
нет БП под рукой, судя по ошибке — неправильно параметры задаёт, в СП описано что должно быть (типы) и т.д., это проверь сначала в отладчике, что в параметры лезет
Он просто зачем то пытается наложить блокировку на ИПМПЗОтгруженные, при этом в измерении регистра ДокументОтгрузки, не включен документ (списание с расчетного счета), который передается ему в качестве параметра (берется из ТЧ документа корректировка долга)
В принципе, чтобы не заморачиватся можно прописать Если СтруктураПараметров.ИмяТаблицы=»ИПМПЗОтгруженные» тогда Возврат; КонецЕсли; Или добавить в измерения Списание со счета
движения регистра будут корректные в итоге? тогда да, заглушку ставь
Ну эта же блокировка, т.е. на движение не влияет, а только на параллельную работу
Вечером, сейчас люди работают, а дома в файловой версии эта ошибка не воспроизводится
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
В статье приведена методика по обеспечению совместимости прикладных решений, разработанных на платформе 1С:Предприятие 8.1, с платформой 1С:Предприятие 8.2. Данную процедуру рекомендуется выполнять перед конвертацией конфигурации в 1С:Предприятие 8.2 и отключением режима совместимости с 1С:Предприятием 8.1.
По каждой проблеме несовместимости дается краткая инструкция по выявлению «проблемных» мест в конфигурации и выполнению адаптации. Выявить «проблемные» места поможет обработка, приведенная в конце данной статьи.
Запрос с ключевым словом РАЗЛИЧНЫЕ
Запрос, в котором указано ключевое слово РАЗЛИЧНЫЕ, а в предложении УПОРЯДОЧИТЬ ПО указано выражение, отсутствующее в списке выборки, считается некорректным. При исполнении такого запроса в 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С:Предприятия.
Удаление свойства подсистемы некоторых объектов метаданных
Свойство Подсистемы некоторых объектов метаданных (таких как Справочник, Документ и т. п.) не поддерживается в режиме совместимости «Не использовать».
Для устранения несовместимости необходимо:
-
Выявить все обращения к этому свойству, для этого использовать поиск подстроки «.Подсистемы» ;
-
Отказаться от использования свойства Подсистемы, пересмотрев логику соответствующего модуля. Вместо этого свойства следует использовать свойство Состав у объекта метаданных Подсистема.