Имя: Пароль:
1C
1С v8
ресурс в зависимости от типа регистратора (СКД)
0 Вжескрыылг
 
19.05.14
12:19
есть регистр взаиморасчетов "Контрагенты". по расходу регистраторы "КорректировкаДолга" и "ПриходныйКассовыйОрдер". как сделать (и можно ли), чтобы, если корректировка долга, то расход был как ресурс "Списание", иначе ресурс "Оплата"?
1 Enders
 
19.05.14
12:20
ВЫБОР КОГДА и по типу регистратора?)
2 Wobland
 
19.05.14
12:21
в запросе. два раза
3 Cube
 
19.05.14
12:21
ВЫБОР КОГДА МояТаблица.Регистратор ССЫЛКА Документ.КорректировкаДолга Тогда
    МояТаблица.Списание
Иначе
    МояТаблица.Оплата
Конец
4 Вжескрыылг
 
19.05.14
12:22
(3) это типа помещать в ВТ?
5 Вжескрыылг
 
19.05.14
12:24
(3) ресурс регистра "Сумма". измерение, допустим, контрагент
6 Вжескрыылг
 
19.05.14
12:25
(2) 2 раза дает удвоение
7 Wobland
 
19.05.14
12:25
выбор когда одно тогда сумма иначе 0 как списание,
выбор когда другое тогда сумма иначе 0 как оплата
8 Вжескрыылг
 
19.05.14
12:27
(7) крд:
    ВЫБОР
        КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга
        ТОГДА 0
        ИНАЧЕ КонтрагентыОстаткиИОбороты.СуммаРасход
    КОНЕЦ КАК Оплата,
    ВЫБОР
        КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга
        ТОГДА КонтрагентыОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК Списание,
дает удвоение
9 Вжескрыылг
 
19.05.14
12:27
(7) при группировках выше регистратора
10 Cube
 
19.05.14
12:31
(4) Нет, имел ввиду что-то вроде (8)
11 Cube
 
19.05.14
12:32
(8) "дает удвоение"
Ты дворник что-ли? Говори техническим языком: вот таблица регистра, вот запрос, вот результат.
12 Enders
 
19.05.14
12:33
(8) Или я где-то туплю, или условия одинаковы в первом и втором ВЫБОР КОГДА?
13 Вжескрыылг
 
19.05.14
12:34
(11) удвоение, когда нет группировки по регистратору
14 Вжескрыылг
 
19.05.14
12:35
(12) где ж видишь. что одинаковы?
15 Enders
 
19.05.14
12:36
(13) Условия проверь ты там нигде "НЕ" не пропустил случаем?
16 Enders
 
19.05.14
12:36
(14) "ВЫБОР
        КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга"

"ВЫБОР
        КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга"

Вот
17 Wobland
 
19.05.14
12:37
(15) он там ниже местами поменял. чтоб больше похожее было
18 Enders
 
19.05.14
12:38
(17) а разница то? отбирается только сумма по документу корректировкаДолга и заносится одновременно и в оплату, и в расход? или я туплю?
19 Cube
 
19.05.14
12:40
(13) Ясно, дворник...
20 Wobland
 
19.05.14
12:44
(18) когда корректировка тогда 0, когда корректировка тогда сумма
21 Вжескрыылг
 
19.05.14
12:44
ну ладно, код
    ВЫБОР
        КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга
        ТОГДА КонтрагентыОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК Списание,
    ВЫБОР
        КОГДА НЕ КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга
        ТОГДА КонтрагентыОстаткиИОбороты.СуммаРасход
        ИНАЧЕ 0
    КОНЕЦ КАК Оплата,
дает то же
22 Wobland
 
19.05.14
12:45
(21) а как ты добился "того же"?
23 Вжескрыылг
 
19.05.14
12:45
(18) там еще иначе есть
24 Enders
 
19.05.14
12:46
(20) Точно. Туплю... понедельник день тяжелый) спс
25 Вжескрыылг
 
19.05.14
13:02
скрины http://yadi.sk/d/xrI2gaHrQgbX6
группировка "Регистратор" - все ОК.
26 Вжескрыылг
 
19.05.14
13:08
(22) есть конструктивные предложения?
27 Вжескрыылг
 
19.05.14
13:14
(0) надо как-то в одном ВЫБОРЕ делать. а то удваивается
28 kudlach
 
19.05.14
13:37
(8)
КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.КорректировкаДолга

Условие выбора - одинаковое.

Дествительно, притормозил ты. Так:

ВЫБОР
   КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.Документ1
   ТОГДА КонтрагентыОстаткиИОбороты.РесурсПроОплату
   ИНАЧЕ
      ВЫБОР
         КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ДругойДокумент
         ТОГДА КонтрагентыОстаткиИОбороты.ДругойРесурсПроОплату
         ИНАЧЕ 0
    КОНЕЦ
КОНЕЦ КАК Списание,

ВЫБОР
   КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.Документ1
   ТОГДА КонтрагентыОстаткиИОбороты.РесурсПроСписание
   ИНАЧЕ
      ВЫБОР
         КОГДА КонтрагентыОстаткиИОбороты.Регистратор ССЫЛКА Документ.ДругойДокумент
         ТОГДА КонтрагентыОстаткиИОбороты.ДругойРесурсПроСписание
         ИНАЧЕ 0
    КОНЕЦ
КОНЕЦ КАК Списание,
ИЗ
РегистрОстаткиОбороты.НужныйРегистр(&ДанаНач,&ДатаКон,,Регистратор,&ЕслиНужноТогдаУсловияОбьораПоРегистру)
29 kudlach
 
19.05.14
13:39
(28)
Упс, в первой группе должно стоять
КОНЕЦ КАК Оплата,
30 kudlach
 
19.05.14
13:40
Еще может понадобиться суммирование )))
31 Вжескрыылг
 
19.05.14
13:54
(3) спасибо, но меня, как всегда, выручили пользовательские поля.
в СКД
КонтрагентыОстаткиИОбороты.СуммаРасход КАК Расход,
в пользовательском поле "Списание"
Выбор
Когда Выразить(Документ, "Документ.КорректировкаДолга") Есть Не Null Тогда Расход Иначе 0
Конец
в поле "Оплата"
Выбор
Когда Выразить(Документ, "Документ.КорректировкаДолга") Есть Null Тогда Расход Иначе 0
Конец

тут-то все и взлетело
32 Вжескрыылг
 
19.05.14
13:55
(31) Документ - это аллиас Регистратора
33 Вжескрыылг
 
19.05.14
14:03
(29) или даже в "Списано"
Выбор
    Когда Выразить(Документ, "Документ.КорректировкаДолга") Есть Null
        Тогда 0
    Иначе Расход
Конец

А в запросе 2 раза выбирать по одинаковому условию не айс.
34 Вжескрыылг
 
19.05.14
14:31
(30) суммировать, точно, надо, а то в вышестоящих группировках сумма попадает не в ту колонку:
Сумма(Выбор Когда Выразить(Документ, "Документ.КорректировкаДолга") Есть Null Тогда Расход Иначе 0
Конец)

Да, СКД - бездонная бочка с дырками под дождем