Произвольный отбор при открытии формы любого динамического списка
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(4) Так и надо всю эту воду из статьи убрать и оставить нужное
ФиксНастройки = Новый НастройкиКомпоновкиДанных;
ФиксНастройки.ПараметрыДанных.Элементы.Добавить().Параметр = Новый ПараметрКомпоновкиДанных("Период");
ФиксНастройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", ПППП);
УправлениеНебольшойФирмойКлиент.УстановитьЭлементОтбораСписка(ФиксНастройки, "Склад", СССС);
Показать
(4)
Может быть для потомков покажете вторую редакцию готового кода, с замененными фрагментами? Может как-то бы и в статье это отразить?
И не понятно, если при всех одинаковых вводных, можно написать меньше когда, то почему не воспользоваться данной возможностью? :)
но компоновка тут нужна лишь для получения фиксированных настроек, т.е. фактически весь этот код можно заменить на "ФиксНастройки = Новый НастройкиКомпоновкиДанных".
Может быть для потомков покажете вторую редакцию готового кода, с замененными фрагментами? Может как-то бы и в статье это отразить?
И не понятно, если при всех одинаковых вводных, можно написать меньше когда, то почему не воспользоваться данной возможностью? :)
(10) Так вы для кого статью то писали, для себя или для других? Если для себя - вопросов нет. Если для других, вы зачем-то предложили длинный путь при наличии короткого. Дальше эту статью очевидно будут находить поисковиком и просто копи-пастить, меняя название документа и табличной части на свое. И расползется ваша портянища по многим и многим конфам. Я уверен, даже до комментов основная масса не дойдет, зная что решение - работает.
Дополните статью коротким вариантом, типа "но код можно подсократить, и я покажу как".
Переживаю сильно, т.к. многие тонны классного навоза вот таким вот копи-паством потом приходится разгребать. Надеюсь вы немножко облегчите этот труд будущим потомкам, а может и мне :)
Спасибо.
Дополните статью коротким вариантом, типа "но код можно подсократить, и я покажу как".
Переживаю сильно, т.к. многие тонны классного навоза вот таким вот копи-паством потом приходится разгребать. Надеюсь вы немножко облегчите этот труд будущим потомкам, а может и мне :)
Спасибо.
Ваще чего-то совсем баян. Из серии "как вывести пользователю сообщение". С чего вдруг столько плюсов?..
Автор, насчёт производительности что-нибудь известно? Или это вариант только для простых списков по основной таблице?
Автор, насчёт производительности что-нибудь известно? Или это вариант только для простых списков по основной таблице?
(5) все зависит от того, что открывает пользователь. Если первый вариант отбора позволяет на "Равно" и "ВСписке" отбирать, то второй фактически определяет любой отбор, доступный пользователю в настройке списка, только при этом пользователь не видит отбор из фиксированных настроек. Производительность определяется полями отбора, которые уже будут влиять на план запроса в СУБД. Если по индексированному полю отбор происходит - производительность будет высокая, а если по какому-то ПОДОБНО в реквизите табличной части, то все зависит от размера таблицы. Я как-то руками группировку попытался сделать по весьма небольшому справочнику - пятнадцать минут ждал, пока программа что-то вернет.
С другой стороны, если показать пользователю меньше данных, то есть некоторый шанс на то, что пользователь не выберет что-то не то.
ЗЫ: Ты до сих пор не знаешь, за что на Инфостарте плюсуют? Могу как-нибудь рассказать...
С другой стороны, если показать пользователю меньше данных, то есть некоторый шанс на то, что пользователь не выберет что-то не то.
ЗЫ: Ты до сих пор не знаешь, за что на Инфостарте плюсуют? Могу как-нибудь рассказать...
Забавно, а что будет автор если пользовательские настройки будут идти в наложении(Например сохраненные) или пользователь захочет потом сам настроить дин. список? вывалиться ошибка, наложение икс и пользовательских настроек недопустимо.Тогда имеет смыл запретить редактирование настроек при открытии динамического списка.
За труды все равно плюсану.
За труды все равно плюсану.
Использовать фиксированные настройки не гуд, ибо отбор по полю, на которое наложен уже отбор в фиксированных настройках приведет к ошибке. И часто приводит к тому, что такой список становится нафиг никому не нужен.
Почему не использовать пользовательские настройки с доступностью - недоступный?
Почему не использовать пользовательские настройки с доступностью - недоступный?
Что то типо такого.
ПараметрыФормы = Новый Структура("ПользовательскиеНастройки", ПользовательскиеНастройки);
ПараметрыФормы.Вставить("СформироватьПриОткрытии" , Истина);
Форма = ОткрытьФорму("Отчет.XXXXX.Форма.ФормаОтчета", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Источник.УникальныйИдентификатор, ПараметрыВыполненияКоманды.Окно);
ПараметрыФормы = Новый Структура("ПользовательскиеНастройки", ПользовательскиеНастройки);
ПараметрыФормы.Вставить("СформироватьПриОткрытии" , Истина);
Форма = ОткрытьФорму("Отчет.XXXXX.Форма.ФормаОтчета", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Источник.УникальныйИдентификатор, ПараметрыВыполненияКоманды.Окно);
Получилось, хоть и не без шаманства. Оказывается, идентификатор пользовательских отборов для любого динамического списка при создании формы всегда один и тот же: "dfcece9d-5077-440b-b6b3-45a5cb4538eb".
Может, кому-нибудь пригодится:
Может, кому-нибудь пригодится:
&НаКлиенте
Процедура Реквизит1НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
ИдентификаторПользовательскойНастройки = "dfcece9d-5077-440b-b6b3-45a5cb4538eb";
Отбор = ПользовательскиеНастройки.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
Отбор.ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки;
Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
ЭлементОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
ЭлементОтбора.ПравоеЗначение = "Вода";
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор;
ПараметрыФормы = Новый Структура("ПользовательскиеНастройки", ПользовательскиеНастройки);
ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1", ПараметрыФормы, Элемент);
КонецПроцедуры
ПоказатьПрикрепленные файлы:
ВнешняяОбработка1.epf
(30) Плюсанул.
Небольшая приятность пользователю: если элемент уже выбран, и требуется повторное открытие формы выбора, то можно передать начальное значение выбора:
.....
Небольшая приятность пользователю: если элемент уже выбран, и требуется повторное открытие формы выбора, то можно передать начальное значение выбора:
.....
ПараметрыФормы = Новый Структура("ПользовательскиеНастройки", ПользовательскиеНастройки);
//+++
ПараметрыФормы.Вставить("ТекущаяСтрока", Элемент.Значение);
//---
ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1", ПараметрыФормы, Элемент);
КонецПроцедуры
автор молодец. И не слушай что пишут мол можно сделать короче.
Лично я увидел в вашей публикации то что мне было нужно, а вот фиксированные настройки, мне вообще были не нужны
И в целом я так считаю что чем подробней и четче описано явление то это к лучшему.
Можно и два варианта типа длинный и типа короткий.
Лично я увидел в вашей публикации то что мне было нужно, а вот фиксированные настройки, мне вообще были не нужны
И в целом я так считаю что чем подробней и четче описано явление то это к лучшему.
Можно и два варианта типа длинный и типа короткий.
Вакансии
Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день