1с скд отбор на форме отчета

Отбор в обычной форме на основе СКД в 1С

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

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

0

Сколько трудов стоит описать программисту разные виды сравнения (равно, не равно, в списке, в группе…) и исходя из этих видов сравнения дорабатывать свой конечный запрос получения данных.

Рассмотрим, как это можно сделать при помощи СКД. Создадим в нашей обработке Макет с типом Схема компоновки данных и заполним его нашим запросом:

1

На вкладке Настройки добавим новую группировку без детализации и, в нашем примере, поле Контрагент, так как в итоге мы получим все в таблицу значений:

2

И на вкладке Отбор добавим в отбор Контрагента:

3

Далее в самой обработке создадим реквизит Компоновщик типа КомпоновщикНастроекКомпоновкиДанных:

4

Теперь займемся оформлением формы. Выведем на форму самой обработки Отбор, с которым будет работать пользователь. На форму выведем элемент типа Табличное поле и дадим ему имя Отбор с типом данных Компоновщик.Настройки.Отбор:

5

Далее ниже выведем эелемент Табличное поле с именем Результат и типом ТаблицаЗначений и кнопку Выполнить, по которой и будем выводить таблицу с контрагентами:

6

Теперь создадим обработчики событий формы ПриОткрытии и обработчик нажатия кнопки Выполнить, код представлен ниже:

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

8

На этом все, надеюсь, данная статья поможет Вам улучшить гибкость отборов в Ваших обработках.

Источник

1с скд отбор на форме отчета

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: делаем отбор и сортировку на уровне СКД

Автор уроков и преподаватель школы: Владимир Милькин

Ставим цель

    Создать новый отчёт «Урок5.erf». Вывести в этом отчёте города (включая название города, мэра и численность). Упорядочить города в списке по численности (по возрастанию) Прямо на форме отчёта дать пользователю возможность делать отбор городов по минимальной численности.

Создаём новый отчёт в конфигураторе

Открываем базу «Гастроном» в конфигураторе.

Из главного меню конфигуратора выбираем пункт «Файл»->»Новый. «:

Вид документа: «Внешний отчет»:

В качестве имени пишем «Урок5» и нажимаем кнопку «Открыть схему компоновки данных»:

Соглашаемся с именем схемы компоновки данных по умолчанию:

Составляем запрос

Запускаем конструктор запроса:

Из таблицы справочника «Города» выбираем поля: «Наименование», «Мэр» и «Численность»:

Получился такой запрос:

Выводим отчёт в виде списка

Переходим на закладку «Настройки» и нажимаем волшебную палочку, чтобы вызывать конструктор настроек:

Тип отчёта выбираем «Список»:

В отчёте будут отображаться следующие поля:

Сохраняем отчет и тут же проверяем в режиме пользователя:

Сортируем города по численности

Теперь давайте упорядочим записи отчёта по возрастанию численности.

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

Направление сортировки указываем «По возрастанию»:

Сохраняем отчёт и проверяем в режиме пользователя:

Делаем отбор городов по численности

Теперь давайте сделаем так, чтобы в отчёте выводились только города с численностью от 1 миллиона человек (включительно). Такая возможность называется отбор.

Переходим на вкладку «Настройки», выбираем пункт «Отчет», далее переходим на вкладку «Отбор» и перетаскиваем поле «Численность» из левой колонки в правую.

Сохраняем отчет и проверяем в режиме пользователя:

Видим, что остались города с численностью больше миллиона и этот факт (отбора) явно отражён в заголовке отчета.

Выносим параметр отбора на форму отчета

Осталось сделать так, чтобы пользователь мог сам настраивать пороговое значение отбора. Другими словами, чтобы вместо миллиона он мог поставить свою цифру.

Заходим на вкладку «Настройки», выделяем пункт «Отчет», внизу выбираем вкладку «Отбор», выделяем элемент отбора «Численность» и нажимаем справа внизу на зелёный плюсик:

В открывшемся окне ставим галку «Включать в пользовательские настройки»:

Вновь сохраняем отчет и запускаем в режиме пользователя.

Видим, что появилось поле «Численность» меняя условие и значение которого мы управляем отбором городов в отчёте:

Войдите на сайт как ученик

Авторизуйтесь, чтобы получить доступ ко всем материалам школы

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

Войдите как ученик, чтобы получить доступ к материалам школы

Источник

Отборы в 1С СКД

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

121019 0552 1

Новый элемент в список отбора можно добавить несколькими способами – двойной клик по доступному полю, перетаскивание, клавиша в меню:

121019 0552 2

При этом только через клавишу в меню можно добавить группу в отбор, которая объединяет элементы внутри этой группы по заданному условию (И, ИЛИ).

121019 0552 3

По умолчанию если элементы отбора не включены ни в какую группу и объединяются с помощью оператора «И».

Вид сравнения в элементе отбора зависит от типа поля (левого значения):

Операции доступные для числа:

121019 0552 4

Операции доступные для строки:

121019 0552 5

Для строки добавлены операции – «содержит», «начинается с», «соответствует шаблону» и те же операции с оператором «Не» (Не содержит и т.д.).

Операции доступные для ссылки:

121019 0552 6

Далее разберем типовые ситуации при использовании отбора

Фиксированный отбор

Самый простой вариант использование отбора – добавить фиксированный отбор, который будет действовать всегда (если конечно пользователь не изменит его в варианте отчета):

121019 0552 7

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

Исключение определенных группировок из отчета

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

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

121019 0552 8

Допустим нам нужно исключить из отчета все строки, в которых итоговое количество по номенклатуре меньше 15. В запросе мы такое условие применить не можем. Установим для этого отбора для группировки «Номенклатура»:

121019 0552 9

Получим такой отчет:

121019 0552 10

Отборы на группировках часто используются в отчетах вида «Ведомость по остаткам»:

121019 0552 11

При использовании группировки по периоду (регистратору) в таких отчетах появляются строки, отвечающие за начальный остаток при использовании даты начала периода отличной от самой ранней. Чтобы убрать такие строки, можно использовать отбор на группировке по регистратору:

121019 0552 12

121019 0552 13

Чтобы убрать отбор, выделенный на рисунке на закладке «Другие настройки» для этой же группировки отключим вывод отбора:

121019 0552 14

121019 0552 15

Добавить отбор для пользователя

Обычно мы редко используем фиксированные отборы. Чаще нам нужны отборы, которые может изменять пользователь. Можно, чтобы пользователь изменял отборы через функционал 1С СКД «Изменить вариант», но это не совсем верный путь – вариант отчета это скорее постоянный «скелет», который настраивается один раз и потом используется многократно. Отборы же это что-то часто изменяемое, поэтому правильнее редактировать их через механизм пользовательских настроек.

Итак, вернемся к нашему отчету. Допустим нам необходимо добавить в отчет отбор по группе номенклатуры (или по элементу) и чтобы этот отбор был доступен для изменения пользователем.

Добавим для этого отбор на уровне отчета. Вид сравнения по умолчанию сделаем «В группе», отключим по умолчанию использование отбора и в диалоге редактирования пользовательских настроек включим наш отбор в пользовательские настройки.

121019 0552 16

Перейдем теперь в режим предприятия.

121019 0552 17

Наш отбор доступен для редактирования на форме. За доступность прямо в форме отчета отвечает «Режим редактирования». Значение «Быстрый доступ» означает, что отбор доступен прямо на форме отчета. Если значение равно «Обычный», отбор доступен через кнопку «Настройки». Как видно на рисунке пользователь может выбирать вариант сравнения, управлять действием (включен / отключен) отбора.

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

121019 0552 18

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

121019 0552 19

Если вам в отборе нужно изменить представления поля, по которому делается отбор, то для этого есть еще одно представление:

121019 0552 20

Получается вот так:

121019 0552 21

Мы можем вывести все отборы для редактирования пользователем. Для этого на уровне отчета вызовем диалог редактирования пользовательских настроек:

121019 0552 22

То же самое можно сделать на уровне любой группировки, если нужно, чтобы была возможность редактирования отборов для заданной группировки. В режиме предприятия это выглядит следующим образом:

121019 0552 23

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

Как известно, в 1С СКД используется не только в отчетах, но и в формах, содержащих динамические списки. У динамического списка есть несколько свойств, которые относятся к СКД. Среди этих свойств имеется свойство «Отбор» с типом «ОтборКомпоновкиДанных». Чтобы установить отбор в динамическом списке есть два способа. Первый способ – передать отборы через параметр формы с одноименным названием – «Отбор». Этот параметр является структурой, в которой ключ ссылается на поле, для которого устанавливается отбор. Значение же содержит данные, с которыми производится сравнение. Можно также передать в качестве правого значения – массив, фиксированный массив, список значений. В этом случае вид сравнения равняется «ВСписке», для одиночного элемента вид сравнения устанавливается как «Равно». Этот способ ограничен в возможностях – с его помощью нельзя накладывать сложные условия с операторами «И» и «ИЛИ», нельзя использовать виды сравнения кроме двух указанных.

121019 0552 24

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

Второй способ – непосредственное редактирование отбора в динамическом списке или в компоновщике. Обычно в типовых конфигурация для этого есть ряд методов и функций для установки таких отборов.

Например, вызов основного метода для установки отбора выглядит так:

ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, «Ссылка», Параметры.ДобавитьДля, ВидСравненияКомпоновкиДанных.НеРавно);

Данная функция производит поиск существующего элемента отбора, изменяет его если нашла, а если не нашла, то добавляет с помощью такой процедуры:

В форме содержащей динамический список также как в отчете на СКД, возможно настроить пользовательский отбор. Как это можно сделать показано на рисунке:

121019 0552 25

Также у элемента формы, с которым связан список нужно установить группу пользовательских настроек, в которой будут отображаться настройки для пользователя:

121019 0552 26

В режиме предприятия это будет выглядеть следующим образом:

Источник

Поле «Отбор» в управляемой форме используя СКД

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

Поэтому реализовал пример, который осуществляет отбор ссылок при помощи СКД.

Работает, например, в УТ 11.4.

Для реализации примера достаточно добавить поля в новую обработку согласно изображениям. У поля «ОбъектНазначения» 2 события:

«ОбъектНазначенияОкончаниеВводаТекста» И «ОбъектНазначенияНачалоВыбора», параметр кнопка выбора «Да»

И добавлена одна команда «Отобрать» с одноименным событием.

Привожу модуль формы:

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

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

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Обновление 17.05.19 08:00

См. также

Шпаргалка разработчика для работы с формами Промо

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

31.10.2018 18481 87 ELAM 3

K-SOFT: Улучшенная форма отчета

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

19.05.2021 6186 6 karpik666 18

Отчет с выводом заголовка на СКД

Отчёты «Ведомость товаров на складах» демонстрируют два способах вывода заголовка на СКД. Эти отчеты тестировались на конфигурации Управление торговым предприятием для Казахстана, редакции 2.0.19.2. Могут работать на любой конфигурации, если имеются регистры накопления «ТоварыНаСкладах» и «РеализованныеТовары».

07.04.2021 2017 3 softmaker 0

1С Специалист ЗУП 3

Решение билетов по 1С Специалист ЗУП 3. Решения подготовлены на Зарплата и Управление Персоналом 3.1.12.144

16.04.2020 4700 25 MoiseevSN 11

Каталог игр с приставок из моего детства Промо

Каталог игр Dendy, Sega, Nintendo из нашего детства.

06.02.2018 17445 70 user621724_Dimav1979 37

СКД. Объединение ячеек на примере «Справка инвентаризации расчетов с покупателями и поставщиками по форме ИНВ-17»

Шпаргалка. Объединение ячеек в отчете на СКД с произвольным макетом.

11.03.2020 10528 1 boobzx 7

Создание контекстного отчета на БСП (Лист ознакомления с графиком отпусков, ЗУП 3.1)

Создание контектного отчета с использованием БСП 3.1.2. Внешний отчет Лист ознакомления с Графиком отпусков для программы ЗУП 3.1.12.

03.03.2020 4833 2 angler225 0

СКД: красивые надписи в заголовках колонок

Необходимо немного исправить вывод надписей в заголовках колонок, сделать более читаемый вариант. Как это сделать?

27.02.2020 13172 8 wowik 36

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула Промо

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

29.12.2017 54439 38 agent00mouse 0

Источник

Отбор на форму (документа, справочника, обработки) с помощью СКД

Добавим на форму реквизит с типом КомпоновщикНастроекКомпоновкиДанных

a4cb588eb72b653ae321348ef8796992

Найдем отбор и перенесем его на форму

eb99cac5fdb05b502dc8f9358319281f

Чтобы отбор отображался компактно на форме у группы, в которой находится отбор, поставим поведение «Всплывающая»

38bb716a99a078663c792449b129fc1f

Добавим в процедуру ПриСозданииНаСервере следующий код:

Создадим на форме команду «Загрузить» и добавим код:

Далее добавляем макет с типом «Схема компоновки данных». В набор данных добавим простенький запрос

0340aac1f76cac507d5acb0dc7856349

45aa7551d44350e92d64bc17eb68bcd2

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

5f17407c73ecf9ed32833bbe36a668f9

в отбор добавим отборы по умолчанию

f1faa896d501446cc8bcb6f3f74dd63a

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

7bd7d5d9df7a84b27f2767163e3d97b7

f134affd50b609aa196f767bb3bf1f14

Платформа 1С:Предприятие 8.3 (8.3.18.1289).

Управление торговлей, редакция 11 (11.4.7.128).

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

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Чисто гипотетически хочу быстро увидеть строки по определенному виду номенклатуры с ценой, ниже определенной границы при условии, что недостаточного количества по строке для её использования. Прикрутить сюда программную инициализацию механизма для масштабирования на другие объекты и вот уже можно полноценно применять.)

(6)Делал подобный механизм для отбора сотрудников. Этот отбор сотрудников использовался как фильтр. Т.е. только сотрудники из этого фильтра могли использовать тот или иной функционал внешней компоненты.
Фильтры автоматически обновляемые, и регулярно выгружаемые.

Сумбурно, но надеюсь понятна идея

Обновление 09.02.21 10:10

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с скд отбор договора по контрагенту
  • 1с сканер документов мобильное приложение для сервиса 1с распознавание документов