![]() |
|
v7: Условие вхождения в список | ☑ | ||
---|---|---|---|---|
0
Лиза777
25.04.18
✎
13:13
|
Добрый день. Простой момент, но чёт туплю. Мне надо в запросе условие поставить, чтобы значение входило в список. МойСписок - это список значений, в котором элементы справочника вида МойСправочник.НайтиПоКоду(55).ТекущийЭлемент.
В запросе пишу |Условие (Товар В МойСписок); ошибка МойСПИСОК<<?>> Переменная не определена (МойСПИСОК) Как не определена то? Чего не так не пойму |
|||
1
Temai
25.04.18
✎
13:14
|
|Условие (Товар В &МойСписок) -Найди одно отличие
|
|||
2
Лиза777
25.04.18
✎
13:16
|
нашла, ща попробую...
|
|||
3
Zmich
25.04.18
✎
13:16
|
(1). Речь о 7.7
|
|||
4
Лиза777
25.04.18
✎
13:18
|
(1) неа не идёт так
|
|||
5
Zmich
25.04.18
✎
13:19
|
(4). Мало данных. Покажи полный код, как список заполняется и код запроса.
|
|||
6
Джинн
25.04.18
✎
13:19
|
Значит Ваш список вне видимости из процедуры, где формируется запрос.
|
|||
7
Карст
25.04.18
✎
13:20
|
МойСПИСОК это чо ?
МойСправочник.НайтиПоКоду(55).ТекущийЭлемент. - чойта ? |
|||
8
Злопчинский
25.04.18
✎
13:22
|
мойСписок - должен быть на форме или д.б. определен как глобальная переменная модуля или должен ббыть определен как локальная переменная процедуры/функции или д.б. определен как формальный параметр процедцры/функции
|
|||
9
Злопчинский
25.04.18
✎
13:23
|
.. ну или если рубить по нашенски - то глобальная переменная глобального модуля в этом глобализованном мире...
|
|||
10
Лиза777
25.04.18
✎
13:25
|
МойСправочник = СоздатьОбъект("Справочник.Товары");
МойСписок = СоздатьОбъект("СписокЗначений"); МойСправочник.НайтиПоКоду("284"); МойСписок.ДобавитьЗначение(МойСправочник.ТекущийЭлемент().Код); МойСправочник.НайтиПоКоду("282"); МойСписок.ДобавитьЗначение(МойСправочник.ТекущийЭлемент().Код); Запрос ............ |КодЭлемента = Документ.МойДокумент.Товар.Код; .......... |Условие (КодЭлемента В МойСписок); ............ |
|||
11
Злопчинский
25.04.18
✎
13:26
|
Упрости, а то лишнее дергание базы
МойСписок.ДобавитьЗначение(МойСправочник.Код); |
|||
12
Лиза777
25.04.18
✎
13:27
|
Текст запроса со списком формируются в ОДНОЙ функции, а выполняется запрос в процедуре уже
|
|||
13
Злопчинский
25.04.18
✎
13:27
|
(10) написано в целом правильно.
если ругается - значит либо МойСписок другими буквами в разных местах написан либо вы чего-то недоговариваете |
|||
14
Лиза777
25.04.18
✎
13:27
|
(11) ок, спс
|
|||
15
Лиза777
25.04.18
✎
13:29
|
(13) я название и копировала и пробовала менять. Может чего-то не договариваю, только пока не пойму чего
|
|||
16
Злопчинский
25.04.18
✎
13:29
|
а должно быть вот так
МойСправочник = СоздатьОбъект("Справочник.Товары"); МойСписок = СоздатьОбъект("СписокЗначений"); МойСправочник.НайтиПоКоду("284"); МойСписок.ДобавитьЗначение(МойСправочник.ТекущийЭлемент()); МойСправочник.НайтиПоКоду("282"); МойСписок.ДобавитьЗначение(МойСправочник.ТекущийЭлемент()); |Элемент = Документ.МойДокумент.Товар; .......... |Условие (Элемент В МойСписок); |
|||
17
Злопчинский
25.04.18
✎
13:30
|
(12) недостаточно передать в функцию ТЕКСТ запроса - текст он и есть текст. в нем нет никаких списокв и справочников.
в функцию следует передать в т.ч. и переменные, которые упоминаются в тексте запроса |
|||
18
Zmich
25.04.18
✎
13:31
|
(12). Запрос должен выполняться в том же месте, где формируется список значений. Текст запроса - это просто строка.
|
|||
19
Злопчинский
25.04.18
✎
13:31
|
вот это:
МойСправочник.НайтиПоКоду("284"); МойСписок.ДобавитьЗначение(МойСправочник.ТекущийЭлемент()); - быдлокод. Не отрабатывается ситуация когда элемент не найден по коду. Пздж что такой код всегда будет найден - является всего лишь довеском к быдлокоду и ничем иным. |
|||
20
Лиза777
25.04.18
✎
13:34
|
(8) помогло. Объявила переменную МойСписок в модуле формы и не ругается )
|
|||
21
Лиза777
25.04.18
✎
13:34
|
(18) точно!
|
|||
22
Злопчинский
25.04.18
✎
13:35
|
если надо в коде постоянно обращаться к списку каких-то значений, а в конфигурации нет подходящего объекта для хранения такого списка, то в качестве "хранилища" таких элементов можно использовать люой документ, в котором есть ТЧ Товары.
Запихнуть этот документ-контейнер в начало журнала. Какими значениями заполнит пользователь этот контейнер - то и фильтровать запрос. А сам документ или искать или запихнгуть как ссылку в константу например (для начала) |
|||
23
Злопчинский
25.04.18
✎
13:36
|
(21) точно не в (18), а в (17)
в (18) - опоздунец ;-) |
|||
24
Лиза777
25.04.18
✎
13:36
|
ну да. Спасибо!!!!!
|
|||
25
Злопчинский
25.04.18
✎
13:41
|
Спасибо не надо!
надо участвовать в "Мисс бюст" нв ежегодных мистаконкрсах! ;-) |
|||
26
Джинн
25.04.18
✎
13:43
|
(10) А зачем Вы вообще кодами пользуетесь, а не ссылками?
|
|||
27
Злопчинский
25.04.18
✎
13:56
|
(26) От бездуховности, наверное... ;-)
|
|||
28
Лиза777
26.04.18
✎
05:03
|
(25, 26) ссылками это просто ТекущийЭлемент() ? Мне кажется это будет более громоздко в памяти держать, чем просто число - код
|
|||
29
Sserj
26.04.18
✎
05:37
|
(28) А ТекущийЭлемент() в списке это на самом деле строка 9 символов.
|
|||
30
Sserj
26.04.18
✎
05:39
|
+(28) А запрос со строкой
КодЭлемента = Документ.МойДокумент.Товар.Код; Будет соединять таблицу строк документов со таблицей справочника номенклатуры чтобы получить этот самый код. |
|||
31
Лиза777
26.04.18
✎
05:49
|
аааа, ну значит поставлю ТекущийЭлемент(). Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |