Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Че так?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Vofka
Есть документ "ПерезачетБартер". Есть процедура проверки дублей строк. В ней есть следующее:
Зн = ?(Конт.Поставщик=Конт.Покупатель,"",ЗначениеВСтроку(Конт.ВидКонтрагента)+"|") + ЗначениеВСтроку(Конт.Договор)+"|"+ЗначениеВСтроку(Конт.Счет);


Конт.Поставщик = Конт.Покупатель. Но Зн = "{"Документ"}|{"Документ"}". Почему Зн не равно ""?
zetovich
"Конт.Поставщик=Конт.Покупатель"
значит не равно.
Vofka
1. Равно
2. И даже ЗначениеВСтроку(Конт.ВидКонтрагента)+"|") + ЗначениеВСтроку(Конт.Договор)+"|"+ЗначениеВСтроку(Конт.Счет) не равно "{"Документ"}|{"Документ"}"
dmiter
Значит не то
 Зн
Ardi
Как в семёрке Зн может оказаться не то?

(0) А вообще перепиши код на использование "Если" вместо "?".
В отладчике понятнее будет.
dmiter
Цитата(Ardi @ 12.05.10, 1:57) необходимо зарегистрироваться для просмотра ссылки
Как в семёрке Зн может оказаться не то?

Зн может быть глобальной переменной, переменной контекста формы, локальной переменной процедуры.
Если явно не объявлено в локальной процедуре, может изменяться или содержать совсем другое значение. Иногда на такие грабли наступал, кучу времени потратил пока отловил. Также бывает не совпадает набор кириллица и латынь но Зн вроде бы не прокатывает. А так надо смотреть отладчиком - причем точку останова именно на данный код.- и смотреть ЧЕ ТАК?
Vofka
Ну так и смотрел. Поставил точку останова на строку
Зн = ?(Конт.Поставщик=Конт.Покупатель,"",ЗначениеВСтроку(Конт.ВидКонтрагента)+"|") + ЗначениеВСтроку(Конт.Договор)+"|"+ЗначениеВСтроку(Конт.Счет);


Значение Зн: Зн =. Все. Жму Ф8. Значение Зн: Зн = "{"Документ"}|{"Документ"}"
dmiter
Цитата(Vofka @ 12.05.10, 20:59) необходимо зарегистрироваться для просмотра ссылки
Ну так и смотрел. Поставил точку останова на строку
Зн = ?(Конт.Поставщик=Конт.Покупатель,"",ЗначениеВСтроку(Конт.ВидКонтрагента)+"|") !!!! + ЗначениеВСтроку(Конт.Договор)+"|"+ЗначениеВСтроку(Конт.Счет);


Значение Зн: Зн =. Все. Жму Ф8. Значение Зн: Зн = "{"Документ"}|{"Документ"}"


Конт.Договор - пустое значение документ неопределенного вида,
Конт.Счет -пустое значение документ неопределенного вида.

Тогда все сходится!
Закрывающая скобка - смотри !!!!
Ardi
Скобка не там где ты думаешь.
?(Конт.Поставщик=Конт.Покупатель,"",ЗначениеВСтроку(Конт.ВидКонтрагента)+"|")="";
ЗначениеВСтроку(Конт.Договор)+"|"+ЗначениеВСтроку(Конт.Счет)="{"Документ"}|{"Документ"}" ;
""+"{"Документ"}|{"Документ"}" ="{"Документ"}|{"Документ"}" ;
dmiter
Цитата(Ardi @ 13.05.10, 0:17) необходимо зарегистрироваться для просмотра ссылки
Скобка не там где ты думаешь.
?(Конт.Поставщик=Конт.Покупатель,"",ЗначениеВСтроку(Конт.ВидКонтрагента)+"|")="";
ЗначениеВСтроку(Конт.Договор)+"|"+ЗначениеВСтроку(Конт.Счет)="{"Документ"}|{"Документ"}" ;
""+"{"Документ"}|{"Документ"}" ="{"Документ"}|{"Документ"}" ;

Я про это же и написал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.