Имя: Пароль:
1C
1С v8
Туплю с запросом
0 Boris_Britva
 
30.09.14
15:21
Народ, Доброго Вечера, подскажите, пожалуйста, как сделать с помощью вложенного запроса так, чтобы сам запрос работал следующим образом, на каждую запись регистра сведений он брал обороты по регистру накоплений ограниченному датой начала отчета и датой записи. Заранее благодарю, я уже голову сломал, недоумеваю как ограничить обороты по регистру.
Данные статьи не помогли.
http://kb.mista.ru/article.php?id=579&;
http://kb.mista.ru/article.php?id=625&;
1 Vladal
 
30.09.14
15:23
То же самое и внятно: что за регистр сведений, какие обороты, какая структура регистров?
2 Smallrat
 
30.09.14
15:24
можно сделать с помощью СКД
3 Boris_Britva
 
30.09.14
15:30
(2)пни в нужном направлении, почитаю
4 rsv
 
30.09.14
15:30
Имха  с наскока запросом никак ... т.к. 1С запрос не держит функцию. Возиожно в СКД таже функция .
5 Boris_Britva
 
30.09.14
15:33
(1) Мне нужно использовать Остаток по счету как начальный остаток а обороты по платежному календарю как обороты)) Хочу на каждую запись остатков по планируемым платежам видеть планируемое состояние счета с учетом предыдущих по периоду данных
6 Smallrat
 
30.09.14
15:33
в СКД можно передать результат одного запроса как параметр другого:
http://1c-wiki.ru/wiki/Ежедневные_остатки
"В СКД такую задачу можно решить связью наборов данных:
Первый набор данных (запрос) у нас будет формировать список дней, на которые нам нужно получить остатки. Эти дни будут передаваться в параметры виртуальных таблиц второго набора данных для получения остатков на дату и среза последних. Запрос, формирующий таблицу дат, здесь не привожу, при желании можете скачать настройку отчета и посмотреть."
7 ОператорПК
 
30.09.14
15:37
(0) типа того:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    КурсыВалют.Период
ПОМЕСТИТЬ Вт1
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
    КурсыВалют.Период >= &ДатаНачала
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Вт1.Период,
    Продажи.Количество
ИЗ
    Вт1 КАК Вт1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
        ПО Вт1.Период >= Продажи.Период
            И (Продажи.Период >= &ДатаНачала)
8 Boris_Britva
 
30.09.14
15:44
(6) Не совсем то, как я параметры даты записи буду передавать в эту тааблицу?
9 unregistered
 
30.09.14
15:45
Например, так.

ВЫБРАТЬ
   КурсыВалют.Период,
   ВложенныйЗапрос.КоличествоОборот
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют
   ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
     СУММА(ВыпускПродукцииУслугОбороты.КоличествоОборот) КАК КоличествоОборот,
     КурсыВалют.Период КАК Период
   ИЗ
     РегистрСведений.КурсыВалют КАК КурсыВалют
   ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыпускПродукцииУслуг.Обороты(&ДатаНачалаОтчета, , Запись, ) КАК ВыпускПродукцииУслугОбороты
   ПО КурсыВалют.Период <= ВыпускПродукцииУслугОбороты.Период
   СГРУППИРОВАТЬ ПО
      КурсыВалют.Период) КАК ВложенныйЗапрос
   ПО КурсыВалют.Период = ВложенныйЗапрос.Период
ГДЕ
   КурсыВалют.Период МЕЖДУ &ДатаНачалаОтчета И &ДатаОкончанияОтчета
10 Boris_Britva
 
30.09.14
15:47
(7)(9) Срастить нужно Остаток(общий) по одному региструНакопления с оборотами другого регистраНакопления(по записи),
11 ОператорПК
 
30.09.14
15:49
(10)а в (0) совсем другая задача.
12 unregistered
 
30.09.14
15:50
(10) И??????
Какая разница?

Замени в запросе из (9) регистр сведений КурсыВалют на таблицу оборотов регистра накопления (по записи).
13 unregistered
 
30.09.14
15:52
+ к (12) суть то не меняется.
Во вложенном запросе получить данные, сгруппированные по периодам (записям/дням/регистраторам или чему там надо), и связать с нужной таблицей по полю период.
14 Boris_Britva
 
30.09.14
15:57
БЛИН, народ, сори, туплю уже, по ходу уже сспать пора, ладно, завтра на свежую голову буду пробовать, спасибо всем
(12) Точно, спасибо большое, действительно спать нужно. ща только попробую.
15 Jokero
 
30.09.14
16:07
У меня тоже вопрос по запросам. (не хочу ради этого отдельно тему создавать). Нужно получить документ и все табличные части этого документа. Чет я делаю объединением запросов из табл. частей документа, получается длинно и запутанно, мож как подругому, через соединение можно сделать?
16 ОператорПК
 
30.09.14
16:16
(15)
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.Количество
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    РеализацияТоваровУслугУслуги.Ссылка,
    РеализацияТоваровУслугУслуги.Номенклатура,
    РеализацияТоваровУслугУслуги.Количество
ИЗ
    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
17 Boris_Britva
 
30.09.14
17:48
Народ, а ещё вопрос, можно как-нибудь начальные остатки увеличить на определенное число в запросе?
18 Jokero
 
01.10.14
07:32
(16)Спасиб, я так и делаю через объединение, только это не удобно, т.к. вытаскиваю данные из разных колонок и поэтому приходиться делать это объединение во вложенном запросе, а  потом его группировкой сворачивать по ссылке.  Думал может как-то можно в одно действие все получать через соединение. (17) В модуле выбрать можно сложением увеличивать
Выбрать
  поле1 + <определенное число>
19 Banned
 
01.10.14
08:07
(15) выбрать * из док.МойДок где ссылка = &док
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой