|
Ошибка при вызове метода контекста (ИзменитьРеквизиты) | ☑ | ||
---|---|---|---|---|
0
falselight
17.09.19
✎
03:58
|
В договоре контрагентов есть поле ТипДополненияДоговора, при создании договора и перевыборе этого поля
выходит ошибка. Из за чего эта ошибка и как её устранить? {ОбщийМодуль.УправлениеДополнениямиДоговоровПБ.Модуль(32)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты) Форма.ИзменитьРеквизиты(Реквизиты); по причине: Неуникальное имя реквизита. Имя: "ИспользоватьДопСведения" по причине: Неуникальное имя реквизита. Имя: "ИспользоватьДопСведения" Неуникальное имя реквизита. Имя: "ИспользоватьДопСведения" {ОбщийМодуль.УправлениеДополнениямиДоговоров.Модуль(65)}: Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); {ОбщийМодуль.УправлениеДополнениямиДоговоров.Модуль(113)}: ПриСозданииНаСервере(Форма, ТекущийОбъект, ИмяЭлементаДляРазмещения); {ОбщийМодуль.УправлениеДополнениямиДоговоров.Модуль(230)}: ПриЧтенииНаСервере(Форма, Объект); {Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(160)}: УправлениеДополнениямиДоговоров.ДополнительныеСведенияПриИзменении(ЭтотОбъект, ИмяЭлемента); {Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(99)}: ВызовОбработчикаПриИзменении(Элемент.Имя); по причине: Неуникальное имя реквизита. Имя: "ИспользоватьДопСведения" |
|||
1
falselight
17.09.19
✎
04:08
|
Ошибка на строке Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
Туда передается массив, там все элементы уникальны. // Создает основные реквизиты и поля формы, необходимые для работы. // Вызывается из обработчика ПриСозданииНаСервере формы объекта справочника ДоговорыКонтрагентов // // Параметры: // Форма - УправляемаяФорма - в которой будут отображаться дополнительные реквизиты. // // Объект - ДанныеФормыСтруктура - СправочникОбъект.ДоговорыКонтрагентов. // // ИмяЭлементаДляРазмещения - Строка - имя группы формы, в которой будут размещены свойства. // Процедура ПриСозданииНаСервере(Форма, Объект, ИмяЭлементаДляРазмещения) Экспорт Если Объект.ТипДополненияДоговора = Перечисления.ТипыДополненияДоговоров.БезДополнений Тогда Возврат; Иначе ДобавляемыеРеквизиты = Новый Массив; СоздатьДополнительныеОбъектыФормы(Форма, ИмяЭлементаДляРазмещения, ДобавляемыеРеквизиты); ИмяМодуля = ПараметрыСеанса.СоответствияОбработчиковДополненийДоговоров.Получить(Объект.ТипДополненияДоговора); Если ИмяМодуля <> Неопределено Тогда МодульУправленияДополнениями = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля); МодульУправленияДополнениями.ПриСозданииНаСервере(Форма, Объект, ИмяЭлементаДляРазмещения, ДобавляемыеРеквизиты); Иначе Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); КонецЕсли; Форма.ИспользоватьДопСведения = Истина; Форма.ДопСведения_ИмяЭлементаДляРазмещения = ИмяЭлементаДляРазмещения; КонецЕсли; КонецПроцедуры |
|||
2
ppa32
17.09.19
✎
04:08
|
Уважаемый, я бы посоветовал заюзать отладчик, и посмотреть, что там происходит. Тебе даже в ошибке написано, где расставлять точки останова.
|
|||
3
ppa32
17.09.19
✎
04:10
|
Есть мнение, что вот тут
{ОбщийМодуль.УправлениеДополнениямиДоговоровПБ.Модуль(32)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты) Форма.ИзменитьРеквизиты(Реквизиты); в переменной "Реквизиты" вот эта фигня "ИспользоватьДопСведения" у тебя встречается несколько раз. |
|||
4
falselight
17.09.19
✎
04:22
|
(2) Так я же смотрю. (1) Туда передается массив, в нем все элементы уникальны.
Не понимаю, вот и спросил. Благодарен если кто подскажет. Куда продвинуться, и начать выявлять. |
|||
5
falselight
17.09.19
✎
04:30
|
(3) Если бы я увидел что несколько раз там, задумался бы. И стал искать как это поправить. Но там это все уникально.
|
|||
6
ДенисЧ
17.09.19
✎
05:25
|
Я буду неоригинальным... Но вдруг на форме уже есть такой реквизит?
|
|||
7
falselight
17.09.19
✎
05:27
|
Это происходит если при создании на сервере я делаю эту строку
Элементы.ТипДополненияДоговора.СписокВыбора.Добавить(Перечисления.ТипыДополненияДоговоров.ПоОбращениюСОтходами); Если её нет, то нет этого значения в списке выбора, но и ошибки нет при выборе значений что есть. Как открываю добавление этой строки, идет ошибка. |
|||
8
falselight
17.09.19
✎
07:05
|
(6) А если он там уже есть, каково должно быть поведение ? Почему так работает?
|
|||
9
ДенисЧ
17.09.19
✎
07:20
|
(8) Он так работает, потому что он там уже есть. И это правильное поведение. Я бы на месте 1с ещё и линейкой по рукам надавал бы.
|
|||
10
falselight
17.09.19
✎
07:24
|
(9) Так код то типовой. Я лишь добавляю перечисление в список выбора (7)
И в предприятии создаю договор, и меняю значения ТипДополненияДоговора смотрю поведение формы, но начинает идти эта ошибка. Я не знаю как её устранить, если весь функционал типовой. |
|||
11
falselight
17.09.19
✎
09:31
|
Вот
Форма.ИзменитьРеквизиты(Реквизиты); В массиве Реквизиты есть элемент ИспользоватьДопСведения Если смотреть в отладчике Форма, он есть там тоже. И в чем суть ошибки? Как её устранить, что сделать? http://joxi.ru/D2PlR54CqyJRk2 |
|||
12
Мимохожий Однако
17.09.19
✎
09:46
|
Перед кодом Форма.ИзменитьРеквизиты(Реквизиты);
добавь процедуру проверки уже имеющихся реквизитов |
|||
13
ДенисЧ
17.09.19
✎
09:49
|
(11) Попробуй себя устранить...
|
|||
14
falselight
17.09.19
✎
10:36
|
(13) Только что подумал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |