Каталог статей
В разделе материалов: 270 Показано материалов: 121-130
Пример программного заполнения данных отчета из внешнего источника
СКД |
Просмотров: 403 |
Добавил: leshic |
Дата: 15.07.2022
|
|
Надо было выгрузить отдельно перечень значений перечислений, но столкнулся с тем, что значения переносятся только если на них есть ссылка в других правилах и документах.
Чтобы выгрузить список всех доступных значений использовал произвольный алгоритм в правиле выгрузки данных. |
Если список параметр для отбора строго определен, то реализовать отбор можно двумя способами:
1. Добавляем в запрос динамического списка параметры и устанавливаем их при изменении значений отбора на форме. Используем метод Список.Параметры.УстановитьЗначениеПараметра(<Параметр>, <Значение>).
2. Использовать стандартный механизм отбора динамического списка.
Формы |
Просмотров: 491 |
Добавил: leshic |
Дата: 27.06.2022
|
Подсмотрел универсальное решение расчета итогов в динамических списках. Основной принцип следующий:
- При создании формы с динамическим списком в дополнительные свойства настройки СКД списка добавляется таблица с указанием имени поля и нужной агрегатной функцией, например "Номер", "Количество". Таблица помещается в хранилище, а хранилище размещается размещается в ветке "РесурсыХранилище".
- На форму выводится отдельная кнопка "Расчет итогов". Обновлять итоги постоянно очень затратно по ресурсам и приводит к зависанию.
- Расчет итогов производится в общем модуле, в который передаются настройки СКД. Для получения настроек СКД, с учетом всех примененных отборов и поисков есть две волшебные функции: СКД = ЭтотОбъект.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных() и Настройки = ЭтотОбъект.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных().
- В полученной СКД программно добавляются группировка и ресурсы (ПоляИтогов), которые определяются из дополнительного свойства "РесурсыХранилище".
- Запускается формирование отчета по СКД, получаются значения итогов по ресурсам и программно заполняется текст подвала нужной колонки.
Похожий пример можно посмотреть здесь https://v8book.ru/public/568012/
Формы |
Просмотров: 884 |
Добавил: leshic |
Дата: 24.06.2022
|
|
Формы |
Просмотров: 1410 |
Добавил: leshic |
Дата: 23.06.2022
|
|
Подсмотрел решение, когда на форму выводится таблица отбора из динамического списка
Формы |
Просмотров: 425 |
Добавил: leshic |
Дата: 22.06.2022
|
|
Во время загрузки файла с данными происходит поиск данных по УИД и по заданным полям поиска.
Конвертация позволяет осуществлять поиск по разным наборам полей, если предыдущий набор ничего не дал. Например, сначала ищем по связке ИНН+КПП, а если ничего не находим, то начинаем пытать счастье с наименованием.
Если НомерВариантаПоиска = 1 тогда
СтрокаИменСвойствПоиска = “ИНН, КПП”;
ИначеЕсли НомерВариантаПоиска = 2 Тогда
СтрокаИменСвойствПоиска = “Наименование”;
КонецЕсли;
НомерВариантаПоиска, СтрокаИменСвойствПоиска - это параметры метода ПКО_ПоследовательностьПолейПоиска_..., который настраивается для правила конвертации объектов "Поля поиска".
Сюда же можно вставить поиск по произвольному алгоритму. Результат поиска надо поместить в параметр СсылкаНаОбъект.
Рекомендую обратить внимание на параметр УстанавливатьУОбъектаВсеСвойстваПоиска. Если его оставить равным Истина, то в найденный объект базы приемника будут записаны все переданные реквизиты из базы источника. |
Нашел запрос, который сначала мне показался странным, но потом, при внимательном рассмотрении, вполне рабочим:
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК ФизЛицо
ИЗ
РегистрСведений.Сотрудники КАК Сотрудники
СГРУППИРОВАТЬ ПО
Сотрудники.ФизическоеЛицо
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо) > 1
ФизическоеЛицо - это измерение регистра сведений Сотрудники. Получается группируем по измерению и тут же отбираем записи, количество которых больше 1.
Запрос перестает казаться странным, если "КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо)" перенести в блок "Выбрать":
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК ФизЛицо,
КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо) КАК КоличествоФЛ
ИЗ
РегистрСведений.Сотрудники КАК Сотрудники
СГРУППИРОВАТЬ ПО
Сотрудники.ФизическоеЛицо
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Сотрудники.ФизическоеЛицо) > 1
|
Если в отчете используются дополнительные реквизиты (ПВХ) и в отборе надо выбирать одно из доступных значений доп. реквизита, то в СКД можно настроить связи параметров выбора для поля.
Например есть регистр сведений ЗначенияСвойствОбъектов, у которого есть измерение Свойство (ссылка на ПВХ) и ресурс Значение (Характеристика.СвойстваОбъектов).
Чтобы ограничить список возможных значений для реквизита надо в СКД в поле "Параметры редактирования" настроить "Связи параметров выбора".
При этом поле "Свойство" можно отдельно не выводить в запросе, оно добавляется автоматически в СКД, так как является измерением регистра сведений.
СКД |
Просмотров: 761 |
Добавил: leshic |
Дата: 26.05.2022
|
|
Здесь описаны сведения которые я нашел по проектированию структуры базы данных. Основная задача - это добиться максимального быстродействия. |
|
| Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|