Вход | Регистрация


Глюк платформы или расширения? ПредопределенноеЗначение()

Глюк платформы или расширения? ПредопределенноеЗначение()
Я
   ponaroshku
 
15.05.18 - 10:19
Добрый день! Платформа 8.3.11.2867

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

Если Контрагент = ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка") Тогда

Так вот
Смотрим в табло
Контрагент - пустая ссылка справочника контрагенты
Предопределенное значение - пустая ссылка справочника контрагенты

но условие не выполняется

Если написать явно Контрагент = Справочник.Контрагенты.ПустаяСсылка() 
Возвращает Истина


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

Предполагаю, что это из-за того, что блок в расширении, потому что ПредопределенноеЗначение() активно используется в самой конфигурации

Вопрос:
это ошибка платформы или особенности расширения?

В СП написано Результат выполнения кэшируется при первом обращении до изменения конфигурации или версии платформы.

Разница в кэшировании конфигурации/расширения?
 
 
   mehfk
 
1 - 15.05.18 - 10:32
Справочник "Контрагенты" добавлен в расширение?
   ponaroshku
 
2 - 15.05.18 - 10:39
(1) да
   RomanYS
 
3 - 15.05.18 - 10:45
>>но условие не выполняется
Неверный вывод. Вставь в табло (Контрагент = ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка"))

Скорее не выполняется код вообще, или выполняется не этот код. Почисть кэш для начала.
   mehfk
 
4 - 15.05.18 - 10:47
Вообще, у меня такое впечатление, что я то-ли сам на это наталкивался, то-ли читал об этом где-то. В смысле, что это платформа чудит и обходить нужно именно так: Справочник.Контрагенты.ПустаяСсылка()

Проверю в течении часа.
   mszsuz
 
5 - 15.05.18 - 10:48
Это ошибка платформы. Написали, что исправили в 8.3.11.2924.
https://bugboard.v8.1c.ru/error/000038192.html
   ponaroshku
 
6 - 15.05.18 - 10:48
(3) код выполняется
не выполняется именно условие
Хотя контрагент - пустая ссылка, если в отладчике посмотреть
и ПредопределенноеЗначение() - пустая ссылка

Однако пустаяссылка не равно пустаяссылка
   ponaroshku
 
7 - 15.05.18 - 10:49
(5) спасибо, добрый человек!
мне не попалось в багрепорте, но я смотрела конкретно по этой платформе
Спасибо много-много раз!
   mszsuz
 
8 - 15.05.18 - 10:49
(+5) Тем не менее, у меня воспроизводилась и на более поздних версиях с заимствованными перечислениями
   ponaroshku
 
9 - 15.05.18 - 10:51
(8) буду внимательнее

(4) спасибо, ошибка все же
   hhhh
 
10 - 15.05.18 - 11:06
(9) вообще-то правильно писать
Если НЕ ЗначениеЗаполнено(Контрагент)

что-то вы учудили, сравнивать с пустой ссылкой да еще ее откуда-то там вытаскивать.
 
 Рекламное место пустует
   Buster007
 
11 - 15.05.18 - 11:07
+(10) прям с пальцев снял ))
   Buster007
 
12 - 15.05.18 - 11:09
+(11) можно предположить, конечно, что там такой алгоритм продвинутый, который завязан на пустые ссылки

Если условие1 тогда
Контрагент = ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка");
Иначе
Контрагент = ПредопределенноеЗначение("Справочник.Партнеры.ПустаяСсылка");
КонецЕсли

...
а потом
Если Контрагент = ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка") Тогда
тогда не прокатит Значение заполнено
   ponaroshku
 
13 - 15.05.18 - 11:13
(10) (11) это упрощенный пример для понимания сути проблемы, не более

Я ценю время других людей, поэтому упрощаю вопросы, не нагружая их лишними деталями

Список тем форума
Рекламное место пустует  Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует