Как скрыть "пустые группы" в списке выбора справочника при отборе

Публикация № 413242

Разработка - Работа с интерфейсом

пустые группы форма выбора

46
Когда требуется открыть список справочника с отбором, например, по определённой группе, видны также все остальные группы с пустым содержимым. Мой способ избавления от ненужных групп ниже.

Стоит задача - открыть форму выбора справочника по определённой группе.

Вроде, всё просто, делаем отбор по иерархии:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ГруппаКонструктора = Параметры.ГруппаКонструктора;
ПроверочныйЭлемент = Параметры.ПроверочныйЭлемент;

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

 

В форме выбора в настройке списка видим требуемый отбор по группе "Огурцы":

 отбор по иерархии

 

Однако сам список справочника выглядит неожиданно:

Список справочника только с отбором

Если открывать группы, видим, что элементы присутствуют только в группе "Огурцы", остальные группы пусты. Отбор работает, но от лишних "пустых" групп хотелось бы избавиться. 

Есть решение от headMade в этой публикации //infostart.ru/public/311136/ .

Я нашёл другой вариант условного оформления. Ниже вторая половина процедуры "ПриСозданииНаСервере" формы выбора справочника:

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

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

Если ПроверочныйЭлемент.Пустая() Тогда
Элементы.Список.ТекущаяСтрока = ГруппаКонструктора;
Иначе
Элементы.Список.ТекущаяСтрока = ПроверочныйЭлемент;
КонецЕсли;

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

 

Данный код устанавливает параметр "Видимость" условного оформления динамического списка в значение "Нет" по следующему условию

Условие видимости групп справочника

Результат такого оформления ниже:

 Результат

Видна только нужная группа, её подгруппы и их элементы. Что, собственно, и хотелось увидеть.

 

Upd:

shurik_shurik предложил лучшее, более понятное решение (комментарий № 5):

 

    ГруппаКонструктора = Справочники.Номенклатура.НайтиПоКоду("00-00000001");
    
    ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
    ОтборПоГруппе.ПравоеЗначение = ГруппаКонструктора;

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

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. rozer 259 29.10.15 10:20 Сейчас в теме
есть только один недостаток ИМХО, выражение "НЕ В ИЕРАРХИИ" очень сильно нагружают СУБД
linkki; shevelyov; +2 Ответить
2. shevelyov 67 29.10.15 10:50 Сейчас в теме
(1) rozer, согласен, мой отбор по оформлению происходит заметно долго даже на глаз, мне самому не очень нравится моё решение, но придумать что-либо проще не удалось. Может, кто поделится более удачным решением?
3. Paradise.87 29.10.15 13:31 Сейчас в теме
Топорный, но эффективный вариант: В реквизит группы или в РС записывать количество вложенных элементов (При записи номенклатуры или рег.заданием).
P.S. Но вроде и без реализации этой хотелки многие прекрасно живут.)
4. headMade 140 29.10.15 14:23 Сейчас в теме
shevelyov,
Главное отличие от того что есть в публикации http://infostart.ru/public/311136/ видно даже из постановки задачи: у вас "Когда требуется открыть список справочника с отбором, например,ПО ОПРЕДЕЛЕННО ГРУППЕ", а там "при открытии формы выбора накладываются определенные УСЛОВИЯ НА ЭЛЕМЕНТЫ СПРАВОЧНИКА". Т.е. вы сразу знаете какие группы д.б. видны, а там они определяется исходя из иерархии справочника и накладываемых условия отбора на элементы справочника.

Кроме того если вам надо показать огурцы, которые будут находиться в
-Группа "Овощи и фрукты"
-- Группа "Овощи"
--- Группа "Огурцы"
В вашем случаем пользователь будет видеть ТОЛЬКО группу "Огурцы", а там будет видна вся иерархиям полностью вплоть до группы "Огурцы".
shevelyov; +1 Ответить
5. shurik_shurik 04.11.15 23:52 Сейчас в теме
предложенный в этой статье вариант натолкнул меня на одну интересную мысль, решил проверить, вроде получилось:
        ГруппаКонструктора = Справочники.Номенклатура.НайтиПоКоду("00-00000001");
	
	ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
	ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
	ОтборПоГруппе.ПравоеЗначение = ГруппаКонструктора;

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

Что интересно, без второй строки с "Отображать" система вела себя не адекватно..
А вообще смысл в том, что всем выключить видимость, а после по отбору "ВИерархии" включить....
Вот только не пойму, есть ли прирост в скорости по сравнению с "НЕ в ИЕРАРХИИ"
begemot; 4ed; shevelyov; +3 Ответить
6. shevelyov 67 05.11.15 10:11 Сейчас в теме
(5) shurik_shurik, Замерил производительность обоих вариантов. Ваш, если и быстрее, то на десятитысячную секунды. Зато понятнее и проще. Включил Ваш код в статью. Надеюсь, Вы не против? Да, оказалось, что отбор по группе (строки 2-5 Вашего кода) излишен!
15. Nehc 20 19.12.17 09:19 Сейчас в теме
(6) "Да, оказалось, что отбор по группе (строки 2-5 Вашего кода) излишен!"

Это только пока в справочнике элементов относительно не много!

Попробовал на действительно большом справочнике - без предварительного отбора - так и не закончился вывод за разумное время.

Так что да, не зря ИТС не рекомендует, но... Не понятно почему все-таки нет нормального способа скрыть группы.
shevelyov; +1 Ответить
22. Xershi 712 27.11.18 23:59 Сейчас в теме
(15) потому что отбор в режиме иерархии работает только на элементы. Сними режим в список и получишь что хотел.
7. Chrizt 230 05.11.15 11:51 Сейчас в теме
А как быть с обычными формами?
8. shurik_shurik 05.11.15 13:00 Сейчас в теме
Вот Вам еще в копилку вариантов (правда он получается не совсем динамический, но эта проблема возникнет когда во время открытого списка, будут добавлять группы в корне справочнике или в группе выше от "ГруппаКонструктора"):
&НаСервере
Функция ПолучитьГруппыНеВИерархии(Группа)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа)
	|	И Номенклатура.ЭтоГруппа";
	Запрос.УстановитьПараметр("Группа",Группа);
	Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции


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

Скорость можете замерить. Я у себя визуально увидел реальную разницу в работе списка.
Даже если групп будет очень много, проще их хранить в памяти сервера и проверять, чем каждый раз дергать базу запросом "В ИЕРАРХИИ", который, кстати, тоже не может похвастаться быстродействием...
Вот с отбором в первых строках, тут нужно проверять более детально, в моем случае разницы с ним и без не заметил, для компактности убрал.
UPD Можно еще доработать на контроль уровня, поскольку если будет отбор не по корневой папке, тогда весь "этот разговор" разбивается об стенку....
CyberCerber; chizik05; shevelyov; +3 Ответить
9. scape 278 23.02.17 13:29 Сейчас в теме
В "такси" ведет себя не адекватно. Пропадает заголовок таблицы списка.
10. unknown181538 24 25.11.17 05:07 Сейчас в теме
(0) У меня очень сильно тормозило.
помогло следующее: т.к. элементы (не-группы) успешно скрываются отбором, то нужно в условия условного оформления добавить, условие, чтобы оно накладывалось только на группы.
ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
	ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
	ОтборПоГруппе.ПравоеЗначение = МассивГрупп;
	
	ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
	
	УслГруппаИ = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	УслГруппаИ.Использование = Истина;
	УслГруппаИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
	УслГруппаИ.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный; 
	
	УслЭтоГруппа = УслГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	УслЭтоГруппа.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	УслЭтоГруппа.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа");
	УслЭтоГруппа.ПравоеЗначение = Истина;
	
	УслОформГруппаНЕ = УслГруппаИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	УслОформГруппаНЕ.Использование = Истина;
	УслОформГруппаНЕ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаНе;
	УслОформГруппаНЕ.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный; 
	
	УслОформПоГруппе = УслОформГруппаНЕ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	УслОформПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
	УслОформПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
	УслОформПоГруппе.ПравоеЗначение = МассивГрупп;
Показать
shevelyov; +1 Ответить
11. AvalonE2008 95 04.12.17 14:07 Сейчас в теме
Большое спасибо за статью!
12. user649060 04.12.17 16:26 Сейчас в теме
ИТС: Условное оформление формы
"Не рекомендуется использовать условное оформление для скрытия в таблице строк целиком. Использование условного оформления для скрытия строк может негативно влиять на производительность и приводить к некорректному отображению содержимого таблицы."
13. shevelyov 67 04.12.17 22:06 Сейчас в теме
(12) Если есть лучшее и более простое решение - буду рад ознакомиться.
14. user649060 06.12.17 10:56 Сейчас в теме
(13) "лучшего и более простого решения" отбора групп в динамическом списке не существует.
Можно использовать РодительВерхнегоУровня таблицы формы.
Можно отказаться от иерархического отображения вообще.
Можно внутренними соединениями пошаманить.

Ну и вообще, при публикации таких статей стоит хотя бы упомянуть, что это велосипед, а не качественное решение. В первую очередь это нужно это для начинающих коллег, которые сразу могут этого самостоятельно не понять.
bushfish; PCcomCat; +2 1 Ответить
16. cruel 20.11.18 15:01 Сейчас в теме
Нашёл, как мне кажется "лучшее и более простое решение" вот тут: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=560816
Добавил в динамический список группировку по полю "Родитель". Всё сразу заработало.
Henistaromin; shevelyov; +2 Ответить
24. Henistaromin 16.08.19 10:02 Сейчас в теме
(16)
Добавил в динамический список группировку по полю "Родитель". Всё сразу заработало.

Единственное, что мне помогло. Быстро и просто, без лишнего кода. Спасибо!
17. skyboy13 10 27.11.18 18:39 Сейчас в теме
А это разве дает иерархию? Они идут списком, но по родителю.
Прикрепленные файлы:
18. shevelyov 67 27.11.18 22:05 Сейчас в теме
(17)

Если в группе "Диагностика анемий" в результате отбора будет пусто, Вы её всё равно будете видеть. В чём и проблема.
19. skyboy13 10 27.11.18 22:16 Сейчас в теме
Кстати нет, если пометить все позиции в группе на удаление, она исчезает !
Так же если фильтр в выборке наложить. Группы - Гематологии нет (там все элементы помечены на удаление)
Прикрепленные файлы:
20. skyboy13 10 27.11.18 22:22 Сейчас в теме
и кстати с деревом тоже получается
Прикрепленные файлы:
21. skyboy13 10 27.11.18 22:47 Сейчас в теме
Но здесь другая проблема, это кол-во уровней. Оно постоянно. И если уровень вложенности ниже максимального, то папка верхнего уровня получается пустой. А в данном примере 4.
То папка вложенности 2 в справочники, будет в данном варианте, как
<Пусто> - <Пусто> - <Имя1>-<Имя2>
23. titlimilitryambia 14.04.19 21:48 Сейчас в теме
В примере настраивается видимость группы верхнего уровня. А я пробовала на вложенной группе. Попробовала все варианты из статьи - не видно группы. Оказалось чтобы она стала видна нужно чтобы моя группа была текущей. Если на ней спозиционироваться, то она видна. Если нет - настройка видимости конкретно ее при отключенной видимости остальных не помогает. Это если режим просмотра иерархический список
shevelyov; +1 Ответить
25. user802036 19.08.19 16:00 Сейчас в теме
Спасибо огромное братан:) я 4 часа сидел, замучался блин, а твой код моментально подошёл)
Оставьте свое сообщение

См. также

Создание асинхронных виджетов 59

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    873    YPermitin    9       

Формы. Трудности программной работы 68

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Работа с интерфейсом

Рассматриваем основные подводные камни, с которыми приходится сталкиваться при программной работе с формами, а также способы обхода самых частых проблем.

06.10.2019    3237    YPermitin    20       

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С 33

Статья Программист Пользователь Стажер Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

Статья рассчитана на пользователей или программистов, которые только начинают работать с 1С, для максимально быстрого ознакомления с интерфейсом программы. В статье приведены лайфхаки, которые позволят вам быстро и эффективно научиться настраивать отчёты и печатные в среде программных продуктов 1С. Полученные знания значительно упростят взаимодействие с интерфейсом 1С и повысят продуктивность работы оператора.

02.10.2019    3885    VachKirp    8       

Добавляем виджет "Задачи от меня" в Документооборот 2.1 22

Статья Программист Нет файла v8 v8::Бизнес-процессы ДО Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    1499    Sergey_Borisovi4    2       

[Механизм интерфейса] Часы 54

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом Практика программирования Разработка

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    3050    rpgshnik    33       

Произвольная начальная страница через расширение (программно) 41

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    2484    nagaitseff    11       

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С 31

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    4475    IvanAT1981    14       

Пользовательские настройки системы компоновки данных 82

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

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

09.07.2019    6037    ids79    0       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 208

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом БСП (Библиотека стандартных подсистем)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    14048    YPermitin    49       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 91

Статья Программист Нет файла v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    7276    Viktor_Ermakov    6       

Свой макет оформления отчета 33

Статья Программист Нет файла v8 v8::СКД Россия Windows Бесплатно (free) Работа с интерфейсом

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    4464    olegpkc    5       

Динамический вывод таблицы значений на форму 35

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Вывести на форму таблицу значений, а потом на её место другую, третью, четвёртую? Не вопрос.

11.01.2019    5616    Vlad1917    26       

Прикладной пример переработки стандартной формы РМК - Розница 74

Статья Программист Нет файла v8 Розница УУ Кассовые операции Розничная торговля Бесплатно (free) Работа с интерфейсом

Простой пример, как с помощью программного изменения шрифтов элементов формы достичь наилучшего результата отображения на примере формы РМК.

04.10.2018    10771    asdfgcom    56       

Cправочная информация. Картинки. 16

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    6362    aspirator23    2       

Итоги в динамическом списке 47

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

28.05.2018    8934    CXY    16       

Программное управление обычными формами документов и справочников в УПП/КА 32

Статья Программист Нет файла v8 v8::УФ КА1 УПП1 Россия Бесплатно (free) Работа с интерфейсом

Если с программным изменением управляемых форм 1С все более или менее понятно, то с программированием обычных форм примеров не так уж много в сети. А уж примеров готовых решений совсем не видно. В данной статье я покажу, как можно реализовать аналог "управляемых" форм в своих конфигурациях с обычными формами и забыть о сложностях обновлений форм.

09.05.2018    8383    dima_home    7       

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением 26

Статья Программист Нет файла v8 v8::УФ Беларусь Windows Бесплатно (free) Работа с интерфейсом

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    9729    Drak87    18       

Красивые графики. Пошаговая инструкция (Highstock) 122

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    14147    Degrement    20       

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом 51

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Алгоритм действий для смены стандартной формы выбора для реквизита формы на свою форму со своей выборкой данных и возвратом нескольких параметров в вызывающую форму

30.09.2017    15738    ah7777777    24       

"Мигаем" интерфейсом, или цепочки асинхронных вызовов 71

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    12572    Chrizt    13       

"Восстановить положение окна" - не помогает. Как я решил проблему. 28

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Как получилось решить проблему глюков отображения формы документа.

28.05.2017    46406    niko11s    44       

Как добавить/убрать кота в отчет? 78

Статья Программист Нет файла v8 БП3.0 Бесплатно (free) Работа с интерфейсом

Кот в отчете: кому-то нравится, кого-то жутко бесит. Как избавиться, заменить, оставить (нужное подчеркнуть)?

12.05.2017    23055    starik-2005    16       

Итоги в динамическом списке 46

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

Как быстро посчитать итоги в динамическом списке

03.04.2017    20902    Восьмой    34       

Исправление проблем со встраиванием внешних отчетов в УНФ 1.6 12

Статья Программист Нет файла v8 УНФ Россия Бесплатно (free) Работа с интерфейсом

В УНФ 1.6 (тестил на версии 1.6.7.43) существуют следующие проблемы: 1. при встраивании доп. отчета в базу, он не отображается, пока не собьешь фильтр подсистемы 2. при встраивании доп. отчета в базу, отсутствует команда «Дополнительные отчеты» (по аналогии с командной «Дополнительные обработки») . В статье описывается решение перечисленных проблем.

16.11.2016    11438    TheRealStanly    3       

Как "перемотать" динамический список в начало при открытии? (или некоторые нюансы получения данных динамического списка) 57

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

В современных интерфейсах (новостях, социальных сетях и прочим) принято размещать новые данные сверху, более старые - внизу. К сожалению, в 1C сделано несколько по-другому - по умолчанию списки документов отсортированы по возрастанию даты и далее возможно два варианта: либо список при открытии проматывается в конец, либо список может запоминать "последнюю" текущую строку.

03.11.2016    19038    Fragster    25       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом Универсальные функции

Пример динамического создания графических схем, добавления элементов любых видов. Любые схемы без бизнес-процессов. Программная работа со схемой. Отличие от существующей статьи в том, что здесь используется объектная модель. Исправил и упростил некоторые моменты - результат соответствует схеме, созданной руками. Добавил возможность рисования произвольных форм для существующих фигур.

27.09.2016    16860    serg_infostart    15       

Автоматическое добавление новых реквизитов на форму (УФ) 38

Статья Программист Нет файла v8 v8::УФ Бесплатно (free) Работа с интерфейсом Универсальные функции

Идея такая: Программист добавил реквизит в объект. В комментарии этого реквизита прописал некое спец. слово (можно не матерное). На форму объекта новый реквизит далее попадает автоматом в спец. группу "Дополнительно".

03.08.2016    16189    Патриот    23       

Управляемые формы: Поле HTML Документа и веб-клиент 56

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Взаимодействие javascript и интерфейса 1С дает огромные возможности для реализации нестандартных функций. Раньше можно было напрямую вызывать функции JavaScript через DOM объект document Поля HTML документа. В современных браузерах эта возможность ушла. Более того, в веб-клиенте появляется тип ВнешнийОбъект, который вообще нигде не описан. На Инфостарте были предложения вызывать JavaScript через fireEvent, но это очень неудобно. Предлагаю свой вариант решения.

18.07.2016    24103    compguru    10       

Как вывести динамическое представление для пустого значения (в таблице)? 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Есть таблица. Часть полей в ней заполняется автоматически, а часть - должен заполнить пользователь. Нужно подсказать пользователю, что именно в какую ячейку вводить - для этого выведем серым текст подсказки внутри каждой незаполненной ячейки. На поиски решения этой задачки я потратил половину субботы. Надеюсь, моя небольшая заметка поможет кому то провести выходные более продуктивно)

29.03.2016    9697    weissfeuer    9       

Выделение документов в динамическом списке 20

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Допустим, пользователю конфигурации на управляемых формах захотелось выделять документы в списке привычным образом и производить какие-то манипуляции с выделенными документами. Например, делать на их основании какие-то документы.

01.02.2016    15759    Sardukar    7       

Три приёма, позволяющие сделать интерфейс конфигураций 1С на управляемых формах удобнее при большом шрифте 52

Статья Программист Нет файла v8 УНФ ERP2 БП3.0 Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

С появлением управляемых форм вообще и БП 3.0 в частности пользователи, которые не хотят портить своё зрение рассматриванием мелкого шрифта, оказались в невыгодном положении. Многих элементов на экране в "тяжёлых" документах вообще оказалось не видно. Все попытки решить вопрос штатными средствами настройки предприятия оказались неэффективны. Вот несколько приёмов, которые буквально в два щелчка мышкой и парой строк кода помогут решить проблему.

05.11.2015    14984    H-Labs    11       

Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ 23

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Если Вам необходимо создать несколько документов, а затем открыть их формы для пользователя.

1 стартмани

29.09.2015    18011    Wezoowy    13       

Параметры сеанса. 47

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Параметры сеанса - это объекты метаданных конфигурации. Поговорим об их назначении и принципах работы с ними.

06.09.2015    55343    niko11s    8       

Шкала в строке состояния 51

Статья Программист Нет файла v8 Windows Бесплатно (free) Работа с интерфейсом

Простая шкала, не требующая дополнительных форм и элементов управления

31.08.2015    13431    Ivon    26       

Назначение сочетания клавиш для кнопок командной панели (Обычные формы) 13

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Назначение сочетания клавиш кнопкам командной панели Формы списка/выбора для любой конфигурации (Обычные формы)

07.08.2015    15078    bld    7       

Развитие управляемого интерфейса в 1С 8.2 - 1С 8.3 55

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Математика и алгоритмы Работа с интерфейсом

К управляемым формам, которые появились в 8.2, я до сих пор относился презрительно. Считал это неудачной попыткой 1С следовать модным тенденциям в разработке интерфейсов и прогибом для возможности работать через браузер. Я считал, что 1С пожертвовала простотой разработки в угоду веб-доступу. Но после курсов Арутюнова Сергея по управляемому интерфейсу в июле 2015 года в УЦ1 я поменял ненависть на любовь. Звучит парадоксально, но это так. А теперь подробнее…

27.07.2015    35015    fixin    103       

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя 25

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    21424    Tatitutu    12       

Недокументированное использование стандартных обработок из меню "Все функции". 902

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    100506    ekaruk    121       

Быстрый ввод строковых значений в поля составного типа 63

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Когда нужно дать пользователю возможность вводить с клавиатуры строковые значения в поле ввода составного типа

04.06.2015    17201    Cyberhawk    14       

Личный опыт эскплуатации интерфейса "Такси" 11

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Уважаемые коллеги, предлагаю вам мой личный опыт использования интерфейса "Такси"

07.02.2015    15332    Marik    30       

Как перенести форму документа (справочника, ...) из одного документа (справочника, ...) в другой похожий документ (справочник, ...) 54

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

При попытке изменить Тип Реквизита «Объект» все элементы формы теряли путь к данным, ладно бы «поля ввода» (можно было выбрать заново «путь к данным»), но с табличными частями вообще труба, при выборе в «Таблице» все колонки в этом элементе банально удалялись. Можно, конечно, потратить кучу времени и вручную продублировать все то, что есть в форме оригинала, но я нашел другой путь!

26.11.2014    14273    RomanBor    18       

Создание интерфейса со всеми блокировками прав пользователя 20

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Создание интерфейса (напр. Продавец) со всеми блокировками прав пользователя (доступ к конфигуратору, меню Операции, Все функции, правам пользователей в меню сервис и др.)

10.10.2014    12320    ~ADm!t_@vd~    8       

Свернуть с учетом уровня дерево значений на управляемой форме 11

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Работа с интерфейсом

Набор процедур, которые сворачивают дерево значений на управляемой форме до определенного уровня

03.10.2014    12982    ivashka    2       

Добавление дополнительных отчетов и обработок в тонком клиенте. 44

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Для того чтобы добавить дополнительную обработку или отчет в тонкий клиент нужно в модули отчета или обработки прописать одну процедуру и две функции.

30.09.2014    62909    John_d    14