gifts2017

Простейший вариант создания отчета или как быстро создать красивый отчет на СКД (v8 Обычное приложение)

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

Наиболее эффективным объектом для создания отчетов в 1С 8.1, 8.2, безусловно является СКД. Однако использование СКД «вчистую» не позволяет вносить параметры и отборы СКД иначе как непосредственно в настройки СКД, что не всегда удобно пользователям. Представленная методика позволяет использовать СКД с некой шаблонной формой, которая берет на себя обмен параметрами СКД и в тоже время, эта форма позволяет пользователю «покапаться» в недрах самой СКД. Шаблон легко модифицируется, скажем для ввода Параметров или Условного оформления.

Допустим требуется построить «Ведомость по взаиморасчетам» в УТ 10.3

 Итак начнем:

  1. Создаем внешний отчет, можно задать его имя «ВедомостьПоВзаиморасчетам»
  2. В этом-же окне создаем «Основную схему компоновки данных»
  3. В схеме добавляем новый набор данных, и, допустим при помощи конструктора запросов формируем нужный запрос, в текущем случае такой:
ВЫБРАТЬ

ВСКОИО.СуммаВзаиморасчетовНачальныйОстаток КАК ВзаиморасчетыНО,

ВСКОИО.СуммаВзаиморасчетовПриход КАК ВзаиморасчетыПриход,

ВСКОИО.СуммаВзаиморасчетовРасход КАК ВзаиморасчетыРасход,

ВСКОИО.СуммаВзаиморасчетовКонечныйОстаток КАК ВзаиморасчетыКО,

ВСКОИО.СуммаУпрНачальныйОстаток КАК СуммаУпрНО,

ВСКОИО.СуммаУпрПриход,

ВСКОИО.СуммаУпрРасход,

ВСКОИО.СуммаУпрКонечныйОстаток КАК СуммаУпрКО,

ВСКОИО.Регистратор,

ВСКОИО.ДоговорКонтрагента,

ВСКОИО.ДоговорКонтрагента.Владелец КАК Контрагент,

ВСКОИО.ДоговорКонтрагента.Организация КАК Организация,

ВСКОИО.Период

ИЗ

РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты ({(&ДатаНачала)}, {(&ДатаКонца)}, Регистратор, ДвиженияИГраницыПериода, ) КАК ВСКОИО

 

  1. Обращаем внимание, что для верной работы отчета, нужно в Полях СКД для измерения ДоговорКонтрагента в ролях выставить флаг «Обязательное», остальные настройки — по желанию (тех, что есть по умолчанию — вполне достаточно).
    Запрос 
  2. Во вкладке СКД «Ресурсы» - добавляем все количественные ресурсы с функцией «Сумма»
     
  3. Во вкладке СКД «Настройки» - добавляем группировки, например: Организация, Контрагент, ДоговорКонтрагента, Детальные Записи, в «выбранных полях» добавляем нужные, например: Период, Регистратор, и все ресурсы, которые можно объединить в группы,
    Ресурсы
    в «отборе» добавляем нужные по умолчанию отборы, снимая флажки использования, например Контрагент, Организация, ДоговорКонтрагента.
    отборы
    Собственно СКД готова, но вот формы у нее все еще нет, если на этом этапе закончить построение, то 1С сама сформирует форму по умолчанию.
  1. Создаем ФормуОтчета: она стандартная — её нужно наполнить содержимым, причем это содержимое чаще всего переходит из одного отчета в другой с минимальными корректировками. Собственно говоря этот этап и предлагается «шаблонизировать».

А именно вставить готовую форму из уже существующего отчета, подвергнув минимальным изменениям. В рассматриваемом случае из обработки «Шаблон отчета». Здесь нужно обратить внимание на то, что после вставки формы из шаблона отчета, нужно проверить два поля вновь вставленной формы: это в «Основных» Тип значения (нужно установить Тип текущего (редактируемого) отчета), и Заголовок

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

ПараметрНастройки.Значение=ДатаНачала;

ПараметрНастройки.Использование=Истина;

 

в СКД передаются параметры из формы. Остальное, думаю, понятно из текста модуля формы.

  1. Теперь, необходимо указать вставленную (и, возможно откорректированную) форму в качестве основной в поле Форма отчета.
  2. Сохраняем и запускаем в режиме 1С:Предприятие.

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

Наименование Файл Версия Размер Кол. Скачив.
ШаблонФормы
.erf 13,58Kb
07.11.12
239
.erf 13,58Kb 239 Скачать
ГотовыйОтчет
.erf 16,36Kb
07.11.12
109
.erf 16,36Kb 109 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Максим Шаповалов (Maksimshap) 26.11.11 11:53
а как это сделать самому?
2. Максим Шаповалов (Maksimshap) 26.11.11 11:53
4. mxm2 mxm2 (mxm2) 27.11.11 01:35
Форму вполне можно сдалать самому. код открыт, если есть вопрсы могу подробно описать как и что делать. На мой взгляд, представленная форма удобна для пользователя и не требует больших затрат при программировании. - есть и недостаток - "Все отчеты на одно лицо" )))
5. Николай (rinatru) 27.11.11 18:02
mxm2 пишет: есть и недостаток - "Все отчеты на одно лицо" )))


я считаю, что это БОЛЬШОЕ достоинство, т.к. пользователь работает в однотипной среде, и ему не нужно адаптироваться к различным аляповатым интерфейсам.
6. Инна (westinka) 30.11.11 08:35
однотипная среда конечно хорошо, но как показывает практика, люди не думая потом начинают "жмакать", и удивляются странным результатам, аля всегда так делал и было хорошо, и новых обучают - типа жмешь сюда, видишь это, без объяснения, что собственно нажимаем...
7. mxm2 mxm2 (mxm2) 30.11.11 17:17
(6) westinka, "и удивляются странным результатам" - лучше, конечно делать так, чтобы странные результаты - не получались ни при каких условиях. Среда 1С вполне позволяет ограничить пользователя нужным образом.
8. Инна (westinka) 02.12.11 21:51
(7) ну это понятно, что можно ограничить пользователя так как нужно, я больше имела в виду, что нельзя упрощать жизнь пользователям совсем уж сильно, а то будет потом, что 1с сама все всегда считала, а я даже и не проверяла, т.к. была уверена, что все правильно :)
9. Андрей Акулов (DrAku1a) 06.12.11 01:36
Простейший вариант - создать новый отчет, создать ему форму, в модуле формы (процедуры "кнопка выполнить нажатие") - правой кнопкой и выбрать "Конструктор запроса с обработкой результата..." - и далее с помощью мастера все делается без написания и строчки кода.
Второй вариант - с минимальным коддингом и конструктором запросов - это использовать "ПостроительОтчета"...
Прикрепленные файлы:
10. mxm2 mxm2 (mxm2) 06.12.11 07:37
(9) DrAku1a, у всякой методики есть плюсы и минусы, в частности и предложенного варианта преимуществом является прозрачное использование СКД с наглядной формой.
11. Андрей Акулов (DrAku1a) 06.12.11 07:58
(10) Я говорю про простейший вариант, не факт, что СКД им является.
12. mxm2 mxm2 (mxm2) 08.12.11 12:27
(11) DrAku1a, также не факт что использование "простого запроса" проще, например в контексте группировок и итогов, которые СКД делает сама. Как запросы так и СКД можно использовать - как для простых отчетов, так и для сложных. На мой взгляд многие подходы СКД более просты и нагляды, чем то, что будет сформировано в результате использования контструктора запросов с обработкой результата, особенно если предстоит (а так чаще всего и бывает) правка этого отчета вручную.
13. Модератор раздела Артур Аюханов (artbear) 16.02.12 22:25
Это не простейший вариант :( самый простой давно уже придуман и юзается уже несколько лет. Читайте автора Evg-Lylyk на сайте
14. John Smith (PiccaHut001) 12.09.12 18:57
15. mxm2 mxm2 (mxm2) 08.11.12 09:01
(13) artbear, скажем так: простейший на СКД, обычные формы, с настраиваемыми отборами и группировками.
16. muha muhaha (fr.myha) 14.11.12 11:11
17. Андрей Гуляев (agulaev) 05.01.13 20:36
Все работает красиво. Плюс.
18. Ирек Вафин (Irek-kazan) 06.01.13 00:59
19. Алексей Роза (DoctorRoza) 06.01.13 11:35
(15) mxm2, конечно, воля Ваша, но, ИМХО, нужно отказываться от каких-либо демонстраций в обычном приложении. Пусть еще много контор работает на 7.7/8.1. Но! Управляемое приложение - это 1С-ское будущее .. или около того. Тем более, что отчеты на СКД в обычном приложении не отличаются от отчетов на управляемых формах (простейшие их вариации). Плюсану, но все-таки 8.3 на пороге .. не солидно как - то :)
20. mxm2 mxm2 (mxm2) 06.01.13 11:58
(19) DoctorRoza, За плюс - спасибо... Обратите внимание на дату создания публикации (что-то там 2011 год)... просто периодически "причесываю" свои старые публикации, подгоняя под новые классификаторы сайта, да и новые возможности отображения использую. Обычное приложение тоже имеет право на существование, тем более, иногда - оно имеет преимущества при работе... (скажем, известная проблема скорости подбора в УТ11, которой нет в УТ10.х). А вот программить под УФ, на мой взгляд, более приятно. Но ведь это не главное - главное как работать)).
21. Алексей Роза (DoctorRoza) 06.01.13 12:24
(20) mxm2, действительно .. аж 2011 год .. :) .. никогда не смотрю на дату поста!
22. TMV 06.01.13 17:01
(0) Где-то с год назад в УПП обнаружил замечательный механизм "Произвольных отчетов", все-то нужно правильно запрос накидать. А дальше дело техники и рук пользовталей. Так к этому делу прикипел, что, когда в очередной раз лезу в УФ, слегка корежит отсутствие правой панели настроек и быстрых отборов.
23. bulpi bulpi (bulpi) 09.01.13 15:17
"Наиболее эффективным объектом для создания отчетов в 1С 8.1, 8.2, безусловно является СКД."

Это очень, очень спорное утверждение.
24. mxm2 mxm2 (mxm2) 09.01.13 16:05
(23) bulpi, ))) Давайте определим понятие "Эффективности"))), это некое пересечение скорости работы, простоты программирования, настройки, "широты" применения, и прочее... все современные конфигурации используют СКД - это ли не свидетельство указанного.)))
25. bulpi bulpi (bulpi) 09.01.13 22:03
ОК
1)Скорость работы отчетов на СКД не больше, чем не на СКД (Имхо, я не проверял)
2)Простота программирования - очень, очень плохо. Если на шаг вправо - влево от простейшего, там сразу такое начинается, что специальные курсы нужны (sic!) для того, чтобы сделать простое, а не простейшее.
3)Простота настройки - плохо, именно поэтому появилась эта публикация.
4)Широта применения - хорошо.
5)"все современные конфигурации используют СКД" -имеются в виду типовые ? Ну да, еще бы. А как же программисты , находящиеся на службе 1с и франчайзи, не будут применять СКД, если творцы движка создали СКД? А зачем тогда делали?
26. mxm2 mxm2 (mxm2) 09.01.13 23:30
(25) bulpi,
2 - Запрос + вывод на экран с расшифровками у меня лично всегда занимал больше времени чем Запрос СКД + Компоновка (стандартная или близкая к стандартной), а если нужно что-то переделать/добавить... с выводом на экран...
3 - если присмотреться указанная форма всего лишь показывает на "себе" ряд стандартных окон/полей, которые просто "глубоко сидят", и написана только для того чтобы пользователю было привычно задавать отборы и прочее напрямую. (т.е. некий аналог универсального отчета), по проще )
- еще наглядность можно оценить...
27. apextrofimov (trand) 02.08.13 10:27
Судя по скриншоту не хватает кнопок сворачивания и разворачивания группировок по уровням
28. Гость 07.07.14 11:43
(25) bulpi, (sic!) - значение знаешь?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа