как вывести период на форму отчета 1с с помощью скд
Вывод параметров отчета на СКД на обычную форму 1С
При создании отчетов с помощью системы компоновки данных (СКД) удобно выводить параметры отчета (хотя бы наиболее часто используемые) на форму, чтобы не заставлять пользователя копаться в стандартном окне настроек СКД.
Рассмотрим как это можно сделать на обычных формах 1С. Сразу оговоримся, что в этой статье будет рассматриваться именно вывод параметров на форму, т.е. сами параметры в СКД уже должны быть созданы.
Существует два способа вывода параметров СКД на обычную форму:
Таблица настройки параметров, выводимая на форму, аналогична таблице настройки параметров, генерируемой средствами СКД. Для ее вывода на форму нужно создать элемент управления ТабличноеПоле, у которого в свойстве Данные указать КомпоновщикНастроек.Настройки.ПараметрыДанных
При этом пользователю будут показаны все параметры СКД, у которых не установлено ограничение доступности.
Однако, в ряде случаев этот способ может показаться не столь красивым и не очень удобным для пользователя. Рассмотрим, как вывести на форму параметры СКД по отдельности в виде обычных полей ввода.
Процедура ПараметрыПриИзменении ( Элемент )
Как в 1С добавить период в отчет сделанный с помощью СКД
Самый простой и быстрый способ создать отчет в 1С это воспользоваться СКД (Системой компоновки данных). Это очень популярный а самое главное очень удобный инструмент, по сути для того чтобы создать отчет с помощью СКД даже не нужно знать 1С программирование. Так как у системы компоновки данных есть графический интерфейс. В сегодняшней статьи поговорим о добавление периодов. Т.е добавим возможность отбора за определенный промежуток времени. Данная возможность должны быть в любом нормальном отчете.
Я хоть и не являюсь гуру программистом 1С, но все же имею кое какой опыт и стараюсь им поделиться в своих небольших статьях, с теми кто в этом нуждается, поэтому рекомендую прочитать следующие статьи.
Добавление периода в СКД
И так добавить отбор по периоду можно в самом запросе, если открыть вкладку «Условия». Нажимаем на плюсик, выбираем дату документа, указываем что условие будет «Между» и пишем названия полей «ДатаНачала» и «ДатаОкончания».
Тоже самое можно сделать просто дописав в запрос вот такую строчку.
ГДЕ
АктОбОказанииУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
АктОбОказанииУслуг.Дата — ваш документ
Для того чтобы период стал доступным для пользователя необходимо во вкладке «Параметры» снять галочки в колонке «Ограничение доступности».
Остается перейти в «Настройки» выбрать «Отчет» и во вкладке «Параметры» настроить добавленный период. Например, если установить галочку то по умолчанию будет производиться отбор по указанной дате. Можно установить по умолчанию необходимое значения «Начало этого дня, недели, месяца и т.д.» или же точную дату.
Теперь если запустить отчет в пользовательском режиме и открыть настройки, можно установить отбор по дате. Для удобства данные параметры можно вынести на форму, для этого жмем на пункт «Показать» и выбираем «Показать в шапке».
Но лучше сделать это в самих настройках СКД.
В этом случае параметры будут отображаться у всех пользователей которые будут открывать отчет.
Вот так добавляется период в СКД. Как сами видите все достаточно просто и понятно, самое главное не торопиться и внимательно читать названия пунктов.
Стандартный период в 1С СКД (8.3/8.2)
Вы, наверное, встречали, что в некоторых отчетах нет привычного выбора НачалаПериода и КонцаПериода. А есть только одно поле, где можно выбрать значение «Сегодня», «Эта неделя», Этот месяц» и так далее. Называется это в системе СКД 1С «Стандартный период». Действительно, это иногда удобно, ведь редко когда нужны отчеты за полдня или за 14 дней и 32 минуты.
Но здесь возникает вопрос, как же нам передать параметры &НачалаПериода и &КонцаПериода в запрос, а на форме чтобы был виден только один «стандартный период».
Оказывается, это очень просто сделать в механизме 1С СКД, сейчас расскажу.
Сначала создадим новый отчет и зайдем в систему компоновки данных. Напишем простенький запрос с параметрами, задающими период. Например, выведем остатки и обороты за какой-то промежуток времени:
РегистрНакопления.СвободныеОстатки.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК СвободныеОстаткиОбороты
Теперь займемся параметрами. Кроме стандартных НачалоПериода и КонецПериода, которые мы указали в запросе, добавим еще параметр «СтандартныйПериод» и присвоим ему тип «СтандартныйПериод». А в колонке «Выражение» для параметров НачалоПериода и КонецПериода пропишем следующие выражения:
Не забудем установить флажки «Ограничение доступа» у первых двух параметров. Должна получиться такая картина:
Теперь зайдем в закладку «Настройки» и для параметра «СтандартныйПериод» сделаем следующее:
После всего проделанного сохраняем отчет и открываем его в режиме предприятия. Теперь мы можем выбирать дату следующим образом:
Следует заметить, что при выборе стандартного периода конечная дата всегда будет 23:59:59 (включая последнюю секунду).
Скачать получившийся отчет для 1С Управление торговлей 11.2 можно по ссылке.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Выведение настроек отчета СКД на форму
При установке в СКД отборов, группировок и т.д. если открыть отчет в тонком клиенте, то эти элементы появляются в форме настроек. Если поставить быстрый доступ, то элемент доступен прямо на форме отчета.
Но при открытии отчета в толстом клиенте открывается пустая форма отчета.
А при вызове «Настройка» открывается форма, которая слишком сложна для пользователя.
Можно, конечно, лепить на форму поэлементно отборы и т.д. Но это трудоемко и не настолько функционально, как в тонком клиенте или в универсальном отчете.
Можно ли вызывать какую-то стандартную форму настроек (например, такую как в универсальном отчете) или что-то вроде того, чтобы автоматически подтянулись доступные для пользователя настройки отчета СКД?
Надеюсь толстый клиент запускаешь в управляемом приложении?
Вообще-то должно быть все-равно в каком клиенте открывается
управляемая форма в управляемом приложении
.
если конечно специально чего-нибудь не намудрить
🙂
Можешь отчет выложить
и для какой он конфигурации.
(2) Rothschild,
да, вы правы. Я неточно описал проблему. Я имел в виду обычное приложение толстого клиента. У меня мало опыта в программировании 1С 8. Поэтому, задаю глупые вопросы.
Конфигурация «Управление производственным предприятием для Украины», редакция 1.3
Тут если запустить 1С предприятие, то запускается неуправляемое приложение. Управляемое запускается только из конфигуратора, я так понимаю, оно не установлено для пользователей. Что делать, если на предприятии не используют управляемое приложение?
Как в таком случае принято поступать с отчетами СКД?
(Простите, если пишу тут какую-то ерунду, если нужно, отправьте меня на какую-то толковую статью, где кратко и четко описываются эти базовые вещи по поводу приложений. Читал разное, видимо, недочитал).
С управляемыми формами проблем нет, но беда, что в обычном приложении не работают 🙂
Есть и неленивое решение:
Создать обычные формы.
Если больших пожеланий к их функциональности нет
— можно ограничиться тем, что создает конструктор форм.
(7) Rothschild,
я и экспериментирую на тестовой базе.
но мне нужно, чтобы это потом работало на реальной.
(10)
использовать так:
— скопировать.
— заменить макеты СКД на нужные (предварительно лутше удалить существующие)
— выбрать в конфигураторе основной макет СКД для отчета.