gifts2017

Отчет на СКД с параметрами на форме

Опубликовал Pavel Defula (veyron21) в раздел Программирование - Практика программирования

Как вынести на форму параметры отчета, сделанного на СКД

Как добавить параметр для отчета на форму, созданного на СКД? Чтобы было, как например в оборотно-сальдовой ведомости, выбор начала и окончания периода и, например, организации. В свое время, долгое время поисков не увенчалось успехом. После небольшого перерыва в разработке на 1С, попытки найти что-либо подобное, опять же не увенчались успехом. На форумах находил только стандартный код построителя отчета. Конечно, можно изменить и его, но для несложного отчета, когда требуется для удобства пользователя просто вынести реквизиты на форму, чтобы не залезать каждый раз в настройки отчета, менять стандартный код не требуется. Нужно только внести небольшие коррективы. Ниже, привожу текст кода:

Процедура ДатаНачПриИзменении(Элемент)
       ПараметрДатаНач = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
       ПараметрДатаНач.Использование = Истина;
       ПараметрДатаНач.Значение  = НачалоДня(ДатаНач);
КонецПроцедуры

Писать в модуле формы, в обработчике ПриИзменении элемента. В примере - элемент "Начало периода".
В принципе, это все. Как дополнение, можно сделать еще обработчик ПередОткрытием формы, куда записать следующий код для открытия отчета уже с предустановленными параметрами:

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

Значение параметров ДатаНач, ДатаКон и Организация для этой процедуры нужно определить отдельно.

Скачать файлы

Наименование Файл Версия Размер
Отчет на СКД с параметрами на форме 322
.erf 10,94Kb
14.12.11
322
.erf 10,94Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Armando Armando (Armando) 19.12.11 22:37
2. Сергей Ожерельев (Поручик) 20.12.11 01:18
(1) Честно говоря, не понял в чём были затруднения у автора. Вещь довольно простая, делается после небольшого изучения свойств и методов СКД.
Spartan; artbear; +2 Ответить 1
3. Модератор раздела Артур Аюханов (artbear) 20.12.11 08:50
Баян и слишком просто :)
4. Armando Armando (Armando) 20.12.11 09:06
(2) Если честно, то я просто отшутился) Вообще не понимаю, зачем из этого делать отдельную публикацию?
5. Иван (Spartan) 20.12.11 09:22
Присоединяюсь к высказываниям выше. Ну и если уж на то пошло: при изменении параметров через настройки, они должны заполняться и в основной форме, а в публикации описан только обратный процесс.
6. DERL (DERL) 20.12.11 09:24
Armando пишет:
Если честно, то я просто отшутился) Вообще не понимаю, зачем из этого делать отдельную публикацию?

эта публикация как документация для начинающих программистов...
Автор молодец поддерживаю! плюсик заработал!
7. Сергей Ожерельев (Поручик) 20.12.11 10:27
(6) Документация для начинающих программистов - это ЖКК или "Хрусталева Е.Ю. Разработка сложных отчетов в 1С Предприятии 8. Система компоновки данных", а не мелкие статейки в интернетах.
kuza_87; CaSH_2004; +2 Ответить 1
8. Pavel Defula (veyron21) 20.12.11 10:27
Да, я согласен, что это простое решение. Однако для начинающих программистов такая задачка может стать серьезным камнем преткновения при разработке отчета на СКД. Проверял лично со своими новичками)))
9. DERL (DERL) 20.12.11 10:34
Поручик пишет:
Документация для начинающих программистов - это ЖКК или "Хрусталева Е.Ю. Разработка сложных отчетов в 1С Предприятии 8. Система компоновки данных", а не мелкие статейки в интернетах.

хоть это и простенькая статейка, но в подобных статьях иногда найдешь то, что не пишут Хрусталевы и прочие авторы ИМХО...
10. Pavel Defula (veyron21) 20.12.11 10:36
(7) Поручик, Согласен, что у Хрусталевой описано все отлично, понятным языком и все такое. Но во-первых, под рукой у новичков ее учебник есть не всегда, а во-вторых про данную тему у нее написано довольно расплывчато. Надо дополнительно разбираться в особенностях синтаксиса компоновщика настроек как минимум.
11. Олеся Потапова (O-lesya) 20.12.11 14:41
Большое спасибо автору ! Действительно для начинающих программистов -очень нужная вещь.Несколько дней на это убила,а все оказывается очень даже просто.Еще раз спасибо veyron21.
12. Алексей Новиков (Новиков) 20.12.11 17:49
Мне кажется, нужно в настройках темы ставить некий тэг - новенький. Они тоже люди, и мы ими все были - но многие, например, это не хотят читать. И это, кстати, тоже понятно.

В любом случае, автор - молодец.
13. Александр Крынецкий (echo77) 20.12.11 18:46
Только сегодня такое делал - все просто - разыменовываем КомпоновщикНастроек, ну и отладчик наше все.

Автор, так же попробуйте на форме разместить табличное поле и в качестве источника данных указать КомпоновщикНастроек.Настройки.Отбор
baracuda; HelenKov; maestro_; McCoy77; +4 Ответить
14. Александр Прокопенко (babylon_5) 20.12.11 21:43
echo77 пишет:
Автор, так же попробуйте на форме разместить табличное поле и в качестве источника данных указать КомпоновщикНастроек.Настройки.Отбор


Ну зачем же так жестко-то?
freeek; artmicro; Valerich; +3 Ответить
15. olga pt (pt_olga) 20.12.11 21:53
откровение походу для тех, кто работает с СКД первый день)))
Автор, у Вас еще море открытий впереди!
16. Александр Плюшкин (php5) 21.12.11 00:09
Для новичков СКД отличный материал!
17. Алексей Марченко (Alexez) 21.12.11 09:11
Отлично на основе данного отчета можно сделать что то свой, отличный шаблон который позволяет экономить время. Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!
18. Dragon Ago (DragonAgo) 21.12.11 10:55
Для новичков как раз полезен данный материал!
19. Вадим Никонов (V.Nikonov) 21.12.11 12:20
Хотя, для полноты статьи не мешало бы её подредактировать. Добавить примеры размещения других типов данных параметров, мотивация по размещению и т.п. Тогда получился бы полноценный обзор для начинающих... Ведь многие новички сохраняют подобные странички, как "Полезные советы".

Плюсик - Авансом.
eksdak; McCoy77; +2 Ответить
20. no_registration no_registration (no_registration) 21.12.11 19:11
21. Сергей Королев (extrim-style) 21.12.11 19:58
22. McCoy77 22.12.11 10:14
А просто вывести параметры СКД в форму разве не проще? И ни одной строчки кода не требуется. ИМХО начинающим программистам нужно давать оптимальное решение.
Прикрепленные файлы:
Kuzya_brаtsk; veyron21; +2 Ответить 1
23. McCoy77 22.12.11 10:15
(9) у Хрусталевой как раз это подробно описано
24. Pavel Dvoryanchikov (pasha_d) 23.12.11 08:37
Для тех, кто только разбирается с СКД - данная обработка будет очень-очень полезна)
25. Александр Noname (Meson) 23.12.11 09:32
У кого нет времени изучать Хрусталеву, то статья как раз для них.
(22) Если просто выводить параметры СКД на форму, ИМХО, как то это криво выглядит. Часто лучше вручную их вывести.
Как вариант можно использовать управляемые формы.
26. Михаил Шайдуров (Mshaydurov) 23.12.11 10:24
Управляемые формы не всегда можно использовать, но вот публикацию ради такого кода действительно не стал бы делать
27. McCoy77 23.12.11 12:36
(25) Времени читать Хрусталеву нет, а время заниматься псевдонаписательством получается есть? Когда можно за 10 сек вынести настройки на форму? :) Нелогично. Ну как общая информация по работе с настройками - статья полезная конечно, как предложение к реализации выноски параметров на форму - только вред для начинающих. По себе знаю: начнут параметры вручную на форме размещать по одному, писать тонну кода для обработки событий. Можно конечно, но не оптимально. А насчет "криво выглядит"... дело привычки наверное. Насчет УП согласен. НО! Придется опять же книжки читать ;)
28. MICK77 Владислав (MICK77) 28.12.11 00:12
McCoy77 пишет:
А просто вывести параметры СКД в форму разве не проще? И ни одной строчки кода не требуется. ИМХО начинающим программистам нужно давать оптимальное решение.


Оптимальное, но не всем пользователям это нравиться. Особенно тем кто перешел с 7.7, а этот вариант очень даже удобен. Автору+
29. EfiopReal (Созинов) 29.12.11 14:51
Честно говоря, не понял в чём были затруднения у автора. Вещь довольно простая, делается после небольшого изучения свойств и методов СКД.

Для начинающих иногда полезно, хотя можно и хрусталеву почитать, там все понятно расписано
Оптимальное, но не всем пользователям это нравиться. Особенно тем кто перешел с 7.7, а этот вариант очень даже удобен. Автору+

Полностью согласен.
Olga_130772; +1 Ответить
30. Александр Прокопенко (babylon_5) 15.01.12 00:58
(25) А если все-таки почитать Хрусталеву... Таких "открытий" (да и заметок тоже) можно не один десяток сделать. Так что лучше таки найти время...
31. Олег Чиков (chikov) 17.01.12 16:25
Думаю, все-таки полезнее книжку почитать...
32. Антон Котов (Attest) 01.03.12 20:27
Хочется скачать этот отчет! И побыстрее им воспользоваться. Автору по любому плюс. Новичкам любая информация полезна. Вот узнал что нужно почитать Хрусталеву!
Как добавить параметр для отчета на форму, созданного на СКД? Чтобы было, как например в оборотно-сальдовой ведомости, выбор начала и окончания периода и, например, организации. В свое время, долгое время поисков не увенчалось успехом. После небольшого перерыва в разработке на 1С, попытки найти что-либо подобное, опять же не увенчались успехом. На форумах находил только стандартный код построителя отчета. Конечно, можно изменить и его, но для несложного отчета, когда требуется для удобства пользователя просто вынести реквизиты на форму, чтобы не залезать каждый раз в настройки отчета, менять стандартный код не требуется. Нужно только внести небольшие коррективы.
33. Александр Крынецкий (echo77) 01.03.12 21:26
ИМХО, отчет на СКД лучше создавать из шаблона типового отчета - что это такое можно почитать на ИТС в разделе Методическая поддержка\8.1\демонстрационные конфигурации\...
34. Sergey Gromov (ov1) 30.06.12 19:55
не работает в бухгалтерии предприятия 2.0.36.4
35. Дмитрий Глеков (glek) 12.07.12 17:15
А шаблон типового отчета на ИТС-е уже не подходит?
36. Евгений Кредько (kredko) 20.07.12 05:54
(25) Meson, Странно. В каком месте там криво выходит?
37. Александр Noname (Meson) 20.07.12 19:23
(36) kredko, в управляемых формах, проще, лучше, красивее )))
38. zhenia74 (zhenia74) 21.07.12 21:05
очень просто дорабатайте формирование отчета через скд программными средставами и там легко можете установить свои параметры
39. Andrey Dyak (electronik) 30.07.12 11:01
Автору спасибо то что искал. Ато все както не получалось и не получалось. Как почитал разобрался сразу все заработало. Так держать продолжайте в том же духе.
40. Сергей Племянников (Serge_ASB) 05.07.13 11:12
есть отчет в СКД.
требуется программно (из настроек или элементов формы (переключатель) менять один параметр в условии:
41. Сергей Племянников (Serge_ASB) 05.07.13 11:23
есть отчет в СКД.
требуется программно (из настроек или элементов формы (переключатель) менять один параметр в условии:
в оригинале
ГДЕ
	ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.ВремяНачала >= &НачалоПериода
	И ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.ВремяНачала <= &КонецПериода
	И ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Проведен
	И (ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника <> 2
			ИЛИ ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор = &Пустойдог)
...Показать Скрыть


условие
ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника <> 2

нужно по-возможности менять программно на
ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника = 2


в отчетах "не СКД" это делалось разрывом текста и проверкой условия:
Если ЭлементыФормы.ВидТехники=2 Тогда
Запрос.Текст=Запрос.Текст+"
| ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника = 2";
иначе
Запрос.Текст=Запрос.Текст+"
| ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника <> 2";
конецЕсли;

Как такое реализовать в запросе СКД?
42. Pavel Defula (veyron21) 05.07.13 12:29
(41) Serge_ASB, Я не видел целиком ваш запрос, но я бы сделал такое следующим образом. В текст условия внести параметр с типом Булево, который будет переключать условие в самом запросе на то, которое вам нужно.
Текст условия запросе изначально будет выглядеть так:
<текст запроса>,
ГДЕ ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника = 2

Вы же меняете условие на такое:
Выбор Когда &Переключатель = Истина Тогда
     ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника = 2
Иначе 
     ОтчетоИспользованияСтороннегоАвтотраспортаМаршрут.Ссылка.Договор.Техника <> 2
Конец
...Показать Скрыть

этот код вставьте в конструктор в поле "Условие". Параметр "переключатель" вынесите в СКД на форму через "Включать в пользовательские поля" и тогда ваш пользователь будет сам выбирать, какое условие ему задать.
Если что-то непонятно - пишите. Буду рад помочь.
43. Сергей Племянников (Serge_ASB) 05.07.13 12:57
(42) veyron21,
Включать в пользовательские поля - это где?
44. Сергей Племянников (Serge_ASB) 05.07.13 14:38
Сделал именно так (42)
Кроме этого, промучался с выносом параметра на форму.
Решил добавлением элемента управления "Флажок" и
указанием в процедуре обработки "ПриИзменении", как было описано здесь:
http://forum.infostart.ru/forum14/topic53460/message589473/#message589473
45. Pavel Defula (veyron21) 05.07.13 15:21
(43) Serge_ASB, Это для управляемых форм. В конструкторе СКД на вкладке "Настройки отчета" правой кнопки мыши по параметру или по элементу отбора (отборы на вкладке "отбор"). И выбрать -> Свойство элемента пользовательских настроек и поставить галку "Включать в пользовательские поля". Если галка стоит, поле появится на форме отчета в верхней части автоматически. Работает в 8.2 в управляемом и обычном приложении , но отчет тогда должен быть на управляемой форме.
46. Alex Steiner (OrsoBear) 05.05.15 10:18
Желающих отправить к Хрусталевой полно.
И ни одного желающего поделиться своим, более правильным примером решения.
Тоже давно не пользовался параметрами компоновки, пришлось заехать домой за книжкой.
Надо разбираться, у меня несколько вариантов отчета, и еще и реквизиты по правам разделены.
Нужно более гибкое решение.
47. Олег Дмитров (baracuda) 15.05.15 14:48
Простите великодушно, и где же Ваш, КомпоновщикНастроек.Настройки.Отбор???
Пытаюсь сделать подобный отчет, но столкнулся с трудностями.
Прикрепленные файлы:
48. Олег Дмитров (baracuda) 15.05.15 15:50
Ссори погорячился. Все получилось, только компановщик в свойствах появляется только после добавления на форму.
Все окей.
49. Дмитрий Новоселов (dimongik) 26.06.15 15:14
Спасибо за статью! Мне, как начинающему, очень даже помогла!
50. Татьяна Михайлова (tmixsam) 02.10.15 09:54
Спасибо очень пригодилось. Просто и доступно.
51. Михаил Никитин (M.Nikitin) 20.10.15 16:27
(45) veyron21, спасибо за пример -но как сделать, чтобы можно было не обязательно заполнять параметр - не выбрали организацию- получили данные по всем организациям ?
52. Pavel Defula (veyron21) 22.10.15 11:03
(51) M.Nikitin, Это делать уже сложнее. В СКД на последней вкладке, где настраиваются группировки и выводимые поля в отчет, внизу есть раздел "Отборы". Там, собственно, можно выбрать поля, по которым будет устанавливаться отбор. Вот только как их вывести на обычную форму сейчас уже не подскажу((( Уже давно работаю с управляемыми, а там это все автоматически ставится.
54. Регина Маркосян (MidoMido) 29.07.16 14:23
Спасибо автору. Для кого то просто, а кому то помогает)