Ошибка при вызове метода контекста заблокировать неверные значения типов полей

Процедура УстановитьУправляемуюБлокировку(СтруктураПараметров, КоллекцияЗначенийБлокировки = Неопределено, КоллекцияОписанияИсточника = Неопределено, Отказ = Ложь, Заголовок = «») Экспорт

   
   Если НЕ ТипЗнч(СтруктураПараметров) = Тип(«Структура») Тогда

       Возврат;

   КонецЕсли;

   
   ИспользоватьЗначенияБлокировки = КоллекцияЗначенийБлокировки <> Неопределено

       И (ТипЗнч(КоллекцияЗначенийБлокировки) = Тип(«Структура»)

           ИЛИ ТипЗнч(КоллекцияЗначенийБлокировки) = Тип(«Соответствие»))

       И КоллекцияЗначенийБлокировки.Количество() > 0;

       
   ИспользоватьИсточникДанных     = КоллекцияОписанияИсточника <> Неопределено

       И (ТипЗнч(КоллекцияОписанияИсточника) = Тип(«Структура»)

           ИЛИ ТипЗнч(КоллекцияОписанияИсточника) = Тип(«Соответствие»))

       И КоллекцияОписанияИсточника.Количество() > 0

       И СтруктураПараметров.Свойство(«ИсточникДанных»);

   
   Если НЕ ИспользоватьЗначенияБлокировки И НЕ ИспользоватьИсточникДанных Тогда

       Возврат;

   КонецЕсли;

   
   Блокировка = Новый БлокировкаДанных;

   
   ТипТаблицы = ?(СтруктураПараметров.Свойство(«ТипТаблицы»), СтруктураПараметров.ТипТаблицы, «РегистрНакопления»);

   ИмяТаблицы = СтруктураПараметров.ИмяТаблицы;

   ПространствоБлокировки = ТипТаблицы  + «.» + ИмяТаблицы;

   ЭлементБлокировки = Блокировка.Добавить(ПространствоБлокировки);

   
   РежимБлокировки = ?(СтруктураПараметров.Свойство(«РежимБлокировки»), СтруктураПараметров.РежимБлокировки, РежимБлокировкиДанных.Исключительный);

   ЭлементБлокировки.Режим = РежимБлокировки;

   
   Если ИспользоватьЗначенияБлокировки Тогда

       
       Для каждого ЭлементКоллекции Из КоллекцияЗначенийБлокировки Цикл

           
           ЭлементБлокировки.УстановитьЗначение(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);

           
       КонецЦикла;

   
   КонецЕсли;

   
   Если ИспользоватьИсточникДанных Тогда

       
       ИсточникДанных = СтруктураПараметров.ИсточникДанных;

       
       Если ТипЗнч(ИсточникДанных) = Тип(«МенеджерВременныхТаблиц») Тогда

       
           Запрос = Новый Запрос;

           Запрос.МенеджерВременныхТаблиц = ИсточникДанных;

           ТекстЗапроса = «»;

           Для каждого ЭлементКоллекции Из КоллекцияОписанияИсточника Цикл

               ТекстЗапроса = ТекстЗапроса + «,

               |    Таб.» + ЭлементКоллекции.Значение;

           КонецЦикла;

           ТекстЗапроса = Сред(ТекстЗапроса, 2);

           ТекстЗапроса =            

           «ВЫБРАТЬ РАЗЛИЧНЫЕ»

           + ТекстЗапроса + »

           |ИЗ

           |    » + СтруктураПараметров.ИмяВременнойТаблицы + » КАК Таб»;

           Запрос.Текст = ТекстЗапроса;

           Результат    = Запрос.Выполнить();

           
           ЭлементБлокировки.ИсточникДанных = Результат;

           
       Иначе

           
           ЭлементБлокировки.ИсточникДанных = ИсточникДанных;

           
       КонецЕсли;

   
       Для каждого ЭлементКоллекции Из КоллекцияОписанияИсточника Цикл

           
           ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);

           
       КонецЦикла;

   
   КонецЕсли;

   
   Попытка

   
       Блокировка.Заблокировать();

   
   Исключение

       
       ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(), Отказ, Заголовок);

       ВызватьИсключение «Операция не выполнена»;

       
   КонецПопытки;

КонецПроцедуры

Перейти к контенту

Всем доброго дня!

Делаю расширение с версионированием. Скопировал стандартный механизм в расширение. Все работало ок.

Тут добавил новый документ в типы объекта расширения и при попытке заблокировать таблицу получаю следующую ошибку

{ЭИТ ОбщийМодуль.ЭИТ_ВерсионированиеОбъектов.Модуль(1402)}: Ошибка при вызове метода контекста (Заблокировать): Неверный тип значения: РегистрСведений.ЭИТ_ВерсииОбъектов.Объект

Вот код, который приводит к ошибке.

    Если ТранзакцияАктивна() Тогда

        БлокировкаДанных = Новый БлокировкаДанных();

        ЭлементБлокировки = БлокировкаДанных.Добавить(«РегистрСведений.ЭИТ_ВерсииОбъектов»);

        ЭлементБлокировки.УстановитьЗначение(«Объект», Ссылка);

        БлокировкаДанных.Заблокировать();

    КонецЕсли;

проблема только в одной базе. Делаю ее копию через восстановление бэкапа sql — все работает

База продакшн почти 24/7, так что час на бэкап и его восстановление — непозволительная роскошь

Пробовал и добавить новый тип в этот регистр, и убрать этот документ и добавить заново — ничего не помогает

Причем если добавлять запись в регистр руками — то тип выбрать и записать можно. То есть в базе эти данные храниться могут. Проблема только в блокировке.

Остальные типы — и справочники, и документы записываются без проблем.

Может у кого есть какие идеи?

  1. Добрый день. При проведении документа в БП 3.0 последней версии Реализация товаров и услуг, выдает ошибку — Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ПрочиеРасчеты.РасчетныйДокумент — Возврат товаров от покупателя
    Не можем понять даже при чем тут Возврат товаров от покупатля.

  2. Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.157
    Симпатии:
    553
    Баллы:
    204
  3. Offline

    nickpugachev
    Профессионал в 1С
    Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.397
    Симпатии:
    156
    Баллы:
    104

    обработчик проведения пытается заблокировать остатки регистра по измерению РасчетныйДокумент по значению. В значении указывает документ возврата товаров, которого нет среди типов значения измерения — вот и ошибка.

    скорее всего что-то сделали не так в возврате, раз он его ловит на расчетах.

  4. «В значении указывает документ возврата товаров, которого нет среди типов значения измерения» — в 1С не такой специалист, где можно посмотреть, что он указывает? Перерыл весь документ.

    — Объединение сообщений, 7 июл 2014

    В общем пока не понимаю что делать

    Последнее редактирование: 7 июл 2014

  5. Это пишет в отладчике

    {ОбщийМодуль.РеализацияТоваровУслугФормыКлиент.Модуль(70)}: Ошибка при вызове метода контекста (Записать)
    Если Форма.Записать(ПараметрыЗаписи) Тогда
    по причине:
    Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
    по причине:
    {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
    Если Форма.Записать(ПараметрыЗаписи) Тогда

    по причине:
    Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
    по причине:
    {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена

    {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
    ВызватьИсключение НСтр(«ru=’Операция не выполнена’»);

  6. Ошибка устранена. Дело оказалось в косячном обновлении 34.10 откатил до 33 и все нормально начало проводиться

Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ИПМПЗОтгруженные.ДокументОтгрузки — Списание с расчетного счета Интересно они когда нибудь эту ошибку поправят? Ошибки уже больше года, а воз и ныне там

если писать на мисту — то нет, пиши в 1с :)

И что это даст? Неужели нужно 1001 письмо чтобы исправить? Или за год никто не написал и я буду первым? А насчет мисты ты зря так думаешь, там мониторят и правят ошибки, плюс на мисте есть много людей которые поближе к 1С чем я, и поэтому вероятность исправление будет выше, чем от моего одинокого письма

ты сам привёл темы на мисте, целых 3, а их наверно и больше было. результата то нет) Да исправят когданибудь… пути 1с неисповедимы

Ну так может кто поближе, знают то, что я не знаю. Например что в 33 релизе это исправят

или как обойти эту ошибку

собсно таки надо личку на мисте. написал бы сюда

дык исправь, иль на автоматический режим регистр переведи.

Да чтоб я знал как, не спрашивал бы

нет БП под рукой, судя по ошибке — неправильно параметры задаёт, в СП описано что должно быть (типы) и т.д., это проверь сначала в отладчике, что в параметры лезет

Он просто зачем то пытается наложить блокировку на ИПМПЗОтгруженные, при этом в измерении регистра ДокументОтгрузки, не включен документ (списание с расчетного счета), который передается ему в качестве параметра (берется из ТЧ документа корректировка долга)

В принципе, чтобы не заморачиватся можно прописать Если СтруктураПараметров.ИмяТаблицы=»ИПМПЗОтгруженные» тогда Возврат; КонецЕсли; Или добавить в измерения Списание со счета

движения регистра будут корректные в итоге? тогда да, заглушку ставь

Ну эта же блокировка, т.е. на движение не влияет, а только на параллельную работу

Вечером, сейчас люди работают, а дома в файловой версии эта ошибка не воспроизводится

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Stasya
28.08.2013 07:55 Прочитано: 6343

При проведении документа в серверной версии бухгалтерии 1с 8.2 (обычное приложение) вылетает ошибка:
Ошибка при вызове метода контекста (Заблокировать): У счета отсутствует субконто, заданное ссылкой на характеристику.
При проведении только одного документа»Возврат поставщику», остальные документы проводятся нормально. Сделала копию базы, обновила. В копии ошибка исчезла, при обновлении рабочей базы — ошибка осталась.
Что делать??? Откуда у такой ошибки «ноги растут»?


Изменено 28.08.13 07:55:49

Yandex
Возможно, вас также заинтересует

Реклама на портале

Jonsony
28.08.2013 09:00 Ответ № 1

релиз платформы?
релиз конфы?

без этого ноги не просто искать

Stasya
28.08.2013 13:53 Ответ № 2

ой, извитие. Платформа: 8.2.17.157, релиз БП 2.0.44.5

Stasya
28.08.2013 14:04 Ответ № 3

отбой, слетел режим совместимости с 8.2.13. Установила, все заработало.

Stasya
28.08.2013 14:04 Ответ № 4

Вопрос закрыт!

Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку

  1. Добрый день. При проведении документа в БП 3.0 последней версии Реализация товаров и услуг, выдает ошибку — Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ПрочиеРасчеты.РасчетныйДокумент — Возврат товаров от покупателя
    Не можем понять даже при чем тут Возврат товаров от покупатля.


  2. nbIpKuH_BaH9I

    Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.157
    Симпатии:
    553
    Баллы:
    204


  3. nickpugachev

    Offline

    nickpugachev
    Профессионал в 1С
    Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.397
    Симпатии:
    156
    Баллы:
    104

    обработчик проведения пытается заблокировать остатки регистра по измерению РасчетныйДокумент по значению. В значении указывает документ возврата товаров, которого нет среди типов значения измерения — вот и ошибка.

    скорее всего что-то сделали не так в возврате, раз он его ловит на расчетах.

  4. «В значении указывает документ возврата товаров, которого нет среди типов значения измерения» — в 1С не такой специалист, где можно посмотреть, что он указывает? Перерыл весь документ.

    — Объединение сообщений, 7 июл 2014

    В общем пока не понимаю что делать

    Последнее редактирование: 7 июл 2014
  5. Это пишет в отладчике

    {ОбщийМодуль.РеализацияТоваровУслугФормыКлиент.Модуль(70)}: Ошибка при вызове метода контекста (Записать)
    Если Форма.Записать(ПараметрыЗаписи) Тогда
    по причине:
    Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
    по причине:
    {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
    Если Форма.Записать(ПараметрыЗаписи) Тогда

    по причине:
    Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
    по причине:
    {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена

    {ОбщийМодуль.ОбщегоНазначенияБПВызовСервера.Модуль(987)}: Операция не выполнена
    ВызватьИсключение НСтр(«ru=’Операция не выполнена'»);

  6. Ошибка устранена. Дело оказалось в косячном обновлении 34.10 откатил до 33 и все нормально начало проводиться


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Ошибка при вызове метода контекста (Заблокировать): Неверные значения типов полей : РегистрНакопления.ИПМПЗОтгруженные.ДокументОтгрузки — Списание с расчетного счета Интересно они когда нибудь эту ошибку поправят? Ошибки уже больше года, а воз и ныне там

если писать на мисту — то нет, пиши в 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С:Предприятия.

Удаление свойства подсистемы некоторых объектов метаданных

Свойство Подсистемы некоторых объектов метаданных (таких как Справочник, Документ и т. п.) не поддерживается в режиме совместимости «Не использовать».
Для устранения несовместимости необходимо:

  • Выявить все обращения к этому свойству, для этого использовать поиск подстроки «.Подсистемы» ;

  • Отказаться от использования свойства Подсистемы, пересмотрев логику соответствующего модуля. Вместо этого свойства следует использовать свойство Состав у объекта метаданных Подсистема.

  • Ошибка при вызове метода контекста вопрос
  • Ошибка при вызове метода контекста добавить объект недоступен для изменения
  • Ошибка при вызове метода контекста xmlзначение ошибка преобразования данных xml
  • Ошибка при вызове метода контекста добавить несоответствие типов параметр номер 1
  • Ошибка при вызове метода контекста worksheets произошла исключительная ситуация 0x8002000b