Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Быстрый доступ к элементу отбора в обработке(!)

Быстрый доступ к элементу отбора в обработке(!)
Я
   PCcomCat
 
14.03.18 - 15:52
Доброго времени, уважаемые!

Подскажите, ка в обработке сделать так, чтобы как у отчета можно было вывести элементы отбора в быстром доступе.

Сейчас сделано через таблицу, у которой путь данных = КомпоновщикНастроек.Настройки.Отбор.

Заранее благодарю!
 
 
   Cyberhawk
 
1 - 14.03.18 - 15:54
Посмотри общую форму отчета у любой типовой на БСП
   Cyberhawk
 
2 - 14.03.18 - 15:54
Таблица с источником-компоновщиком никакие быстрые отборы не умеет
   PCcomCat
 
3 - 14.03.18 - 15:55
У меня УПП на УФ
   Cyberhawk
 
4 - 14.03.18 - 15:56
Я вроде не спрашивал, чего там у тебя
   PCcomCat
 
5 - 14.03.18 - 16:03
)) Спасибо
Читать и читать в этой форме...
   PCcomCat
 
6 - 14.03.18 - 18:27
Ох, пните еще раз в нужную сторону!

смотрю в ЗУП 3.1:
            
ПолеВвода = Элементы.Добавить(ЗначениеИмя, Тип("ПолеФормы"), Группа);
ПолеВвода.Вид                = ВидПоляФормы.ПолеВвода;
ПолеВвода.Заголовок          = СвойстваНастройки.Представление;
ПолеВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;

Если СтрДлина(СвойстваНастройки.Представление) > 40 Тогда// Если заголовок существенно длиннее остальных заголовков, переносим его.

    ПолеВвода.ВысотаЗаголовка = 2;
КонецЕсли;
            
// Связь с СКД.

ПолеВвода.ПутьКДанным = Прочее.ПутьККомпоновщику + ".ПользовательскиеНастройки[" + СвойстваНастройки.ИндексВКоллекции + "].Значение";

Я по аналогии пишу:
НовыйЭлемент = Элементы.Добавить("Сеть1", Тип("ПолеФормы"),);
НовыйЭлемент.Вид         = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.Заголовок   = "Сеть1";

НовыйЭлемент.ПутьКДанным = "КомпоновщикНастроекФормы.ПользовательскиеНастройки.Элементы[0].Значение";
НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право;

Но получаю ошибку:
{ВнешняяОбработка.ЗагрузкаЧерезЗагрузочныйФайл.Форма.ФормаУправляемая.Форма(182)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)
        Флажок.ПутьКДанным = "КомпоновщикНастроекФормы.ПользовательскиеНастройки.Элементы[0].Значение";
по причине:
Недопустимое значение

ЧЯДНТ?
   PCcomCat
 
7 - 14.03.18 - 18:29
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ИнициализироватьОтбор();
    ДобавлениеЭлементов();
КонецПроцедуры

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


А выше изложенное художество в процедуре ДобавлениеЭлементов()
   Cyberhawk
 
8 - 14.03.18 - 18:31
В отладке смотреть надо, что по твоему пути к данным есть данные
   PCcomCat
 
9 - 14.03.18 - 18:33
Есть данные - смотрела. Поэтому и пишу то, где есть значение.
   PCcomCat
 
10 - 14.03.18 - 18:34
КомпоновщикНастроекФормы.ПользовательскиеНастройки.Элементы[0] = ЗначениеПараметраНастроекКомпоновкиДанных
 
 Рекламное место пустует
   Cyberhawk
 
11 - 14.03.18 - 19:22
В (10) так-то не то, на что указывает путь к данным
   PCcomCat
 
12 - 14.03.18 - 19:41
(11) Ладно, спасибо, добрый человек! Подумаю посижу, что не так. Главное, чтобы направление верное было...
   Cyberhawk
 
13 - 14.03.18 - 19:49
(12) Ну ладно, подскажу еще: у таблицы формы есть свойство "Режим отображения" = "Быстрый доступ"
   PCcomCat
 
14 - 14.03.18 - 20:06
(13) Это первое, что сделала)) - нифига нет быстрого доступа!
   PCcomCat
 
15 - 14.03.18 - 20:07
Может к этому свойству еще какая-нибудь хитрость есть?
   Cyberhawk
 
16 - 14.03.18 - 20:15
Может. Но это уже надо смотреть, проверять, брать и пробовать
   PCcomCat
 
17 - 14.03.18 - 20:41
(17) "Я сама дошла - на лыжах!" А не работает это свойство по той причине, что это обработка, а не отчет.
   PCcomCat
 
18 - 14.03.18 - 23:03
Всё! Я это сделала!

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

        Группа.ОтображатьЗаголовок = Ложь;
        Группа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
        
        НовыйЭлемент = Элементы.Добавить("Использование" + ЭлементОтбора.ЛевоеЗначение, Тип("ПолеФормы"), Группа);
        НовыйЭлемент.Вид         = ВидПоляФормы.ПолеФлажка;
        //НовыйЭлемент.Заголовок   = "Использование";

        НовыйЭлемент.ПутьКДанным = "КомпоновщикНастроекФормы.Настройки.Отбор[" + инд + "].Использование";
        НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
        
        НовыйЭлемент = Элементы.Добавить("Параметр" + ЭлементОтбора.ЛевоеЗначение, Тип("ПолеФормы"), Группа);
        НовыйЭлемент.Вид         = ВидПоляФормы.ПолеВвода;
        //НовыйЭлемент.Заголовок   = "Параметр";

        НовыйЭлемент.ПутьКДанным = "КомпоновщикНастроекФормы.Настройки.Отбор[" + инд + "].ЛевоеЗначение";
        НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
        
        НовыйЭлемент = Элементы.Добавить("ВидСравнения" + ЭлементОтбора.ЛевоеЗначение, Тип("ПолеФормы"), Группа);
        НовыйЭлемент.Вид         = ВидПоляФормы.ПолеВвода;
        //НовыйЭлемент.Заголовок   = "ВидСравнения";

        НовыйЭлемент.ПутьКДанным = "КомпоновщикНастроекФормы.Настройки.Отбор[" + инд + "].ВидСравнения";
        НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
        
        НовыйЭлемент = Элементы.Добавить("Значение" + ЭлементОтбора.ЛевоеЗначение, Тип("ПолеФормы"), Группа);
        НовыйЭлемент.Вид         = ВидПоляФормы.ПолеВвода;
        //НовыйЭлемент.Заголовок   = "Значение";

        НовыйЭлемент.ПутьКДанным = "КомпоновщикНастроекФормы.Настройки.Отбор[" + инд + "].ПравоеЗначение";
        НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
        
        инд = инд + 1;
    КонецЦикла;
КонецПроцедуры
   PCcomCat
 
19 - 14.03.18 - 23:05
Выражаю благодарность Cyberhawk за направление в нужное русло!
   PCcomCat
 
20 - 15.03.18 - 11:02
О, гуру! Продолжаю разбираться. Помогите опытом или советом!

Есть элемент отбора СКД типа ПеречислениеСсылка.ТакоеТо, который разместила на форме. Мне нужно органичить список выбора элемента с учетом того, что возможен вид сравнения в списке. Задать в схеме не могу, т.к. состав списка задается по определенным условиям.

Делаю:

    СписокСостояний = Новый СписокЗначений;
    ЗаполнитьСписокСостояний(СписокСостояний);
    КомпоновщикНастроекФормы.Настройки.Отбор.ДоступныеПоляОтбора.Элементы[8].ДоступныеЗначения = СписокСостояний;

Это делаю при инициализации в процедуре ИнициализироватьОтбор(). Но при НачалеВыбора проверяю отладчиком ДоступныеЗначения выше указанного элемента, а там опять Неопределено.

Как можно реализовать необходимое мне органичение?
   Вафель
 
21 - 15.03.18 - 11:05
(20) нужно у элемента формы делать
   PCcomCat
 
22 - 15.03.18 - 11:26
(21) Хорошо, для ВидСравнения "Равно" я могу это следать, даже пробовала. А вот как быть, когда нужно ВидСравнения "В списке"?
   Cyberhawk
 
23 - 15.03.18 - 11:27
(22) У элемента формы, огладываясь на текущий вид сравнения
   PCcomCat
 
24 - 15.03.18 - 11:37
Я не догоняю чего-то...

Если я поставлю ВидСравнения "В списке", например, то открывается типовой подбор в список значений.

Мне подменять форму выбора?
   cw014
 
25 - 15.03.18 - 11:38
(24) А что должно быть?
   PCcomCat
 
26 - 15.03.18 - 11:38
Ну, так там мне тоже нужно, чтобы при подборе значений в список значений давался ограниченный вариант.
   PCcomCat
 
27 - 15.03.18 - 11:40
В моём представлении, как-то надо на начальном этапе в настройки схемы запихивать ограничение, а в элементе, связанном с настройками схемы, должно автоматом отрабатывать ограничение.
Или у меня слишком фантазийное представление?))
   PCcomCat
 
28 - 15.03.18 - 12:32
Решение череззад, но пока так...

В моем случае создаю две одинаковые схемы, в которых для нужного поля устанавливаю в самой схеме доступные значения.
А в зависимости от моих условий, я получаю настройки нужной схемы.

Буду очень благодарна, если есть у кого опыт программной установки ДоступныхЗначений, поделится вариантом решения.
   Вафель
 
29 - 15.03.18 - 12:48
может в зависимости от условий саму схему корректировать?
   Вафель
 
30 - 15.03.18 - 12:49
те при изменяем схему и переинициализируем компоновщик
   PCcomCat
 
31 - 15.03.18 - 13:12
Мне, в принципе, достаточно при открытии заполнить КомпоновщикНастроек, т.к. элементы его отбора добавляются программно на форму, чтобы пользователю красиво было и наглядно. Они ж у нас ранимые создания!
   PCcomCat
 
32 - 15.03.18 - 13:14
&НаСервере
Процедура ИнициализироватьОтбор() 
    РольДоступна_КорректировкаЗакрытия = РольДоступна("КорректировкаЗакрытия");
    
    //Нужно для реализации ограничения списка выбора для реквизита Состояние

    ИмяМакетаСКД = ?(РольДоступна_КорректировкаЗакрытия, "СхемаКомпоновкиДанных_КорректировкаЗакрытия", "СхемаКомпоновкиДанных");
        
    Обработка =  РеквизитФормыВЗначение("Объект");
    
    СхемаКомпоновкиДанных = Обработка.ПолучитьМакет(ИмяМакетаСКД); 
    Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки;
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных); 
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    КомпоновщикНастроекФормы = КомпоновщикНастроек;
КонецПроцедуры
   Cyberhawk
 
33 - 15.03.18 - 13:44
А почему кстати используется обработка, а не отчет? Это какая-то типовая обработка, которую потребовалось доработать?
 
 
   PCcomCat
 
34 - 15.03.18 - 14:20
Разработка по тз. Я не всё могу оспорить
   Cyberhawk
 
35 - 15.03.18 - 14:28
Так зачем оспаривать - просто спроси, мол, чем думал постановщик
   PCcomCat
 
36 - 15.03.18 - 14:56
(35) Дайте мне испытательный срок пройти!))  Зато с такой постановкой я для себя много нового отрыла))

Я, конечно, спрашивала, вернее говорила, что вот если бы это сделать как отчет, то проблем было бы меньше. На что мне ответили, что какая разница между отчетом и обработкой - одно и то же, делай по ТЗ. Слушаю и временно повинуюсь.
   Cyberhawk
 
37 - 15.03.18 - 14:59
Ясно. Срок, значит, срок )


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