Отчет по данным справочников

Публикация № 1105874

Учет и отчетность - Разное

Отчёт СКД ОФ УФ пример разработки

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

Цель данной статьи – продемонстрировать начинающим программистам 1С пример перехода от простых задач к продукту – инструменту. Всё, что для этого требуется – некоторый уровень познаний в среде 1С, способность к абстрактному мышлению (подразумевается её наличие у каждого, претендующего на то, чтобы быть программистом) и отсутствие лени.

Предыстория – волею обстоятельств мне досталась полностью самописная конфигурация на обычных формах и платформе 8.2.19.83. Очень нестандартная. Но пользователей за сотню с придатком и им часто требуется вытаскивать данные, в основном из справочников, во всяких разных вариантах. Других объектов в конфигурации значительно меньше и для них хватает стандартных средств. Как всегда, данные пользователям требуются вчера. Особенно радовали присылаемые в Excel списки, на основании которых нужно было делать выборки. Списки иногда сопровождались условиями по некоторым реквизитам справочников. Да и вид получаемых данных также отличался.

Создав по внешнему отчёту на пару-тройку таких запросов, я задумался об автоматизации. Лень, как известно, двигатель прогресса! В результате получился представляемый ниже продукт, который позволяет решать класс подобных задач в любой конфигурации.

Для начала потребовалось сформулировать задачу в более общих терминах, чем конкретная выборка из конкретного справочника. Задача получения выборки на основе списка была решена ещё в первых отчётах. Для этого использовался универсальный объект 1С – ТабличныйДокумент, в который данные переносились через буфер обмена из Excel. Стандартный подход - цикл по строчкам, формирование списка и передача его в качестве параметра в запрос. Появление дополнительных условий потребовало добавления реквизитов в форму обработки и вмешательства программиста в алгоритм. Задачу же хотелось решить так, чтобы продуктом мог пользоваться продвинутый пользователь.

Отсюда возникла идея сделать ТабличныйДокумент (ТабДок) «умным». На форме отчёта  появился флажок «Имена реквизитов», установка которого означает использование первой строки ТабДока для имён реквизитов справочника. В модуле появился динамически формируемый запрос. Таким образом, стало возможным задавать несколько условий по логическому «И». Жизнь стала легче, форму больше менять не требовалось, как и алгоритм.

Вид отчёта в обычной форме

Поразмыслив над задачей более абстрактно, удалось, используя метаданные конфигурации, снять ограничение на конкретный справочник. Отчёт стал пригодным для выборки элементов из любого справочника. Оговорюсь сразу, что задачу выбирать данные из документов, регистров и т.д. я не ставил. Необходимости не было. Лень – двигатель прогресса? При желании, полагаю, что можно решить и её.

Затем  встал вопрос, достаточно ли одного условия «И».  Пришла идея добавить «НЕ», используя цвета стиля. Благо, такой приём, как динамически формируемый запрос, позволяет легко это реализовать. В результате колонки ТабДока с цветом особого текста будут означать выборку, в которую НЕ входят элементы списка.

По мере повышения уровня абстракции пришлось решить задачу для реквизитов ссылочного типа. В ТабДоке содержится наименование реквизита, а сама ссылка представляет собой 32-х символьную платформенную кракозябру. При формировании списка для подстановки в динамический запрос этот момент учтён, что позволяет использовать значения других справочников и перечислений в качестве условий формирования исходных данных для выборки.

Но для задания условий вроде «все элементы этого списка, у которых значение реквизита А больше 1 000» ТабДок отчёта ещё не подходил. И это стало следующей задачей. В итоге колонки реквизитов типов Число и Дата позволяют задавать условия с использованием символов сравнения – «<», «>», «=». Решать задачу с анализом формата даты, честно говоря, не стал. Оставил её для обладающих более высоким уровнем абстракции и меньшим уровнем лени. Показалось проще задавать дату в том формате, в котором 1С преобразовывает значение в дату стандартными средствами, а именно «ггггммдд». С гибкостью отчёта по входными данным ситуация меня устроила. На скриншотах приведены примеры разных результатов работы отчёта при разных входных условиях по данным типа "Дата":

 

 

 

 

 

 

 

 

 

Далее встала задача разнообразить выходные данные. Нашлось следующее решение – подключение к данному отчёту других внешних отчётов на СКД. Алгоритм тут универсальный, неоднократно ранее прописанный: получение объекта типа ВнешнийОтчет, получение СхемыКомпоновкиДанных, её компоновка и вывод. Выводить было решено в другой ТабДок формы первого отчёта. Второй отчёт при этом подходе скрыт от пользователя, но данные формируются именно  по его схеме компоновки данных.

Чтобы решение работало, подключаемые отчёты должны обладать следующими свойствами: наборов данных должно быть два, из которых первый типа Объект (в него передаётся выборка данных первого отчёта, содержащая только одно поле «Ссылка» и сформированная динамическим запросом на основании ТабДока с исходными данными) и второй - любого типа. Второй набор данных должен быть связан с первым по полю «Ссылка». Всё!  Для удобства приложен пример «скрытого» отчёта «ОтчётВнутри.erf», который можно скопировать, чтобы он подключался, а менять впоследствии только запрос и настройки его второго набора данных.

Таким образом, на каждое новое представление выходных данных можно создать свой отчёт на СКД, что делается достаточно быстро и подключить его как файл к первому отчёту. Лучшего способа разнообразить выходные данные найти не удалось, но, вероятно, это возможно. Если кому-то из читателей удастся это сделать, то поделитесь. Что касается моих задач, то выбранный способ вполне пригоден для их решения и достаточно удобен. Если создать несколько отчётов на СКД для представления выходных данных в разных видах, то отчёт становится пригодным для обычного пользователя.

Поразмыслив и потратив ещё немного времени, я переделал отчёт и под управляемые формы:

Отчёт для УФ тестировался на платформах 8.3.11.2867, на стандартной конфигурации УНФ 1.16.15.39 и на 8.3.15.1489 на стандартной БП 3.0.71.89.

Представленный продукт не претендует на глобальную универсальность, его можно брать за основу и развивать далее. В коде сделаны комментарии, позволяющие быстрее понять смысл написанного. Развитие может быть, например, в виде добавления фильтров по дополнительным реквизитам. В 8.2. их не было, а в управляемых формах я этого делать пока не стал. А можно и не брать отчёт, создав собственный базовый продукт. 

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

В архиве - отчёты на ОФ и УФ, а также образец подключаемого отчёта.

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

Наименование Файл Версия Размер
Отчёт по данным справочников:

.zip 21,06Kb
1
.zip 21,06Kb 1 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. khomkolov 09.08.19 14:03 Сейчас в теме
Возможно, я чего-то не уловил, но чем не подошел универсальный отчет из БСП?
2. user925427 80 09.08.19 14:27 Сейчас в теме
Тем, что рабочая конфигурация нестандартна, на старой платформе, без БСП. Решение пришлось искать "на лету". Получился отчёт, на примере которого решил показать способ создания продукта самому. Не более того.
Оставьте свое сообщение

См. также

Отчет (табличный документ) для пользователей по сохраненному запросу Промо

Разное v8 1cv8.cf Абонемент ($m)

Написано по просьбе продвинутого клиента. Суть - формирует отчет (табличный документ) по запросу, который написан в консоли запросов и из нее сохранен в файл *.sel. Если надоело писать отчет под каждый чих пользователей, выдаете им это творение и в дальнейшем только пишете и раздаете запросы.

1 стартмани

11.08.2013    21036    27    dmbal    6    

Кредитный калькулятор

Разное Финансовые v8 Финансовые услуги, инвестиции Абонемент ($m)

Коллеги, вашему вниманию предлагаю свою версию кредитного калькулятора. Обработка содержит процедуры и функции для расчета графика аннуитетных платежей, графика выплат по сбережениям, эффективной процентной ставки.

1 стартмани

11.09.2020    1283    4    WalterFOX    1    

Отчет по регистру остатков и оборотов с отбором по полю регистратора

Разное v8 v8::СКД 1cv8.cf УУ Абонемент ($m)

Пример расчета остатков и оборотов с отбором по произвольному полю регистратора.

1 стартмани

05.05.2020    2908    7    kassbar    0    

Универсальная форма списка журнала документов в 1С (обычные и управляемые формы)

Разное v8 v8::УФ 1cv8.cf Абонемент ($m)

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

2 стартмани

10.04.2020    1857    8    Denr83    0    

Универсальный отчет (с ограниченным списком разделов учета) Промо

Разное v8 КА1 УПП1 Россия Абонемент ($m)

В типовой конфигурации роли Пользователь, которая обязательно должна быть у каждого пользователя, доступен и универсальный отчет, и право на чтение многих коммерческих регистров!

1 стартмани

04.09.2013    18914    11    adhocprog    1    

Разбиваем отчет на СКД на отдельные табличные документы, потом склеиваем "на лету"

Разное v8::СКД ДО Абонемент ($m)

Раздельный вывод отчета на СКД в произвольное количество табличных документов по нашим границам, установленным в группировках.

1 стартмани

21.02.2020    2502    0    bpirate999    1    

Конфигурация "Помощник по английскому"

Разное v8 Абонемент ($m)

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

1 стартмани

25.12.2019    5845    23    John_d    21    

Заполнение отбора любого отчета списком номенклатуры

Разное Управленческие Бухгалтерские v8 1cv8.cf УПП1 Россия БУ УУ Абонемент ($m)

Внешняя обработка для автоматического заполнения номенклатуры в отбор любого отчёта.

5 стартмани

23.09.2019    4363    5    T-1000    4    

Калькулятор плей-офф чемпионата Европы 2012 по футболу Промо

Разное v8 1cv8.cf Россия Абонемент ($m)

Прикинуть расклад, возможные пары команд в 1/4, полуфиналах и финале поможет калькулятор.

1 стартмани

01.05.2012    20579    18    samamoiloff    19    

Дни рождения контактных лиц. УНФ 1.6

Управление взаимоотношениями с клиентами (СRM) Разное v8::УФ УНФ УУ Абонемент ($m)

Обработка для УНФ 1.6 выводит список контактов и дату ближайшего дня рождения. Работает как "напоминалка". Можно вывести на начальную страницу. Имеется возможность вывести список на печать.

1 стартмани

18.09.2019    4230    7    Neuroproton    0    

Юбиляры по стажу (форма K-05) для ЗУП 3.1

Разное Управление персоналом (HRM) v8 ERP2 ЗУП3.x Россия Абонемент ($m)

Отчет "Юбиляры по стажу" форма К-05 для ЗУП 3.Х . Есть возможность сделать кратно 5 и 10.

1 стартмани

12.09.2019    3911    4    graphbuh    0    

Юбиляры по возрасту (форма К-04) для ЗУП 3.Х

Разное Управление персоналом (HRM) v8 v8::СПР ERP2 ЗУП3.x Россия Абонемент ($m)

Отчет "Юбиляры по возрасту", форма К-04, для ЗУП 3.Х. Возможность выбора, с какого возраста начинается юбилей (возраст больше чем...). По умолчанию юбилей считается больше 50 лет и кратно 5. Есть возможность сделать кратно 10.

1 стартмани

12.09.2019    3628    5    graphbuh    1    

Возраст, дата рождения и знак Зодиака физических лиц (БП 3.0)

Разное Управление персоналом (HRM) v8 v8::БУ v8::УФ БП3.0 Абонемент ($m)

Хотите узнать, на что способны ваши сотрудники согласно астрологии? Тогда этот отчет для Вас. Для конфигурации Бухгалтерия предприятия 3.0.

1 стартмани

08.09.2019    4609    3    Ant10    0    

Дневник давления

Разное v8 Здравоохранение, медицина, стоматология Абонемент ($m)

Выполняем указания врача и набираем для него статистику показаний.

1 стартмани

05.09.2019    4835    1    Infector    3    

Печать штрихкодов

Разное Учет ТМЦ Учет ТМЦ v8 УПП1 Абонемент ($m)

Отчет предназначен для печати штрихкодов продукции.

1 стартмани

13.08.2019    3387    3    smallbuk    2    

Список клиентов, дни рождения которых приходятся на заданную дату, для Альфа-авто 4

Разное Управление взаимоотношениями с клиентами (СRM) Управление взаимоотношениями с клиентами (СRM) v8 1cv8.cf Автомобили, автосервисы Россия УУ Абонемент ($m)

Отчет выводит список клиентов, у которых сегодня (или на заданную пользователем дату) день рождения. Для Альфа-авто 4.

1 стартмани

01.08.2019    3655    0    user702718_vnataliam    0    

Прикрепленные файлы в отчете "Связанные документы"

Разное Документооборот и делопроизводство Документооборот и делопроизводство v8 УТ11 Россия УУ Абонемент ($m)

Расширение для УТ 11.4. В отчете "Связанные документы" добавлен функционал индикации наличия у документов прикрепленных файлов.

1 стартмани

04.07.2019    4888    3    korelski    2    

Контактная информация контрагентов

Разное v8 1cv8.cf УНФ ERP2 БП3.0 УТ11 УХ Абонемент ($m)

Отчет по контактной информации, для типовых конфигураций УНФ 1.6 (релиз 1.6.16.204), УТ 11 (релиз 11.4.6.200), БП 3.0 (релиз 3.0.67.63)

1 стартмани

13.03.2019    14742    22    Alexsisit    0    

Графический отчет скоростного и температурного режимов (AXELOT TMS 3)

Разное v8 1cv8.cf Россия Абонемент ($m)

Внешний отчет для анализа данных по скоростным и температурным датчикам для конфигурации TMS Управление транспортом и перевозками версия 3.0.

1 стартмани

01.03.2019    4402    0    miha-28    0    

[Расширение] БП 3.0. Универсальный отчёт (по метаданным), как было до релиза 3.0.65

Бухгалтерские Разное v8::БУ v8::УФ БП3.0 Россия БУ Абонемент ($m)

В релизе БП 3.0.65 1С просто удалила привычный "Универсальный отчёт". Стало понятно, что он больше не вернётся. А пользователям надо как-то жить, пока сопровожденцы сделают настройки к "новому" не юзер-френдли отчёту. Расширение поможет в БП ПРОФ, БП КОРП и их производных, например, в БСХП, решить данную проблему. Отчёт просто возвращается к жизни! Все настройки работают так, словно он никуда и не исчезал.

1 стартмани

13.02.2019    5150    13    Y_U_S    3    

Знакомство с сотрудниками

Разное Управление персоналом (HRM) Управление персоналом (HRM) v8 КА1 ЗУП2.5 УПП1 УУ Абонемент ($m)

Отчет для тренировки памяти. Запоминаем, как выглядят сотрудники организации, как их зовут, должности.

1 стартмани

29.01.2019    7958    2    SITR-utyos    8    

Ближайшие дни рождения сотрудников

Управление персоналом (HRM) Разное Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Абонемент ($m)

Обработка для ЗУП 3.1, показывающая ближайшие и остальные дни рождения в удобном формате.

1 стартмани

06.01.2019    5137    4    rid636674    1    

Отчет по исполнителям в шаблонах процессов

Разное v8::СКД ДО Абонемент ($m)

Отчет отражает исполнителей в шаблонах процессов. Если в исполнителе шаблона указана роль, то система показывает и пользователей этой роли и саму роль.

1 стартмани

11.12.2018    4189    3    Vaganov_Alexey    0    

Получение родителей верхних уровней отчетом на СКД

Разное v8 v8::СКД БП3.0 УТ11 Россия Абонемент ($m)

Выводит данные по группам верхних уровней по иерархии номенклатуры. Можно выбрать число верхних групп.

1 стартмани

05.10.2018    6847    8    3s7    2    

Вывод списка сотрудников с приближающимися днями рождения

Разное Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Абонемент ($m)

Списки сотрудников с приближающимися днями рождения. ЗУП 3.1.

1 стартмани

05.10.2018    5119    3    НЕЛ    5    

Коды весовых товаров (SKU). 1С: Розница

Разное Розничная торговля Розничная торговля v8 Розница УУ Абонемент ($m)

Дополнительный отчет для фасовщиков по кодам весовых товаров SKU.

1 стартмани

14.09.2018    6710    10    tatoshka0403    2    

Внешний отчет с выводом изображений номенклатуры. Розница 2.2

Разное Учет ТМЦ Учет ТМЦ v8 v8::СКД Розница Россия УУ Абонемент ($m)

Отчет на СКД для конфигурации Розница 2.2, с выводом изображений номенклатуры в отчет. Внешний, запускать через открыть файл.

5 стартмани

24.08.2018    6230    1    mp40    0    

Журнал документов, созданных пользователем (УТ 11.4, БП 3.0)

Разное v8 v8::УФ v8::СКД БП3.0 УТ11 Абонемент ($m)

Данный отчет формирует список документов, созданных выбранным пользователем базы за определенный период. Для конфигураций Управление торговлей 11.4 и Бухгалтерия предприятия 3.0.

1 стартмани

15.08.2018    8117    13    Ant10    0    

Страновой отчет для иностранных организаций в ЗУП

Разное Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

В марте выпустили "закон" о предоставление страновой отчетности иностранным компаниям... Выкладываю отчет, который работает на базах версии 3. Проверено только на версиях ЗУП 3.1.6. Платформа 8.3.10.2580 и выше.

1 стартмани

22.06.2018    7378    12    user790109    3    

Диаграмма продаж по группам номенклатуры.

Работа с интерфейсом Разное Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf Абонемент ($m)

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

1 стартмани

21.06.2018    9334    7    needmic    4    

Статистика работы пользователей

Разное v8 УНФ ERP2 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Отчет показывает, сколько документов по каждому виду каждый пользователь ввел за период. С группировкой по дням, неделям, месяцам и годам.

1 стартмани

09.06.2018    8300    37    MuI_I_Ika    11    

Ближайшие дни рождения в ЗУП 3.1 - решение без доработки кода

Управление персоналом (HRM) Разное Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Абонемент ($m)

Организация периодической рассылки списка грядущих дней рождений сотрудников.

1 стартмани

14.03.2018    11939    13    Nefertary    3    

Отчет по истории задач в OTRS

Разное v8 v8::СКД 1cv8.cf Россия Абонемент ($m)

Данный отчет позволяет формировать историю задач в OTRS за определенный период через 1С.

1 стартмани

30.10.2017    10547    15    spp28    2    

Отчет "Движения документа" (УТП для Украины)

Разное v8 1cv8.cf Украина Абонемент ($m)

В стандартной поставке конфигурации УТП для Украины отчет по движениям документа не имеет настройку по закрытию групп движений по регистрам. Каждый раз при открытии отчета с большим количеством движений пользователю приходится перелистывать кучу информации в низ по списку для поиска нужных сведений. Например, по регистру партии товаров на складах. После нахождения документа партии, пользователь копировал номер накладной и в отчете по партиям находил нужный документ, который сформировал себестоимость номенклатуры. Находить документы таким способом очень сложно для большого количества номенклатуры в документе, а особенно когда это надо сделать быстро. Именно для этого и нужен этот отчет, который заменит старый в конфигурации УТП для Украины.

1 стартмани

22.08.2017    10537    1    yarsort    5    

Отчет "Наличие свойств у документов"

Разное v8 УТ10 Абонемент ($m)

Данный отчет предназначается для просмотра на наличие свойств у вида документа. Для УТ.

1 стартмани

25.07.2017    9731    1    serg-lom89    0    

Отчет "Сдвиг актуальности" (по данным регистра "Версии объектов")

Разное Анализ учета v8 1cv8.cf Украина Абонемент ($m)

Отчет по версиям объектов с указанием разницы между датой объекта и датой версии, возможностью группировки по авторам, типам объектов, месяцам.

1 стартмани

04.06.2017    9558    0    an77    0    

Движения документа по регистрам

Разное Обработка документов Зарплата Управление персоналом (HRM) Учет рабочего времени Зарплата Управление персоналом (HRM) Учет рабочего времени v8::СПР ЗУП3.x БУ Абонемент ($m)

В конфигурации ЗУП 3.0 и 3.1 нет кнопки просмотра движений документа, поэтому сделал данный отчет о движениях документа по регистрам.

3 стартмани

12.04.2017    13353    17    NNNN    10    

Дни рождения сотрудников

Разное Управление персоналом (HRM) Управление персоналом (HRM) v8 УПП1 Россия Абонемент ($m)

Внешняя обработка, которая выводит в ТЧ дни рождения актуальных (работающих) сотрудников и возраст.

1 стартмани

06.04.2017    9581    4    selv    0    

Дни рождения и юбилеи сотрудников для ЗУП 3.1

Разное Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Абонемент ($m)

Внешний отчет "Дни рождения и юбилеи сотрудников" для ЗУП 3.1, готовый для использования в подсистеме "Рассылка отчетов".

1 стартмани

17.03.2017    14130    56    OlegBog1971    10    

Получение кода КЛАДР из представления адреса контактной информации

Разное v8 1cv8.cf Россия Абонемент ($m)

Получение кода адресного классификатора КЛАДР из текстовой информации, хранящейся в регистре сведений КонтактнаяИнформация, которая получается заполнением из этого самого классификатора.

1 стартмани

14.11.2016    14466    22    VanDiesel1    1    

Календарь с данными регистра накопления (универсальный)

Разное v8 1cv8.cf Россия Абонемент ($m)

Календарь на месяц с данными произвольного регистра накопления

2 стартмани

30.10.2016    11798    25    veretennikoff    1