8.х Пустые параметры СКД

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dem0lisher, 19 апр 2011.

  1. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Злравствуйте эксперты!
    Скажите как настроить отчет с использованием СКД чтобы он формировался, даже когда не установлены его параметры например: Если ДатаНачала и ДатаОкончания пустые, что отчет формируется за все время. И также если указан только один параметр например: Пользователь ввел только дату начала, а дату окончания оставил пустой, в надежде, что отчет сформируется между датой начала и сегодняшним числом.
  2. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Просто поставить галочку Использовать не прокатит чтоли?
  3. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    программно при открытии формы отчета на СКД можно устанавливать параметры. пример есть в книжке "разработка сложных отчетов".
  4. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Еще есть вариант
    Код:
    ВЫБОР КОГДА &КонПер = ДАТАВРЕМЯ(1,1,1) ТОГДА &ТекущаяДата ИНАЧЕ &КонПер Конец
    
    
    
    
    ток надо еще один параметр &ТекущаяДата установить как ТекущаяДата()
    -----------------------------------------------------------------------------------------------
    вот исправил, у меня работает
    Код:
    ВЫБОР КОГДА &КонПер = ДАТАВРЕМЯ(1,1,1) ТОГДА ТекущаяДата() ИНАЧЕ &КонПер Конец
    
    
    
    это в поле ВЫРАЖЕНИЕ в параметрах СКД писать
  5. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    1 из вариантов: Добавьте в отчет реквизиты НачалоПериода и КонецПериода. При открытии формы и при изменении реквизитов пропишите следующий обработчик:

    Код:
    Процедура УстановитьПериод()
    //устанавливаем начало и конец периода отбора
    
    //Если нужно сделать началом периода начало года
    НачалоПериода = ?(НачалоПериода = '00010101', НачалоГода(ТекущаяДата()), НачалоПериода); 
    КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода);    
    
    КонецПериода = ?(КонецПериода = '00010101', ТекущаяДата(), КонецПериода); 
    КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецПериода);
    
    КонецПроцедуры
    
  6. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Кстати а если заключить параметры в фигурные скобки это прокатит? Просто не могу щас попробовать
  7. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Попробовал, работает. Если в принципе оно и правильно, в построителе же работало.
  8. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    пробую также- с датой окнчания все выходит, но когда пытаюсь установить выражение для даты начала, что-то вроде этого

    Код:
    ВЫБОР КОГДА &ДатаНачала=ДАТАВРЕМЯ(1,1,1) ТОГДА НачалоМесяца(ТекущаяДата() Иначе &ДатаНачала) КОНЕЦ
    
    
    С пустыми параметрами отчет выводится, но уж точно не за месяц.. А как минимум за год!
    Проверял условия в самом запросе-все ок.
  9. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Блин, в этой строчке за скобкой не углядел:
    Код:
    ВЫБОР КОГДА &;ДатаНачала=ДАТАВРЕМЯ(1,1,1) ТОГДА НачалоМесяца(ТекущаяДата() Иначе &;ДатаНачала) КОНЕЦ
    
    
    Надо наверное
    Код:
    ВЫБОР КОГДА &;ДатаНачала=ДАТАВРЕМЯ(1,1,1) ТОГДА НачалоМесяца(ТекущаяДата()) Иначе &;ДатаНачала КОНЕЦ
    
    
    Но всеравно отчет при нажатии кнопки сформировать ругает-Неверные параметры в операции сравнения. нельзя сравнивать поля неограниченной длины и поля несовместимых типов.
  10. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    А я вобще ниче не указывал в дате начала, ибо она по умолчанию 01.01.0001. Т.е. с самого начала учета. А если надо именно с начала месяца, тогда ошибка скорей всего из-за типов. Т.е. тип ДатаНачала не тип Дата, а тип СтандартнаяДатаНачала. Вобще программно сделал бы проверку на даты и не парился:)
  11. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    И еще, если пишу не просто "................ТекущаяДата()" , а КонецДня(текущаяДата()) тогда ошибка: Функция не найдена-КонецДня..
    Разумеется пишу в поле выражение для параметра "ДатаОкончания"
  12. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Ну может тогда попробовать не КонецДня, а КонецПериода(ТекущаяДата(),"День")
  13. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Да, так и работает!!
    Всем спасибо!

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