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

26.12.16

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

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

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

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

...

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

...

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

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

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

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

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

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

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

6000 руб.

16.01.2015    61699    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54317    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16623    21    4    

35

Новогоднее оформление для 1С

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

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

27.12.2023    10564    745    elcoan    45    

106

Конструктор HTML, CSS и javascript

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

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

2 стартмани

10.04.2023    9485    150    acces969    31    

115

Модель состояния для MVC

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

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3579    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12010    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4670 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
bav_itritm; sulfur17; dj_serega; +3 Ответить
4. TODD22 18 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 1137 26.09.16 12:34 Сейчас в теме
(4) TODD22, тут можно поспорить. Повторю публикацию - мне много раз приходилось убеждаться, что когда при выборе значения в поле ввода открывается такая же форма, как и при отображении списка - у пользователя возникает меньший дискомфорт. Он пользуется теми же приемами (например для отбора), что и при работе в форме списка. Колонки находятся на тех же местах, их ширина запомнена, ненужные для пользователя данные он сам выключил, условное оформление, которое он для себя настроил - схоранилось. А когда это две разных формы - то, например, добавлении реквизита или изменения запроса ДС для вывода доп. информации, приходится дорабатывать две формы, что влечет дублирование кода.

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

Как часто приходилось это делать? Понятно, что есть случаи типа отображения остатков и прочие особенности форм подбора. Но посчитайте по своим конфигурациям, сколько форм выбора по отображаемой информации дублируют формы списка. Или отображают меньше информации (которая бывает необходима)?
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_; +26 1 Ответить
7. TODD22 18 26.09.16 12:40 Сейчас в теме
(6)
тут можно поспорить.

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

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

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

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

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

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

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

Если везде и всегда используются две разные формы то наверное правильно делать так же. Чем придумывать свой велосипед.
Пусть даже это увеличивает трудоёмкость. Зато это понятно и очевидно.
10. Fragster 1137 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 115 28.09.16 08:26 Сейчас в теме
(7) TODD22, чувак, открой ЗУП 3.0!!! Это АДДДДДДДД. Там фильтров в форме выбора сотрудников (уволен, организация, подразделение, архивный) жесть скока. И может так случиться, что в форме выбора сотрудника нет, а в форме списка есть. И пользователь сходу не врубается, почему данные отличаются. Я молчу, что при выборе физ-лица они показывают формы выбора сотрудника.

Я с автором солидарен: одна форма, единая логика работы! Прячем "архивных" сотрудников, следовательно прячем их и там и там. Один справочник - одна форма со списком.
IvStark; zawal; lost-s0u1; +3 Ответить
22. TODD22 18 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 18 06.09.17 10:02 Сейчас в теме
(33)писать одну процедуру и назначать её нескольким обработчикам....
35. AlexO 135 06.09.17 10:21 Сейчас в теме
(34) так реакция все равно будет только по своему обработчику. Да и полностью совместить обработку параметров разных обработчиков в одной процедуре не удастся.
62. zawal 15 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 187 27.09.16 10:01 Сейчас в теме
Поддержу (13) alyaev.a.v.
Решение с 1 формой не рекомендовал бы только из-за наложенных отборов. На форму списка почти всегда накладываются пользовательские отборы. При использовании этой формы как формы выбора мы рискуем:
- пересечь пользовательский отбор с "программным"
- ввести пользователя в заблуждение, не отобразив доступные для выбора элементы, скрытые пользовательскими отборами.

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

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

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


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

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

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

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

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

Подозреваю, что код статьи подсмотрен через партнерский форум в типовых, т.к. навряд ли 1С использовала данный материал в своих разработках ))
Прикрепленные файлы:
37. Octopus 337 06.09.17 11:07 Сейчас в теме
(36)
Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
38. AlexO 135 06.09.17 11:19 Сейчас в теме
(37) ну вот не написали так, сделали через условие. Я же говорю - немного видоизменили.
Главное - что никаких проблем с множественным выбором и пользовательскими настройками.
Поэтому нет дополнительного кода.
40. Fragster 1137 06.09.17 11:56 Сейчас в теме
(38) а вот есть проблема с множественным выбором. в варианте (36) он не работает.
39. Fragster 1137 06.09.17 11:47 Сейчас в теме
(36) нет, никакой код не подсматривался.
42. spenser123 25.04.18 11:19 Сейчас в теме
Не актуально совсем... 8.3.11.3034 (без режима совместимости)- если форма не является формой выбора - стандартные команды выбора исчезают и недоступны, а в старых формах списка которые использовались как формы выбора - получаем программные ошибки с завершением работы (форма пользователей от ут например)
43. Fragster 1137 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 1137 26.04.18 13:09 Сейчас в теме
(44)
1. Это очень похоже на ошибку платформы
2. БСП 2.4 У(и УТ в частности) не поддерживает режим совместимости, отличный от 8.3.10 ;)
надо проверить в БСП 3.0 (ну и на платформе 8.3.12), но там куча косяков и я пока не готов её себе ставить
47. tireal 74 13.06.19 11:27 Сейчас в теме
Тоже было "лень" делать форму выбора, выбрал форму списка и был несказанно удивлен отсутствием у нее в списке свойства аля "Режим выбора" как в обычных формах. Автору спасибо, все получилось, но увидел результат и понял что форма списка с кнопками печатями и подключенным оборудованием выглядит как то диковато ) - все же по хорошему для выбора нужна отдельная форма. Но это конкретно моя ситуация.
48. YLioY 43 05.10.20 13:20 Сейчас в теме
Нужно было чтобы настройки формы выбора и формы списка сохранялись отдельно (пробовал на платформе 8.3.13) . Простого решения так и не нашел , привел свое , если есть проще буду рад увидеть .

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


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

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



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




&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
	
	Если Элементы.Список.РежимВыбора И НЕ ЗавершениеРаботы Тогда  
		// Если пользователь нажал кнопку завершения работы во время использования формы выбора последние изменения настроек не будут сохранены.
		ПриЗакрытииНаСервере();	
	КонецЕсли;
	
КонецПроцедуры
Показать
51. Fragster 1137 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 1137 06.10.20 10:21 Сейчас в теме
(54) раньше работало. Такое ощущение, что 1с что-то поломало. Я вставил "Сообщить" во все события формы, связанные с настройками - ни одно из них не вызвалось.
57. SlavaKron 06.10.20 12:31 Сейчас в теме
(56) Остановку надо делать в событии таблицы динамического списка ПриСохраненииПользовательскихНастроекНаСервере. Но проблема, описанная в (54) действительно имеется (платформа 8.3.16 в режиме совместимости 8.3.12).
49. profiprog1c 248 05.10.20 13:56 Сейчас в теме
Иногда разные формы списка и выбора очень нужны, когда реализуется такой функционал, чтобы пользователь в форме выбора не мог создавать элементы, а только выбирать, и также, чтобы в форме выбора было минимальное количество колонок, чтобы не путать пользователя.
52. Fragster 1137 05.10.20 16:54 Сейчас в теме
(49)
Иногда разные формы списка и выбора очень нужны, когда реализуется такой функционал, чтобы пользователь в форме выбора не мог создавать элементы, а только выбирать, и также, чтобы в форме выбора было минимальное количество колонок, чтобы не путать пользователя.

Если надо - делайте отдельные формы. Но по моему опыту - достаточно частый случай, когда одна форма достаточно хорошее решение.
53. profiprog1c 248 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 111 29.10.20 21:59 Сейчас в теме
Это стандарты разработки 1С в плане интерфейса:
Область применения: управляемое приложение.
Рекомендуется не создавать формы выбора, а использовать генерируемые платформой по умолчанию.
Если, в соответствии с прикладной логикой, в форме выбора нужно предусмотреть особенный состав команд или колонок, то можно создать форму выбора, следуя рекомендациям
В командной панели формы рекомендуется размещать минимально необходимый набор команд для выбора, создания нового и поиска/отбора.
В часто используемых формах выбора из больших наборов данных рекомендуется делать область быстрого отбора/поиска.
Состав колонок следует оптимизировать для быстрого визуального поиска данных
Вопрос почему так рекомендуется.
В БСП 3.1.3 есть исключения, например, Справочник.Пользователи(то, что нашел навскидку). А так все в основном как и рекомендуется, либо форма выбора не задана, либо создана пользователем.
Оставьте свое сообщение