1С управляемые формы отбор в таблице значений

1С управляемые формы отбор в таблице значений

1С:Предприятие 8 поддерживает готовую функциональность для организации выбора из форм списков объектных данных (справочников, документов и т.д.). В большинстве случаев выбираются именно такие значения. Однако, в некоторых случаях, необходимо организовать выбор и других значений. Механизм форм 1С:Предприятия 8 включает универсальный механизм выбора, позволяющий организовать выбор практически любых значений.

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

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

Вначале создадим новую форму списка регистра сведений и назовем ее "ФормаВыбора". В форме реализуем событие Выбор табличного поля отображающего список.

В этом событии мы отменяем стандартное действие, предусмотренное расширением табличного поля, и вместо него вызываем метод ОповеститьОВыборе() , передавая ему в качестве параметра текущую строку. Значением текущей строки будет являться значение типа РегистрСведенийКлючЗаписи. .

Теперь реализуем функциональность выбора в той форме, в которой это требуется. Например, в форме обработки, имеющей поля ввода "Валюта" и "Период".

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

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

Далее мы создаем форму, устанавливаем ей режим выбора, владельца формы, и выполняем открытие формы.

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

Читайте также:  Как нарисовать на листе в клетку

Заметим, что в качестве владельца формы может устанавливаться не только сама форма, в которой осуществляется выбор, но и ТабличноеПоле , ПолеВвода и ПолеВыбора . Соответственно и обработчик выбора нужно будет реализовывать у этих элементов управления.

Заметки по разработке и администрированию 1С.

10.11.2016

1с Отбор по периоду в списке управляемых форм

лНовыйПериод = Новый СтандартныйПериод ( НачалоДня ( ТекущаяДата ()), КонецДня ( ТекущаяДата ()+ 24 * 60 * 60 ));

ЗаполнитьЗначенияСвойств ( Элементы . Список . Период , лНовыйПериод );

Здесь мы через элементы формы обращаемся к установке периода, для примера период ставится текущая и завтрашняя даты. И все. Выбранный период будет виден через кнопку "Установить период".

рубрики: Фишки | Дата: 30 июля, 2017
Скачать обработку с примерами из статьи: professia1c_TableValueFilter.epf
Платформа: 8.3; Тип формы: управляемая.

Достаточно часто при работе с таблицами значений требуется выбрать строки по какому-либо условию. Когда условием отбора является равенство — тут нет никакой проблемы — достаточно воспользоваться методом НайтиСтроки() как это описано в статье про основные приемы работы с таблицами значений. Но когда нам нужно использовать более сложные условия отбора (В, В ИЕРАРХИИ и т.д.), то приходится прибегать к нестандартным способам. В этой статье рассмотрим два таких способа.

Для демонстрации создадим обработку с двумя таблицами значений: ИсходнаяТаблица и Результат.

И заполним исходную таблицу следующим образом:

Наименование Количество
Ручка 15
Лампа 2
Карандаш 10
Дырокол 5

Допустим мы хотим оставить только строки с наименованиями «Ручка» и «Карандаш»

Отбор с использованием запроса

Идея заключается в следующем — загружаем таблицу значений во временную таблицу запроса. И теперь мы можем установить любой отбор, доступный в языке запросов 1С. Выполняем запрос, и при помощи метода Выгрузить() получаем результирующую таблицу:

Читайте также:  Причины списания принтера в акте на списание

Отбор с использованием построителя отчетов

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

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

Ссылка на основную публикацию
1С скд вычислить сумма
1с. СКД. Вычисляемое поле в группировке. Эта методика используется: - когда итог в группировке отчета СКД 1с требуется не просто...
Adblock detector