Имя: Пароль:
1C
1C 7.7
v7: прямой запрос, смешанные остатки по регистру
,
0 Eeakie
 
24.08.16
15:17
Добрый день, уважаемые. В РБ была деноминация и в регистр до 01.07.16 писались суммы типа 1.000.000, а с 01.07.16 стали писаться 100. Короче, убрали 4 нолика. Так вот, надо получить сводный остаток на сегодняшнюю дату например. Есть какой-то сверхпростой вариант? А то я делаю комбинированно, типа:

Текст = "
|select
|    Выборка.Клиент as [Клиент $Справочник.Клиенты],
|    sum(Выборка.ОстатокНачало) as НачальныйОстаток,
|    sum(Выборка.ОстатокКонец) as КонечныйОстаток
|from(
|    select
|        ВзаиморасчетыНачало.Клиент,
|        ВзаиморасчетыНачало.СуммаБазоваяОстаток / 10000 as ОстатокНачало,
|        0 as ОстатокКонец
|    from
|        $РегистрОстатки.Взаиморасчеты(:ДатаДеноминации,, " + УсловияЗапросаКРегистру + ") as ВзаиморасчетыНачало
|
|    union all
|
|    select
|        ВзаиморасчетыОборотНачало.Клиент,
|        0 as ОстатокНачало,
|        ВзаиморасчетыОборотНачало.СуммаБазоваяПриход - ВзаиморасчетыОборотНачало.СуммаБазоваяРасход as ОстатокКонец
|    from
|        $РегистрОстаткиОбороты.Взаиморасчеты(:ДатаДеноминации, :НачДата~,,,, " + УсловияЗапросаКРегистру + ") as ВзаиморасчетыОборотНачало
|    ) as Выборка
|group by
|    Выборка.Клиент";

Где НачДата это дата сводного остатка.
1 Горогуля
 
24.08.16
15:23
я чё-т не догнал. взять и поделить на четыре нуля - это не вариант?
2 Eeakie
 
24.08.16
15:24
(1) На 10000 надо делить только остаток до 01.07.16, а начиная с этой даты в регистр писались уже деленные суммы.
3 Горогуля
 
24.08.16
15:25
он оно чё.. ну я хз. люди вроде валюту заводили
4 Eeakie
 
24.08.16
15:25
Мягко говоря:
28.06 +650.000
29.06 -125.000
30.06 +250.000
01.07 -13.5
02.07 +24.25
...

И т.д.
5 Eeakie
 
24.08.16
15:25
(3) Я не был готов в здоровую самописку подкидывать валюту в каждый документ :)
6 Eeakie
 
24.08.16
15:26
Кстати, забыл упомянуть, что запрос в топе не даёт сводный остаток.
7 Горогуля
 
24.08.16
15:27
(5) и Александр Григорьич как-то не сообразил, что конфигурации бывают разные
8 Eeakie
 
24.08.16
15:27
(7) Об этом на инфостарте есть несколько замечательных веток :)
9 Ёпрст
 
24.08.16
15:43
(2) какое бредовое решение
10 Ёпрст
 
24.08.16
15:44
ну и через год, очень зачетно получать останки таким способом
11 Eeakie
 
24.08.16
15:56
(10) Честно говоря, ничего умнее на переходный момент в голову не пришло. Лучше вариант подскажите чтоб на текущий момент остаток получить в такой ситуации.
12 Ёпрст
 
24.08.16
15:57
(11) свернуть базу на дату деноминации. И получать как обычно.
+пересчитать остатки при свёртке как /1000
13 Eeakie
 
24.08.16
16:05
(12) Поплывёт история и куча статистики. Поэтому и не сворачивали.
14 Eeakie
 
24.08.16
16:44
Сделал. Хрен пойми в чём была проблема. Тупо переписал код с нуля.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс