Имя: Пароль:
1C
 
Проверка на пустую строку в запросе.
0 Denyk
 
06.02.09
02:24
Подскажите как?
1 Garkin
 
06.02.09
02:43
Примерно так:

Выбор Когда Подстрока(ПодозрительнаяСтрока+"     ",1,100)="     "  Тогда  


Где "     "  - 100 пробелов
    100   - достаточно большое число
2 AndOne
 
06.02.09
08:08
ВЫБОР
       КОГДА ПодозрительнаяСтрока = ""
           ТОГДА ИСТИНА
       ИНАЧЕ ЛОЖЬ
   КОНЕЦ
3 AndOne
 
06.02.09
08:38
(1) сам то также делаешь? :)
4 Sammo
 
06.02.09
08:42
А если подозрительная строка фиксированной длины?
5 Sammo
 
06.02.09
08:42
(4) к (2)
6 Garkin
 
06.02.09
10:08
(3) не самому както не приходилось, но альтернативы пока не вижу.

ЗЫ: Боюсь что у нас с тобой разные определения пустой строки.
7 hhhh
 
06.02.09
10:19
(6) насчет фиксированной строки не знаю, но в остальных случаях (3) работает железно. Так что лучше не мудрить.
8 KalachevDV
 
06.02.09
10:30
Кстати... Интересный результат. Вот запрос.
ВЫБРАТЬ
   ВЫБОР
       КОГДА "      " > ""
           ТОГДА "Не пустая строка"
       ИНАЧЕ "Пустая строка"
   КОНЕЦ КАК Поле1

Попробуйте кому не лень. :)
9 НЕА123
 
06.02.09
10:30
аналог из(1)

ВЫРАЗИТЬ(ПодозрительнаяСтрока КАК СТРОКА(100)) = "     " //сто пробелов


ненадежно, но иногда можно:
ЕСТЬNULL(Подстрока(ПодозрительнаяСтрока,1,1)," ") = " "
10 Garkin
 
06.02.09
10:33
(2), (6) Согласен, был не прав
11 KalachevDV
 
06.02.09
10:33
В общем, ИМХО, (8) или глюк платформы. Или действительно 100% вариант проверки в запросах 1С пустая строка или нет по правилам, аналогичным функции ЗначениеЗаполнено.
12 Serg_1960
 
06.02.09
10:37
Когда идет сравнение в запросе - работает "привидение" к единообразию (мой термин). Строки - уравниваются по длине... Делайте выводы коллеги, - с какой "стороны" надо располагать более короткую строку :)
13 НЕА123
 
06.02.09
10:40
(11)
да. (8) дает "Пустая строка".
14 НЕА123
 
06.02.09
10:41
ВЫБРАТЬ
   ВЫБОР
       КОГДА "   1   " > ""
           ТОГДА "Не пустая строка"
       ИНАЧЕ "Пустая строка"
   КОНЕЦ КАК Поле1

дает "Не пустая строка"
15 KalachevDV
 
06.02.09
10:42
(14) Что и требовалось. Причем операция явно быстрее чем ПОДСТРОКА и ВЫРАЗИТЬ и т.д :)
16 Serg_1960
 
06.02.09
10:54
Ыыы... Ну почему никто не клюнул на (12)... и поспорить не об чём :((
17 НЕА123
 
06.02.09
10:58
(16) че клевать-то? однокуйсвенно работает также.
18 Serg_1960
 
06.02.09
11:07
(17) Скучно когда все "согласные" :(

   Запрос = Новый Запрос("ВЫБРАТЬ ВЫБОР КОГДА ""РАЗЛИЧНЫЕ?"" <> ""различные?"" ТОГДА ""Одинаковые"" ИНАЧЕ ""Различные"" КОНЕЦ КАК Резюме");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Сообщить(Выборка.Резюме);
   Запрос = Новый Запрос("ВЫБРАТЬ ВЫБОР КОГДА ""Различные?   "" <> ""Различные? "" ТОГДА ""Одинаковые"" ИНАЧЕ ""Различные"" КОНЕЦ КАК Резюме");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Сообщить(Выборка.Резюме);
   Запрос = Новый Запрос("ВЫБРАТЬ ВЫБОР КОГДА ""Различные? "" <> ""Различные?   "" ТОГДА ""Одинаковые"" ИНАЧЕ ""Различные"" КОНЕЦ КАК Резюме");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Сообщить(Выборка.Резюме);
   Запрос = Новый Запрос("ВЫБРАТЬ ВЫБОР КОГДА "" Различные?"" <> ""   Различные?"" ТОГДА ""Одинаковые"" ИНАЧЕ ""Различные"" КОНЕЦ КАК Резюме");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Сообщить(Выборка.Резюме);
   Запрос = Новый Запрос("ВЫБРАТЬ ВЫБОР КОГДА ""   Различные?"" <> "" Различные?"" ТОГДА ""Одинаковые"" ИНАЧЕ ""Различные"" КОНЕЦ КАК Резюме");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Сообщить(Выборка.Резюме);
   Возврат;
19 Serg_1960
 
06.02.09
11:09
(18) Эпитафия :) "...Различные...Различные...Различные...Одинаковые...Одинаковые..."
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший