|
ЗначениеВСтрокуВнутр() и запрос... | ☑ | ||
---|---|---|---|---|
0
ДенисЧ
12.05.16
✎
08:55
|
Попалась тут конфа, где один реквизит хранится как СписокЗначений через ЗначениеВСтрокуВнутр() (да, надо расстрелять, но временный дефицит патронов...)
Хочется как-то запросом получить все документы, где этот список содержит 0 значений... Это реально? Или перебирать все документы (а их порядочно...) ? |
|||
1
sapphire
12.05.16
✎
08:56
|
(0) Реально.
|
|||
2
Bigbro
12.05.16
✎
08:57
|
одинаковая же строка будет для пустого списка?
|
|||
3
ДенисЧ
12.05.16
✎
08:58
|
(2) (1) предлагаете в запросе строку потрошить?
|
|||
4
Guk
12.05.16
✎
09:00
|
(3) видимо предлагают установить как параметр...
|
|||
5
sapphire
12.05.16
✎
09:01
|
(3) передать в качестве параметра
|
|||
6
ДенисЧ
12.05.16
✎
09:01
|
(4) (5) Что конкретно я буду передавать в качестве параметра?
Научите... |
|||
7
Guk
12.05.16
✎
09:02
|
(6) ЗначениеВСтрокуВнутр(Новый СписокЗначений)
что-то типа этого... |
|||
8
lubitelxml
12.05.16
✎
09:03
|
(7) опередил )
(6) попробуй как в (7) - самому интересно прокатит или нет |
|||
9
ДенисЧ
12.05.16
✎
09:03
|
Щаз проверю....
|
|||
10
ДенисЧ
12.05.16
✎
09:04
|
Неа...
Не прокатывает... Ни через равно, ни через подобно не находит... Строка неограниченной длины, если что |
|||
11
lopus
12.05.16
✎
09:06
|
Может через Выразить
|
|||
12
ДенисЧ
12.05.16
✎
09:07
|
(11) ВЫРАЗИТЬ КАК СТрока(1000) изначально стоит.
|
|||
13
lubitelxml
12.05.16
✎
09:08
|
запрос к сз?
|
|||
14
ДенисЧ
12.05.16
✎
09:09
|
(13) к тч документа
|
|||
15
ИсчадиеADO
12.05.16
✎
09:10
|
если уж как параметр то значениеизстрокивнутр...
иначе никак |
|||
16
lubitelxml
12.05.16
✎
09:10
|
(14) я имел ввиду что ты можешь запросом получить количество элементов в списке значений
|
|||
17
ИсчадиеADO
12.05.16
✎
09:12
|
придется запросом получать выборку тч, формировать таблицу и передават ее параметром в запром обратно
|
|||
18
ИсчадиеADO
12.05.16
✎
09:15
|
тьфу, задачу не дочитал...
|
|||
19
ДенисЧ
12.05.16
✎
09:16
|
(16) Расскажи, как в зпросе это сделать
|
|||
20
RomanYS
12.05.16
✎
09:18
|
(10) может не таких?
|
|||
21
RomanYS
12.05.16
✎
09:18
|
(20) *нет
|
|||
22
ДенисЧ
12.05.16
✎
09:21
|
(20) Как минимум один есть, это точно
|
|||
23
lubitelxml
12.05.16
✎
09:22
|
||||
24
RomanYS
12.05.16
✎
09:22
|
(22) покажи строку оттуда
|
|||
25
ДенисЧ
12.05.16
✎
09:24
|
(24) Обработка закончится - покажу
|
|||
26
Bigbro
12.05.16
✎
09:24
|
может список не пустой, а содержит пустое значение?
|
|||
27
mehfk
12.05.16
✎
09:24
|
сз = Новый СписокЗначений;
Стр1 = ЗначениеВСтрокуВнутр(сз); сз.Добавить(""); сз.Очистить(); Стр2 = ЗначениеВСтрокуВнутр(сз); Стр1 != Стр2 :) |
|||
28
ДенисЧ
12.05.16
✎
09:24
|
(23) Ты заблудился. У меня нет как такового списка. Есть строка, которая преобразовывается в списо
|
|||
29
ДенисЧ
12.05.16
✎
09:25
|
(26) Количество() = 0
|
|||
30
gigi789
12.05.16
✎
09:27
|
(29) может типизация значения??
|
|||
31
lubitelxml
12.05.16
✎
09:28
|
(28) в сторону длины строки не копал?
|
|||
32
ДенисЧ
12.05.16
✎
09:28
|
(31) Я и через ПОДОБНО делал
(30) Шта? |
|||
33
gigi789
12.05.16
✎
09:30
|
(32) сп=Новый СписокЗначений;
сп.ТипЗначения=Новый ОписаниеТипов("Строка"); |
|||
34
ДенисЧ
12.05.16
✎
09:31
|
(24)
"{""#"",4772b3b4-f4a3-49c0-a1a5-8cb5961511a3, {6,1e512aab-1b41-4ef6-9375-f0137be9dd91,0,0, {0}, {""Pattern""},0,-1} }" |
|||
35
mehfk
12.05.16
✎
09:31
|
(27)+
Стр3 = СтрЗаменить(Стр2, Символы.ПС, ""); сз2 = ЗначениеИзСтрокиВнутр(Стр3); |
|||
36
RomanYS
12.05.16
✎
09:34
|
(34) совпадает с (7)
Почему подобно не работает? может "{" или "#" нельзя в подобно? |
|||
37
ДенисЧ
12.05.16
✎
09:35
|
(36) В справке нет упоминаний
|
|||
38
patapum
12.05.16
✎
09:35
|
(34) А получается поймать четкое различие между строкой списка без элементов и с элементами? Типа количества открывающихся скобок?
Если найдется, то можно ловить. Запрос скульный хоть, не клюшечный? |
|||
39
ДенисЧ
12.05.16
✎
09:37
|
(38) запрос снеговичный, разумеется
|
|||
40
lubitelxml
12.05.16
✎
09:39
|
сравнивай длину строк и будет тебе счастье.
|
|||
41
patapum
12.05.16
✎
09:41
|
(39) Ну, в нем на условиях можно писать функции. То есть определить количество некоторого символа в строке как фильтр должно проканать. Кстати, может (40) реально сработает?
А почему жесткое условие именно запросом вырезать, а не постобработкой? |
|||
42
RomanYS
12.05.16
✎
09:41
|
попробуй
где подстрока(твоястрока,113,1) = "" |
|||
43
Бледно Золотистый
12.05.16
✎
09:43
|
(39) Только что попробовал, все отбирает нормально.
И (ВЫРАЗИТЬ(МойДокумент.Комментарий КАК СТРОКА(1000))) = &СтрокаВнутр Запрос.УстановитьПараметр("СтрокаВнутр", ЗначениеВСтрокуВнутр(Новый СписокЗначений)); |
|||
44
ДенисЧ
12.05.16
✎
09:44
|
(41) Я просто хотел найти такие документы. В коде, где надо, условия уже стоят.
(43) Я через консоль делал. |
|||
45
patapum
12.05.16
✎
09:44
|
+(41) Сорри, снеговичный??? Насчет функций погорячился.
Что-то я по теме решил, что это все в клюшках. Зачем в снеговике такое монстрячить... эх... |
|||
46
ДенисЧ
12.05.16
✎
09:44
|
Ладно, всем спасибо.
|
|||
47
gigi789
12.05.16
✎
09:48
|
(44) пс убрал скорее всего
|
|||
48
catena
12.05.16
✎
09:48
|
По-моему, по 94 символ пустые должны совпадать. Там где {0} - количество элементов.
Вот так все три пустых у меня находятся... Запрос = Новый Запрос; Запросы = " |ВЫБРАТЬ | тз.НомерСтр, | тз.Список |ПОМЕСТИТЬ тз |ИЗ | &тз КАК тз |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тз.НомерСтр, | &ПустойСп, | тз.Список |ИЗ | тз КАК тз |ГДЕ | Подстрока(тз.Список,1,94) = Подстрока(&ПустойСп,1,94) | |"; Параметр = Новый ТаблицаЗначений; Параметр.Колонки.Добавить("НомерСтр",ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(5)); Параметр.Колонки.Добавить("Список",ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(200)); стр = Параметр.Добавить(); стр.НомерСтр = 1; стр.Список = ЗначениеВСтрокуВнутр(Новый СписокЗначений); стр = Параметр.Добавить(); стр.НомерСтр = 2; сп = Новый СписокЗначений; сп.Добавить(33); стр.Список = ЗначениеВСтрокуВнутр(сп); стр = Параметр.Добавить(); стр.НомерСтр = 3; сп = Новый СписокЗначений; сп.Добавить(33); сп.Очистить(); стр.Список = ЗначениеВСтрокуВнутр(сп); стр = Параметр.Добавить(); стр.НомерСтр = 4; сп = Новый СписокЗначений; сп.ТипЗначения = Новый ОписаниеТипов("Строка"); стр.Список = ЗначениеВСтрокуВнутр(сп); Запрос.УстановитьПараметр("тз", Параметр); сп = Новый СписокЗначений; сп.ТипЗначения=Новый ОписаниеТипов("Строка"); Параметр = Лев(ЗначениеВСтрокуВнутр(сп),200); Запрос.УстановитьПараметр("ПустойСп", Параметр); Запрос.Текст = Запросы; РЗ = Запрос.Выполнить(); |
|||
49
hhhh
12.05.16
✎
10:02
|
(48) да не будет работать
сп = Новый СписокЗначений; надо именно тот старый список значений. У него гуид другой. |
|||
50
Бледно Золотистый
12.05.16
✎
10:03
|
||||
51
Ёпрст
12.05.16
✎
10:16
|
Вот до чего продажа СП доводит!
|
|||
52
lubitelxml
12.05.16
✎
10:27
|
(51) он походу пропил его просто за майские )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |