"Истина" теперь - "Да" в 8.2 (без режима совм. с 8.1) #616644


#0 by Stagor
в реж. совм. результат "Истина" в без реж. совм. результат "Да" и зачем это нужно было делать? много что стало глючить! Есть способ заставить переводить в строку, как и раньше в новом режиме?
#0 by Stagor
в реж. совм. результат "Истина" в без реж. совм. результат "Да" и зачем это нужно было делать? много что стало глючить! Есть способ заставить переводить в строку, как и раньше в новом режиме?
#1 by andrewks
"много что стало глючить! "   а нехер было быдлокодить
#2 by kosts
Что стало глючить?
#3 by Stagor
это ты 1С-у пишешь или мне?
#4 by Юрий Лазаренко
+200500 Формат применяй, там есть и "Да", и "Истина" и даже "Мамой клянусь" при желании
#5 by PR
+1
#6 by Stagor
всё то, что использовало конвертацию из типа булево в строку
#7 by Kreont
Тебе еще повезло, просто для укр.локали та же база будет давать "так" или "істина" :))) вот тут согласен, сам пару раз на таком попался :)
#8 by Stagor
-1, во первых с чего ты взял, что я разбираю свой код?
#9 by PR
И как булево зависит от всяких "Да", "Истина" или "Ну точно мамой клянусь!"?
#10 by PR
А с чего ты взял, что он сказал это в твой адрес?
#11 by Stagor
Булево принимает значение "Истина" и "Ложь", почему оно должно конвертироваться в жаргон?
#12 by Stagor
если не в мой, то тот вряд ли прочтет?
#13 by andrewks
ты давай, озвучивай, что перестало работать. а то какой-то пустой вброс
#14 by PR
Да ты че, правда что ли? :))) То есть "Таки да" и "Да ну шо вы говорите" я сделать не смогу вместо "Истина" и "Ложь"? :))
#15 by Serg_1960
А "глючный" код можно озвучить, а то я не вьезжаю?
#16 by PR
Ну не прочтет и что?
#17 by acsent
че индусский код писал?
#18 by andrewks
Если Строка(Флаг)="Истина" Тогда...  )))
#19 by PR
Да какой-то лапоть написал что-то типа Если Строка(Переменная) = "Истина" ... :))
#20 by Stagor
И как коротко написать след. код? Это не подходит: А = Формат(Истина, "БЛ=Отсутствует; БИ=Доступен");
#21 by acsent
почему не подходит?
#22 by PR
if ?(String(Bool).length = 5, True, False) = True
#23 by acsent
это был самый известный идусский код. как говорится классика
#24 by andrewks
извини, но моя твоя не понимать. попробуй переформулировать вопрос
#25 by PR
Текст = Текст + Формат(Док.Реквизит, "БЛ=Ложь; БИ=Истина");
#26 by Serg_1960
Да, уж... озвучил код, так озучил :) Теперь понятно чего у него "не работает" :))
#27 by Stagor
прошу прощения, код такой Реквизит-ы разных типов :)
#28 by Stagor
ну, че всех ветром сдуло?
#29 by acsent
код в 25 дасто тоже самое
#30 by PR
Мля, ну тогда да, совершенно другой код.
#31 by Serg_1960
Неявное преобразование "Текст + Док[Реквизит];"
#32 by Птах
Спасибо, поржал, пятнично! xD
#33 by andrewks
и что, сложно код из подправить?
#34 by andrewks
предлагаю даже так: а то 1С в 8.3 опять чё-нить поменяет, и автор опять с придёт воплями "не работает!!!"
#35 by Stagor
Не знал, что "Формат" не обращает внимание на другие типы, думал, что в этом примере только с Булевым работает!
#36 by Stagor
С точки зрения логики вариант "Текст = Текст + Строка(Док[Реквизит]);" то же разрешен семантически и должен работать верно!
#37 by Stagor
но 1С решила поменять логику работы "по умолчанию", от этого и проблемы!
#38 by andrewks
а что, он работает неверно? ошибку выдаёт?
#39 by PR
Да 1С поменяла-то по сути настройки базы по представлению булево по-умолчанию, это и раньше можно было вручную сделать.
#40 by PR
Я не понял, что ты сказал.
#41 by Stagor
не сложно, если бы он был в 1-м месте и в 1-й обработке. Так, похожие конструкции из старых обработок, написанных под 8.1 часто встречаются!
#42 by PR
Верно — это как?
#43 by PR
А может просто ты недостаточно квалифицирован, а не зеркало кривое?
#44 by PR
Ну, значит... эээ... не профессионалы их писали :))
#45 by Stagor
Ты меня, что на работу принимаешь? Я не знал, что Формат применяем к логическому типу, думал только к числовому, и по одному этому нельзя судить о квалификации в целом, не согласен?
#46 by Stagor
Писали правильно - в рамках разрешенной семантики, и такая конструкция работала.
#47 by andrewks
лови бонусы, я сегодня добрый:  Формат ещё может работать с датой.  и ни в коем случае не открывай синтакс-помощник!
#48 by andrewks
господа, нас троллят
#49 by PR
Он еще и к дате применяем, прикинь :)) Про твою квалификацию я судить не могу, но понять то, что она не высокая, мне информации вполне достаточно :))
#50 by Infsams654
Держитесь правил обмена <Свойство Имя="НеСписывать" Тип="Булево"><Значение>true</Значение> И xml вряд ли поменяется, т.к. еще из 7-ки идет
#51 by Stagor
Параметры: В моем примере Реквизит может иметь значение ссылка
#52 by PR
Не люблю людей, которые оправдывают свой непрофессионализм тем, что и так работало и лезут в бутылку :))
#53 by PR
Тогда тебе нужно писать например так Если Док.Реквизит = Истина Тогда или проверять тип и для булево брать формат, а для остальных строку. А вообще тогда бы еще и дату и число нужно форматировать по хорошему.
#54 by andrewks
#55 by PR
+ А то кто-нить поставит в качестве разделителя тысяч в 1С например "ё" и все, капец, фирма банкрот.
#56 by Stagor
Да, я знаю! Но в итоге и в твоем примере есть "Строка(Док.Реквизит);" описанный "быдлокод", как утверждал в
#57 by PR
Ты не путай теплое с мягким. В моем случае это действует тогда, когда тип не булево, а, например, ссылка на что-то.
#58 by Stagor
Твоя конструкция не работает (исходя из документации) с Перечислением, к примеру, вернее работает, но дает не тот результат! И, что это меняет? С булевым это то же разрешено применять!
#59 by andrewks
пойду я лучше с мелким в футбол попиннаю
#61 by Stagor
Самый короткий и логичный код "Текст = Текст + Строка(Док[Реквизит]);" он не запрещен семантикой, и верно работал в 8.1 и по идее не должен был поменять свою функциональность и в 8.2, но 1С-у очень хотелось К примеру, с тем же перечислением код приведения к строке мало кто из вас знает, поскольку не сталкивался, но я по этой причине не кого не пытаюсь унизить, что у него низкая квалификация, это я к  andrewks и PR
#62 by PR
Ты серьезно утверждаешь, что я не смогу преобразовать значение перечисления в строку? LOL
#63 by Stagor
жду
#64 by MrStomak
Это типа с метаданных брать синоним - крутое достижение?
#65 by PR
Что ты ждешь, старости? :))
#66 by PR
Метаданные? Что это? :))
#67 by PR
Имя, а не синоним :)) Синоним можно и через Строка(Значение) получить :))
#68 by Stagor
имя, конечно
#69 by acsent
1с сто тыщ раз предупреждало что опираться на строковое представление небезопасно. Ты сам себя наказал
#70 by MrStomak
Черт - моя низкая квалификация теперь тоже разоблачена!!!
#71 by Stagor
итак, кто первый приведет достанет имя из перечисления? у меня на это ушло 30 секунд.
#72 by Infsams654
для перечислений уж в БП функцию давно сделали: Функция ПолучитьИмяЭлементаПеречисленияПоЗначению(ЗначениеПеречисления)
#73 by acsent
XMLСтрока(ПеречислениеСсылка)
#74 by Infsams654
не-ка
#75 by Stagor
#76 by acsent
именно так !!!
#77 by PR
Ты ничего не понимаешь! Этот код раньше работал! Пока 1С не поменяла все с ног на голову! :))
#78 by PR
LOL :))))))))))))))))))))))))))))))))))))
#79 by PR
Значение.Метаданные.Имя
#80 by Stagor
Это стандартный код, и он не оптимален!
#81 by PR
ТС не может быть таким... эээ... таким :)) Это ясен пень развод :))
#82 by Stagor
не то
#83 by fisher
Строковые представления никогда к семантике языка не относились. Кто завязывался на строковые представления типов тоже заработали попоболь при очередном переходе. Можно юзать XMLСтрока, это хотя бы на конкретную схему завязано. Но вообще булево всегда и везде при разного рода конвертациях не поддерживающих совместимость типов на этом уровне, преобразовывали к числу. Практически все среды (в т.ч. и 1С) понимают 0 как ложь и все остальное как истину и умеют преобразовывать явно и неявно туда и обратно.
#84 by acsent
это имя перечисления, а не значения перечисления
#85 by MrStomak
Не, всё правильно, надо в цикле перебрать.
#86 by Infsams654
да как же, сударь? Имя: КонтактноеЛицоКонтрагента Значение: Контактное лицо контрагента XMLСтрока(ПеречислениеСсылка) возвращает: Контактное лицо контрагента по началу, еще в 8.1. перебирал, а теперь зачем, если, есть уже в типовых :
#87 by Infsams654
Вот еще лучше
#88 by Stagor
Ага! Именно этот ответ я и ждал от PR! Но он очевидно программировать не умеет, так как директор :)
#89 by Infsams654
А на счет представления булево строкой - такие проблемы действительно возникают при самописном обмене или про работе по COM с базой другой версии. Так что, тут надо бы придерживаться каких-то правил.
#90 by pumbaEO
Код из на кривой локализации в конфигурации с гордым клеймом "1С совместимо" для определнных синонимов не работает.
#91 by Stagor
это я скопировал из русской локализации 1С:Бухгалтерия 2.0 для 8.2
#92 by PR
Значение.Метаданные.ЗначенияПеречисления[Перечисления[Значение.Метаданные.Имя].Индекс(Значение)].Имя
#93 by PR
С фига ли? :))
#94 by PR
Ржу, не могу :)))
#95 by Stagor
баян, и долго думал!
#96 by Stagor
Хорошо, копи-паст быстро делаешь!
#97 by PR
Да я не думал, я скопипастил из :)))
#98 by PR
И что сегодня не пятница :)))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С