Имя: Пароль:
1C
 
использование ЗНАЧЕНИЕ в запросе
0 EugeneK
 
23.10.09
22:17
С пятницей товарищи. А мне вот после пива не спиться, задачку решаю.
Есть такой чудесный оператор в запросе как ЗНАЧЕНИЕ, т.е.  можно использовать его так Значение (Справочник.СтатьиЗатрат.Товар), а вот как получить значение Константы ? Значение (Константа.ВалютаРегламентированногоУчета) не прокатывает.
1 Mitriy
 
23.10.09
22:26
никак
только параметром
2 EugeneK
 
23.10.09
22:36
(1) очень жаль, недороботочка

выкрутился таким способом :
КОГДА КвотаОбороты.Договор.Валюта В
                           (ВЫБРАТЬ
                               Константы.ВалютаРегламентированногоУчета
                           ИЗ
                               Константы КАК Константы)
3 Mort
 
23.10.09
23:04
Константы обычная таблица, делай внутренним соединением.
4 Дарлок
 
23.10.09
23:16
мдя... жесть, если константы могут менять во время работы... столько бреда приходиться программистам писать
5 Дарлок
 
23.10.09
23:17
а все почему ...
а потому что глупость неискоренима
6 EugeneK
 
23.10.09
23:20
(4) лично у меня, контанта ВалютаРегламентированногоУчета не меняется уже лет незнаю сколько. вообще не менялась. А если и поменяется - все гуд, отчет по прежнему будет верно показывать, для текущей валюты.
(3) как в условие делать внутреннее соединение ?
7 Armando
 
23.10.09
23:23
(6) покажи весь запрос. не факт, что внутреннее соединение тебе подойдет.
8 EugeneK
 
23.10.09
23:26
ВЫБРАТЬ
   КвотаОбороты.Номенклатура КАК Номенклатура,
   КвотаОбороты.КоличествоПриход КАК КолвоКПродаже,
   ВЫБОР
       КОГДА КвотаОбороты.Договор = &Сделка
           ТОГДА ВЫБОР
                   КОГДА (НЕ КвотаОбороты.Договор.Валюта В
                               (ВЫБРАТЬ
                                   Константы.ВалютаРегламентированногоУчета
                               ИЗ
                                   Константы КАК Константы))
                       ТОГДА КвотаОбороты.СуммаПриход * &Курс
                   ИНАЧЕ КвотаОбороты.СуммаПриход
               КОНЕЦ
   КОНЕЦ КАК СуммаКПродаже,
   ВЫБОР
       КОГДА КвотаОбороты.Договор.ДоговорПродажиЭкспорт = &Сделка
           ТОГДА 0
       ИНАЧЕ КвотаОбороты.КоличествоРасход
   КОНЕЦ КАК КолвоПродано,
   ВЫБОР
       КОГДА (НЕ КвотаОбороты.Договор.Валюта В
                   (ВЫБРАТЬ
                       Константы.ВалютаРегламентированногоУчета
                   ИЗ
                       Константы КАК Константы))
           ТОГДА КвотаОбороты.СуммаРасход * &Курс
       ИНАЧЕ КвотаОбороты.СуммаРасход
   КОНЕЦ КАК Оплачено,
   NULL КАК КолвоКуплено,
   NULL КАК СуммаКуплено,
   NULL КАК СтатьяЗатрат,
   NULL КАК Затраты,
   КвотаОбороты.Регистратор,
   КвотаОбороты.Регистратор.Дата КАК Дата,
   ВЫБОР
       КОГДА КвотаОбороты.Договор = &Сделка
           ТОГДА ВЫБОР
                   КОГДА (НЕ КвотаОбороты.Договор.Валюта В
                               (ВЫБРАТЬ
                                   Константы.ВалютаРегламентированногоУчета
                               ИЗ
                                   Константы КАК Константы))
                       ТОГДА КвотаОбороты.Договор.ЦенаСНДС * &Курс
                   ИНАЧЕ КвотаОбороты.Договор.ЦенаСНДС
               КОНЕЦ
   КОНЕЦ КАК ЦенаПродажи,
   КвотаОбороты.Регистратор.ДоходОтНДС КАК ДоходОтНДС
ИЗ
   РегистрНакопления.Квота.Обороты(, , Регистратор, ) КАК КвотаОбороты,
   КурсВалюты КАК КурсВалюты,
   ДокументыСделки КАК ДокументыСделки
ГДЕ
   КвотаОбороты.Договор.Проведен = ИСТИНА
   И КвотаОбороты.Договор В (ДокументыСделки.ДогПродажи)
9 Mort
 
23.10.09
23:26
Запрос = Новый Запрос;
Запрос.Текст =          "ВЫБРАТЬ
|Проекты.Ссылка
|ИЗ
|Справочник.Проекты КАК Проекты
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ Константы КАК Константы
|ПО Проекты.Наименование = Константы.Жесть";

Допустим у меня есть строковая константа "Жесть"(ничо больше в голову не пришло).
Я получаю ссылки на проекты которые называются как значение в этой константе.
10 Armando
 
23.10.09
23:48
(8) используй параметр
11 EugeneK
 
23.10.09
23:55
(10) нехочу и немогу. этот отчет будет дорабатываться, где в итоге и Сделка будет как вариант из списка, соответственно валюта должна расчитыватся для текущей сделки
12 Mort
 
23.10.09
23:57
(11) Да ну
13 EugeneK
 
24.10.09
00:21
(12) ну да. будет у меня таблица с 10 договоров с разными валютами, что в параметре передавать ?
14 Дарлок
 
24.10.09
01:28
мрак... пристрелите его.
15 EugeneK
 
24.10.09
08:58
(14) ты лучше что-то дельное скажи, подскажи, а не ...
16 Armando
 
24.10.09
13:53
Нифига не понял. Причем сдесь "10 договоров с разными валютами", если в константе содержится только одна(!) валюта? Именно ее надо передавать в параметре.
17 Defender aka LINN
 
24.10.09
14:18
(16) А нахрена параметр, если константы - таблица?
18 Rie
 
24.10.09
14:25
(13) Константы.ВалютаРегламентированногоУчета.Получить() в параметре передать.
И сравнивать не через В, а через =.
19 Armando
 
24.10.09
15:19
(17) Точно, ступил. Можно просто:
КвотаОбороты.Договор.Валюта = Константы.ВалютаРегламентированногоУчета
20 EugeneK
 
24.10.09
15:21
(19) согласен, протупил :)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn