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