Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отбр в табличной части УФ

Отбр в табличной части УФ
Я
   Anast
 
08.07.20 - 09:33
Подскажите, как сделать отбор в табличной части на форме в управляемых формах?
В табличной части справочника есть реквизит Документ. У Документа есть реквизит Контрагент, у контрагента Регион. Документ и Регион выведены на форму табличной части. Как сделать отбор по Региону без добавления реквизита табличной части? Если добавить колонку реквизита, то данных там не будет и если делать

СтруктураПоиска = СписокЗаказов.ТекущиеДанные.Регион; данных там не будет.

Надо сделать именно отбор, чтобы потом с отобранными на форме строками работать, т.е. для этих строк проставить значение реквизита.
   Fedor-1971
 
1 - 08.07.20 - 09:42
(0) Сформулируй корректно вопрос. Какой-то поток сознания
Документ и Регион ВЫВЕДЕНЫ на форму ТЧ, Как сделать отбор БЕЗ ДОБАВЛЕНИЯ реквизита ТЧ

как так то?

Если таки в ТЧ Регион есть, то:
 добавляем реквизит формы НужныйРегион
 Если НужныйРегион.Пустая() тогда
     Элементы.СписокЗаказов.ОтборСтрок = Неопределено;

 Иначе
     Элементы.СписокЗаказов.ОтборСтрок = новый ФиксированнаяСтруктура("Регион", НужныйРегион);
 КонецЕсли;

   Anast
 
2 - 08.07.20 - 09:44
Регион не реквизит табличной части, а просто колонка, которая красный обозначается, а не синим
   Anast
 
3 - 08.07.20 - 09:47
Если реквизит есть в ТЧ, то там просто все.
   Fedor-1971
 
4 - 08.07.20 - 09:50
(2) у колонки имя есть? вот и впиши его вместо "Регион" в структуру отбора
   Fedor-1971
 
5 - 08.07.20 - 09:51
ОтборСтрок - это чисто на форме и устанавливается НаКлиенте
   Anast
 
6 - 08.07.20 - 09:52
(4) так данных-то там нет в этой колонке, они просто на форме отображаются. Надо сначала заполнять их?
   Fedor-1971
 
7 - 08.07.20 - 09:58
(6) Да, сначала заполни Регионы, а потом ставь отбор.

В УФ ты можешь достать реквизит из Ссылки прямо на форму, т.е. находишь свой Регион у контрагента из Документа и просто добавляешь его на форму в ТЧ - в таком раскладе заполнять колонку не нужно.
Может подсесть скорость работы формы - зависит от количества документов
   Anast
 
8 - 08.07.20 - 10:12
(7) не получается так.
Реквизит или колонка реквизита не найден.
А если добавить реквизит формы, то нет данных там
   Fedor-1971
 
9 - 08.07.20 - 10:18
(8) пойдём простым путём
Добавляем реквизит формы в ТЧ, называем "Регион" с нужным типом (как я понимаю, справочник)
ПриСозданииНаСервере - заполняем регионы из документов, которые есть в ТЧ

Проверяем, есть ли данные в колонке "Регион" когда открывается форма в пользовательском режиме

Вторым шагом добавляем реквизит формы "НужныйРегион", выводим его на форму и в ПриИзменении пишем код выше (про очистку, надеюсь, сам догадаешься)
   Chameleon1980
 
10 - 08.07.20 - 10:54
найди пункт изменить форму
найти документ и добавь нужное поле
сделай отбор
   Anast
 
11 - 09.07.20 - 09:07
Сделала как в (9) посоветовали. Спасибо.
А теперь еще вопрос. Почему не работает оповещение о закрытии? Добавлена кнопка редактирования контрагента, т.к. это информационное поле в табличной части, а не реквизит и его открыть просто так невозможно.
Далее при изменении данных у контрагента надо изменять и данные в колонке табличной части, т.е. регион.

&НаКлиенте
Процедура РедактироватьКонтрагента(Команда)
    
    СписокЗаказов = ЭтаФорма.Элементы.Состав; 
    ТекущийКонтрагент = СписокЗаказов.ТекущиеДанные.Документ.Контрагент;
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Ключ", ТекущийКонтрагент);
    
    ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ОбновитьРегионы",ЭтотОбъект);
    ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта",ПараметрыФормы,ЭтаФорма,,,ОписаниеОповещенияОЗакрытии);
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьРегионы () Экспорт
       СОобщить ("!!");
        
КонецПроцедуры

В процедуру ОбновитьРегионы() не заходит
   Fedor-1971
 
12 - 09.07.20 - 09:19
(11) Вот тут не хватает ","
ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта",ПараметрыФормы,ЭтаФорма,,, <- должно быть 4 штуки

И так-то есть справка и контекстная подсказка.
   Anast
 
13 - 09.07.20 - 09:30
не работает все равно. А может это быть связно в тем, что у конфигурации режим использования модальности установлен использовать?
   Fedor-1971
 
14 - 09.07.20 - 10:32
(13) По идее, не должно, т.к. это фишки платформы, по факту, может не работать
просто проверь, используй ОткрытьФормуМодально и вызывай следом функцию обновления данных
   Anast
 
15 - 09.07.20 - 10:40
Если сделать ОткрытьФормуМодально и потом процедура, то работает.
Интересно, почему не получается ОписаниеОповещения?
   Fedor-1971
 
16 - 09.07.20 - 10:47
(15) Возможно, разрешение на использование модальности отключает функционал оповещений при работе с окнами
   Anast
 
17 - 09.07.20 - 10:49
Пробовала делать режим использования модальности не использовать, не работает все равно
   Fedor-1971
 
18 - 09.07.20 - 11:53
(17) вот чисто интересно, в справку посмотреть не судьба?

ОткрытьФорму(
<ИмяФормы>,                "Справочник.Контрагенты.ФормаОбъекта",
<Параметры>,               ПараметрыФормы
<Владелец>,                ЭтаФорма 
<Уникальность>,              Пусто 
<Окно>,                      Пусто
<НавигационнаяСсылка>,     ОписаниеОповещенияОЗакрытии
<ОписаниеОповещенияОЗакрытии>, 
<РежимОткрытияОкна>)

Поставь оповещение в нужную позицию

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.