В базе есть иерархический справочник с иерархией групп и элементов. На одной из форм расположен динамический список в виде дерева. Требуется разместить организовать отбор по значению реквизита с отображением полной иерархии.
Основная проблема в том, что у родительских элементов и групп реквизит может быть не заполнен или одна группа может содержать подгруппы с разными значениями данного реквизита. Так как надо отображать полную иерархию, то эти родительские группы тоже надо выводить.
Формы | Просмотров:76 | Добавил:leshic | Дата:27.12.2023
Есть задача - загрузить содержимое таблицы Excel в таблицу значений. Можно скопировать данные в буфер и заполнить таблицу значений из буфера. Это просто, но есть один недостаток - я не уверен, что это будет работать на Linux, так как для обращения к буферу используется Com-технология.
Чтобы метод работал одинаково как на Windows, так и на Linux, решил сделать загрузку таблицы через табличный документ.
Так как динамический список может быть настрое пользователем, то результат может содержать разное количество полей. Неиспользуемые поля не попадают в результирующий запрос СКД, но связи между таблицами сохраняются. Здесь кратко описаны настройки с способ получения оптимизированного запроса после настройки списка.
Формы | Просмотров:101 | Добавил:leshic | Дата:24.08.2023
Иногда в общих модулях надо понять, запущена ли процедура из клиента или в фоновом задании, например чтобы вывести сообщение об ошибке в журнал или на экран.
Нашел в инете такой метод:
Сеанс = ПолучитьТекущийСеансИнформационнойБазы();
Если Сеанс.ПолучитьФоновоеЗадание() = Неопределено Тогда
//обычный сеанс
Иначе
//фоновое задание
КонецЕсли;
Есть одно ограничение: получить описание сеанса информационной базы можно только с правами Администратор.
Общие реквизиты можно использовать для хранения одинаковых данных в разных объектах, но это неправильное их использование. Основным доводом в этом утверждение является сложность в понимании конфигурации другим разработчиком, так как становится неочевидным полный состав реквизитов объекта.
Правильным использованием считается использование для реализации функционала, т.е. хранение данных, которые влияют на обработку данных, а не предназначены для хранения данных.
На пальцах:
Неправильно - общий реквизит Комментарий для нескольких документов, так как содержимое комментария относится к данным самого документа
Правильно - общий реквизит "ВключитьВРезервнуюКопию", так как это признак для обработки объекта, но он не хранит данных самого объекта.
Периодически возникает проблема с высотой элементов на таблице: если на форме много элементов, то система иногда так подбирает их размер (высоту), что нижние выходят за границы экрана и на форме появляется вертикальный скролбар. Особенно этот вопрос встает остро при размещении на форме таблиц: надо чтобы таблица заполнила свободную часть формы не выпихивая другие элементы.
Методом проб и ошибок я вывел следующий способ:
определяем количество строк таблицы, которое надо, чтобы таблица не вылезла за границы формы
в параметрах таблицы формы устанавливаем значения:
ВариантУправленияВысотой = "В строках таблицы"
АвтоМаксимальнаяВысотаВСтрокахТаблицы = Ложь
МаксимальнаяВысотаВСтрокахТаблицы = 0
ВысотаВСтрокахТаблицы = найденное количество строк
Формы | Просмотров:473 | Добавил:leshic | Дата:25.07.2023