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

  • Главная
  •  / 
  • Статьи
  •  / 
  • Программирование на 1С:Предприятие
  •  / 
  • Ошибка 1С УдалитьРегистрациюИзменений

Ошибка «Недопустимое значение параметра» при запуске УдалитьРегистрациюИзменений

Текст ошибки:

Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’) 
           ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка); 
по причине: 
Недопустимое значение параметра (параметр номер ‘2’) 



В данном случае ошибка связана со вторым параметром процедуры. Необходимо чтобы это была ссылка на объект метаданных, который участвует в обмене. Тогда команда «УдалитьРегистрациюИзменений» сработает без ошибок

Возврат к списку

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

Я
   NcSteel

14.01.09 — 20:33

Взял пример из книги «Профессиональная разработка в системе 1С 8», стр 584. «Удаление регистрации изменений по узлу»:

Процедура ПолноеУдалениеРегистрацииДанныхПоУзлу(Узел) Экспорт

Сообщить(«Удаление регистрации всех данных по узлу » + Узел);

ПланыОбмена.УдалитьРегистрациюИзменений(Узел);

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

При выполнении кода выскакивает ошибка:

{ВнешняяОбработка.ВнешняяОбработка2(127)}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)

   ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена);

по причине:

Недопустимое значение параметра (параметр номер ‘2’)

Второй параметр не передаю. Что не так, не пойму.

   ТелепатБот

1 — 14.01.09 — 20:33

   NcSteel

2 — 14.01.09 — 20:37

Платформа 8.1.12.98

   IronDemon

3 — 14.01.09 — 20:37

Чему равен «Узел»?

СП: Если указано Неопределено или не указан, то в качестве первого параметра может быть указан только одиночный узел.

   NcSteel

4 — 14.01.09 — 20:39

тип ПланОбменаССылка

УзелОбмена = ПланыОбмена.Главный.НайтиПоКоду(«2»);

   NcSteel

5 — 14.01.09 — 20:44

Такой код сработал, но надо удалить все изменения.
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, УзелОбмена.НомерОтправленного);

   NcSteel

6 — 14.01.09 — 21:09

Вверх

   IronDemon

7 — 14.01.09 — 21:12

В аську выйди

   Serg_1960

8 — 14.01.09 — 21:50

В цикле по всем узлам и для каждого ПланыОбмена.УдалитьРегистрациюИзменений(Узел);

   NcSteel

9 — 14.01.09 — 21:55

{ВнешняяОбработка.ВнешняяОбработка2(143)}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)
       ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка);
по причине:
Недопустимое значение параметра (параметр номер ‘2’)

Вот код:

Пока Выборка.Следующий() Цикл
   ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка);
КонецЦикла;

   NcSteel

10 — 14.01.09 — 21:55

Вот более полный код

Выборка = ПланыОбмена.Главный.Выбрать();
Пока Выборка.Следующий() Цикл
   ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка);
КонецЦикла;

   Serg_1960

11 — 14.01.09 — 22:14

Должен работать! И без ошибок!

Вот более полный код :))

Выборка = ПланыОбмена.Главный.Выбрать();

Пока Выборка.Следующий() Цикл

  Если Выборка.Ссылка <> ПланыОбмена.Главный.ЭтотУзел() Тогда

     ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка);

  КонецЕсли;

КонецЦикла;

   NcSteel

12 — 14.01.09 — 22:23

{ВнешняяОбработка.ВнешняяОбработка2(144)}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)
           ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка);
по причине:
Недопустимое значение параметра (параметр номер ‘2’)

   Выборка = ПланыОбмена.Главный.Выбрать();
   Пока Выборка.Следующий() Цикл
       Если Выборка.Ссылка <> ПланыОбмена.Главный.ЭтотУзел() Тогда
           ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка);
       КонецЕсли;
   КонецЦикла;

У кого еще есть варианты )

   Serg_1960

13 — 14.01.09 — 22:28

Тупит платформа :( Специально для тупых — дай ей второй параметр :))

…(Выборка.Ссылка, Неопределено);

   NcSteel

14 — 14.01.09 — 23:08

гы )

{ВнешняяОбработка.ВнешняяОбработка2(144)}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)
           ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка, Неопределено);

   Выборка = ПланыОбмена.Главный.Выбрать();
   Пока Выборка.Следующий() Цикл
       Если Выборка.Ссылка <> ПланыОбмена.Главный.ЭтотУзел() Тогда
           ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка, Неопределено);
       КонецЕсли;

   Serg_1960

15 — 14.01.09 — 23:13

Вот уж действительно гы-гы-гы. Ставьте точку останова — хватит над здравым смыслом шутить… и смотрите в мониторе что из себя представляет Выборка.Ссылка — может быть у Вас в базе узлы «пустые» внесены?

   Serg_1960

16 — 14.01.09 — 23:20

Специально сделал копию и запустил алгоритм. Отработало без ошибок. Проверил обменом — пусто. Действительно, — регистрацию снесло всю напрочь.

   NcSteel

17 — 14.01.09 — 23:23

Дважды гы

Отладчик:

Выборка.Ссылка тип ПланОбменаСсылка.Главный

Код                  «2        »   Строка
Наименование        «Перефирия»    Строка
НомерОтправленного  30             Число
НомерПринятого      0              Число
ПометкаУдаления     Ложь           Булево

Вроде все в норме.

   NcSteel

18 — 14.01.09 — 23:24

(16) А какая платформа?

   Serg_1960

19 — 14.01.09 — 23:26

Эээ… У меня РИБ-база… уж третий год работает на разных релизах…

   NcSteel

20 — 14.01.09 — 23:27

У меня не РИБ, просто настроил планы обмена. Интересно может в этом проблема.

   Serg_1960

21 — 14.01.09 — 23:37

Не-а, — это роли не играет. Планы обмена что РИБ, что не РИБ — свойства и методы одинаковые, — кроме СоздатьНачальныйОбраз…

Всё, — продуктивных мыслей нет… Может выйти из программы и конфигуратора и зайти вновь?

   NcSteel

22 — 15.01.09 — 00:34

(21) Даже комп перезагрузил. Видимо буду стирать как в (5)

  

NcSteel

23 — 15.01.09 — 00:38

Сейчас на партнерский выложу, интерестно что скажут.

Взял пример из книги «Профессиональная разработка в системе 1С 8», стр 584. «Удаление регистрации изменений по узлу»: При выполнении кода выскакивает ошибка: {ВнешняяОбработка.ВнешняяОбработка2}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)    ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена); по причине: Недопустимое значение параметра (параметр номер ‘2’) Второй параметр не передаю. Что не так, не пойму.

Чему равен «Узел»? СП: Если указано Неопределено или не указан, то в качестве первого параметра может быть указан только одиночный узел.

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

В цикле по всем узлам и для каждого ПланыОбмена.УдалитьРегистрациюИзменений(Узел);

{ВнешняяОбработка.ВнешняяОбработка2}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)        ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка); по причине: Недопустимое значение параметра (параметр номер ‘2’) Вот код:

Должен работать! И без ошибок! Вот более полный код :))

{ВнешняяОбработка.ВнешняяОбработка2}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)            ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Ссылка); по причине: Недопустимое значение параметра (параметр номер ‘2’) У кого еще есть варианты )

Тупит платформа Специально для тупых — дай ей второй параметр :)) …(Выборка.Ссылка, Неопределено);

{ВнешняяОбработка.ВнешняяОбработка2}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений): Недопустимое значение параметра (параметр номер ‘2’)

Вот уж действительно гы-гы-гы. Ставьте точку останова — хватит над здравым смыслом шутить… и смотрите в мониторе что из себя представляет Выборка.Ссылка — может быть у Вас в базе узлы «пустые» внесены?

Специально сделал копию и запустил алгоритм. Отработало без ошибок. Проверил обменом — пусто. Действительно, — регистрацию снесло всю напрочь.

Отладчик: Выборка.Ссылка тип ПланОбменаСсылка.Главный Код                  «2        »   Строка Наименование        «Перефирия»    Строка НомерОтправленного  30             Число НомерПринятого      0              Число ПометкаУдаления     Ложь           Булево Вроде все в норме.

Эээ… У меня РИБ-база… уж третий год работает на разных релизах…

У меня не РИБ, просто настроил планы обмена. Интересно может в этом проблема.

Не-а, — это роли не играет. Планы обмена что РИБ, что не РИБ — свойства и методы одинаковые, — кроме СоздатьНачальныйОбраз… Всё, — продуктивных мыслей нет… Может выйти из программы и конфигуратора и зайти вновь?

Даже комп перезагрузил. Видимо буду стирать как в

Сейчас на партнерский выложу, интерестно что скажут.

Тэги:

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

В платформе 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С.

03.01.2016
1С бухгалтерия

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

За основу я взял обработку ВыгрузкаЗагрузкаДанныхXML и стал стыковать ее с планом обмена у которого включена авторегистрация.
Принцип я думаю понятен: грузим объекты из зарегистрированных изменений плана обмена в обработку ВыгрузкаЗагрузкаДанныхXML. Во второй базе загружаем. При этом один нюанс: кроме стандартного файла с данными создаются еще файлы с номерами сообщений, чтобы второй раз не выгружать то, что уже было выгружено.

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

ПланыОбмена.УдалитьРегистрациюИзменений(Узел, НомерСообщения);

Но у меня никак не очищались записи о регистрации изменений и старые изменения вновь улетали в периферийную базу. Проверял и Узел и НомерСообщения — все правильно, Узел тот что надо и Номер именно тот, который присвоился при выгрузке, когда выполнялась команда:

ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);

Этот самый номер стоял в реквизите НомерОтправленногоСообщения того Узла с которым я работал.

Ошибку нашел только когда запросом стал смотреть на таблицы типа «Справочник.Номенклатура.Изменения». Обратил внимание, что при изменении элементов справочника, данные в эту таблицу записываются, но НомерСообщения у записей остается пустым. Пустым он остается и после приведенных выше строк с началом записи сообщения(не смотря на то, что в Узел номер сообщения проставляется). Появляются номера сообщений только после команды:

ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);

И вот когда у записей таблицы Справочник.Номенклатура.Изменения будут стоять номера сообщений, только тогда будет работать и очистка регистрации изменений по номеру сообщения.

Если я Вам помог, то меня можно поблагодарить.

  1. Доброго дня
    Бухгалтерия 3
    делал обновление с 3.0.43.208 на 3.0.43.235
    ошибки
    первая
    {ОбщийМодуль.ОбменСообщениямиВнутренний.Модуль(381)}: Ошибка при вызове метода контекста (ЭтотУзел)
    Возврат ПланыОбмена.ОбменСообщениями.ЭтотУзел();
    по причине:
    Найдено более одной записи
    вторая
    При вызове обработчика обновления:
    «ОбменСообщениямиВнутренний.УстановитьКодЭтойКонечнойТочки()»
    произошла ошибка:
    «{ОбщийМодуль.ОбменСообщениямиВнутренний.Модуль(381)}: Ошибка при вызове метода контекста (ЭтотУзел)
    Возврат ПланыОбмена.ОбменСообщениями.ЭтотУзел();
    по причине:
    Найдено более одной записи».

    почитал пишут косяк платформы попробовал на разных версиях платформах
    пробовал взять чистую конфу последней версии и просто тупо полной заменой загрузить
    вообщем не помогло всегда одно и тоже . Подскажите вдруг кто сталкивался ?
    [​IMG]


  2. 1cUserAndrew

    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    5.125
    Симпатии:
    212
    Баллы:
    104

    Через «Все функции» зайдите в план обмена «Обмен сообщениями». Там должен быть предопределенный узел (соответствующий этой информационной базе).
    Посмотрите, нет ли там у Вас задвоений. Может, два предопределенных узла.

  3. вроде всех по одной
    это если конфигурацию новую чистую заменой загрузить
    {ОбщийМодуль.ОбменСообщениямиВнутренний.Модуль(381)}: Ошибка при вызове метода контекста (ЭтотУзел)
    Возврат ПланыОбмена.ОбменСообщениями.ЭтотУзел();
    по причине:
    Найдено более одной записи

    При вызове обработчика обновления:
    «ОбменСообщениямиВнутренний.УстановитьКодЭтойКонечнойТочки()»
    произошла ошибка:
    «{ОбщийМодуль.ОбменСообщениямиВнутренний.Модуль(381)}: Ошибка при вызове метода контекста (ЭтотУзел)
    Возврат ПланыОбмена.ОбменСообщениями.ЭтотУзел();
    по причине:
    Найдено более одной записи».

    [​IMG]


  4. 1cUserAndrew

    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    5.125
    Симпатии:
    212
    Баллы:
    104

    Сам план обмена-то откройте (провалитесь в него) ).

  5. две строчки удалить которая без зеленной точки ?

    — Объединение сообщений, 22 июн 2016

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

    «Элемент с установленным признаком «ЭтотУзел» уже существует»


  6. nomad_irk

    Online

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.724
    Симпатии:
    1.014
    Баллы:
    204

    Тестирование и Исправление запустите с проверкой ссылочной и логической целостности с удалением объектов и ссылок.


  7. 1cUserAndrew

    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    5.125
    Симпатии:
    212
    Баллы:
    104

    С зеленой точкой один элемент или два?


  8. 1cUserAndrew

    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    5.125
    Симпатии:
    212
    Баллы:
    104

    Попробуйте тогда просто открыть его и перезаписать.
    Если не поможет, тогда воспользуйтесь советом выше (тестирование и исправление).

  9. ужас после тестирования их три штуки одна с зеленой при входе в нее пишет найдено более одной записи

    — Объединение сообщений, 22 июн 2016

    [​IMG]


  10. 1cUserAndrew

    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    5.125
    Симпатии:
    212
    Баллы:
    104

    В общем, суть в чем. «Предопределенный» элемент (с зеленой точкой) должен быть всегда один. У Вас он один. Но система думает, что какой-то из двух других — тоже предопределенный. Поэтому и ругается, что найдено их более одного.
    Я с этим планом обмена никогда не работал. Не знаю, за что он отвечает.
    Думаю, единственный выход — удалить те два элемента. Жестко.
    Попробуйте на копии.
    Если через пометку на удаление не получается, тогда какой-то обработкой надо.

  11. не могу удалить
    Можно как то ручное супер удаление включить ?(интерактивное через шифт делет пробовал)
    {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(28)}: Ошибка при вызове метода контекста (Удалить)
    ПП.Удалить();
    по причине:
    Действие недоступно для этого узла

    &НаСервере
    Процедура Команда1НаСервере()
    запрос = Новый запрос ;
    Запрос.Текст =
    «ВЫБРАТЬ
    | ОбменСообщениями.Ссылка,
    | ОбменСообщениями.ВерсияДанных,
    | ОбменСообщениями.ПометкаУдаления,
    | ОбменСообщениями.ЭтотУзел,
    | ОбменСообщениями.Код,
    | ОбменСообщениями.Наименование,
    | ОбменСообщениями.НомерОтправленного,
    | ОбменСообщениями.НомерПринятого,
    | ОбменСообщениями.Ведущая,
    | ОбменСообщениями.Заблокирована
    |ИЗ
    | ПланОбмена.ОбменСообщениями КАК ОбменСообщениями»;

    выборка = Запрос.Выполнить().Выбрать();
    Пока выборка.Следующий() Цикл
    ПП = выборка.ссылка.ПолучитьОбъект();
    Если ПП.Ведущая = Ложь тогда
    ПП.Удалить();
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры

    &НаКлиенте
    Процедура Команда1(Команда)
    Команда1НаСервере();
    КонецПроцедуры

    — Объединение сообщений, 23 июн 2016

    пытался узел изменить с истины на ложь
    пишет
    {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(24)}: Ошибка при вызове метода контекста (Записать)
    ПП.записать();
    по причине:
    Данные изменения приведут к отсутствию элемента с установленным признаком «ЭтотУзел»

    Последнее редактирование: 23 июн 2016
  12. все получилось , Всем спасибо !


  13. 1cUserAndrew

    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    5.125
    Симпатии:
    212
    Баллы:
    104

  14. узел с истины на ложь поменял выше писал думал не получилось , а потом зашел посмотреть сработало

Похожие темы

  1. yuranius
    Ответов:
    1
    Просмотров:
    1.268


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

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста удалить объекты
  • Ошибка при вызове метода контекста удалить объект удалить
  • Ошибка при вызове метода контекста удалить нарушение прав доступа
  • Ошибка при вызове метода контекста типы не совпадают
  • Ошибка при вызове метода контекста структуранастроекобмена