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

Ошибка при вызове метода контекста (Заблокировать)…

Я
   krekotnev

21.01.13 — 18:42

Коллеги, приветствую!

Вот такая ситуация. Используем 1С БУ 8. В соответствии со спецификой учета на предприятии применяем три операции:

1) поступление ТМЦ,

2) перемещение ТМЦ,

3) передача ТМЦ на объект строительства через треб.-накл.

Сегодня нашел ошибку в одной из операций перемещения. Отменил ее проведение. Поменял счета учета на правильные (003.01 — 003.01), но снова провести документ не смог — система выдала ошибку: «Ошибка при вызове метода контекста (Заблокировать): Значение субконто, заданное с помощью ссылки на ПВХ, должно быть ссылочного типа, пространство блокировки = РегистрБухгалтерии.Хозрасчетный».

Подскажите, в каком направлении копать?

Спасибо!

   krekotnev

1 — 21.01.13 — 18:43

Используем 1С Бухгалтерия 8.3

   krekotnev

2 — 21.01.13 — 18:47

Был на Гэлэкси, там есть похожее обсуждение

http://www.1c-galaxy.ru/forum4/topic602010/

Но не могу понять ((

   krekotnev

3 — 23.01.13 — 12:11

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

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

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

       Возврат;

   КонецЕсли;

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

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

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

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

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

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

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

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

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

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

       Возврат;

   КонецЕсли;

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

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

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

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

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

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

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

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

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

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

           
       КонецЦикла;

   
   КонецЕсли;

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

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

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

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

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

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

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

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

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

           КонецЦикла;

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

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

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

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

           |ИЗ

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

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

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

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

           
       Иначе

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

           
       КонецЕсли;

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

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

           
       КонецЦикла;

   
   КонецЕсли;

   
   Попытка

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

   
   Исключение

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

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

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

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

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

   krekotnev

4 — 23.01.13 — 13:24

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

Попытка

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

   
   Исключение

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

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

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

После этого получается выполнить перепроведение документов по операции «Перемещение товаров». Остается открытым вопрос: а на что повлияет комментирование указанных строк?..

Может, обсудим?

   krekotnev

5 — 25.01.13 — 18:03

Более опытный коллега подсказал, что это связано с несовпадением субконто.

  

krekotnev

6 — 25.01.13 — 18:03

тема закрыта, всем спасибо!

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

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

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

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

{ЭИТ ОбщийМодуль.ЭИТ_ВерсионированиеОбъектов.Модуль(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

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

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

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

При проведении документа в серверной версии бухгалтерии 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

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

Подсказка: Вы получили ответ на свой вопрос — закройте вопрос!
 

Добрый день!

Установили платформу 8.3.20.1674.
ААА 5.1.26.03

Ошибка при проведении Комплектации.

{ОбщийМодуль.обПроцедурыОбщегоНазначения.Модуль(2725)}: Ошибка при вызове метода контекста (Заблокировать): Не найдено поле источника данных: Номенклатура

Использовать ранние версии платформы не представляется возможным.

 

Максим, добрый день, для релиза 5,1,26,03 — Рекомендуемая версия платформы — 8.3.16.1502.

 

Максим Горбачев

Заглянувший

Сообщений: 66
Авторитет:

0

Регистрация: 22.06.2012

#3



0


25.01.2022 15:47:43

Цитата
написал:
Максим, добрый день, для релиза 5,1,26,03 — Рекомендуемая версия платформы — 8.3.16.1502.

Добрый день!
Да, я читал об этом, но к сожалению другие приложения 1С не могут уже работать на 8.3.16  

 

Переходи на 8.3.18.1741, проблем не обнаружил. На 8.3.20 есть проблема с обменами, есть РИБ поэтому переходит не стал.
А так на твою проблему уже решение есть

https://rarus.ru/forum/forum7/topic14921/

Просто мне еще нравиться, что Рарус никак не реагирует, уже надоедает каждый год одно и тоже ближе к лету наверное релиз выпустят )).

 

Максим Горбачев

Заглянувший

Сообщений: 66
Авторитет:

0

Регистрация: 22.06.2012

#5



0


26.01.2022 10:58:22

Цитата
написал:
А так на твою проблему уже решение есть  https://rarus.ru/forum/forum7/topic14921/

Спасибо!
В отладчике видел колонку «номенклатура» с маленькой буквы, времени не было добраться разобраться.

Версия Платформы: 1С:Предприятие 8.3 (8.3.10.2299); версия 1С: документооборота: Документооборот 8 КОРП, редакция 2.1 (2.1.12.2).
Зависли бизнес-процессы. В журнале регистрации появляется ошибка выполнения заданий. Кто-нибудь сталкивался? Код ошибки:

{ОбщийМодуль.РаботаСЭП.Модуль(1031)}: Ошибка при вызове метода контекста (ЗаблокироватьДанныеДляРедактирования)
				ЗаблокироватьДанныеДляРедактирования(ПодписанныйОбъект,, ИдентификаторФормы);
по причине:
Ошибка блокировки объекта. Объект уже заблокирован:


{РегистрСведений.ЗадачиДляВыполнения.МодульМенеджера(212)}: Ошибка при вызове метода контекста (Заблокировать)
по причине:

по причине:
В данной транзакции уже происходили ошибки!


  • Вопрос задан

    более двух лет назад

  • 1177 просмотров

Да, я помню такой кусочек кода — в ДО очень любят перед манипуляциями делать проверку с помощью ЗаблокироватьДанныеДляРедактирования(). А еще я помню, что там куча фоновых висит, включая бесконечный пересчет прав. И еще пользователи могли работать с браузера или мобильного клиента и их сессия зависла… Короче нужно сервер рестартануть.

Если есть такая возможность, то рекомендую хотя бы раз в неделю регламентно в выходной перегружать службу 1С.

P.S. Или можете настроить расширенное логирование технологического журнала и при следующей ошибке на блокировке отследить по истории кто там его ранее блокировал — человек или регламентное задание. Далее решение по обстоятельствам.

UPD. Если вы подключены к системе взаимодействия, то можете сами снять блокировку без необходимости перегружать сервер. Из задачи, которую не можете выполнить заходите в предмет (как я понимаю, речь о внутреннем документе) и попытайтесь его отредактировать. Вам будет предложено снять блокировку. Подробнее тут:
https://wonderland.v8.1c.ru/blog/vzaimodeystvie-pr…

Пригласить эксперта

Такое возникает, если есть сеанс в котором этот объект заблокирован для редактирования. Либо программно (например параллельное фоновое задание), либо интерактивно — открыт клиент 1ски и в нем открыт этот объект и начато его изменение. Проще всего сначала срубить все сеансы, а потом проверить ещё раз. Вообще в тексте ошибки должен писать, что за пользователь у того сеанса, который установил блокировку, и так можно найти, откуда она взялась.


  • Показать ещё
    Загружается…

07 июн. 2023, в 11:58

1200 руб./за проект

07 июн. 2023, в 11:45

12000 руб./за проект

07 июн. 2023, в 10:19

20000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Ошибка построения цепочки до корневого сертификата
  • Ошибка при восстановлении пароля инстаграм
  • Ошибка построения пути сертификации криптопро арм как исправить
  • Ошибка построения пути сертификации крипто арм
  • Ошибка постпроцессора соединение прервано powermill