Имя: Пароль:
1C
1C 7.7
v7: Условие в запросе
0 zamik15rus
 
17.03.14
12:46
Добрый день, дорогие форумчане. Простой вопрос от начинающего, необходимо в запросе указать в условии склад, делаю это так, но почему то не работает. Вообще так можно делать?
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(РеализНакл)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Док = Документ.Реализация.ТекущийДокумент;
    |ДатаДок = Документ.Реализация.ДатаДок;
    |НомерДок = Документ.Реализация.НомерДок;
    |Контрагент = Документ.Реализация.Контрагент;
    |КлиентИмя = Документ.Реализация.Контрагент.Наименование;
    |ДокСклад = Документ.Реализация.Склад;
    |СкладИмя = Документ.Реализация.Склад.Наименование;
    |Номенклатура = Документ.Реализация.Номенклатура;
    |ДокСумма = Документ.Реализация.Сумма;
    |ТоварКоличество = Документ.Реализация.Количество;
    |ТоварКоэф = Документ.Реализация.Коэффициент;
    |Группировка Док упорядочить по Док.ДатаДок;
    |Группировка Номенклатура без Групп;
    |Условие(Номенклатура в ВыбГруппа);
    |Условие(СкладИмя = ""Основной склад"");
    |"//}}ЗАПРОС
1 VladZ
 
17.03.14
12:47
(0) не стоит так делать. Кто-нибудь добавит точку в название склада и твой чудный отчет перестанет работать.
2 1Сергей
 
17.03.14
12:47
|Условие(ДокСклад = ОсновнойСклад);
3 eshtrey
 
17.03.14
12:52
добавь на форму реквизит ОсновнойСклад и сделай как в (2)
4 Злопчинский
 
17.03.14
12:54
ДокСумма - бяковое решение. для разных документо будет разный "размер" - где-то без НДС, где-то С нДС
5 zamik15rus
 
17.03.14
12:54
С добавлением на форму реквизита Склад я мог сделать, но я не хочу давать возможности оператору изменить запрос.
6 DmitriyDI
 
17.03.14
12:55
(2)
Спр = СоздатьОбъект("Справочник.Склады");
Если Спр.НайтиПоНаименованию("ОсновнойСклад",0,1)> 0 тогда
     ОсновнойСклад = Спр.ТекущийЭлемент();
КонецЕсли;
7 DmitriyDI
 
17.03.14
12:55
(5)  добавь это (6) к (2) и получится все
8 Злопчинский
 
17.03.14
13:01
(5) когда вокруг дятлы - спасет только бетонный столб.
заведи константу "СкладДляМегаОтчета". Ответсвенный юзверь имеет право туда выбрать нужный склад.

в отчете сделай

ВыбСклад = Константа.СкладДляМегаОтчета
в условии запроса
|Условие(ДокСклад в ВыбСклад)
.
а вариант (0) и (6) - выкинуть в топку
9 Злопчинский
 
17.03.14
13:02
если это ТиС
то в штатно параметрах юзверей пропиши склад по умолчанию - возможно его удобно будет использовать в услвоии
10 zamik15rus
 
17.03.14
13:26
Всем спасибо, тема закрыта.
11 1dvd
 
17.03.14
13:31
тема открыта
12 DmitriyDI
 
17.03.14
14:40
(8) и так для каждого отчета по константе заводить)?
13 Злопчинский
 
17.03.14
15:05
(12) если всплывает такая необходимость - это свидетельствует скорее всего о кривизне выстроенных учетных схем и применяемых понятиях.
есть такое понятие "склад". Склады с одинаковыми "учетными" характеристиками - равнозначны. Что подразумевает интерактивный выбор в определенных местах.
.
если где-то должен быть ПРЕИМУЩЕСТВЕННЫЙ неинтерактивный выбор среди ОДИНАКОВЫХ складов - налицо непродуманность, попытки "сэкономить".
.
Описывайте сущности "складов" - более подробно, с большим количеством настроек. Вплоть до того, что каждый склад по совокупности настроек будет уникальным.
14 DmitriyDI
 
17.03.14
15:33
(13)прекрасный пример того, как размышляют настоящие специалисты, век живи, век учись =)