|
v7: Запрос 1sqlite? что-то не так... | ☑ | ||
---|---|---|---|---|
0
Pro100
26.06.14
✎
14:57
|
Здравствуйте.
Подскажи что не так в запросе? выдает пустую таблицу... Попытка базаДанных = СоздатьОбъект("SQLiteBase"); Исключение ЗагрузитьВнешнююКомпоненту("1sqlite.dll"); базаДанных = СоздатьОбъект("SQLiteBase"); КонецПопытки; базаДанных.Открыть(":memory:"); лЗапрос = базаДанных.НовыйЗапрос(); СпГруппы = СоздатьОбъект("СписокЗначений"); СпГруппы.ДобавитьЗначение(рд_ГруппаНоменклатуры.ТекущийЭлемент()); базаДанных.УложитьОбъекты(СпГруппы,"ВыбрТовар",0,"Номенклатура"); лЗапрос.ВыполнитьЗапрос("PRAGMA journal_mode = OFF"); текст=" |SELECT | РегТовар.Склад [Склад :Справочник.Склады] | ,РегТовар.Номенклатура [Товар :Справочник.Номенклатура] | ,РегТовар.period | ,РегТовар.Количество |FROM [РегистрИтоги.ОстаткиТМЦ] РегТовар |WHERE РегТовар.period = :ВыбДата | AND РегТовар.Склад = :ВыбСклад | AND РегТовар.Номенклатура in (select val from ВыбрТовар) |"; лЗапрос.Подставлять("ВыбСклад", рд_Склад); лЗапрос.Подставлять("ВыбДата", рд_Дата); лЗапрос.ВыполнитьЗапрос(текст).ВыбратьСтроку(,"тзОстатков"); |
|||
1
Ёпрст
26.06.14
✎
15:02
|
не совпадают типы
|
|||
2
КонецЦикла
26.06.14
✎
15:02
|
Добавляй условия по одному, косяк где-то *тут*
|
|||
3
Ёпрст
26.06.14
✎
15:02
|
что есть рд_Склад,рд_Дата и какого они типа ?
что есть рд_ГруппаНоменклатуры ? |
|||
4
Pro100
26.06.14
✎
15:05
|
(3)
рд_Склад = Справочник.Склады рд_Дата = Дата рд_ГруппаНоменклатуры = Справочник.Номенклатура на форме выбираю элемент справочника склады, дата - выбираю дату например сегодняшнее число группа номенклатуры - выбираю из справочника номенклатура группу. и в запросе чтобы показал остатки по всем элементам из этой группы |
|||
5
Ёпрст
26.06.14
✎
15:07
|
тогда см (2)
Ну или, тупо остатков нема |
|||
6
Ёпрст
26.06.14
✎
15:07
|
а блин..
|
|||
7
Ёпрст
26.06.14
✎
15:08
|
дата - выбираю дату например сегодняшнее число
|
|||
8
Ёпрст
26.06.14
✎
15:08
|
вот это и есть, п...ц!
|
|||
9
Ёпрст
26.06.14
✎
15:08
|
:)))
|
|||
10
КонецЦикла
26.06.14
✎
15:08
|
Епать... какое-же сегодняшнее?
Посмотри какие даты в RG |
|||
11
Pro100
26.06.14
✎
15:12
|
(10)
в RG тут даты разные... есть даже 2012 года какие-то записи. |
|||
12
Ёпрст
26.06.14
✎
15:12
|
Если нужны итоги на ТА - то втыкай дату как
мд = СоздатьОбъект("MetaDataWork"); Запрос.Подставлять("ВыбДата",мд.ПолучитьНачПериода(ПолучитьДатуТА())); ежели на выбранную, то тут нужно еще запрос к табличке движений лепить |
|||
13
Ёпрст
26.06.14
✎
15:14
|
на вот, занимайся
Процедура Сформировать() ТекстЗапроса=" |Select | Рег.Номенклатура [Номенклатура :Справочник.Номенклатура] | ,Рег.Док [Док :Документ] | ,SUM(Рег.НачОст) [НачОст $Число] | ,SUM(Рег.Приход) [Приход $Число] | ,SUM(Рег.Расход) [Расход $Число] | ,SUM(Рег.НачОст+Рег.Приход-Рег.Расход) [КонОст $Число] |From | ( | SELECT | Итоги.Номенклатура Номенклатура | ,null Док | ,Итоги.Количество НачОст | ,0 Приход | ,0 Расход | FROM | [РегистрИтоги.ОстаткиТМЦ] as Итоги | | WHERE | Итоги.period = :ПредПериод | UNION ALL | SELECT | Движения.Номенклатура | ,null | ,Движения.Количество * (1 - Движения.debkred * 2) | ,0 | ,0 | FROM | [Регистр.ОстаткиТМЦ] AS Движения | -- это расскоментить, если нет галки | --INNER Join [Журнал] Жур ON Жур.iddoc = Движения.iddoc and Жур.date BETWEEN :НачПериод And :КонПериод | WHERE --это если есть галка быстрая обработка движений | Движения.date BETWEEN :НачПериод And :КонПериод | UNION ALL | SELECT | Движения2.Номенклатура | ,Движения2.iddocDef||Движения2.iddoc | ,0 | ,Движения2.Количество*(1-Движения2.Debkred) | ,Движения2.Количество*Движения2.Debkred | FROM | [Регистр.ОстаткиТМЦ] Движения2 | --INNER Join [Журнал] Жур2 ON Жур2.iddoc = Движения2.iddoc and Жур2.date BETWEEN :Дата1 And :Дата2 | | WHERE --это если есть галка быстрая обработка движений | Движения2.date BETWEEN :Дата1 And :Дата2 |) Рег | |Group by Рег.Номенклатура,Рег.Док |"; Попытка база = СоздатьОбъект("SQLiteBase"); Исключение ЗагрузитьВнешнююКомпоненту("1sqlite.dll"); база = СоздатьОбъект("SQLiteBase"); КонецПопытки; // Откроем пустую базу данных в памяти база.Открыть(":memory:"); запрос = база.НовыйЗапрос(); мд = СоздатьОбъект("MetaDataWork"); НачПериод = мд.ПолучитьНачПериода(НачДата);//начало периода ПредПериод = мд.ПолучитьНачПериода(НачПериод-1);//предыдущее начало периода останков Запрос.Подставлять("ПредПериод",ПредПериод); Запрос.Подставлять("НачПериод",НачПериод); Запрос.Подставлять("КонПериод",НачДата-1);//для вычисления НачОст Запрос.Подставлять("Дата1",НачДата); Запрос.Подставлять("Дата2",КонДата); ТЗ = запрос.ВыполнитьЗапрос(ТекстЗапроса); ТЗ.ВыбратьСтроку(); КонецПроцедуры // Сформировать |
|||
14
Ёпрст
26.06.14
✎
15:14
|
Это останки и обороты.. нужны останки - переделаешь сам
|
|||
15
Pro100
26.06.14
✎
15:15
|
уууухххх,
щас буду смотреть, спасиб! |
|||
16
КонецЦикла
26.06.14
✎
15:33
|
(14) Давно хотел спросить...
Почему ты всегда пишешь "останки", а не "остатки"? |
|||
17
Ёпрст
26.06.14
✎
15:38
|
(16) привычка, это как пофигуратор
|
|||
18
Ёпрст
26.06.14
✎
15:39
|
Останки - еще году в 2000.. так выражалась сотрудница у нас на работе
|
|||
19
Ёпрст
26.06.14
✎
15:39
|
вот прилипло
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |