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

Пытаюсь настроить обмен между подразделениями штатными средствами.
Создал подчиненный узел, создал начальный образ — при обмене возникают ошибки чтения файла обмена.
На основном узле:
2012.05.15 08:14:46|Костров Валерий|Обмен.Узел_TT.Чтение|ok|Начало чтения файла сообщения «C:tmpMessageExchange_UT_TT_0000000002.xml»
2012.05.15 08:14:47|Костров Валерий|Обмен.Узел_TT.Чтение|error|Ошибка чтения сообщения. Попытка № 0 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477)
2012.05.15 08:14:48|Костров Валерий|Обмен.Узел_TT.Чтение|error|Ошибка чтения сообщения. Попытка № 1 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477)
2012.05.15 08:14:49|Костров Валерий|Обмен.Узел_TT.Чтение|error|Ошибка чтения сообщения. Попытка № 2 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477) и так далее до 20, потом начинается выгрузка, которая проходит успешно.
На подчиненном узле:
2012.05.15 08:20:09|Администратор|Обмен.Узел_UL.Чтение|ok|Начало чтения файла сообщения «C:tmpMessageExchange_TT_UT_0000000003.xml»
2012.05.15 08:20:11|Администратор|Обмен.Узел_UL.Чтение|error|Ошибка чтения сообщения. Попытка № 0 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477)
2012.05.15 08:20:12|Администратор|Обмен.Узел_UL.Чтение|error|Ошибка чтения сообщения. Попытка № 1 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477)
2012.05.15 08:20:14|Администратор|Обмен.Узел_UL.Чтение|error|Ошибка чтения сообщения. Попытка № 2 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477)
2012.05.15 08:20:15|Администратор|Обмен.Узел_UL.Чтение|error|Ошибка чтения сообщения. Попытка № 3 : Ошибка при вызове метода контекста (ПрочитатьИзменения)
(Имя модуля: ОбщийМодуль.одОбменДанными, номер строки: 3 477) и так далее до 20, потом начинается выгрузка, которая проходит успешно.

Альфа-Авто: Автосалон +Автосервис + Автозапчасти. Редакция 4.1 (4.1.01.20),

Конфигурация узла распределенной ИБ не соответствует ожидаемой

Я
   Dirk Diggler

12.04.19 — 13:49

Ничего нового, все то же самое.

Ошибка при вызове метода контекста (ПрочитатьИзменения): Конфигурация узла распределенной ИБ не соответствует ожидаемой!

Конфигурацию выгружал, в удаленный узел загрузил. Такая же фигня. Что можно еще сделать?

Релиз платформы 8.3.12.1790, есличо

   Dirk Diggler

1 — 12.04.19 — 13:50

Удаленный узел файлы обмена всасывает нормально, кстати.

   Dirk Diggler

2 — 12.04.19 — 14:03

Методика 2 вот отсюда звучит страшновато, да и собсно я так понимаю, она именно для другого случая, когда изменения не идут в удаленный узел

   Dirk Diggler

3 — 12.04.19 — 14:03

   Фрэнки

4 — 12.04.19 — 14:05

А чем тебя первая методика из ссылки не устроила?

   Dirk Diggler

5 — 12.04.19 — 14:11

(4) Тем, что не работает. Я сделал несколько раз уже. В удаленный узел идут изменения, обратно главный не принимает.

   Фрэнки

6 — 12.04.19 — 14:22

(5) в ЦБ какие-то изменения конфигурации делаются?

Если да, то пересохрани всю конфигурацию в ЦБ — заставь ее заново примениться к базе с реструктуризацией и регистрацией всех своих объектов. Только после этого проведи по шагам методики 1-го пункта.

   Dirk Diggler

7 — 12.04.19 — 14:49

(6) Делаются. ОНи всасываются успешно в удаленный узел

А обратно шиш.

   Dirk Diggler

8 — 12.04.19 — 14:50

Но попробую без выгрузки, да

   Dirk Diggler

9 — 12.04.19 — 14:50

Ща релиз ИБ подобновлю

   2mugik

10 — 12.04.19 — 15:03

«А обратно шиш» — а в файле выгрузки есть изменения?

   Serg_1960

11 — 12.04.19 — 15:08

(7) Что-то я не понял. «Удаленный» — это в смысле «подчиненный»? Тогда не понял. Такая ошибка может возникнуть в подчиненных узлах, но не в центральном. Как узел может «всосать успешно», если проверка соответствия — перед началом обмена?

   Serg_1960

12 — 12.04.19 — 15:09

Пятница?

   tixis

13 — 12.04.19 — 15:12

(11) может, я такое тоже видел, на куче точек норм получает. а в центр хрен. Делал выгрузку CF из узла в Центр. норм заработало. По поводу сабжа в (0). Платформы одинаковые? Тоже недавно на 13-й парился с этим, пока одинаковые платформы не поставил, не проходил обмен.

   Serg_1960

14 — 12.04.19 — 15:20

(13) Чудны дела твои, господи. Работал на разных платформах по узлам, но ни разу такого не было. В центральном узле было и не раз «Данные принимаются от узла, для которого зарегистрированы изменения конфигурации…» но чтобы такое… век учись -дураком помрёшь.

Первое что в голову приходит — чистить кэши, перегружать сервак; выгрузить конфигурацию ПУ, на ЦУ вернуться к конфигурации БД и сравнить с выгруженной конфой ПУ…

   Фрэнки

15 — 12.04.19 — 15:20

источник ошибки — в файле от ПБ содержится значение хэш-функции, которое попадает в файл от сохраненной конфигурации в ПБ.

Если это файл для загрузки в ЦБ то ЦБ тоже указывает, что конфигурация не соответствует ожидаемой.

По поводу не совпадения платформ — тоже допускаю, что и в этом может быть причина, т.к. формула для получения хэшфункции в разных платформах может (в теории) давать разные значения. Но часто видел такое, что платформы разные и режим работы с базами разные, а ошибок нет.

Как только конфигурации в ЦБ и в ПБ полностью, абсолютно идентичны — ошибка исчезает.

   Serg_1960

16 — 12.04.19 — 15:24

(15) Механизм РИБ — один из базовых механизмов платформы. Он консервативен не хуже чем британская королева :) Я к тому, что маловероятно изменение алгоритма хэш-функции идентификатора конфигурации.

   Dirk Diggler

17 — 12.04.19 — 15:39

(10) а как же.

(11) А вот так. Подчиненный узел считает что все ок. Все изменения, что в конфигурации тут навертел — там есть и работают. А главный изменения не принимает.

(13) Одинаковые. Насчет из ПУ в ГУ выгрузки цф это мысль, я попробую потом, как если ща с обновлением версии УТ не взлетит.

   Dirk Diggler

18 — 12.04.19 — 15:44

(15) замена Digest2 на значение из выгрузки главного узла кстати не помогла, главный узел сказал не приму эту выгрузку.

   Serg_1960

19 — 12.04.19 — 21:53

(17) Имхо, если демоны в базе шалят, то выгрузка/загрузка конфигурации через пустую базу может поможет (из ПБ в ЦБ).

   Garykom

20 — 12.04.19 — 21:59

   Sasha_1CK

21 — 13.04.19 — 03:58

1. Почистить кеш на ЦБ

2. Почистить кеш на ПБ

3. Выгрузить ЦФ из ПБ, загрузить в ПБ (по стандартной схеме, отключить узел, разрешить изменения, загрузить ЦФ, восстановить статус узла).

4. Попробовать обмен

5. Установить другой допустимый релиз платформы (предыдущий или следующий). Повторить шаги 1-4.

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

   Sasha_1CK

22 — 13.04.19 — 03:59

+(21)

в 3. пункте ЦФ выгрузить из Центральной базы.

   Dirk Diggler

23 — 13.04.19 — 17:46

(20) одинаковые

   Dirk Diggler

24 — 13.04.19 — 17:48

(22) это все уже делалось. ну только релизы не менялись.

   Sasha_1CK

25 — 15.04.19 — 00:26

(24) «ну только релизы не менялись» — это тоже важно. Есть релизы — в которых тупо РИБ не работает из-за багов.

(14) за последние 5 лет минимум дважды сталкивался с релизом на котором РИБ не работает именно из-за багов платформы.

   123GO

26 — 15.04.19 — 04:00

Была беда, когда РИБ вообще игнорировал небольшие изменения конфигурации ЦУ и продолжал принимать объекты базы. Пропало с переходом с 8.3.12 на 8.3.13

   Digger

27 — 15.04.19 — 05:08

Была подобная ошибка недавно,  именно что обмен не грузился из ПБ в ЦБ.  Но там были разные версии платформы 13 и 14 в узлах.  Сделали обе платформы одинаковыми,   добавили в ЦБ  новое метаданное,  после чего проблема загрузки обмена переехала в ПБ,  и там уже стандартной загрузкой конфы залечили.

   Dirk Diggler

28 — 15.04.19 — 11:02

(25) Так работало ж пару месяцев, с тех пор как РИБ создал.

(26) да перейти не вопрос, но они их плодят как тараканов, а какой более-менее стабильный — хз.

   Dirk Diggler

29 — 15.04.19 — 11:53

(6) Заработало. Обновил релиз конфигурации, загрузил сф в ПУ, обмен пошел.

  

Dirk Diggler

30 — 15.04.19 — 11:54

(29) отличие только в том было, что перед обновлением обмен я отключил, включил только после заливки нового цф в ПУ.

В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.

Исправляем ситуацию

Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:


	 Запрос = Новый Запрос;
	 Запрос.Текст =
	         "ВЫБРАТЬ
	          |        Номенклатура.Ссылка КАК Ссылка,
	          |        Номенклатура.ВерсияДанных КАК ВерсияДанных,
	          |        Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	          |        Номенклатура.Родитель КАК Родитель,
	          |        Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	          |        Номенклатура.Код КАК Код,
	          |        Номенклатура.Наименование КАК Наименование,
	          |        Номенклатура.Артикул КАК Артикул,
	          |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	          |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	          |        Номенклатура.Предопределенный КАК Предопределенный,
	          |        Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	          |ИЗ
	          |        Справочник.Номенклатура КАК Номенклатура
	          |ГДЕ
	          |         ";
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 КонецЦикла;
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.


	 Запрос = Новый Запрос;
	            Запрос.Текст =
	                       "ВЫБРАТЬ
	                        |          Номенклатура.Ссылка КАК Ссылка,
	                        |          Номенклатура.ВерсияДанных КАК ВерсияДанных,
	                        |          Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	                        |          Номенклатура.Родитель КАК Родитель,
	                        |          Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	                        |          Номенклатура.Код КАК Код,
	                        |          Номенклатура.Наименование КАК Наименование,
	                        |          Номенклатура.Артикул КАК Артикул,
	                        |          Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	                        |          Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	                        |          Номенклатура.Предопределенный КАК Предопределенный,
	                        |          Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	                        |ИЗ
	                        |          Справочник.Номенклатура КАК Номенклатура
	                        |ГДЕ
	                        |          НЕ Номенклатура.ЭтоГруппа ";
	 НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
	 КонецЦикла;
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник
Рис.3 Синтакс-помощник

В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.

  • Главная
  •  — 
  • Форум
  •  — 
  • ТЕХПОДДЕРЖКА
  •  — 
  • ЭКСЕЛОН — Загрузка в 1С из EXCEL
  •  — 
  • Ошибка при вызове метода контекста (Записать)
 

Вчера заметил, что перестали обновляется цены, проверил выгрузку и обнаружил что часть номенклатуры не записывается.
Возможно это как то связано с переходом на 1с 11.5
Сегодня обновил модуль проблема осталась

Номенклатура_СоздатьОбновить 020: {ВнешняяОбработка.APPLIX_RU_ЗагрузкаИзExcel_ЗМ.МодульОбъекта(70081)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульМенеджера(2911)}: Преобразование значения к типу Булево не может быть выполнено

 

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

 

1С:Предприятие 8.3 (8.3.20.1674)
Управление торговлей, редакция 11 (11.5.7.336)
модуль загрузки 16.5.8

Прикрепленные файлы

 

Модуль создал номенклатуру, теперь ее невозможно открыть

ТекстыЗапросов = Новый Массив;
ПараметрыЗапроса = Новый Структура;

ИменаОбъектовМетаданных = Новый Массив;

Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл
Тип = СсылкиПоТипу.Ключ;
ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
Если ОбъектМетаданных = Неопределено Тогда
ВызватьИсключение
НСтр(«ru = ‘Неверный первый параметр Ссылки в функции ОбщегоНазначения.ЗначенияРеквизитовОбъектов:
          |- Значения массива должны быть ссылками'»);
КонецЕсли;

ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных);

Прикрепленные файлы

 

пришлите ваш файл и скриншоты всех настроек колонок

 
 
 

у нас загрузилось нормально

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

 

Сергей Юданов

Пользователь

Сообщений: 23
Регистрация: 09.04.2019

#9


0
 

30.05.2022 15:03:02

Разобрались сами.

На некоторые позиции номенклатуры в поле (Вид номенклатуры) было назначено не значение, а почему-то название категории в котором содержались значения.

ПОСЛЕДНИЕ СООБЩЕНИЯ

Сейчас на форуме (гостей: 58)

Всего зарегистрированных пользователей: 2219

Приняло участие в обсуждении: 367

Всего тем: 822

Разобрался.




Проблема была в правилах регистрации.

Если кому-то интересно, то если во время проведения документа в типовой конфигурации появляется ошибка

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

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

первым делом проверьте , не изменялись ли какие-либо планы обмена для синхронизации. Возможно, в каком-то из настроенных обменов были изменены правила регистрации, что и приводит к упомянутой ошибке. В таком случае, если обмен является типовым, установите галочку использования типовых правил регистрации в соответствующем диалоговом окне.

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

  • Ошибка вывода directsound windows 10
  • Ошибка вызова zlib gta 5 как исправить на пиратке
  • Ошибка вызова метода драйвера получитьпараметрыккт
  • Ошибка выведенная ручкой 6 букв сканворд
  • Ошибка вызова zlib gta 5 как исправить steam

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии