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

Работа с динамическим списком в 1С 8.3 (8.2)

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

Создание формы выбора

За основу возьмем некую тестовую конфигурацию 1С:»Бухгалтерия предприятия 3.0″. Не будем сейчас делать подбор, просто в справочнике «Номенклатура» добавим еще одну форму выбора и сделаем ее временно основной:

sozdanie novogo dinamicheskrnr spiska 1s 8.3

При создании система по умолчанию добавит на форму табличное поле с типом «Динамический список».

Зайдем в его свойства и посмотрим, что там.

В первую очередь нас интересует флажок «Произвольный запрос». Он-то и откроет нам все преимущества динамического списка. У нас появится возможность написать собственный запрос, причем с параметрами. Устанавливаем флажок и нажимаем ссылку «Открыть»:

nastroyki dinamicheskogo spiska

Откроется окно с уже готовым кодом на языке запросов. Пока что там просто перечислены все поля справочника «Номенклатура».

Как видим, имеется кнопка вызова «Конструктора запроса» и флажок, который дает возможность динамически изменять содержимое списка. То есть когда другой пользователь меняет что-то в справочнике, в нашем списке это тоже изменится. Кроме того, имеется закладка «Настройки», но ее мы коснемся позже.

Собственный запрос в динамическом списке

Сначала создадим нужный нам запрос с остатками и ценами. Примерно так:

zapros v dinamicheskom spiske 1s 8.3

Закладка «Настройки»

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

nastroyka dinamicheskogo spiska 1s 8.3

Программная установка параметров запроса в динамическом списке 1С 8.3

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

Пропишем эти параметры в параметрах формы, а в модуле формы добавим следующие строки:

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

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

Также на форму можно добавить флажок «Запрашивать количество».

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

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Особенности работы динамического списка с произвольным запросом

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

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

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

image001

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

В системе существует два товара и проведено две накладных, которыми оформлено поступление этих товаров.

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

scheme1

А для товара Хлеб будет найдена тоже одна подходящая запись:

scheme2

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

Источник

1С Управляемые Формы. Программное создание таблицы значений и динамического списка (Часть 2)

В данной статье описаны примеры программного создания объектов управляемой формы 1С — таблицы значений и динамического списка, и их программный вывод в элементы формы

Введение в управляемые формы 1С

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

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

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

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

Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.

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

Добавление условного оформления таблицы формы

Создаем условное оформление для таблицы:

В процедуру команды добавим вызов серверной процедуры для заполнения таблицы цен в зависимости от выбранной номенклатуры и характеристики:

Добавляем в процедуру ПриСозданииНаСервере процедуры:

Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.
%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D1%8B %D1%84%D0%BE%D1%80%D0%BC%D1%8B2

%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D1%8B %D1%84%D0%BE%D1%80%D0%BC%D1%8B4

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

На странице 3 создадим динамический список с выводом всех цен выбранной номенклатуры и характеристики.
Добавим Условное Оформление дин. списка, отбор и сортировку программно.

Вывести динамический список в элементы управляемой формы 1С

Для вывода дин. списка воспользуемся процедурами, которые использовали при выводе таблицы значений, так как это один тип — ДанныеФормыКоллекция.

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

Если в запросе дин. списка используются параметры, то их необходимо обновлять при изменении соответствующих реквизитов.

Добавляем в процедуру ПриСозданииНаСервере процедуры:

Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.
%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D1%8B %D1%84%D0%BE%D1%80%D0%BC%D1%8B2

Содержимое регистра сведений ЦеныНоменклатуры:
%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D1%8B %D1%84%D0%BE%D1%80%D0%BC%D1%8B5 2

Динамический список на форме:
%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D1%8B %D1%84%D0%BE%D1%80%D0%BC%D1%8B6

Источник

1С. Программное создание динамического списка

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

Задача

Решение

План работ следующий:

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

Создание страниц

Собственно создадим группу с видом «Страницы», и в нее добавим две группы с видом «Страница»

Программное формирование реквизитов и элементов формы можно в статье 1С. Программное добавление и удаление реквизитов формы

Перемещение элементов формы

Для перемещения типового динамического списка воспользуемся методом коллекции элементов формы Переместить()

Программное создание динамического списка

Добавляем реквизит формы с типом Динамический список и определяем основные свойства.

Теперь создадим элементы формы относящиеся к динамическому списку

Небольшая хитрость

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

Результат

Теперь проверяем, что у нас получилось. Первая страница, на которую мы перенесли типовой список

Вторая страница с нашим сформированным списком

Источник

Работа с динамическим списком

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

ПРИМЕЧАНИЕ. Примеры, приведенные ниже, не являются законченным. Они предназначены для демонстрации различных механизмов работы с динамическим списком.

7.9.5.1. Параметр запроса динамического списка

В данном разделе приведен пример установки параметра запроса динамического списка.

Предположим, что для динамического списка указан следующий запрос к данным:

Тогда для установки параметров данного запроса (в обработчике ПриСозданииНаСервере()) нужно указать параметры Склад и ВидЦен следующим образом.

7.9.5.2. Отбор

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

Функция добавляет отбор в динамический список и возвращает созданный элемент отбора.

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

7.9.5.3. Группировка

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

Функция добавляет группировку в динамический список и возвращает созданный элемент группировки.

Процедура удаляет группировку динамического списка и возвращает результат удаления. Если имя поля с удаляемой группировкой не указано, выполняется очистка списка группировок.

7.9.5.4. Порядок (сортировка)

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

Функция добавляет поле сортировки в динамический список и возвращает созданный элемент порядка.

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

7.9.5.5. Условное оформление

В данном разделе приведены примеры задания условного оформления динамического списка. В условном оформлении используется динамический список Список, в котором есть поля Организация и Сумма (типа Число). В примере задаются три элемента условного оформления:

● если значение поля Сумма меньше 500, то текст полей Организация и Сумма оформляется красным цветом;

● если значение поля Сумма больше 500, но меньше 10 000, то для всех полей строки текст оформляется синим цветом;

● если значение поля Сумма больше 10 000, то текст полей Организация и Сумма оформляется зеленым цветом.

Также в примере используется функция установки отбора (см. здесь).

Пример задания условного оформления:

Поделиться ссылкой:

Понравилось это:

Похожее

Автор публикации

master1c8

4 Replies to “Работа с динамическим списком”

Несоответствие типов
Группировка = Список.КомпоновщикНастроек.Настройки.Структура.Добавить(Тип(“ГруппировкаКомпоновкиДанных”));

по причине:
Несоответствие типов

Потому что “Группировка” – это свойство формы, используйте другой идентификатор переменной.

Пространства имён – не самая сильная сторона 1С )

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

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