Имя: Пароль:
1C
1C 7.7
v7: 1sqlite. Помогите сделать отбор по периодическому значению
0 palpetrovich
 
27.05.15
11:28
кодик:

    текст = "SELECT
    |ТабКонтрагенты.id [Контрагент :Справочник.Контрагенты],
    |Периодический.value [Плательщик :Число.1.0]
    |FROM ТабКонтрагенты
    |INNER Join __1S_Const Периодический ON Периодический.objid = ТабКонтрагенты.id
    |WHERE isfolder=2 AND ismark <> '*'
    |AND ТабКонтрагенты.id IN (select val from СпиоКонтрагентов)
    |AND Периодический.id = :ИсторияРеквизита.Контрагенты.ПлательщикНалогаНаПрибыль
    //|AND Периодический.value = 0
    |AND Периодический.date <= :ВыбКонПериода";

при раскомментированном
    //|AND Периодический.value = 0
таблица результатов пуста :(

зы: если код ваще бредовый - прошу поправить :)
1 palpetrovich
 
27.05.15
11:34
пробовал так:
    |AND Периодический.value = :НОЛИК
    Запрос.Подставлять("НОЛИК",  1);
и так
|AND Периодический.value = '0'

результата нет
2 palpetrovich
 
27.05.15
11:35
при ЗАкомментированном
    //|AND Периодический.value = 0
в результирующей табличке есть и нолики и единички
3 Ёпрст
 
27.05.15
11:37
А зачем тебе иннер джоин ?
4 palpetrovich
 
27.05.15
11:38
может вообще к Справочнику.Контрагенты не обращаться, может только к константам?
5 Ёпрст
 
27.05.15
11:38
ПлательщикНалогаНаПрибыль - какой тип у периодического реквизита ? Число что ле?
6 palpetrovich
 
27.05.15
11:38
(3) а как?
7 palpetrovich
 
27.05.15
11:38
(5) число 1.0
8 palpetrovich
 
27.05.15
11:42
сделал так
    текст = "SELECT
    |Периодический.objid [Контрагент :Справочник.Контрагенты],
    |Периодический.value [Плательщик :Число.1.0]
    |
    |FROM __1S_Const Периодический
    |
    |WHERE
    |Периодический.objid IN (select val from СпиоКонтрагентов)
    |
    |AND Периодический.id = :ИсторияРеквизита.Контрагенты.ПлательщикНалогаНаПрибыль
    |AND Периодический.date <= :ВыбКонПериода
    |AND Периодический.value = 0
    |";
результат - тот-же
9 Ёпрст
 
27.05.15
11:43
(8) если без фильтра кажет - значит там не число
10 palpetrovich
 
27.05.15
11:44
+(8) кста, непонятно, если нужно последне значение, нужно-ли это:
AND Периодический.date <= :ВыбКонПериода
11 Ёпрст
 
27.05.15
11:44
А ёппт.. со снеговиком всё позабыл :))
12 palpetrovich
 
27.05.15
11:45
(9) без фильтра - показывает
так тоже не показывает:
    |AND Периодический.value = :НОЛИК
    Запрос.Подставлять("НОЛИК",  "0");
13 Ёпрст
 
27.05.15
11:46
(12) там value - 23
тебе нужно кастовать в фильтре
14 Ёпрст
 
27.05.15
11:46
и всё
15 palpetrovich
 
27.05.15
11:51
(13) ну вот зачем так-то? ...поставил меня в ступор :)

"Cust - Каст - Кастовать. Кастовать - обозначает на жаргоне "Вызывать заклинание", при этом не важно для каких целей этио заклинание предназначается." (цы)
16 Ёпрст
 
27.05.15
11:51
and cast(Периодический.value as integer) = 0
17 palpetrovich
 
27.05.15
11:55
(16)  большое человеческое спасибо! :)