|
Поле объекта не обнаружено, но оно есть! | ☑ | ||
---|---|---|---|---|
0
Alex Проблемный
20.10.22
✎
14:44
|
Конфигурация: 1С:Транспортная логистика, экспедирование и управление автотранспортом КОРП, редакция 1.1 (1.1.11.1) НЕ ТИПОВАЯ
Платформа: 8.3 (8.3.20.1674) база на SQL В справочнике "Контрагенты" дописан реквизит "ТипКонтрагентаАТ" с типом "ПеречислениеСсылка.хТипыКонтрагентов" В процедуре ПередЗаписью формы документа "Заказ" есть обращение к процедуре &НаСервереБезКонтекста которая проверяет "ТипКонтрагентаАТ". &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ... Если ЭтоНеПлательщик(Объект.Контрагент) Тогда Отказ = Истина; КонецЕсли; ... КонецПроцедуры &НаСервереБезКонтекста Функция ЭтоНеПлательщик(Контрагент) Возврат Контрагент.ТипКонтрагентаАТ = Перечисления.хТипыКонтрагентов.НеПлательщик; КонецФункции У некоторых пользователей при попытке записать документ "Заказа" начала выходить ошибка: Поле объекта не обнаружено (ТипКонтрагентаАТ), но если они повторяют запись через некоторое время, то всё проходит без ошибок. Пытался несколько раз воссоздать ошибку - не получилось. Как победить проблему и в чем она? |
|||
1
Волшебник
модератор
20.10.22
✎
14:45
|
Надо проверить тип параметра "Контрагент". Может там Неопределено или какой-нибудь Партнёр
|
|||
2
1Сергей
20.10.22
✎
14:46
|
мошт расширение отвалилося?
|
|||
3
Alex Проблемный
20.10.22
✎
14:47
|
(1) Точно! Спасибо! Там м.б. ещё тип справочникСсылка.ПодразделениеОрганизации у которого нет реквизита "ТипКонтрагентаАТ"
|
|||
4
SleepyHead
гуру
20.10.22
✎
15:49
|
А разве за такое сейчас не порят вожжами ?
&НаСервереБезКонтекста Функция ЭтоНеПлательщик(Контрагент) Возврат Контрагент.ТипКонтрагентаАТ = Перечисления.хТипыКонтрагентов.НеПлательщик; КонецФункции |
|||
5
1Сергей
20.10.22
✎
16:03
|
(4) А что не так?
|
|||
6
kubik_live
20.10.22
✎
16:07
|
(5) А если Контрагент=Неопределено или ПустаяССылка?
|
|||
7
banco
20.10.22
✎
17:03
|
(5) Получение реквизита через точку
https://its.1c.ru/db/v8std/content/496/hdoc |
|||
8
Волшебник
модератор
20.10.22
✎
17:56
|
(7) Извращенцы
|
|||
9
rudnitskij
20.10.22
✎
23:54
|
(0) Кстати, для уменьшения серверных вызовов можно сделать в форме документа Заказ реквизит "ТипКонтрагента", заполнять его при выборе контрагента (когда создается новый заказ интерактивно) или ПриСозданииНаСервере - если открываете существующий документ. Это позволит сравнивать тип контрагента со значением Перечисления.хТипыКонтрагентов.НеПлательщик непосредственно на клиенте, без обращения на сервер
|
|||
10
Mihasya
21.10.22
✎
08:13
|
(9)
Переменная не определена (Перечисления) <<?>>Перечисления.АмортизационныеГруппы.ВосьмаяГруппа; (Проверка: Тонкий клиент) И как ты без вызова сервера решил проверять? )) Тогда уж и для значения перечисления нужно создавать реквизит на форме... |
|||
11
Алексей_Р
21.10.22
✎
08:46
|
(10) ПредопределенноеЗначение(<ИмяПредопределенногоЗначения>) работает на клиенте
|
|||
12
Mankubus
21.10.22
✎
12:03
|
(11) из СП:
ПредопределенноеЗначение(<ИмяПредопределенногоЗначения>) ...... Вызов метода выполняет обращение к серверу. |
|||
13
rudnitskij
21.10.22
✎
21:17
|
(10) ПредопределенноеЗначение("Перечисления.АмортизационныеГруппы.ВосьмаяГруппа") на клиенте доступно. А также все прочие перечисления, все предопределенные элементы и по аналогии с ПредопределенноеЗначение("Справочники.Номенклатура.ПустаяСсылка") все пустые ссылки всех ссылочных объектов
|
|||
14
rudnitskij
21.10.22
✎
21:21
|
(13) Точнее, ПредопределенноеЗначение("ПеречислениЕ.АмортизационныеГруппы.ВосьмаяГруппа") (не перечисления - как в коде, а перечислениЕ - как в запросе). Аналогично для всех прочих предопределенных объектов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |