8.2 Остатки по периодам в отчете. Диаграмма по верхнему уровню иерархи

Тема в разделе "1C и всё что с ней связано", создана пользователем unknown181538, 28 сен 2010.

  1. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    1. Есть регистр накопления. Хочу создать отчет с помощью СКД, чтобы получать остатки по периодам по выбору пользователя. Т.е., чтобы можно было вывести остатки, на конец каждого месяца, каждого дня и т.д.
    Однако периодичность итогов задается в параметрах виртуальной таблицы, и в настройки не выводится.
    Можно ли как-то обойти эту проблему?
    2. Оборотный регистр накопления. В качестве измерения справочник "Статьи затрат" с иерархией элементов. Хочу вывести диаграмму так, чтобы в нее попали только итоги по верхнему уровню иерархии.
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    По-первому пункту - сумел отредактировать текст запроса в 8.1
    СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    СКД.НаборыДанных[0].Запрос = СтрЗаменить(СКД.НаборыДанных[0].Запрос,"Банки","Контрагенты");
    СхемаКомпоновкиДанных = СКД;
    Теперь не понимаю, как это сделать в упр. формах - получитьМакет не работает.
     
  3. Гость

    1. Используй метод "НачалоПериода()". С помощью него получаешь итоги по всем возможным периодам (День, неделя, месяц, квартал, год), а пользователь уже будет выбирать один из или несколько.

    2. Насколько я знаю, тут только конструкция типа:
    Код ( (Unknown Language)):
    ВЫБОР
    КОГДА СтатьяЗатрат.Родитель = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
    ТОГДА СтатьяЗатрат
    ИНАЧЕ ВЫБОР
    КОГДА СтатьяЗатрат.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
    ТОГДА СтатьяЗатрат.Родитель
    ИНАЧЕ СтатьяЗатрат.Родитель.Родитель
    КОНЕЦ
    КОНЕЦ
    с необходимой глубиной. По крайней мере в типовой 1С более универсальной конструкции не нашел.
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Точно, до этого не додумался. Зато научился редактировать текст схемы компоновки программно :)
    2. Решение. Хоть и не изящное, и с глубиной ненадежность.
     
  5. Гость

    unknown181538
    Такое решение используется 1С-никами, когда они ищут счет учета для номенклатуры. Он же назначается чаще группе, а не конкретной позиции. Запрос там получает всех родителей позиции номенклатуры. Используется именно такой подход. Мне он тоже не нравиться если честно, но другого варианта не известно...
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    В моем случае должна подойти функция глобального модуля в вычисляемом поле.
     
  7. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Однако же...
    Написал:
    Код ( (Unknown Language)):
    &НаСервере
    Процедура ПроцедураНаСервере()
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Я на сервере";
    Сообщение.Сообщить();
    МойОбъект = РеквизитФормыВЗначение("Отчет");
    СКД = МойОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    СКД.НаборыДанных[0].Запрос = СтрЗаменить(СКД.НаборыДанных[0].Запрос,"Запись",Периодичность);
    МойОбъект.СхемаКомпоновкиДанных = СКД;
    ЗначениеВРеквизитФормы(МойОбъект, "Отчет");
    КонецПроцедуры // ПроцедураНаСервере()
    Текст запроса в МойОбъект.СхемаКомпоновкиДанных получается такой, какой мне надо.
    Выражение "РеквизитФормыВЗначение("Отчет").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных").НаборыДанных[0].Запрос" в отладчике возвращает то, что было изначально.
    Т.е. ЗначениеВРеквизитФормы не отрабатывает.
     
Загрузка...

Поделиться этой страницей