Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 апр 2025, 21:21

Отбор файлов в списке формы

Автор qpluckq, 26 фев 2014, 18:18

0 Пользователей и 1 гость просматривают эту тему.

qpluckq

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

Делал через произвольный запрос и вызов списка из формы документа
Код на кнопке в документе, должен открывать форму списка и передавать параметр "ФильтрФайлов"

&НаКлиенте Процедура ОткрытьФайл(Команда) ФормаСписка =ПолучитьФорму("Справочник.ХранилищеФайлов.Форма.ФормаСпискаФайлов");    ФормаСписка.ФильтрФайлов = Объект;    ФормаСписка.Открыть(); КонецПроцедуры 

В справочнике в форме списка установлен произвольный запрос:

ВЫБРАТЬ     ХранилищеФайлов.Наименование КАК Наименование ИЗ     Справочник.ХранилищеФайлов КАК ХранилищеФайлов ГДЕ     ХранилищеФайлов.Объект = &Объект

Так же в форме списка справочника код "ПриОткрытии"
&НаКлиенте Процедура ПриОткрытии(Отказ)    СписокФайлов.Параметры.УстановитьЗначениеПараметра("Объект",ФильтрФайлов); КонецПроцедуры

И у справочника есть реквизит "Объект" который является ссылкой на документ Заявки из которого запускаем форму справочника

Подскажите в чем ошибка, т.к. я начинающий не пойму как правильно передать параметр и собственно сделать чтобы отобранные файлы были = Объекту т.е. уникальной заявке (документу)

Ошибка выводится следующая:
{Справочник.ХранилищеФайлов.Форма.СписокФайлов.Форма(26,64)}: Переменная не определена (ФильтрФайлов)    СписокФайлов.Параметры.УстановитьЗначениеПараметра("Объект",<<?>>ФильтрФайлов);

sadovod

В вашем случае совершенно не нужно использовать метод ПолучитьФорму(), достаточно её просто открыть, передав нужный параметр.
&НаКлиенте Процедура ОткрытьФайл(Команда)    ПараметрФормы = Новый Структура("ФильтрФайлов", Объект);   //  очень неудачно вы выбрали имя переменной "Объект", странно, что платформа не выдала ошибку    ОткрытьФорму("Справочник.ХранилищеФайлов.Форма.ФормаСпискаФайлов", ПараметрФормы) КонецПроцедуры

В форме списка нужно использовать не ПриОткрытии(), а ПриСозданииНаСервере()
Процедура ПриСозданииНаСервере()    СписокФайлов.Параметры.УстановитьЗначениеПараметра("Объект", Параметры.ФильтрФайлов); КонецПроцедуры

qpluckq

Спасибо большое, вроде заработало, но теперь ругается на запрос

{(9, 25)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ХранилищеФайлов.Объект <<?>>= &Объект

Здесь сравнивается реквизит ссылка на документ с параметром, это не верно? подскажите как поступить?

и объект это не имя переменной, это ссылка на "Объект" который в форме документа

sadovod

Не зная структуры ваших метаданных, вряд ли смогу дать вменяемый ответ...
Добавлено: 26 фев 2014, 21:41


>> это ссылка на "Объект" который в форме документа
Ну, я так и подозревал. Реквизит "Объект" в форме документа - это специальный тип данных формы (ДанныеФормыКоллекция). В вашем случае скорее всего нужно задавать в качестве параметра Объект.Ссылка
Но это - только предположение

Теги: 8.2 Список Отбор 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск