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

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

Автор Анюта17, 14 мая 2018, 13:25

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

Анюта17

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

KOI8-R


Анюта17

Цитата: KOI8-R от 14 мая 2018, 13:35
Как сегодня писал wise: https://1c-programmer-blog.ru/programmirovanie/kak-otkryt-formu-s-otborom.html

&НаКлиенте
Процедура ПодобратьТранспорт(Команда)

фиксНастройки = Новый НастройкиКомпоновкиДанных;

эОтбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
эОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тоннаж");
эОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
//эОтбор.ПравоеЗначение = "Тест2";
эОтбор.Использование = Истина;

эОтбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", фиксНастройки);

ОткрытьФорму("Справочник.Транспорт.Форма.ФормаСписка", ПараметрыФормы, Элементы.ОбщийТоннаж);

КонецПроцедуры


Тоннаж = 2000
Общий тоннаж указываю 1000
и отбор пустой
Что я не так делаю

KOI8-R

эОтбор.ПравоеЗначение = Объект.ОбщийТоннаж; // сюда вставляется значение с которым сравниваете (это если у вас общийтоннаж это реквизит объекта)
...
ОткрытьФорму("Справочник.Транспорт.Форма.ФормаСписка", ПараметрыФормы, ЭтаФорма); //а сюда владелец формы, чтобы потом можно было вернуть на неё по владельцу

Анюта17

Цитата: KOI8-R от 14 мая 2018, 14:47
эОтбор.ПравоеЗначение = Объект.ОбщийТоннаж; // сюда вставляется значение с которым сравниваете (это если у вас общийтоннаж это реквизит объекта)
...
ОткрытьФорму("Справочник.Транспорт.Форма.ФормаСписка", ПараметрыФормы, ЭтаФорма); //а сюда владелец формы, чтобы потом можно было вернуть на неё по владельцу


&НаКлиенте
Процедура ПодобратьТранспорт(Команда)

фиксНастройки = Новый НастройкиКомпоновкиДанных;

эОтбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
эОтбор.ПравоеЗначение = Объект.ОбщийТоннаж;
эОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
эОтбор.Использование = Истина;

эОтбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", фиксНастройки);

ОткрытьФорму("Справочник.Транспорт.Форма.ФормаСписка", ПараметрыФормы, ЭтаФорма);

КонецПроцедуры


Ошибка:
Ошибка при выполнении запроса.
по причине:
Ошибка в элементе отбора: глобальные элементы отбора обязательно должны использовать поля " Меньше или равно ..."

KOI8-R


Анюта17

Цитата: KOI8-R от 15 мая 2018, 01:13
Блин, ну а левое значение вы куда убрали из кода? ui;;t;

упс, теперь заработало, спасибо)
а если мне еще по объему надо отбор сделать в этом же справочнике, тогда как

Теги:

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

Рейтинг@Mail.ru

Поиск