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

1С:Предприятие 8.2 (8.2.15.289) Открытие формы списка с предварительным отбором

Автор sas_255, 21 дек 2015, 12:17

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

sas_255

1С:Предприятие 8.2 (8.2.15.289) самописная учебная конфигурация.
Есть форма списка заявок на обслуживание.
Необходимо настроить форму так, чтобы при открытии отображались только заявки на обслуживание у которых статус "Открыто"

Попытался использовать такую процедуру
&НаКлиенте Процедура ПриОткрытии(Отказ) ЗначениеОтбора = Новый Структура("СтатусЗаявки", "Открыто"); ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора); ОткрытьФорму("Документ.ЗаявкаНаОбслуживание.ФормаСписка",ПараметрыВыбора); КонецПроцедуры
Но по какой то причине она не работает. Более того при ее работе 1С вообще запуске подвисает, а потом закрывается, не выдавая никаких ошибок(форма на рабочем столе, то есть должна отображаться при запуске).
Что я не так делаю?
Режим "Управляемое приложение".


vitasw

Я б начал с обновления платформы.
Какой тип у реквизита "СтатусЗаявки"?

sas_255

Цитата: vitasw от 21 дек 2015, 12:37
Я б начал с обновления платформы.
Какой тип у реквизита "СтатусЗаявки"?
Для чего обновлять платформу? Насколько я понимаю, если перейти на 8,3 то придется переписывать конфигурацию с нуля.
Тип у реквизита "СтатусЗаявки"    СправочникСсылка.СтатусыЗаявок

LexaK

попробуйте по такому примеру сделайте
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //УстановитьОформление(); УстановитьОтбор(); КонецПроцедуры &НаСервере Процедура УстановитьОтбор()     Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));     Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");     Отбор.ПравоеЗначение  = "ма";     Отбор.ВидСравнения  = ВидСравненияКомпоновкиДанных.Содержит;     Отбор.Использование=Истина; КонецПроцедуры
если помогло нажмите: Спасибо!

sas_255

LexaK, использовал то что вы сказали

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

Платформу обновил до 1С:Предприятие 8.2 (8.2.19.130) Все равно ничего не изменилось.

vitasw

Цитата: sas_255 от 21 дек 2015, 12:53Для чего обновлять платформу?
Для того, чтобы исключить возможные ошибки платформы. Совневаюсь, что кто-то на лету подтвердит работу метода именно на вашей версси платформы
Цитата: sas_255 от 21 дек 2015, 12:53Насколько я понимаю, если перейти на 8,3 то придется переписывать конфигурацию с нуля.
Нет, неправильно понимаете.
К тому же про 8.3 никто не говорил.
Цитата: sas_255 от 21 дек 2015, 12:53Тип у реквизита "СтатусЗаявки"    СправочникСсылка.СтатусыЗаявок

Так, какого массива!, вы в отбор пихаете значение типа строка?!
Цитата: sas_255 от 21 дек 2015, 12:17ЗначениеОтбора = Новый Структура("СтатусЗаявки", "Открыто"); ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);



LexaK

sas_255, это же пример, надо свои условия адаптировать

статус у вас, скорее всего перечисление, тогда так
Отбор.ПравоеЗначение  = Перечисления.СтатусыЗаявок.Открыто; //"Открыто";

а для конкретного сравнения, надо
Отбор.ВидСравнения  = ВидСравненияКомпоновкиДанных.Равно; //Содержит;

ну хоть, чуть-чуть то голову включайте :befhbt: , или вы в школе даже контрольную не могли списать подставив свои данные :(?
если помогло нажмите: Спасибо!

sas_255

Цитата: LexaK от 21 дек 2015, 13:27
sas_255, это же пример, надо свои условия адаптировать
статус у вас, скорее всего перечисление, тогда так
Отбор.ПравоеЗначение  = Перечисления.СтатусыЗаявок.Открыто; //"Открыто";

ну хоть, чуть-чуть то голову включайте :befhbt: , или вы в школе даже контрольную не могли списать подставив свои данные :(?
Статусы в справочнике.
Отбор.ПравоеЗначение  = Справочники.СтатусыЗаявок.Открыто;
Просто, чтобы подставить свои данные, нужно немного получше знать синтаксис и правила обращения к объектам.
1С я вижу всего то 5 дней. Поэтому плаваю.

cska-fanat-kz

другие варианты:
1) настроить отбор мышью в настройках динамического списка
2) добавить условие в запрос, по которому строится динамический список
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

sas_255

Цитата: cska-fanat-kz от 21 дек 2015, 13:38
другие варианты:
1) настроить отбор мышью в настройках динамического списка
2) добавить условие в запрос, по которому строится динамический список
1 Так делал в первую очередь. Но настройки не сохраняются, после выхода все возвращается на исходные.
2 не совсем понял как. Я просто создал форму списка. Никаких запросов не делал.

Теги:

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

Рейтинг@Mail.ru

Поиск