|   |   | 
| 
 | 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 | 
        Там ОткрытьПодбор();     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |