[Расширения] Отборы в динамических списках

21.05.16

Разработка - Механизмы платформы 1С

Часто на практике возникают ситуации, когда в 1С 8.3 нужно настроить доступ к колонкам динамического списка по определенным критериям (нужно так настроить доступ, чтобы пользователь видел только то, что ему разрешено и не имел возможности изменить эти настройки). Но конфигурация стоит на поддержке и менять ничего нельзя. Предлагаемый пример показывает, как можно с помощью механизма расширений управлять отборами в динамических списках*.

* В дополнение к механизму http://infostart.ru/public/437760/ "Динамическое управление видимостью и доступностью элементов форм"

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Отборы в динамических списках с использованием механизма расширений
.zip 130,28Kb ver:v.1
15 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

Для каждого из двух "видов" динамических списков отборы устанавливаются по-разному:

1. Для обычного динамического списка: добавить условие с параметром отбора;

Пример: в списке товаров показывать только позиции с остатком больше 10

ТекстУсловия = " ГдеТоварыНаСкладеОстаток.КоличествоОстаток > 10";
Список.ТекстЗапроса= Список.ТекстЗапроса + ТекстУсловия;

2. Для динамичского списка с произвольным запросом: используется свойство Отбор.

Для простых условий используется тип данных ЭлементОтбораКомпоновкиДанных:

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;

Для сложных условий используется тип данных ГруппаЭлементовОтбораКомпоновкиДанных:

ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;
	
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле2");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение2;

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

Одно расширение (Расширение1.cfe) демонстрирует отбор для обычного динамического списка (форма списка номенклатуры - фильтр по остаткам), второе (Расширение2.cfe) - отбор для динамического списка с произвольным запросом (форма списка документов Поступление товаров - фильтр по контрагенту).

В архив входят: дамп демо-базы 1С (закрытой от изменений) и два расширения.

Готовое решение

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

Универсальная обработка для фискальных регистраторов! Подключайте любые ККТ, включая Веб сервер АТОЛ, без обновления 1С и работайте с несколькими кассами одновременно. Тестовый доступ — бесплатно!


Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Механизмы платформы 1С Программист Бесплатно (free)

Разберем 15 мифов о работе платформы «1С:Предприятие 8» – как распространенных, так и малоизвестных. Начнем с классики: «Код, написанный в одну строку, работает быстрее, чем многострочный». Так ли это на самом деле?

16.07.2025    26056    TitanLuchs    106    

145

Механизмы платформы 1С Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    14443    bayselonarrend    127    

68

Механизмы платформы 1С Программист 1С:Предприятие 8 Бесплатно (free)

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

30.01.2025    15835    user2122906    9    

60

Механизмы платформы 1С WEB-интеграция Программист 1С:Предприятие 8 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    26314    dsdred    77    

142

Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

23.06.2024    24259    bayselonarrend    22    

174

Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    13370    dsdred    22    

85
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Alex_E 2396 25.05.16 08:33 Сейчас в теме
Ещё - Настроить список наверное не катит? Пошто расширение непонятно, но...)))
2. OlegK 59 25.05.16 16:59 Сейчас в теме
Если нужно запретить саму возможность настраивать пользователю доступность и видимость колонок, то - не катит
YA_514896950; +1 Ответить
3. Alex_E 2396 25.05.16 17:02 Сейчас в теме
(2) Прикольно, но настроить любой список в любой конфигурации разрешено по умолчанию, для чего нужна Ваша разработка маненько непонятно...
4. OlegK 59 25.05.16 17:21 Сейчас в теме
Ок, для тех, кто не понял идею, откорректирую описание. Но ещё раз поясню - часто на практике нужно так настроить доступ, чтобы пользователь видел только то, что ему разрешено. Т. е. настроить для кого-то определенным способом набор колонок (полей). И, чтобы пользователь не имел возможности изменить эти настройки.
5. Alex_E 2396 25.05.16 18:16 Сейчас в теме
упс, это настройка доступа...не внял...пусть будет так)))))
6. German_Tagil 43 09.04.20 09:51 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация