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


Код типа с условием, но там нет Если Тогда, как оно работает?

Код типа с условием, но там нет Если Тогда, как оно работает?
Я
   bizon2008
 
12.10.18 - 15:39
Код типа с условием, но там нет Если Тогда, как оно работает?
Это из типовой, я может чего не знаю. Теперь так пишут?
УПП 1,3 однако.

Вот такой кусок кода

Процедура УстановитьРеализацияТоваровОблагаемыхНДСУПокупателя()
    РеализацияТоваровОблагаемыхНДСУПокупателя = ДоговорКонтрагента.РеализацияТоваровОблагаемыхНДСУПокупателя 
        И ЭтотОбъект.Дата >= Константы.ДатаНачалаОперацийСТоварамиОблагаемымиНДСУПокупателя.Получить();
        
    СкрытьНДСПриРеализацияТоваровОблагаемыхНДСУПокупателя();
    
КонецПроцедуры

Процедура СкрытьНДСПриРеализацияТоваровОблагаемыхНДСУПокупателя()
    
    // В случае реализации лома, скрываются колонки СтавкаНДС, СуммаНДС, Всего


    ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СтавкаНДС, Не РеализацияТоваровОблагаемыхНДСУПокупателя);
    ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СуммаНДС, Не РеализацияТоваровОблагаемыхНДСУПокупателя);
    ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.Всего, Не РеализацияТоваровОблагаемыхНДСУПокупателя);
    // ... и надпись ВсегоНДС


    ЭлементыФормы.НадписьВсегоНДС.Видимость = Не РеализацияТоваровОблагаемыхНДСУПокупателя;
    ЭлементыФормы.ВсегоНДС.Видимость = Не РеализацияТоваровОблагаемыхНДСУПокупателя;
    
КонецПроцедуры

Тут по идее должно быть Если бля бла Тогда
РеализацияТоваровОблагаемыхНДСУПокупателя = ДоговорКонтрагента.РеализацияТоваровОблагаемыхНДСУПокупателя 
        И ЭтотОбъект.Дата >= Константы.ДатаНачалаОперацийСТоварамиОблагаемымиНДСУПокупателя.Получить();
 
 
   Darych
 
1 - 12.10.18 - 15:41
РеализацияТоваровОблагаемыхНДСУПокупателя будет истина когда оба истина
   Гипервизор
 
2 - 12.10.18 - 15:42
Для чего вторая тема?
Какое вам если надо? В процедуру УстановитьВидимостьКолонкиТабЧасти третьим параметром передается Булево.
Или я не понял о чем речь.
   ZDenis
 
3 - 12.10.18 - 15:42
(0) Стандартное условие на Истина Ложь
   Гипервизор
 
4 - 12.10.18 - 15:42
Пардон, вторым параметром.
   bizon2008
 
5 - 12.10.18 - 15:45
(1) Это понятно, дальше то оно никуда не идет.
Дальше строка которая должна отрабатывать если оба истина. Но она тогда по любому отрабатывает получается.
СкрытьНДСПриРеализацияТоваровОблагаемыхНДСУПокупателя();
   ZDenis
 
6 - 12.10.18 - 15:47
(5) Оно в обоих случаях должно отрабатывать, оно ведь потом видимость и прочее устанавливает
   bizon2008
 
7 - 12.10.18 - 15:48
(2) (4) Да блин первым вопросом понятно. Колонки все рано не прячутся.
А так просто интересно стало уж больно код замысловатый.

А я понял, они глобальную перемененную используют.
Ну это же не кошерно однако.
   RomanYS
 
8 - 12.10.18 - 15:48
(5) Тебя название "Скрыть..." смущает? Так оно в обе стороны по факту работает.

Или сама поддержка 1С примитивной булевой алгебры удивляет? Для обитателя мисты с такой полоской это странно)
   Buster007
 
9 - 12.10.18 - 15:52
(5) ВлияетПолоскаНаУровеньЗнаний = ЛОЖЬ ИЛИ ИСТИНА;
   Гипервизор
 
10 - 12.10.18 - 15:52
(7) Какая еще глобальная переменная? оО
РеализацияТоваровОблагаемыхНДСУПокупателя - это реквизит документа.
 
 Рекламное место пустует
   bizon2008
 
11 - 12.10.18 - 15:52
(8) Меня смущает что как-то либо гениально, что я не въезжаю, либо коряво написано что я от типовой не ожидал однако.

У меня перерывы были. в полоске разрывы надо нарисовать.
   bizon2008
 
12 - 12.10.18 - 15:56
(10) Тогда гениально, мдя, ну что будем имет в виду, что такой трюк вполне кошерен и можно в свой арсенал записать пользовать.
   FIXXXL
 
13 - 12.10.18 - 15:57
>РеализацияТоваровОблагаемыхНДСУПокупателя = Истина(или Ложь, как повезет)
установили значение переменной или реквизиту или чем там оно является, дальше присваиваем установленное значение через процедуру ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти()
   bolobol
 
14 - 12.10.18 - 16:08
(0) "Тут по идее должно быть Если бля бла Тогда" - в операции присваивания должно быть Если? - Возможно Если, но никаму ничего не должно.
   fbear
 
15 - 12.10.18 - 17:05
Если а = б Тогда
    Выполнить(Истина);
Иначе
    Выполнить(Ложь);
КонецЕсли;

Можно заменить просто

Выполнить(а=б);

Ведь, результат а=б и есть Истина или Ложь, которое передают в параметр.
   1Сергей
 
16 - 12.10.18 - 17:08
Вот так должно быть понятнее:

 РеализацияТоваровОблагаемыхНДСУПокупателя = (ДоговорКонтрагента.РеализацияТоваровОблагаемыхНДСУПокупателя 
        И ЭтотОбъект.Дата >= Константы.ДатаНачалаОперацийСТоварамиОблагаемымиНДСУПокупателя.Получить());

Сначала высчитывается выражение в скобках, потом переменной присваивается Истина или Ложь

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