|
v7: Прямой запрос. | ☑ | ||
---|---|---|---|---|
0
Eeakie
17.12.13
✎
13:18
|
Добрый день.
Встала задача переписать отчет. *** |Функция ОстаткиРег1 = КонОст(); |Функция ОстаткиРег2 = КонОст(); |Функция ОстаткиРег3 = КонОст(); |Функция ОстаткиРег4 = КонОст(); *** Как прямым запросом хватануть остатки сразу по нескольким регистрам? Поможите, люди добрые. |
|||
1
Eeakie
17.12.13
✎
13:23
|
Ну, или как "довыгружать" данные в уже существующую ТЗ?
|
|||
2
dk
17.12.13
✎
13:32
|
union
или join скачай конструктор запросов если со скулем не особо дружишь |
|||
3
Eeakie
17.12.13
✎
13:34
|
(2) Какой посоветуете?
|
|||
4
dk
17.12.13
✎
13:36
|
меня этот конструктор http://infostart.ru/public/14933/ устраивает
|
|||
5
КонецЦикла
17.12.13
✎
13:41
|
(4) +1
Масса времени экономится |
|||
6
Eeakie
17.12.13
✎
13:45
|
(4) Им и пользуюсь. Похоже, не получается из-за моих непоняток с вкладкой "Связи" :\
|
|||
7
Eeakie
17.12.13
✎
13:51
|
Можно пример запроса?
2 регистра. Измерения одинаковые. Ресурсы тоже. Надо вытащить измерение "Товар" и ресурс "Количество" из обоих регистров. Чтоб в тз выглядело как: Товар - Кол1 - Кол2. Как это будет выглядеть? |
|||
8
КонецЦикла
17.12.13
✎
13:52
|
Сначала переведи "хватануть" в язык доступный для БД
Навреное надо union all? Тогда сделай несколько кусочков и далее соединяй |
|||
9
КонецЦикла
17.12.13
✎
13:53
|
(7) Там есть пример. Запрос динамически собирается
http://1c911.by/stati_1s/statya-kak-ispolzovat-urbd-v-otlichayushchihsya-konfiguraciyah.htm |
|||
10
КонецЦикла
17.12.13
✎
13:55
|
Только у тебя убудет примерно так
селект запрос.товар , сум(запрос.остаток1) , сум(запрос.остаток2) фром ( селект товар 0 остаток1 рег.ост остаток2 юнион алл селект товар рег1.ост остаток1 0 остаток2 ) аз запрос |
|||
11
Eeakie
17.12.13
✎
13:57
|
(8) Сейчас попробую. "Хватануть" - взять остатки на текущий момент.
|
|||
12
dk
17.12.13
✎
14:01
|
|
|||
13
Ёпрст
17.12.13
✎
14:18
|
(12) ща погоди, выяснится к 100-му посту, что база дбф еще..
:) |
|||
14
Eeakie
17.12.13
✎
14:26
|
(13) Несерьезно :)
|
|||
15
Ёпрст
17.12.13
✎
14:28
|
(14) Че не серьёзно ?
ужо 15 постов, а о формате хранения даный - ни слова. Если че, разный синтаксис запросов будет, + в скуле можно виртуальными табличками баловаться, в дбф - писать всё ручонками. |
|||
16
Eeakie
17.12.13
✎
14:31
|
(15) Через ВТ и пытаюсь сделать.
|
|||
17
КонецЦикла
17.12.13
✎
14:31
|
(15) Вместо ручонок можно использовать класс ПоставщикДанных, например
|
|||
18
Ёпрст
17.12.13
✎
14:33
|
(17) для дбф, лучше ручками и через фокс.. быстрее, чем через класси скульлайт (это ежели скорость важнее)
|
|||
19
Eeakie
17.12.13
✎
14:45
|
Не взлетает. "Недопустимое имя столбца Товар".
|SELECT Выборка.Товар | , sum(Выборка.Кол1) as НадоЗаказать | , sum(Выборка.Кол2) as ВРаботе |FROM( | SELECT ЗаявкиПоставщику.Товар [Товар $Справочник.Товары] | , ЗаявкиПоставщику.РезервТовараОстаток Кол1 | , 0 Кол2 | FROM $РегистрОстатки.ЗаявкиПоставщику(,,(Фирма = :Фирма),Товар,) AS ЗаявкиПоставщику | | UNION ALL | | SELECT ПодготовкаЗаявок.Товар [Товар $Справочник.Товары] | , 0 Кол1 | , ПодготовкаЗаявок.КоличествоОстаток Кол2 | FROM $РегистрОстатки.ПодготовкаЗаявок(,,(Фирма = :Фирма),Товар,) AS ПодготовкаЗаявок) |as Выборка"; |
|||
20
Ёпрст
17.12.13
✎
14:46
|
(19) выкини типизацию из Юниона
|
|||
21
Ёпрст
17.12.13
✎
14:48
|
+ в скобки надо набор измерений, если не изменяет память
|
|||
22
Eeakie
17.12.13
✎
14:48
|
(20) Взлетело. Надо было еще группировку воткнуть.
Всем спасибо. |
|||
23
Ёпрст
17.12.13
✎
14:50
|
короче,
|SELECT Выборка.Товар [товарец $Справочник.Вася] | , sum(Выборка.Кол1) as НадоЗаказать | , sum(Выборка.Кол2) as ВРаботе |FROM( | SELECT ЗаявкиПоставщику.Товар Товар | , ЗаявкиПоставщику.РезервТовараОстаток Кол1 | , 0 Кол2 | FROM $РегистрОстатки.ЗаявкиПоставщику(,,Фирма = :Фирма,(Товар),) AS ЗаявкиПоставщику | | UNION ALL | | SELECT ПодготовкаЗаявок.Товар | , 0 | , ПодготовкаЗаявок.КоличествоОстаток | FROM $РегистрОстатки.ПодготовкаЗаявок(,,Фирма = :Фирма,(Товар),) AS ПодготовкаЗаявок) |as Выборка |group by Выборка.Товар "; |
|||
24
Eeakie
17.12.13
✎
14:55
|
Жесть, 4 регистра с пачкой фильтров обрабатывает за секунду...
|
|||
25
КонецЦикла
17.12.13
✎
14:58
|
(24) Покажи бухгалтеру, насыплет конфет
|
|||
26
Eeakie
17.12.13
✎
15:39
|
Опять тупняк напал. Как можно прикрутить единицу измерения к товару?
|SELECT Товары.ID [Товар $Справочник.Товары] | , Товары.БазоваяЕдиница [ЕИ $Перечисление.ЕдиницыИзмерения] | , sum(Выборка.Кол1) as Заказано | , sum(Выборка.Кол2) as ВРаботе | , sum(Выборка.Кол3) as ОкЗаказ | , sum(Выборка.Кол4) as Ожидание *** *** *** )as Выборка |INNER JOIN | $Справочник.Товары AS Товары ON Товары.ID = Выборка.Товар |GROUP BY Выборка.Товар"; |
|||
27
Попытка1С
17.12.13
✎
15:42
|
левым подрубить справочник товаров и вывести из него единицу
|
|||
28
Попытка1С
17.12.13
✎
15:43
|
SELECT СпрТовар.БазоваяЕдиница
.... LEFT JOIN $Справочник.Товары AS Товары ON Товары.ID = Выборка.Товар AS СпрТовар |
|||
29
Попытка1С
17.12.13
✎
15:44
|
тьфу вот это не надо AS СпрТовар
просто будет select Товары.БазоваяЕдиница |
|||
30
Ёпрст
17.12.13
✎
15:51
|
Select
$Товарчик.БазоваяЕдиница [...], Выборка.Товар [] ... from () as Выборка left join $Справочник.Товары AS Товарчик ON Товарчик.ID = Выборка.Товар |
|||
31
Eeakie
17.12.13
✎
15:56
|
Заработало. Спасибо еще раз.
|
|||
32
Eeakie
17.12.13
✎
16:52
|
Текст = "
|Фирма = Регистр.Развоз.Фирма; |Товар = Регистр.Развоз.Товар.Товар; |Собрано = Регистр.Развоз.ДокументДвижения.Собрано; |Количество = Регистр.Развоз.Количество; |Функция Остаток = КонОст(Количество); |Условие(Фирма = ФирмаСоСкладскимДвижением); |Условие(Собрано = 0);"; Как прямым можно получить "Собрано"? Делать ВТОстаткиОбороты и цеплять документ? |
|||
33
Eeakie
17.12.13
✎
16:53
|
Ой, всё, разобрался.
|
|||
34
Eeakie
17.12.13
✎
17:26
|
SELECT ПЛ.Товар
| , 0 Кол1 | , 0 Кол2 | , 0 Кол3 | , 0 Кол4 | , 0 Кол5 | , 0 Кол6 | , РазвозНеСобрано.КоличествоОстаток | , 0 Кол8 | FROM $РегистрОстатки.Развоз(:ДатаРасчета~,,(Фирма = :Фирма)" + УсловиеТовары + ",(Товар,ДокументДвижения),Количество) AS РазвозНеСобрано | INNER JOIN $Документ.НакладнаяВнПерем AS НВП ON НВП.IDDoc = РазвозНеСобрано.ДокументДвижения AND $НВП.Собрано = 0 | LEFT JOIN $Справочник.Прайс_лист AS ПЛ ON ПЛ.ID = РазвозНеСобрано.Товар Недопустимое имя столбца "Товар". Есть 2 справочника. "Товары" и "ПрайсЛист". В прайсе есть реквизит "Товар" - нужен именно он. |
|||
35
Eeakie
17.12.13
✎
17:30
|
Блин, вечно неровно код постится.
|
|||
36
Eeakie
17.12.13
✎
17:40
|
Товарищи, где ошибка?
Текст = " |SELECT ПЛ.Товар | , РазвозНеСобрано.КоличествоОстаток |FROM | $РегистрОстатки.Развоз(:ДатаРасчета~,,(Фирма = :Фирма),(Товар,ДокументДвижения),Количество) AS РазвозНеСобрано |INNER JOIN | $Документ.НакладнаяВнПерем AS НВП ON НВП.IDDoc = РазвозНеСобрано.ДокументДвижения AND $НВП.Собрано = 0 |LEFT JOIN | $Справочник.Прайс_лист AS ПЛ ON ПЛ.ID = РазвозНеСобрано.Товар"; |
|||
37
sapphire
17.12.13
✎
17:45
|
(36)
Явно LEFT JOIN | $Справочник.Прайс_лист AS ПЛ ON ПЛ.Товар = РазвозНеСобрано.Товар |
|||
38
sapphire
17.12.13
✎
17:46
|
т.к. ПЛ.ID - это ссылка на элемент справочника "Прайс_лист", а не товар.
|
|||
39
Eeakie
17.12.13
✎
17:47
|
"Товар" в регистре "Развоз" имеет тип "Справочник.Прайс_Лист".
|
|||
40
Eeakie
17.12.13
✎
17:48
|
Меняю в селекте "ПЛ.Товар" на "РазвозНеСобрано.Товар [Товар $Справочник.Прайс_лист]" и всё работает.
Такое ощущение, что в прайсе нет реквизита "Товар". Но он есть... |
|||
41
Eeakie
17.12.13
✎
17:51
|
(39) к (38)
|
|||
42
sapphire
17.12.13
✎
17:51
|
(40) Хе.. А он часом не периодический? :)
|
|||
43
Eeakie
17.12.13
✎
17:54
|
Блин. Надо были $ПЛ.Товар
|
|||
44
Ёпрст
17.12.13
✎
17:54
|
да ё..
|SELECT $ПЛ.Товар |
|||
45
Eeakie
17.12.13
✎
17:55
|
(44) Надо было...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |