[Расширения] Отборы в динамических списках
Разработка - Механизмы платформы 1С
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Динамические списки в формах строятся на основе системы компоновки данных. Для динамического списка или указывают отображаемый объект конфигурации (таблицу), или задают произвольный текст запроса, который будет использован для считывания данных.
Для каждого из двух "видов" динамических списков отборы устанавливаются по-разному:
1. Для обычного динамического списка: добавить условие с параметром отбора;
Пример: в списке товаров показывать только позиции с остатком больше 10
ТекстУсловия = " ГдеТоварыНаСкладеОстаток.КоличествоОстаток > 10";
Список.ТекстЗапроса= Список.ТекстЗапроса + ТекстУсловия;
2. Для динамичского списка с произвольным запросом: используется свойство Отбор.
Для простых условий используется тип данных ЭлементОтбораКомпоновкиДанных:
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;
Для сложных условий используется тип данных ГруппаЭлементовОтбораКомпоновкиДанных:
ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле2");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение2;
Выше была теория. В прилагаемом архиве: простая конфигурация и два расширения, демострирующие, на примере использования механизма расширений, применение произвольных отборов в динамических списках без изменения конфигурации.
Одно расширение (Расширение1.cfe) демонстрирует отбор для обычного динамического списка (форма списка номенклатуры - фильтр по остаткам), второе (Расширение2.cfe) - отбор для динамического списка с произвольным запросом (форма списка документов Поступление товаров - фильтр по контрагенту).
В архив входят: дамп демо-базы 1С (закрытой от изменений) и два расширения.
Готовое решение
ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО
Универсальная обработка для фискальных регистраторов! Подключайте любые ККТ, включая Веб сервер АТОЛ, без обновления 1С и работайте с несколькими кассами одновременно. Тестовый доступ — бесплатно!
Вступайте в нашу телеграмм-группу Инфостарт