|
Код типа с условием, но там нет Если Тогда, как оно работает? | ☑ | ||
---|---|---|---|---|
0
bizon2008
12.10.18
✎
15:39
|
Код типа с условием, но там нет Если Тогда, как оно работает?
Это из типовой, я может чего не знаю. Теперь так пишут? УПП 1,3 однако. Вот такой кусок кода Процедура УстановитьРеализацияТоваровОблагаемыхНДСУПокупателя() РеализацияТоваровОблагаемыхНДСУПокупателя = ДоговорКонтрагента.РеализацияТоваровОблагаемыхНДСУПокупателя И ЭтотОбъект.Дата >= Константы.ДатаНачалаОперацийСТоварамиОблагаемымиНДСУПокупателя.Получить(); СкрытьНДСПриРеализацияТоваровОблагаемыхНДСУПокупателя(); КонецПроцедуры Процедура СкрытьНДСПриРеализацияТоваровОблагаемыхНДСУПокупателя() // В случае реализации лома, скрываются колонки СтавкаНДС, СуммаНДС, Всего ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СтавкаНДС, Не РеализацияТоваровОблагаемыхНДСУПокупателя); ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СуммаНДС, Не РеализацияТоваровОблагаемыхНДСУПокупателя); ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.Всего, Не РеализацияТоваровОблагаемыхНДСУПокупателя); // ... и надпись ВсегоНДС ЭлементыФормы.НадписьВсегоНДС.Видимость = Не РеализацияТоваровОблагаемыхНДСУПокупателя; ЭлементыФормы.ВсегоНДС.Видимость = Не РеализацияТоваровОблагаемыхНДСУПокупателя; КонецПроцедуры Тут по идее должно быть Если бля бла Тогда РеализацияТоваровОблагаемыхНДСУПокупателя = ДоговорКонтрагента.РеализацияТоваровОблагаемыхНДСУПокупателя И ЭтотОбъект.Дата >= Константы.ДатаНачалаОперацийСТоварамиОблагаемымиНДСУПокупателя.Получить(); |
|||
1
Darych
12.10.18
✎
15:41
|
РеализацияТоваровОблагаемыхНДСУПокупателя будет истина когда оба истина
|
|||
2
Гипервизор
12.10.18
✎
15:42
|
Для чего вторая тема?
Какое вам если надо? В процедуру УстановитьВидимостьКолонкиТабЧасти третьим параметром передается Булево. Или я не понял о чем речь. |
|||
3
ZDenis
12.10.18
✎
15:42
|
(0) Стандартное условие на Истина Ложь
|
|||
4
Гипервизор
12.10.18
✎
15:42
|
Пардон, вторым параметром.
|
|||
5
bizon2008
12.10.18
✎
15:45
|
(1) Это понятно, дальше то оно никуда не идет.
Дальше строка которая должна отрабатывать если оба истина. Но она тогда по любому отрабатывает получается. СкрытьНДСПриРеализацияТоваровОблагаемыхНДСУПокупателя(); |
|||
6
ZDenis
12.10.18
✎
15:47
|
(5) Оно в обоих случаях должно отрабатывать, оно ведь потом видимость и прочее устанавливает
|
|||
7
bizon2008
12.10.18
✎
15:48
|
(2) (4) Да блин первым вопросом понятно. Колонки все рано не прячутся.
А так просто интересно стало уж больно код замысловатый. А я понял, они глобальную перемененную используют. Ну это же не кошерно однако. |
|||
8
RomanYS
12.10.18
✎
15:48
|
(5) Тебя название "Скрыть..." смущает? Так оно в обе стороны по факту работает.
Или сама поддержка 1С примитивной булевой алгебры удивляет? Для обитателя мисты с такой полоской это странно) |
|||
9
Buster007
12.10.18
✎
15:52
|
(5) ВлияетПолоскаНаУровеньЗнаний = ЛОЖЬ ИЛИ ИСТИНА;
|
|||
10
Гипервизор
12.10.18
✎
15:52
|
(7) Какая еще глобальная переменная? оО
РеализацияТоваровОблагаемыхНДСУПокупателя - это реквизит документа. |
|||
11
bizon2008
12.10.18
✎
15:52
|
(8) Меня смущает что как-то либо гениально, что я не въезжаю, либо коряво написано что я от типовой не ожидал однако.
У меня перерывы были. в полоске разрывы надо нарисовать. |
|||
12
bizon2008
12.10.18
✎
15:56
|
(10) Тогда гениально, мдя, ну что будем имет в виду, что такой трюк вполне кошерен и можно в свой арсенал записать пользовать.
|
|||
13
FIXXXL
12.10.18
✎
15:57
|
>РеализацияТоваровОблагаемыхНДСУПокупателя = Истина(или Ложь, как повезет)
установили значение переменной или реквизиту или чем там оно является, дальше присваиваем установленное значение через процедуру ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти() |
|||
14
bolobol
12.10.18
✎
16:08
|
(0) "Тут по идее должно быть Если бля бла Тогда" - в операции присваивания должно быть Если? - Возможно Если, но никаму ничего не должно.
|
|||
15
fbear
12.10.18
✎
17:05
|
Если а = б Тогда
Выполнить(Истина); Иначе Выполнить(Ложь); КонецЕсли; Можно заменить просто Выполнить(а=б); Ведь, результат а=б и есть Истина или Ложь, которое передают в параметр. |
|||
16
1Сергей
12.10.18
✎
17:08
|
Вот так должно быть понятнее:
РеализацияТоваровОблагаемыхНДСУПокупателя = (ДоговорКонтрагента.РеализацияТоваровОблагаемыхНДСУПокупателя И ЭтотОбъект.Дата >= Константы.ДатаНачалаОперацийСТоварамиОблагаемымиНДСУПокупателя.Получить()); Сначала высчитывается выражение в скобках, потом переменной присваивается Истина или Ложь |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |