8.х СКД текущая дата в параметрах

Тема в разделе "Система компоновки данных (СКД)", создана пользователем TODD22, 10 фев 2015.

  1. TopicStarter Overlay
    TODD22
    Online

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Здравствуйте.

    Вот дошли руки до изучения СКД :)
    Собственно вопрос. Сделал простой отчёт который выводит данные из оборотного РН.
    Хочу сделать так что бы при открытии дата отчёта ставилась начальная на начало дня. Конечная на конец дня и нужно наверное к ней прибавить движения в последнюю секунду дня?
    Как это сделать? Может кто нибудь видел статью на эту тему? А то вопрос то простой... но СКД я давно не открывал. Уже ничего не помню.... :(
    --- Объединение сообщений, 10 фев 2015 ---
    И ещё вопрос как передать параметры из СКД в виртуальную таблицу в запросе?
    Хочу ограничить таблицу оборотов интервалом настроек дат в СКД.
    Последнее редактирование: 10 фев 2015
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    TODD22 не смотря на то что вопрос несложный, вариантов решения не один, и в пару строк на самом деле сложно уложится.

    У виртуальной таблицы оборотов в СКД и так есть предопределенные параметры "&НачалоПериода", "&КонецПериода". Они появятся на закладке параметров автоматически после того как в запросе будет выбрана виртуальная таблица. Пользователь может задать их через параметры. В настройках вывода на закладке параметры можно задать начальное значение (Начало этого дня). Тогда для параметра "&КонецПериода" на закладке параметры необходимо в столбце выражение использовать функцию КОНЕЦПЕРИОДА().

    Также вместо вышенаписанного варианта, можно добавить свой параметр типа СтандартныйПериод, и для параметров "&НачалоПериода", "&КонецПериода" в колонке выражения прописать соответственно &СтандартныйПериод.ДатаНачала, &СтандартныйПериод.ДатаОкончания. При этом для самих параметров "&НачалоПериода", "&КонецПериода" нужно поставить ограничение видимости для пользователя (соответствующая галка на этой же закладке в СКД).
  3. TopicStarter Overlay
    TODD22
    Online

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Мне надо что бы пользователь мог изменить Даты начала и окончания. По умолчанию отчёт строится за день. Но могут захотеть построить и за три дня... и за неделю...
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну пусть меняет.
  5. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    СКД довольно прикольная система :), там много нюансов может быть, настроек всяких, причем, из документации я видел только книжку от Хрусталевой, вроде :)
    Но эта система позволяет строить действительно сложные и красивые отчеты :)
  6. TopicStarter Overlay
    TODD22
    Online

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Ну есть ещё курс Гилева на 5 часов по СКД. И курс Чистова часов на 8 наверное... Но что бы всё это посмотреть и научиться нужно время. А тут как всегда нужно сделать ещё вчера.
  7. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Тоже не осилил полностью, так, отрывками, материал стоящий :)
  8. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Вот тут имеется шаблон для СКД. Не пробовали?
  9. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Ребята СКД вещь.
    Из книг - базовая это Хрусталева, я слушал курс Белоусова в 1С по СКД, то же кучу ньюансов, но воротить можно....
    Что каается темы. то как сказали вариантов много.
    Уже сказали что автоматом появляются два параметра, они доступны на вкладке параметры. там же можно и на языке выражений СКД просписать их На Начало дня и конец,Язык выражений СКд схож с языком запросов.
  10. TopicStarter Overlay
    TODD22
    Online

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    1. Добавил параметры в виртуальную таблицу регистра оборотов. Они из СКД как передаются? Просто на закладке Параметры указываю с такими же псевдонимами? То есть вот как я сделал это постобработка результата или это отбор на уровне виртуальной таблицы?
    2. Не получается сделать параметры. Я хочу что бы при открытии подставлялся текущий день. То есть дата начала и дата конца дня. Включая все движения в последнюю секунду.
    Делаю как в примере. У меня дата автоматически не подставляется. И вообще какую руками дату ввёл та и будет при открытии отчета.
    СКД набор данных.jpg СКД Параметры.jpg СКД Пользовательский режим.jpg
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Из первого рисунка убрать НачалоПериода, КонецПериода. Эти параметры на закладке "параметры" и так появятся.
    Начальные значения (начало этого дня) установить на закладке "Настройки" (там тоже есть вкладка Параметры).
  12. TopicStarter Overlay
    TODD22
    Online

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    А не получится ли это постотбор?
    С начало запрос выберете все данные а потом СКД уберёт лишнее. Или нет?
    --- Объединение сообщений, 12 фев 2015 ---
    И вопрос по параметру "Начало дня" в Настройках я указал начало этого дня.
    А как указать правильно конец этого дня?
    --- Объединение сообщений, 12 фев 2015 ---
    И при открытии ничего не заполняет. Так и остались даты с последнего закрытия отчета.
    --- Объединение сообщений, 12 фев 2015 ---
    Посмотрел отчёт в типовой ЗУП 3.0 по анализу НДФЛ. Там как раз данные берутся из оборотного регистра накопления. И там параметры накладываются на виртуальную таблицу. Видимо отбор в СКД это уже постобработка.
    Последнее редактирование: 12 фев 2015
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не получится.

    То же самое, указать Начало этого дня. Выражение для вычисления конца дня уже прописано у вас в колонке выражение.
    Поскольку я вижу управляемые формы, то лучше сделать по варианту 2 из #2-го поста (с добавлением параметра стандартный период). В стандартном периоде там уже есть значение "Сегодня".

    Все действия -> Установить стандартные настройки.
    То что у вас видно на форме отчета - это пользовательские настройки. Если их поменять они запоминаются. Это нормальное поведение системы. Сбросьте на стандартные настройки и до тех пор пока не будете в ручную ничего устанавливать отчет будет открываться с настройками по умолчанию (т.е. "Начало этого дня" в данном конкретном случае).

    эту фразу не понял.
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Смотрите в чем разница, когда Вы поставили параметры дат в Виртуальной таблице и когда не поставили.
    СКД сама анализирует состав набора данных и при необходимости добавляет нужные параметры виртуальных таблиц. Т.е если Вы их там явно не определите то они на вкладке параметры все равно будут.
    Тот звапрос что вы пишите, на самом деле это шаблон запроса,а окончательный СКД сама строит так вот.
    если Вы параметры не определили то СКд сама их добавили и они могут быть не обязательные для заполнения т.е если Ва мнадо отббор за период - Вы их укажите, если не надо то не указываете и все равно запрос работает.
    Когда Вы явно определили то СКД понимает что они всегда должны быть и у Вас уже не получиться что не завад даты Вы получите выбрку за весь период . Вам уже обязательно надо указыывать период.
    От того как будет выглядеть запрос и будт параметры там много разных вариантов
  15. TopicStarter Overlay
    TODD22
    Online

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Я посмотрел типовую ЗУП 3.0 и отчёт в ней. Там у виртуальной таблицы параметры определены явно.
    Вот меня и смущает это... для какой то цели же эти параметры в явном виде определяются в самом запросе.
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Явно определяются, когда требуетсяобязательное их введение.
    Еще один неявный пример.
    Допустим есть вирт таблица Не важно какая РС и РН главное виртуальная.Почти у них у всех есть Измерение организация.
    еси вы в запросе укажие этот параметр явно (ну имеется ввиду без {}), то всегда Вам надо будет указывать организацию иначе будет говориь что параметр не заполнен.
    Но если вы нее укажите там паарметр, оставите запрос как есть. откроете СКД, и на поле отбор постаавите отбор по организации (я сейчас не беру пример когда на скд выводится несколько наборов данных и в одном из них нет организации), и нажмете сформировать, то если посмотрите запрос, который идет на исполнение и строит СКД то он будет в параметром в виртуальной таблице. Т.е СКД сама проанализирует и добавит при построении запроса.
  17. xxx949
    Offline

    xxx949 Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    302
    Симпатии:
    1
    Баллы:
    29
    Я делаю так:

    Код:
    Процедура ПриОткрытии()
       
        ДатаОтчёта = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОтчёта");
        ДатаОтчёта.Значение = НачалоДня(ТекущаяДата());
        ДатаОтчёта.Использование = Истина;
    
    КонецПроцедуры
    Соответственно можно обратиться к любому параметру и определить для него значение при открытии.
    Также можно в самом СКД в параметрах, там где Выражение, написать НачалоДня(ТекущаяДата()) - вроде тоже работает.
    TODD22 нравится это.

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