Имя: Пароль:
1C
1C 7.7
v7: ПустоеЗначение()
0 Franchiser
 
гуру
09.06.22
13:06
На форме обработке реквизит типа справочник.контрагенты.
Пытаюсь проверить через ПустоеЗначение(Контрагент). Даже если контрагент заполнен возвращает 1.
Пришлось поменять на Выбран(). Это нормально?
1 Злопчинский
 
09.06.22
13:15
Сообщить(ЗначениеВСтрокуВнутр(Контрагент));
Сообщить(ПустоеЗначение(Контрагент));
Сообщить(Контрагент.Выбран());
Сообщить(Контрагент.ТекущийЭлемент());
..и смотри/думай.
.
Если ссылка битая - ПустоеЗначение(БитаяСсылка)=0, но БитаяСсылка.Выбран()=0
2 Franchiser
 
гуру
09.06.22
17:51
Нет ссылка не битая была, нормальная...
3 Franchiser
 
гуру
09.06.22
17:52
Кстати, как быстро получить позицию второго-третьего вхождения символа в строке?  В 1с++ вроде бы был какой то метод?
4 DCKiller
 
09.06.22
18:14
(0) Глюк?..
5 Ёпрст
 
09.06.22
18:19
(4) Не, Перем Контрагент; поди есть в коде..
6 Franchiser
 
гуру
10.06.22
00:09
Так а почему выбран() работает?
7 Злопчинский
 
10.06.22
01:11
(6) а что по (1) пишет?

Сообщить(ЗначениеВСтрокуВнутр(Контрагент));
Сообщить(ПустоеЗначение(Контрагент));
Сообщить(ТипЗначенияСтр(Контрагент));
Сообщить(Контрагент.Вид());
Сообщить(Контрагент.Выбран());
Сообщить(Контрагент.ТекущийЭлемент());
8 trad
 
10.06.22
09:32
(6) например потому что .выбран() в другой процедуре, где нет Перем Контрагент;
9 Arbuz
 
10.06.22
15:43
Что-то такое было с полгода назад. Очень долго отлаживал и обнаружил, что буквально пара строк кода напрямую не относящиеся к сути дела приводят к такому глюку. Но проблема была только и исключительно с ссылками возвращаемыми родным методом НайтиСсылки() и передаваемыми в нетривиальную очередь стека функций. Достаточно долго развлекался, изумлялся и матерился, искал варианты - потом плюнул, сменил логику ну ту, где это не нужно.
10 uno-group
 
10.06.22
15:48
Было такое если память не изменяет когда контрагент это объект типа справочник. когда ему назначаешь вид условно справочник поставщики то даже если значение поставщика не выбираешь контрагент не считается пустым значением.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.