Имя: Пароль:
1C
1С v8
Остатки не по виртуальной таблице
,
0 TeMochkiN
 
31.08.16
10:54
Здравствуйте!
Подскажите, пожалуйста, можно ли построить запрос таким образом, чтобы получить остатки не из виртуальной таблицы ИмяРегистра.Остатки, а из физической таблицы? Просто в регистре некоторые поля сделаны в виде реквизитов, а не измерений, в связи с чем они не попадают в виртуальные таблицы, а мне хотелось бы по ним остатки получить.
1 Господин ПЖ
 
31.08.16
10:55
разрешаю
2 TeMochkiN
 
31.08.16
10:56
(1) спасибо конечно :) но я хотел узнать каким образом это делается)
3 Альбатрос
 
31.08.16
10:56
(0) + и - тебе в помощь
4 Горогуля
 
31.08.16
10:56
(2) запросом
5 GROOVY
 
31.08.16
10:58
Можно. Бог в помощь.

Но если так реализовали регистр, то нафига он вообще нужен? Переделайте на нормальную структуру.
6 b_ru
 
31.08.16
10:59
ВЫБРАТЬ
  МойРегистр.МойРеквизит,
  СУММА(ВЫБОР Когда МойРегистр.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА МойРегистр.Сумма ИНАЧЕ -МойРегистр.Сумма КОНЕЦ) КАК Остаток
ИЗ
  РегистрНакопления.МойРегистр КАК МойРегистр
СГРУППИРОВАТЬ ПО
МойРегистр.МойРеквизит
7 TeMochkiN
 
31.08.16
11:00
(5) ну это типовой регистр Взаиморасчеты с работниками организаций
(3) так а как?
у меня сейчас поле остатка рассчитывается так:

ВЫБОР
    КОГДА ВзаиморасчетыСРаботникамиОрганизаций.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
        ТОГДА ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов
    КОГДА ВзаиморасчетыСРаботникамиОрганизаций.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
        ТОГДА -ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов
    ИНАЧЕ 0
КОНЕЦ

но это не то что надо
8 Неверный Параметр И
 
31.08.16
11:03
(7) А что надо?
9 impulse9
 
31.08.16
11:05
(7) остатки каждый раз считаешь с начала учета? молодец, отличное решение
10 TeMochkiN
 
31.08.16
11:11
(8) ну вот что у меня таким образом получается:
http://s017.radikal.ru/i438/1608/cc/bdc7e6285e51.png
но это же не остаток, а как оборот получается
(9) мне это для выявления проблемы по конкретному физлицу необходимо
11 b_ru
 
31.08.16
11:13
(10) Оборот с начала времен равен остатку
12 TeMochkiN
 
31.08.16
11:16
(11) если смотреть общий итог, то остаток правильный, но я хотел чтобы остатки были и по группировкам
13 Zhuravlik
 
31.08.16
11:19
(0) А для чего? Если для отчета на СКД, то там можно настроить измерения для корректного расчета остатка.
14 Zhuravlik
 
31.08.16
11:19
*можно настроить измерения  = можно настроить РОЛИ измерений
15 TeMochkiN
 
31.08.16
11:22
(11) пробовал ещё вычисляемое поле использовать, по группировкам правильно показывает, а общий итог нет:
http://s013.radikal.ru/i324/1608/13/2f77484e5561.png
(13) там ведь нужны поля начальный и конечный остаток, разве нет?
16 Неверный Параметр И
 
31.08.16
11:22
(12) Какой-то негодяй мешает тебе воплотить желание в жизнь или ты не умеешь писать запросы?
17 TeMochkiN
 
31.08.16
11:23
+(15)ВычислитьВыражение("Сумма(Приход - Расход)", , , "Первая", "Текущая")
(16) плохо умею, раз тут спрашиваю :(
18 Новиков
 
31.08.16
11:24
А какие группировки сейчас на скринах у тебя? Регистратор?
19 TeMochkiN
 
31.08.16
11:25
(18) период взаиморасчетов и регистратор
20 TeMochkiN
 
31.08.16
11:28
+(15) не заметил, что по группировке "период взаиморасчетов" тоже не так как нужно вычисляет
21 GROOVY
 
31.08.16
11:29
(7)  Ну так сделай не типовой.
22 Новиков
 
31.08.16
11:33
23 Неверный Параметр И
 
31.08.16
11:34
(17) Ты сначала определить где это считать будешь - внутри в запросе, отдавая СКД полуфабрикат, или на уровне СКД
В запросе - СГРУППИРОВАТЬ ПО нужным колонкам. В СКД - итоги по группировками, но это отсюда не видно.
24 TeMochkiN
 
31.08.16
12:04
(22) (23) спасибо!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший