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








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

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

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

Как база было взято решение //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 не будет опубликован. Обязательные поля помечены *