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

1C Найти Строку в Динамическом Списке Программно • Ограничения и особенности

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

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

Использование параметризованной команды для указания отбора

Один из распространенных приемов – создать глобальную параметризуемую команду, и параметр этой команды передать в качестве отбора. В свойствах команды нужно указать тип параметра команды. Можно указать группу “Панель навигации формы”, тогда команда автоматически будет добавляться в командный интерфейс при открытии формы соответствующего объекта.

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

Динамические списки в 1С на примере справочника «Контрагенты»

Использование параметризованной команды для указания отбора

Один из распространенных приемов – создать глобальную параметризуемую команду, и параметр этой команды передать в качестве отбора. В свойствах команды нужно указать тип параметра команды. Можно указать группу “Панель навигации формы”, тогда команда автоматически будет добавляться в командный интерфейс при открытии формы соответствующего объекта.

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

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

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

Решение

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

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

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

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

За основу для разработки возьмём демо-конфигурацию. Будем добавлять итог по колонке “Сумма долга” динамического списка в форме справочника “Контрагенты” “ФормаСпискаРабочийСтол”. Общая идея состоит в следующем:

  • Создадим пустую схему компоновки данных (далее “СКД”) с ресурсом “Сумма долга” для справочника “Контрагенты”.
  • Программно скопируем текст запроса из динамического списка в “СКД”
  • Программно перенесём отбор, установленный в форме списка в настройки СКД
  • Выведем результат компоновки данных в таблицу и отобразим данные на форме

На том как создать СКД подробно останавливаться не буду. Сделать это не сложно. Для этого достаточно добавить для справочника “Контрагенты” новый макет с типом “Схема компоновки данных”. В СКД добавить набора данных “Запрос” (назовём его “Основной”). Текст запроса должен быть, например, таким:

Теперь добавим в форму списка контрагентов “ФормаСпискаРабочийСтол” таблицу итогов с колонками “Сумма долга” и “Отбор”.

На закладке “Команды” добавим команду “Пересчитать итоги” и разместим кнопку вызова этой команды в панель инструментов таблицы итогов. Ниже приведён текст модуля формы.

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

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных ;
КомпоновщикНастроек . ЗагрузитьНастройки ( СКД . НастройкиПоУмолчанию ) ;

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

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

&НаКлиенте
Процедура ПересчитатьИтоги ( Команда )
СтрокаДанных = ИтогиСпискаКонтрагентов ( ) ;
ТаблицаИтогов . Очистить ( ) ;
Если СтрокаДанных Неопределено Тогда
СтрокаИтогов = ТаблицаИтогов . Добавить ( ) ;
ЗаполнитьЗначенияСвойств ( СтрокаИтогов , СтрокаДанных ) ;
КонецЕсли ;
КонецПроцедуры

Для того чтобы проверить работу примера запустим конфигурацию, установим отбор в форме списка контрагентов на рабочем столе и нажмём на кнопку “Пересчитать итоги”.

Итоги по колонке динамического списка

Теперь, как и обещал, перечислю недостатки такого решения.

  • Необходимо нажимать кнопку “Пересчитать итоги” при любых изменениях в списке.
  • Если отбор был изменён или изменилась сумма долга по контрагенту, то данные итогов перестают быть актуальными.
  • Отследить изменения отбора невозможно – для этого нет подходящего обработчика событий.
  • Если вы воспользовались кнопкой “Найти” панели инструментов динамического списка, то в списке отобразятся только строки, соответствующие условию поиска, но при пересчёте итогов сумма не изменится, так как эти условия не являются отбором.

Фараоны рекламировали себя при помощи пирамид

— Рамон Гомес де ла Серна

На закладке Команды добавим команду Пересчитать итоги и разместим кнопку вызова этой команды в панель инструментов таблицы итогов.

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

Условное оформление списка

Приветствую, коллеги! В данной статье я расскажу, что такое условное оформление списка в системе 1С и для чего оно нужно, а также опишу алгоритм проведения условного оформления списка в 1С.

Условное оформление списка – это программная команда, которое отвечает за регулировку внешнего отображения, доступа, управление элементами списка при выполнении некоторого условия.

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

Рассмотрим, как проводить условное оформление в динамическом списке при помощи локальной команды, показанной ниже:

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

Создание условного оформления списков в начала

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

Далее нужно присвоить данному элементу следующие параметры:

· Визуальное оформление, которое отвечает за шрифт, цвет, жирность и так далее;

· Параметр условия, при верности которого оформление будет применено;

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

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

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

Таким образом мы создали условное оформление, которое будет применено в случае, если строка имеет поле «НаКонтроле» (содержит значение «Истина»).

Также пропишем, какие поля будут выделены, при помощи условного оформления. В случае, если не делать данную операцию, вся строчка будет иметь выделение. Внесём новое поле для коллекции, после чего пропишем, что оформление должно иметь лишь поле «Номер», данное решение в программном виде выглядит так:

Далее производим загрузку всех новых настроек для нашего динамического списка, это происходит так:

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

Далее нужно активировать команду «Условное оформление», после чего мы увидим следующее:

Запросы в динамических списках: Система стандартов и методик разработки конфигураций для платформы 1С: Предприятие 8

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

Related posts