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

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

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

Управляемые формы СКД программная работа с СКД Схема запроса Юзабилити

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

В процессе "осовременивания интерфейса" возникла необходимость воспроизвести подобное поведение, т.е. сделать так, чтобы список при открытии был отсортирован по убыванию даты и был перемотан в самое начало. По умолчанию направление сортировки запоминается, но список перематывается в конец и мы оказываемся на первом созданном документе. Промежуточный вариант с запоминанием текущей строки списка по ряду причин не подходит.

К счастью, это поведение можно исправить. Для этого "всего лишь" нужно получить реальный исполняемый запрос ДС, выполнить его и установить текущий элемент списка. Положение усложняется тем, что у ДС есть несколько видов поиска, которые недоступны через его настройки. К счастью, фирма 1C осознала эту недоработку и в "зазеркалье" некоторое время назад была опубликована статья, которая рассказывает о костыле, который был придуман специально для этого: https://wonderland.v8.1c.ru/blog/poluchenie-dannykh-dinamicheskogo-spiska/

Итак, пытаемся применить полученные знания и "копипастим код" из статьи, допустим в ПриОткрытии формы списка:

ИсполняемаяСхема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
ИсполняемыеНастройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных()
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
   
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных();
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
   
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Элементы.Список.ТекущаяСтрока = Результат[0].Ссылка;

Запускаем и...

... видим, что 1C не сильно запаривается в составлении тестовых примеров. Копаемся в синтакс-помощнике, видим, что у метода Выполнить компоновщика макета есть параметр, который отвечает за "тип макета". Оставим это, ИМХО, усложнение, на совести разработчиков платформы, испоравляем строку на

ИсполняемаяСхема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
ИсполняемыеНастройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных()
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных();
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
   
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Элементы.Список.ТекущаяСтрока = Результат[0].Ссылка;

Запускаем и...

... видим, что "оптимизация" запроса ДС действительно работает. Мы не выводим в ДС поле "Ссылка", и в результирующем запросе его нет. Немного поколдовав с отладчиком, видим, что выбранные поля в ДС задаются не на корневом уровне настроек, а внутри детальных записей, которые указаны без автополя. Слава богу, ДС имеет простые настройки и не надо всяких рекурсивных обходов для добавления выбранных полей во все ветки. Меняем код:

ИсполняемаяСхема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
ИсполняемыеНастройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных()

ВыбранноеПоле = ИсполняемыеНастройки.Структура[0].Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Ссылка");
	
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных();
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
   
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Элементы.Список.ТекущаяСтрока = Результат[0].Ссылка;

Запускаем, и... Если у вас список спозиционировался на первой строке, то вам не просто повезло, а очень повезло. Смотрим реальный запрос с помощью

Сообщить(МакетКомпоновки.НаборыДанных[0].Запрос)

 видим, что в результирующем запросе отсутствуют сортировки, которые есть в настройках, об этом также сказал отладчик. Вообще отладчик - полезная штука :)

Ну что ж. Нужно править текст запроса. Заодно можно оптимизировать запрос, выбрав "первые 1". Тут на ум приходит объект "СхемаЗапроса", про который также писали в зазеркалье: https://wonderland.v8.1c.ru/blog/upravlyaemyy-konstruktor-zaprosa-i-obektnaya-model-skhemy-zaprosa/

Тут возможно два варианта - либо менять результирующий текст запроса, либо менять исполняемый запрос СКД. Я выбрал второй вариант, чтобы не заморачиваться с параметрами запроса (параметрами самого запроса ДС и отборами). Опять пишем код, потратив время на изучение СП и набив немного шишек с типами данных, получается что-то типа того

ИсполняемаяСхема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
ИсполняемыеНастройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
	
ВыбранноеПоле = ИсполняемыеНастройки.Структура[0].Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Ссылка");
	
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(ИсполняемаяСхема.НаборыДанных[0].Запрос);
ПоследнийЗапрос = СхемаЗапроса.ПакетЗапросов.Получить(СхемаЗапроса.ПакетЗапросов.Количество()-1); // да, в 8.3.8 в ДС появились пакетные запросы
Для каждого ОператорВыбрать Из ПоследнийЗапрос.Операторы Цикл
	ОператорВыбрать.КоличествоПолучаемыхЗаписей = 1; // выбрать первые 1
КонецЦикла;
Для каждого ЭлементПорядка Из ИсполняемыеНастройки.Порядок.Элементы Цикл
	ПолеПорядка = "" + ЭлементПорядка.Поле;
	ЭлементПорядкаСхемы = ПоследнийЗапрос.Порядок.Добавить(ПолеПорядка);
	ЭлементПорядкаСхемы.Направление = ?(ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр, НаправлениеПорядкаСхемыЗапроса.ПоВозрастанию, НаправлениеПорядкаСхемыЗапроса.ПоУбыванию);
КонецЦикла;
	
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(ИсполняемаяСхема, ИсполняемыеНастройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных();
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
   
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Элементы.Список.ТекущаяСтрока = Результат[0].Ссылка;

Опять запускаем, и...

Не волнуйтесь, мы уже в конце пути, осталось совсем немного :))

Немного гугла, яндекса и наблюдений за ДС с различными вариантами сортировки и становится понятно, что это "дополнительное поле порядка 2" очень похоже на УИД. Ну что ж, немного плохого кода (я действительно не знаю, как из "ДополнительноеПолеПорядка2" получить "Ссылка"):

Для каждого ЭлементПорядка Из ИсполняемыеНастройки.Порядок.Элементы Цикл
	ПолеПорядка = "" + ЭлементПорядка.Поле;
	Попытка
		ЭлементПорядкаСхемы = ПоследнийЗапрос.Порядок.Добавить(ПолеПорядка);
	Исключение
		ЭлементПорядкаСхемы = ПоследнийЗапрос.Порядок.Добавить("Ссылка");
	КонецПопытки
	ЭлементПорядкаСхемы.Направление = ?(ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр, НаправлениеПорядкаСхемыЗапроса.ПоВозрастанию, НаправлениеПорядкаСхемыЗапроса.ПоУбыванию);
КонецЦикла;

Запускаем и... бинго! Тут должен быть скриншот, но я вам его не покажу. В общем, для ДС с основной таблицей документов - работает, испытайте некоторое чувство удовлетворения от того, что заставили 1C делать то, что вам надо, самостоятельно.

Задания на дом: Сделать то же, но без использования процессора компоновки (вы же уже знаете, как получить настоящий текст запроса). Сделать то же для независимого периодического РС или регистра накопления. Ответить на вопрос, можно ли использовать не исполняемую схему и исполняемые настройки, а настройки из реквизита формы? Добавить самосортировку по убыванию даты. Погоревать о том, что нет события на интерактивное изменение настроек ДС. Сделать вариант для ДС с группировкой (кстати, так не надо делать, посмотрите профайлером, почему).

Надеюсь, вы почерпнули немного полезного в этой статье и найдете не только такое узкое применение для работы с программным выполнением СКД, работой со схемой запроса и прочими плюшками (внимательные читатели заметили комментарии с упоминанием некоторых из них).

ЗЫ: А теперь выкинте весь код и внимательно посмотрите палитру свойств, там есть подозрительный пункт:

который делает то же самое, но без всего того, что написано выше. Но это же не интересно, правда? Иначе как бы вы узнали про исполняеую схему и прочие плюшки, не понабивали бы шишек раскрывая для себя немного внутреннего устройства?

57

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

Комментарии
Избранное Подписка Сортировка: Древо
1. MiniMuk 8 03.11.16 05:39 Сейчас в теме

+ еще настроить список -> сортировка плохие варианты?
rpgshnik; CyberCerber; +2 Ответить
2. Fragster 927 03.11.16 09:20 Сейчас в теме
(1) MiniMuk, да, так можно, но на самом деле статья не про то :)
3. alxarz 29 03.11.16 11:16 Сейчас в теме
(2) а читая анонс можно подумать что именно про это :)
rpgshnik; CyberCerber; +2 Ответить
5. Fragster 927 03.11.16 16:17 Сейчас в теме
(3) alxarz, статья про то, что в 1с есть много разных прикольных возможностей, но сложный путь не всегда верный.
8. Fragster 927 04.11.16 11:37 Сейчас в теме
(3) alxarz, дополнил заголовок статьи
4. MiniMuk 8 03.11.16 11:31 Сейчас в теме
(2) за ссылку отдельное спасибо.
6. Fragster 927 03.11.16 16:56 Сейчас в теме
(4) кстати, в зазеркалье подписаться на рассылку новых статей можно
7. BigBoss 3 04.11.16 06:07 Сейчас в теме
Я начиная читая статью, подумал что автор не знает про тот пункт в палитре свойств. Статья интересная
9. Fragster 927 04.11.16 14:14 Сейчас в теме
10. Fragster 927 04.11.16 16:39 Сейчас в теме
11. Danil.Potapov 413 05.11.16 23:41 Сейчас в теме
вот интересно, 1с рассказывает про постоянное тестирование, и т. д., но как только сделаешь шаг в сторону напарываешься минимум на пару ошибок или особенностей платформы. До сих пор не могу понять как они разрабатывали интерфейс тонкого клиента, если все настройки динамического списка в настройках, а вот изменить вывод списка полей в список настраивается через изменить форму, при этом группировка полей все равно в настройках.
12. Fragster 927 07.11.16 10:46 Сейчас в теме
(11) Danil.Potapov, раздражает, что не всё, что делает пользователь доступно программно (даже состояние, не говоря уж о самих действиях), и не на все действия есть события. Например весьма пригодилось бы событие на изменение пользовательских настроек ДС. Или подписка на изменение определенного типа данных (например для ДС без основной таблицы). И оповещение об изменении данных с сервера для всех клиентов (реактивность).
Те же Список.КомпоновщикНастроек.ПолучитьНастройки() не содержат то, что пользователь отобрал через "найти".
13. Danil.Potapov 413 07.11.16 15:06 Сейчас в теме
(12) да, точно, сколько лет прошло а воз и ныне там.
14. starik-2005 1954 07.11.16 15:12 Сейчас в теме
Это только с ДС с основной таблицей? А как быть с ДС произвольным? Есть там возможность спозиционироваться на чем-нибудь, отличном от начала или окончания?
15. Fragster 927 07.11.16 15:42 Сейчас в теме
(14) starik-2005, там текущая строка похожа на порядковый номер строки в результате компоновки. т.е. для позиционирования на произвольной строке нужно получить позицию в полной выборке. Ну а для первой - 1, для последней - количество(*)
16. Yashazz 2824 07.11.16 20:53 Сейчас в теме
Сначала было собрался ругаться, что автор не знает азы, но, к счастью, это оказался такой грамотный стёб. Зачёт) Вещи, в целом, очевидные, но полезные.
Вообще, не зря эту хрень прозвали "демонический список". Постоянно сюрпризы))
17. Dementor 582 09.11.16 16:11 Сейчас в теме
Статья интересна в плане "у меня есть какой-то код - давайте заставим его работать".

У Вас немного неправильное восприятие сайта Зазеркалья. Это НЕ документация по платформе. Это анонсы функциональности, которые разработчики сейчас у себя внутри тестируют и планируют когда-то включить в рабочие сборки платформ. То, что параметров не хватает, или указаны лишние, или у функций могут оказаться совсем другие названия - это нормальные рабочие моменты. Поэтому, каждый раз на форуме, когда кто-то выдает подобные вашим претензии к примерам, то им вежливо объясняют, что их путь должен последовать на its.1c.ru . Раз даже до смешного дошло - один разработчик жаловался на неработающую фичу, про которую он прочитал в Зазеркалье, но которую на тот момент еще даже в тестовую сборку не включили :)
18. Fragster 927 09.11.16 19:31 Сейчас в теме
(17) Dementor, к сожалению, поиск по its.1c.ru фраз "ПолучитьИсполняемуюСхемуКомпоновкиДанных" или "Получить Исполняемую Схему Компоновки Данных" не приводит к ни к какому результату. Равно как и нет информации про отсутствие сортировки в "реальном" запросе СКД или про "ДополнительноеПолеПорядка".
19. Dementor 582 12.11.16 17:27 Сейчас в теме
(18) Fragster, странно. Почему же у меня получилось? http://its.1c.ru/db/v839doc#bookmark:dev:TI000001476
Кстати, ошибка не у разработчиков с неправильным примером, а у вас. Тип генератора макета по-умолчанию установлен в значение для вывода в табличный документ. И в примере происходит вывод как раз в табличный документ! Чуть ниже ссылка для желающих вывести данные в таблицу значений - http://its.1c.ru/db/v839doc#bookmark:dev:TI000000626 и там уже правильно переопределен генератор макета.

О Зазеркалье повторюсь - это не документация и даже не блог разработчиков конфигураций. Это просто анонсы, что бы иметь представление о том, что будет реализовано в ближайших релизах. К примеру, я сегодня полистал красивые новые диаграммы - молодцы, но когда новый функционал будет в платформе, то я буду готов, что настройки назовут немного по другому, что-то не сделают всего обещанного или что-то возможно удивят и добавят нового, не описанного в этой свежей статье.
20. Fragster 927 12.11.16 17:48 Сейчас в теме
(19) Dementor, повторюсь, увидев анонс в зазеркалье, я взял пример кода из него. И там именно вывод в коллекцию значений. То, что на ИТС ты смог найти документацию - поздравляю. Но по почему-то по названию ключевых функций оно не ищется. За ссылку, конечно, спасибо (кстати, пример там уже с табличным документом, в отличии от зазеркалья).

Я рассматриваю зазеркалье как сборник интересных особенностей платформы, с приблизительными примерами и указанием, когда оно (будет) реализовано. Не всегда хватает сил прочитать (и запомнить) v8update, да и самих примеров (с картинками :) ) он не содержит.

Про диаграммы - да, реализовано кое что, особенно порадовало условное оформление для СКД. Но сильно востребованные вещи типа логарифмической шкалы или двух шкал - не так и не реализованы, так что продолжим пользоваться полем HTML документа.
21. Fragster 927 12.11.16 17:52 Сейчас в теме
(19) Dementor, я понял, как получилось найти информацию. Поиск по ИТС запоминает раздел. Из-за этого у меня результат оказался пуст, пока не переключишься в "разработка и администрирование".
22. Fragster 927 17.01.17 13:26 Сейчас в теме
(19) предложил на партнерском вставлять ссылку на ИТС в статью в зазеркалье. Пока думают.
23. it@contlog.ru 30.07.18 20:51 Сейчас в теме
Или кривокод или что?
Смотрю СхемаЗапроса модифицирует запрос, но дальше нигде не используется?
Fragster; +1 Ответить
24. Fragster 927 31.07.18 17:05 Сейчас в теме
(23) Согласен, пропустил установку запроса обратно в схему. Но глобально это ни на что не влияет :)
Даже на сообщаемые сведения про "дополнительное поле порядка"
Радует, что хоть кто-то внимательно это прочитал :)
25. Hatson 341 15.10.18 11:26 Сейчас в теме
Оставьте свое сообщение

См. также

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

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

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

06.10.2019    2814    YPermitin    19       

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

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

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

02.10.2019    3563    VachKirp    8       

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

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

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

25.09.2019    1394    Sergey_Borisovi4    2       

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

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

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

26.08.2019    2982    rpgshnik    33       

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

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

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

14.08.2019    2392    nagaitseff    11       

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

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

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

07.08.2019    4381    IvanAT1981    14       

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

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

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

09.07.2019    5752    ids79    0       

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

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

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

04.06.2019    13534    YPermitin    49       

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

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

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

14.05.2019    7022    Viktor_Ermakov    6       

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

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

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

24.04.2019    4359    olegpkc    5       

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

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

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

11.01.2019    5496    Vlad1917    26       

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

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

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

04.10.2018    10643    asdfgcom    56       

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

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

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

06.06.2018    6311    aspirator23    2       

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

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

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

28.05.2018    8864    CXY    16       

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

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

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

09.05.2018    8317    dima_home    7       

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

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

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

06.04.2018    9673    Drak87    18       

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

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

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

22.11.2017    14068    Degrement    20       

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

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

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

30.09.2017    15646    ah7777777    24       

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

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

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

06.09.2017    12501    Chrizt    13       

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

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

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

28.05.2017    45984    niko11s    44       

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

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

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

12.05.2017    22965    starik-2005    16       

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

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

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

03.04.2017    20786    Восьмой    34       

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

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

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

16.11.2016    11378    TheRealStanly    3       

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

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

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

27.09.2016    16806    serg_infostart    15       

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

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

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

03.08.2016    16114    Патриот    23       

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

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

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

18.07.2016    23950    compguru    10       

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

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

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

29.03.2016    9642    weissfeuer    9       

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

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

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

01.02.2016    15702    Sardukar    7       

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

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

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

05.11.2015    14912    H-Labs    11       

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

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

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

29.10.2015    25445    shevelyov    25       

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

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

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

1 стартмани

29.09.2015    17937    Wezoowy    13       

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

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

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

06.09.2015    55101    niko11s    8       

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

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

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

31.08.2015    13358    Ivon    26       

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

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

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

07.08.2015    14938    bld    7       

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

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

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

27.07.2015    34956    fixin    103       

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

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

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

22.06.2015    21367    Tatitutu    12       

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

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

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

19.06.2015    100298    ekaruk    121       

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

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

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

04.06.2015    17130    Cyberhawk    14       

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

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

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

07.02.2015    15223    Marik    30       

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

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

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

26.11.2014    14215    RomanBor    18       

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

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

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

10.10.2014    12259    ~ADm!t_@vd~    8       

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

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

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

03.10.2014    12930    ivashka    2       

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

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

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

30.09.2014    62698    John_d    14       

Генерация кода управляемой формы (декомпиляция элементов) 509

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Бесплатно (free) Инструментарий разработчика Практика программирования Работа с интерфейсом

Изменение форм типовых конфигураций лучше выполнять программно. Эта обработка упрощает добавление элементов на форму, генерируя код создания элементов, реквизитов и команд формы.

29.09.2014    92255    8919    ekaruk    123