powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / какого хрена он делает в блоке Если???
25 сообщений из 27, страница 1 из 2
какого хрена он делает в блоке Если???
    #38256324
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В табло вычислено вырадение, оно РАВНО "Ложь", почему дебагер зашел в блок Если, а не зашел в блок Иначе?
1С:Предприятие 8.2 (8.2.17.143)
Управление производственным предприятием, редакция 1.3 (1.3.35.1)
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256513
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сдается мне что <>"<>" такого кода нет в УПП. А если есть - то гнать того кто это написал.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256663
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, видимо вы не поняли.
Перевожу: НЕ РАВНО СТРОКЕ, СОДЕРЖАЩЕЙ СИМВОЛЫ <>
Т.е. на языке одноцэ:
<>"<>"
Хорошо, если в одноцэ нет такой конструкции (кстати, причем тут УПП, это же ядро), то почему Табло вычисляет это выражение, как ЛОЖЬ?
В общем, у меня только одна мысль:
Интерпретатор макросов в 1С имеет два разных объекта (назовем так некие программные сущности ядра, которые отвечают за обработку макро-кода). Один отрабатывает код, а другой используется в табло. Хотя, все системы, которые подразумевают отладку, всегда используют один объект (либо для дебага используется часть объекта). В общем, не суть, следить за двумя разными кодами сложно, т.к. можно упустить изменения в ядре в одном из объектов. Что, на мой взгляд, и произошло. Сделали кое-какие изменения ядра, в одном объекте поправили, во втором все осталось, как есть. Отсюда и результат в одном - Истина (и он зашел в раздел Если), а в другом - Ложь.
Есть, конечно, вторая мысль, что в 1С запрограммировали женскую логику вместо булевой :)
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256678
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro, выражение в табло как помещали, через шифт+Ф9?
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256710
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вычислял, потом включал в табло.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256739
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BrasileiroНет, видимо вы не поняли.
Перевожу: НЕ РАВНО СТРОКЕ, СОДЕРЖАЩЕЙ СИМВОЛЫ <>Еще раз - каким образом можно номенклатуру (скорее всего ссылку - но вы текст не показали) сравнить с строкой "<>". По мне так условие если всегда истина.

Вполне возможно что ошибка в сранивании несравнимых типов - отсюда и чушь.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256743
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,

а помойму на делать в руки тому программисту которому это написал!!! искренне говорю если не умеете то не садитесь!!!
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256755
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя посмотрите у вас номенклатура может быть с наименованием "<>" тогда в этом случае нужно бить того кто отвечает за внесение номенклатуры!
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256902
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребяты!!! АУ!!!
Объясните мне тогда, почему табло вычисляет ЛОЖЬ!!!
Кстати, умники, в итоговой версии кода у меня осталась конструкция:
Запрос.Текст =
"ВЫБРАТЬ
| СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Код,
| СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Номенклатура
|ИЗ
| Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
|ГДЕ
| СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Код = &сп_код
|УПОРЯДОЧИТЬ ПО
| СпецификацииНоменклатурыИсходныеКомплектующие.ПозицияПоСпецификации";
И тот код, который по вашему мнению, работать не может. Ан нет, все работает:)
Если ВыборкаДетальныеЗаписи.Номенклатура<>"<>" Тогда
ПЫСЫ. Программирую активно с 96 года, 1С рюхал сам, никаких дипломов не получал (да и не хочу), поэтому и пользуюсь конструкциями, который вызывают у вас неприязнь. Но, тут же дело было не в конструкции, а в том, что интерпретатор неоднозначно интерпретировал одну строчку кода.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256918
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro,

Если ВыборкаДетальныеЗаписи.Номенклатура<>"<>" Тогда


после того как вы объясните зачем и что проверяет ваше условие я вам помогу, так как я не понимаю что вы пытаетесь сделать! тут дело не дипломах тут дело в разумности!
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38256943
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro,

1. хоть у меня и нестоль "великий" программер и мне всего 23 года от роду но я не понимаю (Если ВыборкаДетальныеЗаписи.Номенклатура<>"<>" Тогда) что это и для чего на что вы хотите проверить, зачем так!??
2. в табло он все вернул верно, рассуждайте логично если бы вы поставили вот так (Если ВыборкаДетальныеЗаписи.Номенклатура="<>" Тогда) то тогда бы он вам возвращу истину, а в вашем случае он правильно вернул значение сравнения относительно (ВыборкаДетальныеЗаписи.Номенклатура) потому что наверняка да действительно нет такого выражения, да и не будет т.к. вы сравниваете ссылку со строкой!
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257289
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BrasileiroЕсли ВыборкаДетальныеЗаписи.Номенклатура<>"<>" ТогдаЛогично конечно должно быть
Если ЗначениеЗАполнено(ВыборкаДетальныеЗаписи.Номенклатура)

И логично написать в поддержку чтобы исправили данную ошибку, а "программиста" ВЫГНАЛИ взашей.

Что касается - почему заходит? Я так полагаю что табло внизу и отладчик по разному вычисляют сравнение ссылки и текстового поля.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257363
svcoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой-то идиот внес изменения в типовую конфигурацию без каки-либо комментарией. Зато обсуждений на целую страницу.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257407
EugeniaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Brasileiro,

Не знаю, почему в табло "ЛОЖЬ", на по логике указанное сравнение должно всегда давать значение ИСТИНА, так как сравниваются разные типы данных.
Т.е. строка не может равняться ссылке.
Возможно, в отладчике 1С просто пытается сделать приведение типов.
В общем, просто кривое условие. Нельзя такое писать.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257610
svcoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro,

Бывает косяк с локальным кэшем, когда не совпадают фактические строки и строки выполнения. Проверьте что номер строки совпадает с номером выполняемой строки, который можно посмотреть в меню Отладка/Стек вызовов.
Если совпадают выведите в табло значение ВыборкаДетальныеЗаписи.Номенклатура.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257686
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svcoderBrasileiro,

Бывает косяк с локальным кэшем, когда не совпадают фактические строки и строки выполнения. Проверьте что номер строки совпадает с номером выполняемой строки, который можно посмотреть в меню Отладка/Стек вызовов.
Если совпадают выведите в табло значение ВыборкаДетальныеЗаписи.Номенклатура.Не совпадать может. Но у него в низу табло в котором написано ложь. А всегда должно быть истина.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257703
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сНе совпадать может. Но у него в низу табло в котором написано ложь. А всегда должно быть истина.
Не обязательно - зависит от способа и порядка вычисления операндов и приведения их к одному типу.
Сравниваются значения разных типов - Справочник.Номенклатура и Строка. "<>" здесь - представление элемента с пустым наименованием (вроде так) - которое платформа создает самостоятельно.
Видимо, разный код вычисляет выражения при исполнении и в отладчике.
Исполняющая система сравнивает буквально, и эти значения не равны.А отладчик вычисляет то же выражение самостоятельно (приводя, похоже, значение к строчному представлению) - и для него операнды получаются равны.
А кодописатель увидел "<>" в форме списка справочника, и не утруждая мозги написал код, который должен такие элементы обработать. Кому должен, почему должен.... должен, и всё тут!
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257905
Kreontsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во жжете, напиши проверку, и не парься:
Если Найти(СокрЛП(ВыборкаДетальныеЗаписи.Номенклатура),"<>") >0 Тогда... Иначе....

А насчет приведения типо: если не уверен за результат то все таки пиши лучше с явным приведение типа к нужному, а уж тем более перед сравнениями.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38257954
svcoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,

Может быть в запроса что-то типа ЕСТЬNULL(Номенклатура, "<>"), судя по остальному коду такое г***о там вполне может быть.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38258137
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы строите догадки, а сам автор даже не может объяснить зачем ему такая проверка!)))
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38258934
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, разный код вычисляет выражения при исполнении и в отладчике.
Исполняющая система сравнивает буквально, и эти значения не равны.А отладчик вычисляет то же выражение самостоятельно (приводя, похоже, значение к строчному представлению) - и для него операнды получаются равны.
А кодописатель увидел "<>" в форме списка справочника, и не утруждая мозги написал код, который должен такие элементы обработать. Кому должен, почему должен.... должен, и всё тут!
По порядку:
1) не должно вычисляться различным образом при исполнении и отладчике.
2) Да, увидел, что объект иногда меняет тип на строковый и решил написать такое сравнение. Криво, спорить не буду, но для меня, если такое есть в отладчике, значит, это должно работать и при исполнении.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38259183
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro2) Да, увидел, что объект иногда меняет тип на строковый и решил написать такое сравнение. Криво, спорить не буду, но для меня, если такое есть в отладчике, значит, это должно работать и при исполнении.Так этот код написали Вы? А не в типовой как писали раньше....

Все вопросов больше не имею.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38259184
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сBrasileiro2) Да, увидел, что объект иногда меняет тип на строковый и решил написать такое сравнение. Криво, спорить не буду, но для меня, если такое есть в отладчике, значит, это должно работать и при исполнении.Так этот код написали Вы? А не в типовой как писали раньше....

Все вопросов больше не имею.

поржал
ясен пень, что ТАКОГО в типовой нет и быть не может
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38261591
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не писал, что это код типовой конфигурации. Конфу указал, т.к. обычно первый вопрос от вас всегда про версию ядра и конфы.
...
Рейтинг: 0 / 0
какого хрена он делает в блоке Если???
    #38261785
TёMochkiN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Brasileiro,

надо было писать, что нетиповая на основе УПП 1.3.35.1
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / какого хрена он делает в блоке Если???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]