Имя: Пароль:
1C
1С v8
Как в схеме компоновки задать периодичность регистра параметром?
,
0 toypaul
 
гуру
20.09.13
16:46
Вот так не получается

ВЫБРАТЬ
    ВЫБОР
        КОГДА &Периодичность = "Неделя"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодНеделя
        КОГДА &Периодичность = "Месяц"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодМесяц
        ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.ПериодДень
    КОНЕЦ КАК Период,
    ДенежныеСредстваОстаткиИОбороты.ФактКонечныйОстаток КАК Деньги
ИЗ
    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , Авто, Движения, ) КАК ДенежныеСредстваОстаткиИОбороты

Остаток получается всреавно на каждый день, а период подставляется из условия. В результате суммы получаются неверные. Или сделать через функцию от ПериодДень ...
1 toypaul
 
гуру
20.09.13
16:47
не ... через функцию та же фигня выйдет
2 Defender aka LINN
 
20.09.13
16:49
(0) Действительно, что за фигня - выбираешь период день, а СКД, ссссука, день в периодичность и сует!
3 toypaul
 
гуру
20.09.13
16:52
(2) чо? я понял эту ошибку. как сделать правильно-то? Авто и выбор группировке в настройках мне не подходить. Мне нужно именно параметром, потому что первый запрос у меня с выбранной периодичностью сначала пишет во врем таблицу.

вот так

ВЫБРАТЬ
    ВЫБОР
        КОГДА &Периодичность = "Неделя"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодНеделя
        КОГДА &Периодичность = "Месяц"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодМесяц
        ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.ПериодДень
    КОНЕЦ КАК Период,
    ДенежныеСредстваОстаткиИОбороты.ФактКонечныйОстаток КАК Деньги
ПОМЕСТИТЬ Факт
ИЗ
    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , Авто, Движения, ) КАК ДенежныеСредстваОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Факт.Период КАК Период,
    Факт.Деньги КАК Деньги,
    ЗНАЧЕНИЕ(Перечисление.ВидыГрафика.Факт) КАК Серия
ИЗ
    Факт КАК Факт

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

ВЫБРАТЬ
    ВЫБОР
        КОГДА &Периодичность = "Неделя"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодНеделя
        КОГДА &Периодичность = "Месяц"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодМесяц
        ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.ПериодДень
    КОНЕЦ,
    ДенежныеСредстваОстаткиИОбороты.ПланКонечныйОстаток,
    ЗНАЧЕНИЕ(Перечисление.ВидыГрафика.План)
ИЗ
    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, , Авто, , ) КАК ДенежныеСредстваОстаткиИОбороты

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

ВЫБРАТЬ
    ВЫБОР
        КОГДА &Периодичность = "Неделя"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодНеделя
        КОГДА &Периодичность = "Месяц"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодМесяц
        ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.ПериодДень
    КОНЕЦ,
    ДенежныеСредстваОстаткиИОбороты.ФактКонечныйОстаток,
    ЗНАЧЕНИЕ(Перечисление.ВидыГрафика.ПланФакт)
ИЗ
    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(, &КонецФакт, Авто, Движения, ) КАК ДенежныеСредстваОстаткиИОбороты

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

ВЫБРАТЬ
    ВЫБОР
        КОГДА &Периодичность = "Неделя"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодНеделя
        КОГДА &Периодичность = "Месяц"
            ТОГДА ДенежныеСредстваОстаткиИОбороты.ПериодМесяц
        ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.ПериодДень
    КОНЕЦ,
    ДенежныеСредстваОстаткиИОбороты.ПланКонечныйОстаток,
    ЗНАЧЕНИЕ(Перечисление.ВидыГрафика.ПланФакт)
ИЗ
    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(&НачалоПериода, , Авто, , ) КАК ДенежныеСредстваОстаткиИОбороты
4 Vovan1975
 
20.09.13
16:52
может выбирать все периодичности во вложенном запросе а затем через выбор в итоговый запрос подставляй нужные поля итогов?
5 Defender aka LINN
 
20.09.13
16:55
(3) Ты вообще в курсе, как СКД работает, не?

ВЫБРАТЬ
    ...
    ПериодМесяц,
    ПериодНеделя,
    ПериодДень

И не делай никому моск
6 toypaul
 
гуру
20.09.13
17:00
(5) Зачем мне все периоды, когда мне нужен один конкретный? я не могу в настройке выбрать ПериодМесяц или ПериодНеделя. Мне что при формировании временной таблицы тоже все периоды писать?

Запрос-то посмотри для начала.
7 toypaul
 
гуру
20.09.13
17:16
сделал через замену в тексте запроса.

кстати в 12 году эту же тему Маня поднимал уже. и неподходящие советы по типу (5) ему там тоже давали.
8 Сторно абсурда
 
20.09.13
17:18
(6) Решение:

1) в запросе параметр Периодичность

ВЫБРАТЬ
    ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход) КАК ВидДвижения,
    ДвиженияДенежныхСредствОбороты.Период КАК Период,
    ДвиженияДенежныхСредствОбороты.СуммаУпрОборот КАК Сумма
ПОМЕСТИТЬ ПриходДС
ИЗ
    РегистрНакопления.ДвиженияДенежныхСредств.Обороты(
            &НачалоПериода,
            &КонецПериода,
            Месяц {(&Периодичность)},


2) Для поля период в выражении представления написать:

ВЫБОР  
КОГДА &Периодичность = 6 ИЛИ &Периодичность = 7
   ТОГДА Формат(Период, "ДФ=dd.MM.yy")  
   КОГДА &Периодичность = 9
   ТОГДА Формат(Период, "ДФ = 'MMM yy'")
   КОГДА &Периодичность = 10
   ТОГДА
      ВЫБОР
         КОГДА Квартал(Период) = 1
         ТОГДА Формат(Период, "ДФ = '""1 кв."" yy'")
         КОГДА Квартал(Период) = 2
         ТОГДА Формат(Период, "ДФ = '""2 кв."" yy'")
         КОГДА Квартал(Период) = 3
         ТОГДА Формат(Период, "ДФ = '""3 кв."" yy'")
         КОГДА Квартал(Период) = 4
         ТОГДА Формат(Период, "ДФ = '""4 кв."" yy'")
      КОНЕЦ
   КОГДА &Периодичность = 11
   ТОГДА
      ВЫБОР
         КОГДА Квартал(Период) < 2
         ТОГДА Формат(Период, "ДФ = '""1 полугодие"" yy'")
         ИНАЧЕ Формат(Период, "ДФ = '""2 полугодие"" yy'")
      КОНЕЦ
   КОГДА &Периодичность = 12
   ТОГДА Формат(Период, "ДФ = 'yyyy'")
КОНЕЦ

3) Для параметра периодичность задать Досупные занчения

6 По дням
7 По неделям и тд
9 Сторно абсурда
 
20.09.13
17:19
В настройках будет удобный выбор периодичности из списка
10 ИсчадиеADO
 
20.09.13
17:23
(7) дык ведь СКД анализирует настройки пользователя, и исходя из этих настроек сама формирует окончательный текст запроса. Т.ч. (5) прав
11 Сторно абсурда
 
20.09.13
17:27
(10) в запросе достаточно выбрать только одно поле периода:
"Период" , а дальше СКД исходя из параметра {(&Периодичность)} сама подставит в запрос нужную периодичность
12 toypaul
 
гуру
20.09.13
17:29
(8) вот про это Месяц {(&Периодичность)}, не знал. надо попробовать. спасибо.

(10) прежде чем писать разберись в потребностях задачи. толку от того что СКД сама формирует запрос?
13 Сторно абсурда
 
20.09.13
17:31
(12) Фишка в том, что этот параметр Периодичность задается целыми числами:

6  - По дням
7  - По неделям и тд
14 toypaul
 
гуру
20.09.13
17:35
(13) интересная фигня. в доке это написано где-то?
15 Сторно абсурда
 
20.09.13
17:35
(14) ссылки не могу дать. Такая реализация есть в отчетах в УТ 11
16 toypaul
 
гуру
20.09.13
17:36
(15) понял. спасибо еще раз
17 ИсчадиеADO
 
20.09.13
17:36
(12) чет я не понял, нафига это, чтобы не давать пользователю поля типа "ПериодДень", а только одно поле "Период"?
18 ИсчадиеADO
 
20.09.13
17:37
(12) как аргумент (3) не приводить :)