Имя: Пароль:
1C
1С v8
как задать условие с полем тип вид сравнения.
,
0 goleaff2006
 
28.05.13
05:26
Как можно задать условие такое

Если a видСравнения b тогда

крнецЕсли;
, где видСравнения пользователь выбирает в форме в поле с типом видсравнения.
1 Balabass
 
28.05.13
05:31
ну сделай просто,
если видсравнения = 1 тогда Алгоритм1()
иначеесли видсравнения = 2 тогда Алгоритм2()
КонецЕсли
2 Balabass
 
28.05.13
05:37
ВидСравнения сделай

Список = Новый СписокЗначений;
Список.Добавить("ВидСравнени1",1);
Список.Добавить("ВидСравнени2",2);

ЭлементыФормы.ТвойЭлементДляВыбора = Список

...
(1)

За синтаксис не ручаюсь.
3 goleaff2006
 
28.05.13
05:58
(1) слишком много тогда получается ф-ции может есть какое то простое решение.
4 SeraFim
 
28.05.13
06:04
Можешь поизвращаться с "Выполнить", но (1) проще
5 Defender aka LINN
 
28.05.13
06:08
(3) Простое решение - позволить все делать платформе
6 goleaff2006
 
28.05.13
06:18
Вобщем замутил вот такое

Если ОтборПоОстатку=Ложь Тогда
               ТабДок.Вывести(Реквизиты)
           Иначе
               Если ВидСравненияОстатка=ВидСравнения.Равно Тогда
                   Если ОстатокНаНачало = НачСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.Больше Тогда
                   Если ОстатокНаНачало > НачСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.БольшеИлиРавно Тогда
                   Если ОстатокНаНачало >= НачСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
               ИначеЕсли ВидСравненияОстатка=ВидСравнения.Интервал    Тогда
                   Если ОстатокНаНачало >НачСумма и ОстатокНаНачало< КонСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
                   
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.ИнтервалВключаяГраницы Тогда
                   
                   Если ОстатокНаНачало >=НачСумма и ОстатокНаНачало<= КонСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
                   
                   
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.ИнтервалВключаяНачало  Тогда
                   Если ОстатокНаНачало >=НачСумма и ОстатокНаНачало< КонСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
                   
               ИначеЕсли ВидСравненияОстатка=ВидСравнения.ИнтервалВключаяОкончание   Тогда
                   Если ОстатокНаНачало > НачСумма и ОстатокНаНачало<= КонСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
                   
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.Меньше      Тогда
                   Если ОстатокНаНачало < НачСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
                   
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.МеньшеИлиРавно  Тогда
                   Если ОстатокНаНачало <= НачСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
               ИначеЕсли  ВидСравненияОстатка=ВидСравнения.НеРавно   Тогда
                   Если ОстатокНаНачало <> НачСумма Тогда
                       ТабДок.Вывести(Реквизиты)
                   КонецЕсли;
                   
               КонецЕсли;
7 Ненавижу 1С
 
гуру
28.05.13
06:25
(5) а если платформа не умеет?
8 Defender aka LINN
 
28.05.13
06:34
(6) А данные откуда берешь?
9 kosts
 
28.05.13
06:43
Тогда уж так, не так громоздко будет смотреться

Если ВидСравненияОстатка=ВидСравнения.Равно  и ОстатокНаНачало = НачСумма Тогда
или ВидСравненияОстатка=ВидСравнения.Больше и ОстатокНаНачало > НачСумма Тогда
...
или ВидСравненияОстатка=ВидСравнения.БольшеИлиРавно и ОстатокНаНачало >= НачСумма Тогда
   ТабДок.Вывести(Реквизиты)
КонецЕсли;
10 goleaff2006
 
28.05.13
07:35
(8)ОстатокНаНачало  рассчитывается по особому алгоритму. все остальное задается в форме.
11 Defender aka LINN
 
28.05.13
07:55
(10) Рассчитывается где, в коде?
12 goleaff2006
 
28.05.13
09:39
Да.
13 Ненавижу 1С
 
гуру
28.05.13
09:54
а если все же в запросе сделать?
14 Defender aka LINN
 
28.05.13
10:38
Ну или засунуть это все в таблицу, а дальше пусть СКД с ней ипется