Хватит создавать формы выбора!

26.12.16

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

Программа 1С предполагает, что каждому объекту нужна отдельная форма выбора. Да, такое иногда нужно. Но в моей практике почти всегда удобно пользоваться одинаковыми формами для выбора (не подбора!) и для списка.

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

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

...

	// Элементы.Список - основной реквизит с динамическим списком
	Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
	Если Параметры.МножественныйВыбор <> Неопределено Тогда
		Элементы.Список.МножественныйВыбор = Параметры.МножественныйВыбор;
	КонецЕсли;
	// обход автоматического сохранения пользовательских настроек для разных режимов, спасибо @stolya
	Если Параметры.РежимВыбора И Не ЗначениеЗаполнено(Параметры.КлючПользовательскихНастроек) Тогда
		Параметры.КлючПользовательскихНастроек = "РежимВыбора";
		Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь;
	КонецЕсли;

...

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

Указываем форму списка в качестве формы выбора:

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

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

управляемые формы форма выбора дублирование кода

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    63405    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    19235    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

1500 руб.

06.10.2020    10539    7    7    

11

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    19087    mrXoxot    44    

126

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

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

27.05.2024    8928    smielka    37    

103

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    16695    1142    elcoan    50    

123

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    12256    165    acces969    31    

124
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4659 24.09.16 21:59 Сейчас в теме
А я не знал. В понедельник воспользуюсь.
2. slipers 26.09.16 10:16 Сейчас в теме
Изящно. Беру на заметку.
3. konstruktiv 26.09.16 12:21 Сейчас в теме
Получается здесь какая-то неактуальная информация
http://its.1c.ru/db/metod8dev#content:3575:hdoc:_top:%D1%84%D0%BE%D1%80%D0%BC%D0%B0%20%D0%B2%D1%8B%D0%B1%D0%BE%D1­%80%D0%B0
zzz14; user790708; bav_itritm; sulfur17; dj_serega; +5 Ответить
4. TODD22 19 26.09.16 12:28 Сейчас в теме
(3) konstruktiv,
Получается здесь какая-то неактуальная информация

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

ИМХО не очень красивое решение...
v.a.ryag; Zontax39; bav_itritm; romankoav; mrChOP93; user1286414; Kinestetik; kambekon; rpgshnik; Stim213; DrAku1a; Silenser; Shmell; 7OH; Tyler Durden; МимохожийОднако; kostik_love; alyaev.a.v; ZOMI; Irwin; +20 4 Ответить
6. Fragster 1151 26.09.16 12:34 Сейчас в теме
(4) TODD22, тут можно поспорить. Повторю публикацию - мне много раз приходилось убеждаться, что когда при выборе значения в поле ввода открывается такая же форма, как и при отображении списка - у пользователя возникает меньший дискомфорт. Он пользуется теми же приемами (например для отбора), что и при работе в форме списка. Колонки находятся на тех же местах, их ширина запомнена, ненужные для пользователя данные он сам выключил, условное оформление, которое он для себя настроил - схоранилось. А когда это две разных формы - то, например, добавлении реквизита или изменения запроса ДС для вывода доп. информации, приходится дорабатывать две формы, что влечет дублирование кода.

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

Как часто приходилось это делать? Понятно, что есть случаи типа отображения остатков и прочие особенности форм подбора. Но посчитайте по своим конфигурациям, сколько форм выбора по отображаемой информации дублируют формы списка. Или отображают меньше информации (которая бывает необходима)?
axsebur; user790708; IvStark; Maxanamoon; limonas; Vlad87; GlukAl; user779050; v.a.ryag; denis_aka_wolf; romankoav; Kinestetik; TanyTany; papche; ErshKUS; lost-s0u1; Deletex; IrinaKostroma; freeek; SoldierOne; Krepkov; cefew; zqzq; sigmov; Трактор; IgorS; Gorus; ander_; +28 1 Ответить
7. TODD22 19 26.09.16 12:40 Сейчас в теме
(6)
тут можно поспорить.

ИМХО тут даже спорить не о чем.
Нужно придерживаться стиля применяемого в типовых...
А не придумывать свои велосипеды...

влечет дублирование кода.

Так создание однотипных обработчиков событий то же ведёт к дублированию кода. Может тогда один обработчик начать делать?
Он пользуется теми же приемами (например для отбора), что и при работе в форме списка.

А что приёмы в форме выбора и форме списка отличаются?
bav_itritm; 7OH; Irwin; Tyler Durden; +4 4 Ответить
8. Fragster 1151 26.09.16 12:50 Сейчас в теме
(7) TODD22,
А что приёмы в форме выбора и форме списка отличаются?

вот именно - меньше разных контекстов, меньше раздражение кожи пользователя
9. TODD22 19 26.09.16 12:58 Сейчас в теме
(8)
вот именно - меньше разных контекстов, меньше раздражение кожи пользователя

Ещё ни разу не видел раздражения пользователя на список формы и список выбора... Да так что бы раздражение вызывало что это две разные формы и нужно срочно переделать в одну.

А вот такие "неожиданные" решения ИМХО не правильно. Механизмы должны быть так сказать с ожидаемым поведением и очевидной реализацией, 1С в первую очередь открытая система.

Если везде и всегда используются две разные формы то наверное правильно делать так же. Чем придумывать свой велосипед.
Пусть даже это увеличивает трудоёмкость. Зато это понятно и очевидно.
10. Fragster 1151 26.09.16 13:08 Сейчас в теме
(9) TODD22, ну, у вас пользователи не настраивают условное оформление, видимо. Не настраивают ширину колонок, не выключают "лишние" для них.

Я посчитал, сколько у меня одинаковых форм и как часто приходится дорабатывать обе, и вывел для себя подобное решение. Например когда дополнительная связанная информация хранится в РС и данные в этом РС вдруг расширили доп. реквизитом, надо этот реквизит добавить в обе формы.

Естественно, данное решение не панацея. Я не призываю его применять вообще везде. Например брать и перепиливать вдоль и поперек объекты типовых конфигураций не следует. А вот провести анализ, понять, сколько же одинаковых форм у нас есть в конфигурации - бывает полезно.
46. zurapa 13.07.18 05:37 Сейчас в теме
Да вы провокатор батенька.
Вам люди говорят о не нужности лишнего кода и работы, когда можно обойтись одной формой. Это основной принцип программирования - не плодить дубли. Если у вас одна база на три сотрудника и вы её почти не дорабатываете, а только обновляете и регулярно скучаете от просмотра YouTube на работе, то тогда, да, ваш вариант делать много повторяющихся формочек - так не забудете, как программировать. Если вы франчик, который сегодня делает изменения в конфигурации, а завтра его прогнали и взяли другого, а через три месяца снова прибежали к вам, потому что вы делаете "дёсыва", тогда это тоже ваш вариант.
А, если у вас сотрудников 20 тыс. и пользователей около 10 тыс, баз по регионам обменивающихся конфигурацией штук - 100, и во всей этой каше вам постоянно нужно делать разные хотелки в этих конфигурациях, то вы вероятно, будете экономить ваши силы на создание повторяющегося кода. В том числе и ценой общих функций вставляемые в обработчики событий, чтобы не фигачить, как оголтелый, когда нужно будет глобально везде сменить механизм обработки какого-то шаблонного события. Вы работаете в обольшой корпорации, где история работающей конфигурации уже насчитывает второй десяток лет. У вас многие бизнес-процессы не так, как у 1С (потому что это жизнь, а не сферический конь в вакууме!).
Вот об этом толкуют люди. Что касается самой 1С, то она в своём коде уж очень любит всё попилить на кусочки в общих функциях, чтобы это всё бегало из процедуры в процедуру и выполняло там "по одному шажочку".
IvStark; TeMochkiN; TanyTany; +3 Ответить
21. monkbest 114 28.09.16 08:26 Сейчас в теме
(7) TODD22, чувак, открой ЗУП 3.0!!! Это АДДДДДДДД. Там фильтров в форме выбора сотрудников (уволен, организация, подразделение, архивный) жесть скока. И может так случиться, что в форме выбора сотрудника нет, а в форме списка есть. И пользователь сходу не врубается, почему данные отличаются. Я молчу, что при выборе физ-лица они показывают формы выбора сотрудника.

Я с автором солидарен: одна форма, единая логика работы! Прячем "архивных" сотрудников, следовательно прячем их и там и там. Один справочник - одна форма со списком.
Cерый; IvStark; zawal; lost-s0u1; +4 Ответить
22. TODD22 19 28.09.16 08:35 Сейчас в теме
(21) monkbest,
чувак, открой ЗУП 3.0!!! Это АДДДДДДДД. Там фильтров в форме выбора сотрудников (уволен, организация, подразделение, архивный) жесть скока.

Запустил штук 10 зупов 3.0. Никаких проблем описанных тобой не было ни у одного пользователя с формами списков и выборов так что бы их нужно было переделать в одну форму.
bav_itritm; +1 Ответить
33. AlexO 135 06.09.17 09:57 Сейчас в теме
(7)
Может тогда один обработчик начать делать?
Это как?!
34. TODD22 19 06.09.17 10:02 Сейчас в теме
(33)писать одну процедуру и назначать её нескольким обработчикам....
35. AlexO 135 06.09.17 10:21 Сейчас в теме
(34) так реакция все равно будет только по своему обработчику. Да и полностью совместить обработку параметров разных обработчиков в одной процедуре не удастся.
62. zawal 16 25.06.21 12:59 Сейчас в теме
(35)
А легко, когда в ЗУП Табель учета рабочего аремени то 1 обработчик на все колонки с днями месяца, и уже распределяешь по текущей колонке. Писать 31 одинаковый это треш и угар.
IvStark; Andr0med; +2 Ответить
13. alyaev.a.v 26.09.16 23:01 Сейчас в теме
(6) Есть конечно и такие формы выбора и списка где одинаково все, но чаще наоборот форма списка раскрашенная , куча настроек быстрых отборов и т.д. А форма выбора минималистична, а порой ввод по строке вообще избавляет от формы выбора.А еще форма выбора очень часто открывается с программным отбором который не нужен списку, ну и так далее, если если если....
Mizhgan42; 7OH; FatPanzer; sashocq; Ali1976; Tyler Durden; dj_serega; TODD22; CSiER; +9 Ответить
14. Drak0n 188 27.09.16 10:01 Сейчас в теме
Поддержу (13) alyaev.a.v.
Решение с 1 формой не рекомендовал бы только из-за наложенных отборов. На форму списка почти всегда накладываются пользовательские отборы. При использовании этой формы как формы выбора мы рискуем:
- пересечь пользовательский отбор с "программным"
- ввести пользователя в заблуждение, не отобразив доступные для выбора элементы, скрытые пользовательскими отборами.

Хотя реализация с 1 формой встречается и в типовых конфигурациях 1С.
sashocq; Tyler Durden; kostik_love; herfis; Fragster; +5 Ответить
15. TODD22 19 27.09.16 10:07 Сейчас в теме
(14) Drak0n,
Хотя реализация с 1 формой встречается и в типовых конфигурациях 1С.

В каких ?
Мне вроде не попадалось что бы было сделано одной формой форма списка и выбора.
20. Drak0n 188 27.09.16 11:50 Сейчас в теме
(15) TODD22, помнится в УНФ у справочников "Контрагенты" и "Номенклатура" тоже 1 форма...
18. Fragster 1151 27.09.16 11:16 Сейчас в теме
(14) Drak0n, да, с пользовательскими отборами косяк есть. Это один из самых спорных моментов, причем это спорный момент в архитекторе платформы, о который немало копий сломано на партнерском форуме. Сломать форму можно не только в данном случае, но и в случае разных форм. Например, если есть несколько полей, открывающих одну форму выбора с разной связью параметров выбора.
Вроде бы есть даже записанное пожелание у разработчиков 1с, чтобы снималось "использование" пользовательского отбора в случае пересечения фиксированных и пользовательских настроек.
5. Fragster 1151 26.09.16 12:30 Сейчас в теме
(3) konstruktiv, там очень туманно написано. Описанный мной вариант работает. Лишних вызовов сервера не плодит.
11. jerry_maguire 26.09.16 13:59 Сейчас в теме
А зачем свойство структуры сравнивать с Неопределено ?

Параметры.МножественныйВыбор <> Неопределено


Можно воспользоваться методом

Параметры.Свойство("МножественныйВыбор")
12. Fragster 1151 26.09.16 14:06 Сейчас в теме
(11) jerry_maguire, к сожалению, этот параметр у формы всегда есть (просто равен Неопределено) и .Свойство() возвращает Истина. А Параметры.Свойство("МножественныйВыбор", Элементы.Список.МножественныйВыбор) вообще выдает ошибку "несоответствие типов".
16. olegmedvedev 66 27.09.16 10:11 Сейчас в теме
Например в Бухгалтерия предприятия, редакция 3.0 (3.0.43.258) Форма списка в справочнике Физические лица используется в Выборе и Списке
Прикрепленные файлы:
17. TODD22 19 27.09.16 10:18 Сейчас в теме
19. herfis 513 27.09.16 11:35 Сейчас в теме
Ну, для простейших справочников (которые суть перечисления с парой доп-реквизитов) предложение вполне здравое.
Вряд ли там когда-то потребуется отдельная форма выбора, как и отборы.
23. kg_am 178 28.09.16 11:44 Сейчас в теме
Мы с самого начала отказались от идеи плодить лишние сущности. Только стандартный код при создании на сервере у нас немножко другой:
ЭтаФорма.Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
Если ЭтаФорма.Элементы.Список.РежимВыбора Тогда
	ЭтаФорма.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
КонецЕсли;

За нюанс с множественным выбором - спасибо.
24. Fragster 1151 28.09.16 12:03 Сейчас в теме
(23) kg_am, добавлю в пост, если не против
UPD: проверил, при стандартной обработке начала выбора окно и так открывается в этом режиме, эта строка не требуется.
25. kg_am 178 28.09.16 12:09 Сейчас в теме
(24)

При стандартном - да, но если выбор открывается программно, то тут оно и пригождается.
Конечно не против. Как можно быть против? ;)
26. Fragster 1151 28.09.16 12:29 Сейчас в теме
(25) kg_am, если программно - то можно и в параметр ОткрытьФорму указать.
27. clev 7 25.11.16 10:30 Сейчас в теме
28. stolya 3 21.12.16 19:41 Сейчас в теме
Не так давно тоже начал применять данный подход и столкнулся с двумя особенностями из-за которых перестал использовать данный способ:
1. Сохраняются все настройки формы (добавленные поля, пользовательский отбор, размещение элементов на форме). Добавил я как то в форму списка подчиненного владельцу пользовательский отбор по владельцу, так как на форме списка его не было по бизнес логике, и соответственно он сохранился и применялся в режиме выбора с установленным отбором по владельцу через Связи параметров выбора.
2. Если используется метод глобального контекста ПоказатьВводЗначения или ВвестиЗначение, то в открываемой форме режим выбора не устанавливается, в результате приходится дописывать параметр РежимВыбора в модуль менеджера в событие ОбработкаПолученияФормы при открытии формы выбора что не очень удобно. Не тестировал еще работу в режиме подбора в список значений, открываемый в отборе компоновки с видом сравнения "В списке" и т.п.
Fragster; +1 Ответить
29. Fragster 1151 26.12.16 11:14 Сейчас в теме
(28) Спасибо за замечания!
1. Проблема понятна, обход делается в три строчки:
Если Параметры.РежимВыбора И Не ЗначениеЗаполнено(Параметры.КлючПользовательскихНастроек) Тогда
Параметры.КлючПользовательскихНастроек = "РежимВыбора";
Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь;
КонецЕсли;
добавлю это в публикацию.
2. Странно, видимо имеет место ошибка платформы в конкретном вашем релизе. У меня при ПоказатьВводЗначения Параметры.РежимВыбора = Истина. Проверял на релизе 8.3.8.2137, режим совместимости = не использовать.
41. zqzq 25 24.01.18 10:08 Сейчас в теме
(29)
1. Проблема понятна, обход делается в три строчки:
Если Параметры.РежимВыбора И Не ЗначениеЗаполнено(Параметры.КлючПользовательскихНастроек) Тогда
Параметры.КлючПользовательскихНастроек = "РежимВыбора";
Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь;
КонецЕсли;
добавлю это в публикацию.
На платформе 8.2.19 выдаёт ошибку на этих строках
)}: Поле объекта не обнаружено (КлючПользовательскихНастроек)
	Если Параметры.РежимВыбора И Не ЗначениеЗаполнено(Параметры.КлючПользовательскихНастроек) Тогда

И т.к. в 8.2 отборы не запоминаются, то оно и не нужно.
30. Pawlick 10 21.02.17 12:06 Сейчас в теме
Ещё ни разу не видел раздражения пользователя на список формы и список выбора...


У Вас еще все впереди, видимо :)

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


Может стоит посмотреть в основные формы в конфигураторе?

Использование одной формы в место двух оправданно и с точки зрения разработчиков и точки зрения пользователей.

Для меня как для разработчика проще обслуживать одну и туже форму, особенно на сильно доработанных конфигурациях, и особенно на сложных формах. Если в форме 100500 отборов, и она находится в активной разработке, и в день приходит 15 "указивок" что и как изменить.
Например у меня форма документа заказ покупателя:
на форме колонки с текущим долгом, датой ближайшей отгрузки, статусом обеспечения и оплаты, менеджер видит только свои заказы, старший менеджер заказы своего отдела, руководить направления только заказы по своему направлению и еще 50 "если".
И ты еще одну задачу типа "если это младший менеджер, то что бы только не отгруженные", и все это надо сделать в двух СОВЕРШЕННО ОДИНАКОВЫХ ФОРМАХ, открывающихся в разных режимах...

С проблемой программных отборов при открытии формы в режиме выбора пока не сталкивался, но уверен что решение есть. Тоже программное :)

А с точи зрения пользователя - уже писали выше. Одни колонки, одно оформление.








31. Fragster 1151 21.02.17 12:25 Сейчас в теме
(30)
С проблемой программных отборов при открытии формы в режиме выбора пока не сталкивался, но уверен что решение есть. Тоже программное :)

при наличии отборов можно выключать "предопределенные" пользовательские настройки, и использовать отдельный ключ для "непредопределенных". Вторая часть есть в примере кода, первая часть (и для фиксированных настроек для сложногоотбора и для отбора при связи параметров выбора) используется, например в http://infostart.ru/public/556514/ в форме списка документа "Задачи".
32. Hatson 536 05.09.17 17:15 Сейчас в теме
Разные формы списка и выбора и раньше выбешивали.
36. AlexO 135 06.09.17 10:59 Сейчас в теме
Кстати, у 1С в типовых все тоже самое (немного видоизменен код в "ПриСозданииНаСервере" у формы списка), только никаких "нюансов" со множественностью выбора, работает и без этого:
	Если Параметры.РежимВыбора Тогда
		Элементы.Список.РежимВыбора = Истина;
	КонецЕсли;

Подозреваю, что код статьи подсмотрен через партнерский форум в типовых, т.к. навряд ли 1С использовала данный материал в своих разработках ))
Прикрепленные файлы:
37. Octopus 338 06.09.17 11:07 Сейчас в теме
(36)
Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
38. AlexO 135 06.09.17 11:19 Сейчас в теме
(37) ну вот не написали так, сделали через условие. Я же говорю - немного видоизменили.
Главное - что никаких проблем с множественным выбором и пользовательскими настройками.
Поэтому нет дополнительного кода.
40. Fragster 1151 06.09.17 11:56 Сейчас в теме
(38) а вот есть проблема с множественным выбором. в варианте (36) он не работает.
39. Fragster 1151 06.09.17 11:47 Сейчас в теме
(36) нет, никакой код не подсматривался.
42. spenser123 25.04.18 11:19 Сейчас в теме
Не актуально совсем... 8.3.11.3034 (без режима совместимости)- если форма не является формой выбора - стандартные команды выбора исчезают и недоступны, а в старых формах списка которые использовались как формы выбора - получаем программные ошибки с завершением работы (форма пользователей от ут например)
43. Fragster 1151 25.04.18 13:01 Сейчас в теме
(42) Ну не знаю, у меня работает, в т.ч. в https://infostart.ru/public/556514/
Одна и та же форма является формой списка и формой выбора:
44. spenser123 26.04.18 12:26 Сейчас в теме
(43) условия проявления косяка - 8.3.11.3034, Режим совместимости - Не использовать.
Поясню итоги исправлений:
Косяк провился в первую очередь в справочниках из типовой УТ (Пользователи, внешние пользователи, группы пользователей), там форма списка была назначена и на список и на выбор, программно устанавливался Режим выбора у списков на форме, и в зависимости от "РежимВыбора" прятались/показывались кнопки выбора - результат был выбивание из программы. Если у каждого отдельного элемнта формы списка не установлен режим выбора - в списке команд нет стандартной команды "Выбрать", в результате если вынесена кнопка этой команды на форму и управляется её видимость, а режим выбора назначается программно - в случае параметра РежимВыбора = Ложь, у кнопки пропадает команда и кнопка сама пропадает из элемнтов формы, в результате код который их прячет - вызывает ошибку с вылетом.
45. Fragster 1151 26.04.18 13:09 Сейчас в теме
(44)
1. Это очень похоже на ошибку платформы
2. БСП 2.4 У(и УТ в частности) не поддерживает режим совместимости, отличный от 8.3.10 ;)
надо проверить в БСП 3.0 (ну и на платформе 8.3.12), но там куча косяков и я пока не готов её себе ставить
47. tireal 75 13.06.19 11:27 Сейчас в теме
Тоже было "лень" делать форму выбора, выбрал форму списка и был несказанно удивлен отсутствием у нее в списке свойства аля "Режим выбора" как в обычных формах. Автору спасибо, все получилось, но увидел результат и понял что форма списка с кнопками печатями и подключенным оборудованием выглядит как то диковато ) - все же по хорошему для выбора нужна отдельная форма. Но это конкретно моя ситуация.
48. YLioY 43 05.10.20 13:20 Сейчас в теме
Нужно было чтобы настройки формы выбора и формы списка сохранялись отдельно (пробовал на платформе 8.3.13) . Простого решения так и не нашел , привел свое , если есть проще буду рад увидеть .

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


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

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



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




&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
	
	Если Элементы.Список.РежимВыбора И НЕ ЗавершениеРаботы Тогда  
		// Если пользователь нажал кнопку завершения работы во время использования формы выбора последние изменения настроек не будут сохранены.
		ПриЗакрытииНаСервере();	
	КонецЕсли;
	
КонецПроцедуры
Показать
51. Fragster 1151 05.10.20 16:52 Сейчас в теме
(48) Вот код моей процедуры для таких форм:
Процедура ФормаСпискаВыбораПриСозданииНаСервере(Знач Список, Знач ЭлементФормыСписок, Знач Параметры, Знач АвтоматическоеСохранениеПользовательскихНастроек = Ложь) Экспорт
	
	// Элементы.Список - основной реквизит с динамическим списком
	ЭлементФормыСписок.РежимВыбора = Параметры.РежимВыбора;
	Если Параметры.МножественныйВыбор <> Неопределено Тогда
		ЭлементФормыСписок.МножественныйВыбор = Параметры.МножественныйВыбор;
	КонецЕсли;
	// обход автоматического сохранения пользовательских настроек для разных режимов
	Если Параметры.РежимВыбора И Не ЗначениеЗаполнено(Параметры.КлючПользовательскихНастроек) Тогда
		Параметры.КлючПользовательскихНастроек = "РежимВыбора";
		Список.АвтоматическоеСохранениеПользовательскихНастроек = АвтоматическоеСохранениеПользовательскихНастроек;
	КонецЕсли;

КонецПроцедуры
Показать

Как раз с параметром для автоматического сохранения
54. YLioY 43 06.10.20 09:27 Сейчас в теме
(51) Я пробовал так сделать сначала , но если Установить "АвтоматическоеСохранениеПользовательскихНастроек " в Истина , тогда оно грузит настройки с формы списка , если Ложь , тогда не грузит совсем . А мне нужны были отдельные для Формы "Списка" чтобы сохранялись и для формы "Выбора" чтоб сохранялись .
55. user1464234 06.10.20 09:34 Сейчас в теме
(54) уид формы или наименование настроек где то совпадают. Обычно нельзя копировать всю форму
56. Fragster 1151 06.10.20 10:21 Сейчас в теме
(54) раньше работало. Такое ощущение, что 1с что-то поломало. Я вставил "Сообщить" во все события формы, связанные с настройками - ни одно из них не вызвалось.
57. SlavaKron 06.10.20 12:31 Сейчас в теме
(56) Остановку надо делать в событии таблицы динамического списка ПриСохраненииПользовательскихНастроекНаСервере. Но проблема, описанная в (54) действительно имеется (платформа 8.3.16 в режиме совместимости 8.3.12).
49. profiprog1c 251 05.10.20 13:56 Сейчас в теме
Иногда разные формы списка и выбора очень нужны, когда реализуется такой функционал, чтобы пользователь в форме выбора не мог создавать элементы, а только выбирать, и также, чтобы в форме выбора было минимальное количество колонок, чтобы не путать пользователя.
52. Fragster 1151 05.10.20 16:54 Сейчас в теме
(49)
Иногда разные формы списка и выбора очень нужны, когда реализуется такой функционал, чтобы пользователь в форме выбора не мог создавать элементы, а только выбирать, и также, чтобы в форме выбора было минимальное количество колонок, чтобы не путать пользователя.

Если надо - делайте отдельные формы. Но по моему опыту - достаточно частый случай, когда одна форма достаточно хорошее решение.
53. profiprog1c 251 05.10.20 17:59 Сейчас в теме
(52) Верю, что по вашему личному опыту - это частный случай, а вот по моему опыту не совсем частный. Если делаются новые документы в стандартных конфигурациях, особенно для упр.учета, где используются вновь созданные справочники, то там это широко используется. Очень многие пользователи хотят попроще, не хотят они кучу колонок и кучу кнопок, поэтому в таких случаях разные формы очень актуальны и нужны
50. user1464234 05.10.20 14:10 Сейчас в теме
У нас часто вместо списков для выбора открывались формы обработки, была в 7ке такая универсальная, выбор из таблицы значений. Работало оно так же медленно, как и любая форма динамического списка в 8ке.
Но в 7ке не было возможности создавать дополнительные поля программно на этой форме.
В 8ке такая возможность есть. В html насколько я поняла, осталась только эта возможность.
Плюс мобильное приложение компилируется под Андроид. Пока у меня нет понимания работы с ос андроид, но интересно, почему нельзя так же скомпилировать и приложение для линукса и виндоус? И еще я не понимаю, что "нам" это даст.
Простите за глупые вопросы:(
58. SlavaKron 08.10.20 10:05 Сейчас в теме
Апну тему. Ни у кого нет мыслей как заставить работать параметр КлючПользовательскихНастроек?
59. YLioY 43 27.10.20 13:54 Сейчас в теме
Вроде нашел самый просто способ разделить настройки формы. ПриСозданииНаСервере

Если ФормаДокумента.Параметры.РежимВыбора Тогда
ЭтаФорма.КлючНазначенияИспользования = "РежимВыбора";
КонецЕсли;

После форма списка имеет свои быстрые отборы а формы выбора свои.
SlavaKron; +1 Ответить
60. SlavaKron 27.10.20 14:25 Сейчас в теме
(59) Да, работает. Сохраняются не только пользовательская настройка списка, но настройка формы в разрезе КлючНазначенияИспользования.
61. m_aster 114 29.10.20 21:59 Сейчас в теме
Это стандарты разработки 1С в плане интерфейса:
Область применения: управляемое приложение.
Рекомендуется не создавать формы выбора, а использовать генерируемые платформой по умолчанию.
Если, в соответствии с прикладной логикой, в форме выбора нужно предусмотреть особенный состав команд или колонок, то можно создать форму выбора, следуя рекомендациям
В командной панели формы рекомендуется размещать минимально необходимый набор команд для выбора, создания нового и поиска/отбора.
В часто используемых формах выбора из больших наборов данных рекомендуется делать область быстрого отбора/поиска.
Состав колонок следует оптимизировать для быстрого визуального поиска данных
Вопрос почему так рекомендуется.
В БСП 3.1.3 есть исключения, например, Справочник.Пользователи(то, что нашел навскидку). А так все в основном как и рекомендуется, либо форма выбора не задана, либо создана пользователем.
63. Sam13 347 14.11.24 09:46 Сейчас в теме
Спасибо автору. В любом случае наличие альтернативы - использовать форму выбора или пользоваться формой списка - это лучше, чем не иметь такого выбора. Тут уже каждый сам решает, что ему нужно. В общем, спасибо.
Оставьте свое сообщение