|
v7: Условие выбор складов | ☑ | ||
---|---|---|---|---|
0
julia_rostov
27.11.12
✎
10:49
|
Товарищи помогите!
Есть запрос, надо переделать условие.Посдкажите пожалуйста. ТЗ = " |Товар = Регистр.ОстаткиТоваров.Товар; |Кол = Регистр.ОстаткиТоваров.Количество; |Склад = Регистр.ОстаткиТоваров.Склад; |ПрСклад = Регистр.ОстаткиТоваров.Склад.ФлагОстатки; |Функция КонОст = КонОст(Кол); |Группировка Товар Без Групп; ???|Условие (Склад = Константа.ОснСклад); |Условие (Товар в СписТоваров); |"; Вот вместо этого условия ???|Условие (Склад = Константа.ОснСклад); должен выбираться склад например с кодом 56,78,94.(т.е. одновременно условие по 3 -м складам) Как правильно написать условие.Буду всем очень благодарна. |
|||
1
Wobland
27.11.12
✎
10:50
|
или?
|
|||
2
julia_rostov
27.11.12
✎
10:51
|
сейчас делается просто по основному складу, а мне надо по 3 -м складам одновренно.
|
|||
3
lxndr
27.11.12
✎
10:51
|
Условие (Товар в СписТоваров);
со складом точно так же |
|||
4
WoodMan
27.11.12
✎
10:52
|
добавить склады в список значений, например спСкладов, условие заменить на аналогичное условие по товарам
|Условие (Склад в СпСкладов); |
|||
5
julia_rostov
27.11.12
✎
10:55
|
Я правильно поняля,если нет поправьте.... надо создать новый список значений СпСклады??? и обращаться к нему в запросе
|
|||
6
Морозов Александр
27.11.12
✎
10:56
|
правильно
|
|||
7
julia_rostov
27.11.12
✎
10:58
|
А можно просто в условии жестко прописать номера складов по которым будет отбор?? И если не трудно пример.
|
|||
8
Godofsin
27.11.12
✎
10:59
|
(7) Это не есть гуд.
|
|||
9
julia_rostov
27.11.12
✎
11:00
|
СписТоваров = СоздатьОбъект("СписокЗначений");
ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл СписТоваров.ДобавитьЗначение(Товар); КонецЦикла; СписСкладов = СоздатьОбъект("СписокЗначений"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл СписСкладов.ДобавитьЗначение(Товар); КонецЦикла; ТЗ = " |Товар = Регистр.ОстаткиТоваров.Товар; |Кол = Регистр.ОстаткиТоваров.Количество; |Склад = Регистр.ОстаткиТоваров.Склад; |ПрСклад = Регистр.ОстаткиТоваров.Склад.ФлагОстатки; |Функция КонОст = КонОст(Кол); |Группировка Товар Без Групп; |Условие (Склад в СписСкладов); |Условие (Товар в СписТоваров); т.е. вот так будет правильней??? |
|||
10
Godofsin
27.11.12
✎
11:01
|
(9) Нет. предполагаю, что так:
СписСкладов.ДобавитьЗначение(Склад); |
|||
11
Godofsin
27.11.12
✎
11:01
|
И то, это если у тебя есть в ТЧ реквизит "Склад"
|
|||
12
julia_rostov
27.11.12
✎
11:02
|
ой извиняюсь да вы совершенно правы!! это моя опечатка. Спасибо большое
|
|||
13
Erhov_egor
27.11.12
✎
11:02
|
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл СписСкладов.ДобавитьЗначение(Товар); КонецЦикла; Где товар склад должен быть |
|||
14
julia_rostov
27.11.12
✎
11:03
|
Только вот ругается он на склад!!!Переменная не определена (Склад)
|
|||
15
Erhov_egor
27.11.12
✎
11:03
|
А можно было через или еще сделать
|
|||
16
Erhov_egor
27.11.12
✎
11:03
|
Ну так склад надо получать,это же просто переменная
|
|||
17
Erhov_egor
27.11.12
✎
11:04
|
А где фото?
|
|||
18
julia_rostov
27.11.12
✎
11:04
|
так я спрашивала как сделать через или может подскажите??
|
|||
19
julia_rostov
27.11.12
✎
11:05
|
фото кину
|
|||
20
Godofsin
27.11.12
✎
11:05
|
(14) Ну так значит нет в ТЧ склада, определяй по-другому
|
|||
21
julia_rostov
27.11.12
✎
11:07
|
фото кинула
|
|||
22
Erhov_egor
27.11.12
✎
11:07
|
Или например можно так:
СправСклад = СоздатьОбъект("Справочник.Склад"); СправСклад.НайтиПоКоду("23"); СписСкладов.ДобавитьЗначение(СправСклад.ТекущийЭлемент); СправСклад.НайтиПоКоду("24"); СписСкладов.ДобавитьЗначение(СправСклад.ТекущийЭлемент); СправСклад.НайтиПоКоду("25"); СписСкладов.ДобавитьЗначение(СправСклад.ТекущийЭлемент); |
|||
23
julia_rostov
27.11.12
✎
11:07
|
так как сделать через ИЛИ
|
|||
24
Builder
27.11.12
✎
11:07
|
ВыбСклад = СоздатьОбъект("Справочник.Склады");
ВыбСклад.НайтиПоКоду(56); СписСкладов.ДобавитьЗначение(ВыбСклад.ТекущийЭлемент()); ВыбСклад.НайтиПоКоду(78); СписСкладов.ДобавитьЗначение(ВыбСклад.ТекущийЭлемент()); Поправить по месту название справочника и тип кода. |
|||
25
Godofsin
27.11.12
✎
11:08
|
(22) А потом какой-нибудь мудрый юзер сменит код "23" на код "445" и вывалится ошибка
|
|||
26
Erhov_egor
27.11.12
✎
11:09
|
(25)Тогда сделать выбор из справочника на форме и чтоб тащил в список
|
|||
27
Voronve
27.11.12
✎
11:10
|
(0) Сделай список складов элементом формы отчета. Переложи проблему выбора складов на юзера
|
|||
28
Godofsin
27.11.12
✎
11:11
|
+(25) тогда уж так:
Если СправСклад.НайтиПоКоду("23") = 1 тогда СписСкладов.ДобавитьЗначение(СправСклад.ТекущийЭлемент); иначе Сообщить("Не обнаружен склад"); КонецЕсли; |
|||
29
Erhov_egor
27.11.12
✎
11:13
|
(28)А если пользователь такой то может он коды у всех поменяет,по потом твой код 23 будет на другом складе
|
|||
30
Erhov_egor
27.11.12
✎
11:14
|
Короче на форме сделай список, и кнопку на кнопке напишешь в формулу процедуру какую нибудь
|
|||
31
Godofsin
27.11.12
✎
11:17
|
(29) все правильно, потому вариант (26) (27) оптимальный
|
|||
32
Erhov_egor
27.11.12
✎
11:53
|
Там ОткрытьПодбор();
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |