Шаблон отчета на СКД для обычных и управляемых форм








Шаблон отчета на СКД для обычных и управляемых форм, с расширенным функционалом.

Шаблон отчета на СКД для обычных и управляемых форм, с расширенным функционалом.

Скомпонован с использованием решений, опубликованных на Инфостарте.

Как база было взято решение //infostart.ru/public/137460/, за механизм отображения/скрытия параметров, отбора, заголовка.

Дополнительно добавлено (с небольшой оптимизацией — проверки и т.д.)

  1. Печать заголовков колонок на каждой странице отчета. Спасибо //infostart.ru/public/148387/
  2. Выбор из стандартных предустановленных вариантов компоновки отчета.
  3. Эта кнопка открывает сформированный отчет (табличный документ) в Microsoft Office Excel или Open Office Calc, т.е. в программе, которая ассоциирована для файлов с расширением .xls. Спасибо //infostart.ru/public/103905/

  4. Группа кнопок для управления Периодом. «Выбор периода…», «Предыдущий месяц», «Текущий месяц» и «Следующий месяц». Спасибо //infostart.ru/public/103905/
  5. Добавил нормальное сохранение-восстановление
  6. Суммирование ячеек в отчете, скрин 7
  7. Доработал таки управляемую форму, скрин 8
  8. Доработал регистрацию
  9. Сменил пример запроса для совместимости со всеми конфигурациями
  10. Исправил замеченные шероховатости при скрыть-показать в отчете, поменял вывод кнопок на УФ, сменил версию
  11. Исправил замечания о выборе периода на УФ (не модально), добавил примеры работы с параметрами
  12. В примере добавил работу с таблицей значений
  13. В управляемой форме добавил примеры вызова как встроенного, так и внешнего (искать ВыводОтчета)
  14. Исправил замеченные шероховатости
  15. В УФ появились таки кнопки управления уровнями группировки, полностью по аналогии с обычным приложением, по этому поводу переделал пример запроса и компоновки

Для использования шаблона, вставьте свой макет СКД и назначьте его основным (или поменяйте запрос и настройку компоновки).

Для того чтобы, для различных отчетов созданных на основании данного шаблона, настройки были независимы и не путались — необходимо скопировать — вставить основную форму отчета, назначить новую основной,  старую удалить, убрать 1 в имени.
Данные действия изменят внутренний ID формы. Сохраненные настройки привязываются к отчету по данному ID.

47 Comments

  1. LiOlle

    Бухгалтерия 2.0 (2.0.54.9)

    Ошибка в схеме компоновки данных

    по причине:

    Ошибка получения информации набора данных

    по причине:

    Ошибка в запросе набора данных

    по причине:

    {(9, 2)}: Таблица не найдена «РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты»

    <<?>>РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты

    Reply
  2. ЧИА

    (1) LiOlle,

    Ошибка в схеме компоновки данных

    по причине:

    Ошибка получения информации набора данных

    по причине:

    Ошибка в запросе набора данных

    прочитайте внимательно

    Для использования шаблона, вставьте свой макет СКД и назначьте его основным.

    в данной заготовке используются запросы по УТ 10.3, КА, УПП

    но — Вы можете использовать запросы по БУ

    Reply
  3. Tavalik

    Если сформировать отчет, а потом отобразить параметры или отбор, кнопки сворачивания группировок остаются на месте, хотя Результат смещается вниз. Получается, что кнопки съезжают с нужного места.

    А так здорово, спасибо!

    Reply
  4. ЧИА

    (3) Знаю, боролся (в модуле формы есть следы), частично поборол, но полностью не смог.

    Выложил в таком виде.

    По большому счету, пользователи пользуются один раз настроенным.

    Если смогу побороть, выложу обновление.

    Reply
  5. Tavalik

    1. В управляемой форме, если создаешь новый кнопкой «Открыть новый отчет» пропадает заголовок формы.

    2. Вообще не открывается отчет в WEB-интерфейсе.

    Reply
  6. ЧИА

    (5) Управляемую форму не проверял, пока не шибко специалист. Взято «как есть» из основного шаблона.

    Добавил только вывод в .xls, проверил, работает.

    Reply
  7. DAnry

    Понравилось! Спасибо.

    Reply
  8. ЧИА

    (3) Tavalik,

    кнопки съезжают с нужного места

    исправил, обновил

    ну и просто дошлифовал

    Reply
  9. Akbis

    Добрый день.

    Кажется у вас в отчете существует следующая ошибка —

    есть переменная ГлФорма (заполняется при открытии) и она хранит ссылку на форму, и далее если изменить что-нибудь в отчете (можно даже удалить весь модуль формы (!)) Отчет все равно будет открывать версию, которая осталось у него в памяти. Неприятная ошибка.

    Решается занулением переменной ГлФорма при закрытии

    Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)

    ГлФорма = Неопределено;

    КонецПроцедуры

    Reply
  10. ЧИА

    (9) Akbis, можно было бы и нормально править (

    эта переменная нигде не используется. так, оставил для памяти о борьбе с кнопками управления группировкой.

    Проставил комменты.

    Ну и просто выложил то, что до сих пор раздражало — сохранение-восстановление.

    Reply
  11. ЧИА
    сохранение-восстановление

    кстати, давно искал универсальный механизм подобного )

    теперь буду совать во все свои разработки конечный код

    вот думаю. не выложить ли отдельной публикацией?

    Reply
  12. wunderland

    а если отчет не «за период» а «на дату» ?

    Reply
  13. ЧИА

    (12) wunderland,

    если отчет не «за период» а «на дату» ?

    используете дату конца периода )

    Reply
  14. wunderland

    кое-что допилил в коде и на форме для универсальности… в целом — нормально +

    Reply
  15. BlackStar

    (13) Извиняюсь за глупый вопрос, но как вывести на форму выбор периода отчета?

    В параметрах СКД использую параметр Период типа стандартная дата, вижу что в отчете есть форма выбора стандартного периода, но как ее использовать не могу понять.

    И еще на вкладке дополнительные формы, выбрана форма «ФормаОтчетаУправляемая» и ее нельзя удалить оттуда, так и задумано?

    В целом шаблон хороший, спасибо за работу!

    Reply
  16. vkt

    К сожалению, в интерфейсе «Такси» выглядит не очень. Кнопочки в командную панель не выводятся.

    Reply
  17. BlackStar

    Форма выбора периода оказывается для обычных форм. Было бы хорошо вывести на управляемую форму быстрый выбор периода, используя стандартные функции.

    А если вставить в наало модуля менеджера код типа

    Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    
    
    ПараметрыРегистрации.Вставить(«Вид», «ДополнительныйОтчет»);
    ПараметрыРегистрации.Вставить(«Наименование», НСтр(«ru = ‘Название отчета'»));
    ПараметрыРегистрации.Вставить(«Версия», «1.0»);
    ПараметрыРегистрации.Вставить(«БезопасныйРежим», Истина);
    ПараметрыРегистрации.Вставить(«Информация», НСтр(«ru = ‘Описание отчета'»));
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд,
    НСтр(«ru = ‘Название команды'»),
    «ИдентификаторОтчета»,
    «ОткрытиеФормы»,
    Истина);
    
    ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
    КонецФункции // СведенияОВнешнейОбработке()
    
    Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));
    Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»));
    Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»));
    Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
    Возврат Команды;
    КонецФункции
    
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    КонецПроцедуры
    

    Показать

    То можно использовать как внешний отчет.

    А если вклчюить хранилище настроек для вариантов отчета, то совсем хорошо становится )

    Reply
  18. ЧИА

    Ко всем отписавшимся про такси. Отписался еще в 6 посте.

    Управляемую форму не проверял, пока не шибко специалист. Взято «как есть» из основного шаблона.

    Добавил только вывод в .xls, проверил, работает.

    Как только появятся адекватные навыки и заказчики работающие в управляемых формах, тогда и буду доделывать.

    Все, что я доделывал, появилось не само по себе, а в связи с оплаченными заказами на этот функционал.

    Reply
  19. ЧИА

    (16) vkt,

    К сожалению, в интерфейсе «Такси» выглядит не очень. Кнопочки в командную панель не выводятся.

    Обычную форму я таки основательно переделал, причем 2 раза кардинально. Чтобы самому нравилось. )

    Reply
  20. olegtymko

    Столкнулся со следующей проблемой:

    При формировании СКД, используя внешний источник данных не работает вывод отчета:

    Отрисовать(СхемаКомпоновкиДанных, КомпоновщикНастроек, , ТабличныйДокумент, ДанныеРасшифровки, Истина );
    Reply
  21. olegtymko

    (20) olegtymko, Уже не актуально.

    Reply
  22. Andreyyy

    Что-то не пойму где не так делаю:

    Вставил свою СКД, группировка одна «Детальные записи», если формировать без отбора, то все красиво. Но если включить отбор по любому реквизиту, тогда выводятся две идентичные вложенные группировки.

    Reply
  23. fixin

    не понял, как тут работать с периодом в УФ. изменил использование параметров дата начала и дата окончания на всегда, после этого немного заработало, но то что на форму не вытащены параметры начала и окончания плохо. Решил не допиливать, а поискать другое.

    Reply
  24. ЧИА
    Решил не допиливать, а поискать другое.

    в принципе, пока не понимаю, зачем для управляемых форм делать еще что-нибудь кроме стандартного интерфейса

    для нескольких клиентов делал различные навороты, но клонировать их смысла не вижу

    а вот для обычных форм данный шаблон (судя по количеству скачиваний) уже практически стандарт )

    Reply
  25. ЧИА
    как тут работать с периодом в УФ

    сделал, и не только это

    в общем, довел УФ до ума

    Reply
  26. ЧИА

    (24)

    пока не понимаю, зачем для управляемых форм делать еще что-нибудь кроме стандартного интерфейса

    более близко поработав со стандартными отчетами в УТ11, осознал необходимость )

    Reply
  27. ЧИА

    (27) универсальный и типовой отчеты — это моя первая печаль и разочарование в разработчиках головной конторы

    именно из-за сексуальной связи с ним (куча непредсказуемых глюков) в особо критический момент не выдержал — написал свой

    который мало того что на порядок удобнее пользователю (одно повторение заголовков на каждой странице чего стоит)

    так и существенно надежней

    Reply
  28. ЧИА

    ну и некий комментарий к предыдущему посту

    универсальный и типовой отчеты — это моя первая печаль и разочарование в разработчиках головной конторы

    именно из-за сексуальной связи с ним (куча непредсказуемых глюков) в особо критический момент не выдержал — написал свой

    если бы со стандартными не было проблем, моя разработка не стала бы стандартом по факту (судя по числу скачавших и одобривших)

    по прикидкам, скачало не менее четверти (а то и трети) внедренцев

    Reply
  29. ЧИА

    вот у меня есть не однозначный выбор

    можно добавить из УТ11 форму выбора настроек (там где настраивается выбор видимых реквизитов)

    но — или привязаться к УТ11 или все перенести в модуль внешнего отчета и формы в внешний добавить

    или не делать (

    клиентам пока все равно

    так что как отпишетесь, так и сделаю

    Reply
  30. quares

    «Использование модальных окон в данном режиме запрещено!» При попытке выбора периода в упр. форме.

    Reply
  31. ЧИА

    (31) а в каком режиме запускали?

    Reply
  32. quares

    (32) толстый, конечно же

    Reply
  33. ЧИА

    (33) спасибо, дойдут руки, переделаю

    сообщает, но при этом работает, т.е. не критично

    при формировании предупреждения очищает

    а так, причина понятна

    Reply
  34. ЧИА

    (31) quares,

    «Использование модальных окон в данном режиме запрещено!» При попытке выбора периода в упр. форме.

    переделал

    Reply
  35. AlekSo

    На первый взгляд красиво. Бум пробовать!

    Reply
  36. AlekSo

    Хорошо бы ещё добавить тот кусок командной панели, который есть в стандартных отчётах и содержит кнопки свертывания, развертывания и суммы. А также тот кусок, который содержит кнопки печати и предварительного просмотра. Я у себя добавил ещё одну командную панель (на той уже места нет) между основной и группой работы с датой.

    Reply
  37. dj_serega

    «управляемых форм» тонкого клиента?

    Reply
  38. ЧИА

    (38) dj_serega, работает )

    Reply
  39. ЧИА

    (37) AlekSo, по поводу суммы — отметьте несколько цифр произвольно и посмотрите справа вверху

    а кнопки печати и просмотра и так есть в заголовке окна справа

    Reply
  40. AlekSo

    Суммы увидел, хотя там в стандартном варианте ещё есть как в экселе среднее, максимум, минимум. Собственно я просто предложил добавить стандартные кнопки.

    Ещё в обычной форме в процедуре «ПериодПриИзменении» везде стоит преобразование НачПериода в НачалоДня(НачПериода), а КонПериода в КонецДня(КонПериода). На мой взгляд избыточно. Мне понадобился период со временем, пришлось везде убирать. Не так уж трудно конечно. Достаточно оставить один раз строки преобразования, которые при необходимости легко будет убрать.

    Reply
  41. ЧИА

    (37)

    тот кусок командной панели, который есть в стандартных отчётах и содержит кнопки свертывания, развертывания

    сделал по-другому, думаю, приятнее для пользователя

    Reply
  42. antonio_i

    (11) Для типовых удобно.

    А вот в не типовых и различных отраслевых — не работает.

    Было бы удобно и это предусмотреть, ведь шаблон не подразумевает использование только в каких-то определённых конфигурациях.

    Reply
  43. ЧИА

    (43)

    А вот в не типовых и различных отраслевых — не работает.

    увы

    даже само слово — шаблон — подразумевает — именно использование в типовых конфах

    если есть проблемы в не типовых — пишите в личку — решим )

    Reply
  44. KazanKokos

    (43) не в типовых на общих формах работает. много раз проверял. На управляемых не работает форма настройки. Вызывается форма настройки из БСП а там параметры другие.

    Reply
  45. ЧИА

    (45)

    На управляемых не работает форма настройки

    Странно. более полусотни отчетов только для УТ11 мною сделано на шаблоне, еще и БП3 — пока все работало нормально

    Reply
  46. KazanKokos

    (46) ясно. это акселот. там бсп резанный. жаль. буду искать шаблон с собственной формой настройки.

    Reply
  47. antonio_i

    (46) (47)

    Но можно было бы и перенести используемые типовые механизмы в отчёт. Тогда можно было бы и в различных отраслевых и 1С:Совместно использовать.

    Я просто закомментировал механизм сохранения вариантов, мне пока не нужен.

    Кстати, шаблон не подразумевает привязку к какому — либо решению, тем более вы этого и не указали. Ведь указано шаблон СКД, обычные, управляемые, а всё это есть и в отраслевых, и любых других конфигурациях, т.к. это относится в основном к платформе.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *