Вывод двух независимых таблиц в отчёте средствами СКД
Платформа:
Конфигурация:
Возникла задачи создать отчёт по взаиморасчётам с контрагентами в валюте взаиморасчётов с выводом таблицы курсов валют на текущую дату. Отчёт, разумеется, должен быть реализован с помощью системы компоновки данных.
Ниже приведён алгоритм создания подобного отчёта.
1. Создать новый отчёт, открыть основную схему компоновки данных.
2. Добавить 2 набора данных типа «запрос». В первом наборе данных будем получать данные по взаиморасчётам, во втором — курсы валют.
Важно! Псевдонимы полей запросов не должны повторяться.
3. На вкладке «Настройки» создать новую группировку без заполнения значения «Поле».
4. Настроить список полей для вывода первой таблицы (Курсы валют).
5. Повторить пп.3 и 4 для второй таблицы (Взаиморасчёты).
6. Сохранить отчёт.
В результате сформированный отчёт будет иметь подобный вид:
Источник
Две схемы СКД в одном отчете с пользовательскими параметрами
В инете множество примеров отчетов на нескольких схемах компоновки. Но не встречал вариантов с работающими пользовательскими параметрами, т.к. для корректной работы схем в компоновщик загружаются настройки по умолчанию. При загрузке в компоновщик настроек по умолчанию загружаются также и параметры по умолчанию, что не дает возможности указать их в пользовательских настройках(указанные параметры будут скидываться на параметры по умолчанию).
Суть идеи в том, чтобы загружать настройки по умолчанию только при выборе другой схемы.
Пример реализации ниже:
Создаем два реквизита(булево). Реквизит Изменение выносим на форму — для смены Схемы компоновки.
Соответственно создаем два макета, например я использовал в тестовой конфе следующие:
Код модуля формы:
Код модуля объекта отчета: Процедура ПриКомпоновкеРезультата ( ДокументРезультат , ДанныеРасшифровки , СтандартнаяОбработка )
СтандартнаяОбработка = Ложь; Если Изменение Тогда СхемаКомпоновкиДанных = ПолучитьМакет ( «Макет» ); Иначе СхемаКомпоновкиДанных = ПолучитьМакет ( «ОсновнаяСхемаКомпоновкиДанных» ); КонецЕсли;
// Загружаем настройки по умолчанию, только если изменили Схему компоновки Если ПроверкаНаИзменение Тогда КомпоновщикНастроек . ЗагрузитьНастройки ( СхемаКомпоновкиДанных . НастройкиПоУмолчанию ); КонецЕсли;
Т.е. в процедуре ПриКомпоновкеРезультата() выбираем макет компоновки (если на форме установлена галка в реквизите Изменение, то выбирается схема компоновки Макет, иначе Основная схема).
В модуле формы пишем в реквизит ПроверкаНаИзменение, когда соответственно изменяем галку на форме. При каждом формировании отчета сбрасываем это значение в ложь, чтобы загружать настройки СКД по умолчанию только когда меняется схема.
Результат: работающие пользовательские параметры при смене схемы компоновки
Заранее извините, если баян, велосипед и т.п., 🙂
Источник
Как вывести в СКД две независимые таблицы, объединенные одним полем
Разбираться будем на упрощенном примере. Исходные таблицы и нужный результат на рисунке
Для начала создадим в СКД 3 таблицы:
1) Контрагенты+Номер. В этой таблице будет дополнительная колонка «Номер», по которой будет в дальнейшем объединение всех таблиц. В моем примере я создам эту таблицу вручную, в реальной жизни можно использовать создание нумерации запросом, с нужной глубиной.
2) Контрагенты+Договоры. Здесь и в следующей таблице нумерация также сделана упрощенно. В реальных запросах нумерацию справочников можно выполнить во временной таблице. Например, как описано в этой статье Нумерация строк в запросе.
Настраиваем схему вывода с помощью детальных записей. В вашем запросе это могут быть любые нужные группировки.
И получаем результат
Вложил пример отчета с описанной выше схемой СКД.
И вот, нужный нам результат
Скачать файлы
Наименование
Файл
Версия
Размер
Специальные предложения
(9) Вариант хороший, но есть одна тонкость. Поля в разных колонках могут не совпасть, если есть пустые значения. Например, есть договор 1, 100 руб. договор 2, 0 руб. договор 3, 150 руб.
Если выводить через массив или ТЗ, то СКД выведет примерно так: Договоры | Суммы договор 1 | 100 руб. договор 2 | 150 руб. договор 3 |
Поэтому я и написал, что когда полей много, то с выводом приходится заморачиваться. Либо я чего-то не знаю))
(11) Это все решаемые частности)) К тому же прямо противоречат названию темы, все таки это связанные поля))
Прилепил скд с двумя полями.
Прошу прощения, но на мой взгляд заголовок и описание статьи не соответствуют ее содержанию. По сути вся соль решения заключается в правильной подготовке данных запросом, СКД здесь никоим образом не участвует, а используется лишь для вывода данных. Тот же прием применим как для обычной консоли запросов, таки и для формирования печатной формы — меняется лишь способ вывода результата запроса.
Кажется, что стоило больше заострить внимание на нумерации данных в запросе и привести более «жизненный» пример, а не нумеровать записи «вручную».
Обновление06.06.19 11:21
См. также
Редактирование текстов интерфейса … Промо
Редактирование текстов интерфейса … (перевод интерфейса конфигурации на другой язык английский – немецкий – китайский – японский и многие другие). У вас есть стандартная конфигурация, в которой надо перевести интерфейс на другой язык, легко! А вот со справкой придется немного помучаться. Просьба не путать с данными, которые хранятся в реквизитах объектов.
26.06.2012 40479 Nykyanen 39
Семеро одного не ждут? Асинхронное исследование асинхронности
Все уже, наверное, знают о появлении в новых версиях платформы асинхронных функций и конструкций Асинх/Ждать. Многие, возможно, уже их используют. Но что будет, если создать свои асинхронные функции, запустить и не дожидаться окончания их выполнения? Неужели можно запустить несколько процессов параллельно?
08.06.2021 5497 Alxby 45
Библиотека программного изменения формы (УФ)
Нам часто приходится дорабатывать различные управляемые формы. Проще внести изменения непосредственно на самой форме, но, для дальнейшего поддержания конфигурации, удобнее вносить все изменения на форме программно. Предлагаю Вам библиотеку для программного изменения управляемых форм, которую можно внедрить в конфигурацию либо совсем бесшовно, либо практически бесшовно.
07.08.2020 6926 BuriyLesha 19
Настройка колонок для вывода в отчет
Иногда возникает задача вывести в отчет по запросу не все колонки, а только определенные.
12.07.2020 4093 user847462 2
Приятная глазу цветовая схема 1С 8.х Промо
Несколько цветовых схем для встроенного языка 1С, которые минимизирует нагрузку на глаза, за счет чего повышается производительность!
26.03.2012 71424 NDM 126
Сохранение настроек колонок
Сохранение настроек колонок табличных полей. Получение имени формы из модуля формы. Для обычных форм.
10.07.2020 1516 Arc 1
1С+Firebase. Оперативное отображение информации
Появилась задача по отображению информации из базы в «режиме реального времени» с возможностью масштабирования количества подключенных клиентов (неплохо бы уметь подключаться с мобильных устройств), плавающей нагрузкой и минимальными затратами на разработку без изобретения сложных велосипедов. В уме довольно быстро всплыло «Firebase». Далее небольшой опыт реализации взаимодействия с Firestore для раскрашивания объектов карты.
06.04.2020 3391 oyti 0
Управление состоянием для шаблона MVC и работы с данными объекта
Пользователи хотят интуитивно понятный и отзывчивый интерфейс, программистам нужен ни менее богатый программный интерфейс, бизнесу нужно быстрое и дешевое решение, которое бы гарантировало корректные данные и отсутствие мусора. В статье представлено решение для декларативного описания зависимостей данных и работы формы.
18.03.2020 4255 kalyaka 35
Генерация управляемой формы на основе обычной (proof of concept)
В статье рассматривается техническая возможность автоматизированной генерации управляемой формы на основе обычной.
06.11.2019 9160 user700211_a.straltsou 28
«Живые» картинки со Snap.SVG
В статье рассмотрен пример использования http-сервисов для визуализации данных
24.10.2019 15160 blackhole321 7
Полное копирование одной формы в другую
Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде «покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал». Тем не менее, мне стало интересно, как это можно сделать.
03.10.2019 8060 nekit_rdx 25
Еще один способ программной модификации управляемых форм
Пример программной модификации управляемой формы для случая когда вызов метода СобытияФорм.ПриСозданииНаСервере разработчиком конфигурации не предусмотрен.
03.09.2019 5105 infosoft-v 15
Изменяющееся контекстное меню в 1С 8.3
В одной практической задаче мне пришлось разрабатывать контекстное меню таблицы управляемой формы, которое должно было меняться в зависимости от данных, находящихся в этой таблице. Ниже приведен мой способ решения этой задачи.
06.08.2019 22597 signum2009 16
Совместное использование 1С:Сервер взаимодействия и Документооборот 8 КОРП, редакция 2.1.13 — Уведомления для рабочего стола
С версии ДО 2.1.13 в программу встроена подсистема Обсуждения. Данная подсистема позволяет производить уведомление пользователей без необходимости открытия программы.
18.06.2019 15164 ilya.rudziak 10
Изменение реквизитов существующих объектов (документов) 1С без сохранения
При решении очередной задачи столкнулся с тем, что менеджерам (сотрудникам) необходимо часто менять реквизиты существующих объектов. Это дополнительные реквизиты или сведения объектов. При этом действия менеджеров не должны приводить к перепроведению документов или пересохранению объектов, т.к. изменения могут быть в закрытых периодах. Изменение данных в реквизитах должны быть доступны в закрытых периодах и не влиять на финансовые и бухгалтерские данные.
14.06.2019 7791 BraunAlex 9
Искусственный интеллект для змейки. Часть 1: Кратчайший/длиннейший путь, Гамильтонов цикл
Различные варианты алгоритмов для игры «Змейка».
07.06.2019 8321 Alex_YAM 2
Табличная часть из дополнительных реквизитов с обработкой событий в расширении
Эмуляция табличной части с помощью дополнительных реквизитов и расширения. Подход применим к любой конфигурации на управляемых формах с БСП и режимом совместимости, допускающим использование расширений. Весь код в статье.
13.05.2019 13382 mvxyz 17
Вывод вариантов СКД в таблицы на управляемой форме
Задача стояла такая: есть 2 различных запроса, результаты которых выгружаются на форму обработки в таблицы значений (далее ТЗ) и программно «соприкасаются» между собой определенным образом (как именно- в рамках данной статьи неважно). Нюанс в том, что запросы должны иметь свой компоновщик настроек и могут интерактивно на форме изменяться пользователем. На оригинальность публикации не претендую — изначально в рамках поставленной задачи пытался найти что-то подобное (уже готовый шаблон) на инфостарте, возможно «плохо искал» 😉
05.04.2019 13262 artkor 1
Поиск по дереву значений рекурсией, методом НайтиСтроки(), с помощью СКД. Вывод результата поиска в отдельную таблицу. Активация строки в дереве значений при выборе в таблице
В данной статье рассматриваются три способа поиска по дереву значений, отображённому на форме (ДанныеФормыДерево), с дальнейшим выводом результата в таблицу и возможностью перехода к строкам дерева при выборе в таблице. В статье приведены пошаговые примеры реализации всех трех способов.
29.10.2018 16052 Vyacheslav_Kochnev 3
Управление состоянием формы через конечный автомат
Взаимодействие пользователя с интерфейсом приводит к изменению состояния формы и её элементов. Элементы отражают текущее состояние формы через свойства: видимости, доступности, оформления, текста заголовка и т.д. Даже при небольшом количестве элементов количество возможных состояний формы может быть достаточно большим. Необходимость учета всех состояний формы порождает сложные алгоритмы настройки элементов. В статье рассматривается алгоритмическое решение перехода к состоянию формы с использованием функционального подхода на основе декларативного описания
19.06.2018 16370 kalyaka 37
Отборы (поиск) в табличной части либо таблице значений (управляемые формы)
В управляемых формах для нас доступен мощный ресурс работы с динамическими списками посредством СКД — отборы, сортировки и далее. Но вот табличная часть (таблица значений) на управляемой форме не позволяет работать так гибко. Мы можем научить пользователей пользоваться комбинацией клавиш «Ctrl+F», но давайте немного упростим жизнь и позволим нашим пользователям настраивать отборы (осуществлять поиск) по табличной части прямо в нашем окне.
22.03.2018 63551 Kim1C 22
Шаблон MVC для управляемого интерфейса
Мы воспринимаем как что-то само собой разумеющееся интуитивно понятный интерфейс, мгновенно реагирующий на наши клики, подстраивающийся под уже сделанный нами выбор. А между тем за этой возможностью — решение серьезных алгоритмических задач. В общем случае решения этих задач уже найдены, но проблема их конкретного применения остается как для выбранного окружения (веб-браузер, экран мобильного телефона, компьютер), так и возможностей языка программирования. В следующей статье представлено одно из таких применений общего решения на основе шаблона MVC для 1С в сочетании с возможностями управляемых форм и декларативного описания интерфейса.
14.03.2018 20884 kalyaka 37
Случайность, совпадение, закономерность. Генератор случайных чисел
Объект ГенераторСлучайныхЧисел удобно выдает случайные числа в заданном интервале значений. Исследование особенностей, рассуждения на тему случайных чисел, практика применения. Увлекательно в игровой форме можно исследовать работу генератора случайных чисел.
20.01.2018 40955 Ликреонский 59
Варианты отображений свертываемых групп
Как пользователю только одним внешним видом сказать «Тут есть нужные данные. Только нажми». Используем разные варианты свертываемых групп.
19.12.2017 21135 Kim1C 12
Размеры управляемой формы
Как рассчитать ширину и высоту управляемой формы или отдельного элемента, чтобы адаптировать интерфейс программно при их изменении.
08.10.2017 29882 json 9
Пишем игру 21 (очко). Пример использования 1С и ActiveX
Пишем игру «очко». Программный код состоит из двух частей: 1.Разработка компоненты работы с графикой на Delphi 2.Логическая реализация игрового процесса на 1С
23.05.2017 20626 user621724_Dimav1979 17
Добавление отчета на панель
В очередной раз разработчики 1с поправили УТ и непонятно стало, как добавлять отчеты на панель. Метод получился самый простой из всех , что я видел ( http://infostart.ru/public/87945/, http://infostart.ru/public/91729/, http://chistov.spb.ru/forum/26-1766-2 (при подготовке к спецу видел 10 способов, но они уже не актуальны, да и сложны)).
15.01.2014 27005 dobrynin.i.s 11
Условное оформление таблицы управляемой формы
Динамический список – замечательный элемент управления, который предоставляет пользователю широкий спектр настроек, от всевозможных отборов до условного оформления. Но что делать, если в поставленной задаче использовать список невозможно, а заказчик отказывается принимать проект без возможности настройки условного оформления. В статье будет рассмотрено одно из возможных решений для таблицы формы.
17.05.2013 40800 akomar 6
Уровни группировок в отчете СКД в управляемых формах
Сверуть и развернуть группировки можно через контекстное меню, горячими клавишами, можно разместить соответствующие кнопки на форме отчета как описал mxm2, но мы пойдем другим, более информативным путем.
08.05.2013 22502 Pralva 16
Кнопки сворачивания и разворачивания группировок в отчете СКД в управляемых формах
Сверуть и развернуть группировки можно через контекстное меню, горячими клавишами, а можно разместить соответствующие кнопки на форме отчета. Как оказалось, для этого не нужно ни строчки кода.
10.04.2013 49784 mxm2 9
Программная настройка рабочего стола или Как на лету добавить скрыть, подменить формы.
Долгожданная возможность программно управлять составом форм рабочего стола! Публикация написана новичком для новичков, гуру 1С просьба не судить строго.
07.11.2012 35619 NittenRenegade 12
1С:Предприятие 8.2. Управляемая Форма. Меняем иконку рабочего стола.
Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: «Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях — это ускорит и освоение конфигураций и повседневную работу пользователей с ними.» Но все же можно попытаться ее сменить.
28.09.2012 30336 ghostaz 39
Нестандартная расшифровка СКД или расшифровка одного отчета СКД при помощи другого отчета СКД установкой пользовательских настроек (в управляемых формах, методика + пример для УТ11)
Если требуется расшифровка одного отчета СКД при помощи другого отчета СКД, можно использовать представленный вариант. Казалось-бы все просто, однако дело усложняется тем, что с одной стороны, нужно предусмотреть разделение функционала между клиентом и сервером, с другой, нет достаточно четкого описания поведения передачи параметров расшифровки. В итоге: все решается «элементарно», но чтобы дойти до этого, лично мне пришлось убить уйму времени, так что экономьте своё ))). Под «нестандартной расшифровкой» имеется ввиду расшифровка данных одного вида отчета — другим видом, отличным от первого (с предварительной установкой нужных параметров и отборов в отчете-расшифровке).