как задать условие в одну строчку
Показывать по
10
20
40
сообщений
- 1
- 2
27.08.2010
12:11
#1
Задаю условие где Улицы, ПоискДом, Корпус, ПоискКв реквизиты диалога,а Файл.ULI2, Файл.DOM2, Файл.KORP, Файл.KWA данные из dbf файла.
Проблема в том что если не указываешь в диалоге корпус он не находит адрес без корпуса, можно ли сделать так что если корпус не задан он его пропускал в одном условии?
Если (СокрЛП(Улицы)+СокрЛП(ПоискДом)+СокрЛП(Корпус)+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+СокрЛП(Файл.KORP)+СокрЛП(Файл.KWA)) тогда
Проблема в том что если не указываешь в диалоге корпус он не находит адрес без корпуса, можно ли сделать так что если корпус не задан он его пропускал в одном условии?
Если (СокрЛП(Улицы)+СокрЛП(ПоискДом)+СокрЛП(Корпус)+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+СокрЛП(Файл.KORP)+СокрЛП(Файл.KWA)) тогда
27.08.2010
12:22
#4
Тогда все должно находиться, ладно, пойдем от первого вопроса:
> можно ли сделать так что если корпус не задан он его пропускал в одном условии
сделаем топорно и некрасиво, но все таки, я бы поразбирался через отладчик, работать должно при вашем варианте. Вот то, что вы ходите:
Если ((ПустаяСтрока(Корпус)=0) И (СокрЛП(Улицы)+СокрЛП(ПоискДом)+СокрЛП(Корпус)+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+СокрЛП(Файл.KORP)+СокрЛП(Файл.KWA))) ИЛИ
((ПустаяСтрока(Корпус)=1) И (СокрЛП(Улицы)+СокрЛП(ПоискДом)+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+СокрЛПСокрЛП(Файл.KWA))) Тогда
Как то все выглядит, мягко говоря, "не очень"...
> можно ли сделать так что если корпус не задан он его пропускал в одном условии
сделаем топорно и некрасиво, но все таки, я бы поразбирался через отладчик, работать должно при вашем варианте. Вот то, что вы ходите:
Если ((ПустаяСтрока(Корпус)=0) И (СокрЛП(Улицы)+СокрЛП(ПоискДом)+СокрЛП(Корпус)+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+СокрЛП(Файл.KORP)+СокрЛП(Файл.KWA))) ИЛИ
((ПустаяСтрока(Корпус)=1) И (СокрЛП(Улицы)+СокрЛП(ПоискДом)+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+СокрЛПСокрЛП(Файл.KWA))) Тогда
Как то все выглядит, мягко говоря, "не очень"...
27.08.2010
14:57
#6
Если (СокрЛП(Улицы)+СокрЛП(ПоискДом)+?((ПустаяСтрока(Корпус)=1,",СокрЛП(Корпус))+СокрЛП(ПоискКв))=(СокрЛП(Файл.ULI2)+СокрЛП(Файл.DOM2)+?((ПустаяСтрока(Корпус)=1,",СокрЛП(Файл.KORP))+СокрЛП(Файл.KWA)) Тогда
27.08.2010
15:08
#7
Вот странно все таки это, я не зря спросил про типы данных.
По идее, это излишество, так как если тип данных - строка и нет никакого неявного преобразования типов, то
?((ПустаяСтрока(Корпус)=1,",СокрЛП(Корпус))
это тоже самое что и
СокрЛП(Корпус)
и в изначальном варианте тоже все должно было работать
По идее, это излишество, так как если тип данных - строка и нет никакого неявного преобразования типов, то
?((ПустаяСтрока(Корпус)=1,",СокрЛП(Корпус))
это тоже самое что и
СокрЛП(Корпус)
и в изначальном варианте тоже все должно было работать
27.08.2010
16:35
#8
Да, но в правой части должно быть ?((ПустаяСтрока(Корпус)=1,",СокрЛП(Файл.KORP))
30.08.2010
12:23
#9
"Вот и я не понял почему изначально не работало, у меня есть ещё одна фигня которая работать не хочет, конфуз в том что по умолчанию путь к файлам dbf C:\BaseDBF\ всё работает , как только начинаешь выбирать каталог в диалоге ничего не находит вот:
Процедура ОткрКаталог()
Обзор = "C:\BaseDBF\";
Если ФС.ВыбратьКаталог(Обзор,,)=1 тогда
КонецЕсли;
КонецПроцедуры
в другой процедуре есть такое:
Если ПустаяСтрока(Обзор) = 1 тогда
ПутьКПапкеСdbfФайлами="C:\BaseDBF\";
иначе
ПутьКПапкеСdbfФайлами =Обзор;
КонецЕсли;
где Обзор строка в диалоге. "
Процедура ОткрКаталог()
Обзор = "C:\BaseDBF\";
Если ФС.ВыбратьКаталог(Обзор,,)=1 тогда
КонецЕсли;
КонецПроцедуры
в другой процедуре есть такое:
Если ПустаяСтрока(Обзор) = 1 тогда
ПутьКПапкеСdbfФайлами="C:\BaseDBF\";
иначе
ПутьКПапкеСdbfФайлами =Обзор;
КонецЕсли;
где Обзор строка в диалоге. "
- 1
- 2
Читают тему
(гостей: 1)