Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

1C Установить Владельца в Динамическом Списке • Ограничения и особенности

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

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Таким образом, вы получаете и саму схему компоновки данных, и, главное, все её настройки, благодаря которым пользователь видит список именно таким. Управляемые формы 1С — Общая информация — Проекты, задачи Обращайтесь в форму связи

Как программно обновить динамический список 1с

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

НО если нужно обновить сразу в открытой форме, то используйте код:

Обновить()Обновляет данные в таблице.

Прочитать()Обновляет объект управляемой формы.

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

Почему в динамическом списке отбор быстрее условий в запросе, и так ли это вообще? — Хабр Q&A

Похожие FAQ

Как настроить отбор строк? 2
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство: в обычном приложении параметр для ОтборСтрок – Отбор. в управляемом Динамический список

отбор в динамическом списке программно 2
Для установки отбора в динамическом списке используется свойство Отбор. Добавление нового элемента отбора осуществляется следующим образом: ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»)); Для того чтобы новый Посмотреть все в категории Работа с Формой (Диалог) и её элементами

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

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

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

Задача: Получить программно данные динамического списка на форме со всеми отборами, поиском, условным оформлением, настройками и т.д.

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

Решение: Для реализации этого решения достаточно иметь версию платформы 1с начиная с ‘8.3.6.1977’ и знать два новых метода динамического списка:

  • ПолучитьИсполняемуюСхемуКомпоновкиДанных() – получаем схему компоновки данных;
  • ПолучитьИсполняемыеНастройкиКомпоновкиДанных() – получаем все настройки динамического списка;

Допустим в справочнике “Футбольные клубы” у нас в форме списка есть реквизит “Список” – тип “Динамический список”:

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

Добавляем на форме команду “ПолучитьДанныеСписка” и прописываем следующий код:

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

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

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

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

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

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

К счастью, начиная с версии платформы 1С:Предприятие 8.3.6.1977, доступен более простой способ.

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

&НаСервере
Функция ДинамическийСписокВТаблицуЗначений ( )

//Получаем схема компановки данных (здесь хранится текст запроса)
Схема = Элементы . Список . ПолучитьИсполняемуюСхемуКомпоновкиДанных ( ) ;

//Получаем настройки пользователя (отборы, сортировки и т.п.)
Настройки = Элементы . Список . ПолучитьИсполняемыеНастройкиКомпоновкиДанных ( ) ;

//Выводим динамический список в таблицу значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ( ) ;
МакетКомпоновки = КомпоновщикМакета . Выполнить ( Схема , Настройки , , , Тип ( «ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений» ) ) ;

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновки . Инициализировать ( МакетКомпоновки ) ;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ;
Результат = ПроцессорВывода . Вывести ( ПроцессорКомпоновки ) ;

//Возвращаем полученную таблицу значений
Возврат Результат ;

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

Как программно выделить все строки динамического списка?

В платформе “1с предприятие 8.2″ появился такой замечательный объект как “динамический список“. Данный объект я часто использую в подборах, если не нужно делать сложные расчеты, а просто показать данные и выбрать.

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

Для решения это задачи я использовал объект “WSCript.Shell“.

В процессе реализации у меня получилось 2 варианта:
Вариант №1
Определим кнопку “Выделить все строки” и в модуль обработчика добавим код:
Код 1C v 8.2 УП
С помощью данного кода выполняется нажатие клавиш “Ctrl + A“, т.е. “выделить все”.

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

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

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

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Таким образом, для работы формы выбора с динамическим списком необходимо разделить переданные параметры на отбор по реквизитам основной таблицы и параметры запроса. 1C Установить Владельца в Динамическом Списке Обращайтесь в форму связи

Почему в динамическом списке отбор быстрее условий в запросе, и так ли это вообще?

Есть обработка с множеством полей отбора по 100 тысячам позиций номенклатуры.
Есть две идеи:
1. Постоянная смена запроса динамического списка (добавлять условия или удалять их, в зависимости от данных в этих полях);
2. Использовать типовой отбор.

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

Почему так происходит и в чем вообще отличие двух методов? Плохая реализация запроса?? Есть ли где-то информация об этом?

Решение упирается в текст запроса. Варианты почему условие медленное:
1) Для условия использованы подзапросы
2) В запросе используются ИЛИ
3) Условия запроса по НЕ индексируемым полям, что требует скан в плане запроса СУБД.

А если все отборы динамического списка прописаны, как «Выбор Когда. «, то, как я понимаю, получается все еще хуже?
Спасибо за совет. Получается, как и полагала, реализовать отбор типовыми отборами списка — лучший метод в подобных задачах, так?

Еще вопрос: если нужно будет ставить отбор по табличным частям в справочнике, то не лучше ли будет сделать индексируемые поля с реквизитами-строками, в которые будут собираться колонки, и отбирать уже по этим самым полям (если конфигурация самописная)?

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

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

hloya_ram, почему же? Пишите в настройках динамического списка на закладке Отбора поле вида Ссылка.Товары.Номенклатура и накладывайте нужный отбор — получите в списке только те документы, в которых будут указанные позиции. Да, в этом случае лучше индексировать.

Дмитрий Кинаш, спасибо большое за пояснение! Я попробую. Сейчас вспомнила: было что-то такое. А есть ли где-то еще информация по данной теме (где-нибудь на its, возможно)?

hloya_ram, не знаю что именно вам интересно. Может будет полезна эти главы по отборам в динамическом списке: https://its.1c.ru/db/pubdevguide83#content:578:hdoc

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

Динамические списки: использование и установка параметров в 1С 8.2 и 8.3.

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts

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

*