![]() |
![]() |
![]() |
|
Недоступна кнопка "Показать все" | ☑ | ||
---|---|---|---|---|
0
Обизян
14.07.25
✎
12:26
|
Доброго дня. 1С 8.3.27 УФ.
На форме есть ТЧ, в которой колонка «Документ», я сделал так, чтобы при нажатии на нее в списке подставлялись нужные документы из запроса, но хотелось бы, чтобы можно было провалиться в журнал и выбрать любой документ, но почему-то кнопка недоступна, при нажатии ничего не происходит. Вот процедуры, которые использую. &НаКлиенте Процедура ТаблицаНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) СтандартнаяОбработка = ложь; НоменклатураОтбора = ЭтаФорма.Элементы.Таблица.ТекущиеДанные.Номенклатура; Документы = ВернутьСписокДокументовПоНоменклатуре(НоменклатураОтбора); ДанныеВыбора = ДокументыПроценка; КонецПроцедуры &НаКлиенте Процедура ТаблицаОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, ВыборДобавлением, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ЭтаФорма.Элементы.ТаблицаExcel.ТекущиеДанные.Документ = ВыбранноеЗначение; Shell= Новый COMОбъект("Wscript.Shell"); Shell.SendKeys("{ENTER}"); КонецПроцедуры на форме колонки стоит режим выбора из списка, быстрый выбор - да, кнопка выбора - да, кнопка создания -нет |
|||
1
craxx
14.07.25
✎
11:36
|
(0)Это зачем??
Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys("{ENTER}"); |
|||
2
Обизян
14.07.25
✎
11:38
|
(1) без этого не срабатывает, если закоментить, то все равно не дает открыть список документов. по сути я обе процедуры коментил, возможно упускаю где-то настройку на форме какую
|
|||
3
craxx
14.07.25
✎
11:41
|
(2) а каким образом он должен выбрать эти документы? где вызов формы выбора какой бы то ни было?
|
|||
4
Обизян
14.07.25
✎
11:43
|
а, понял СтандартнаяОбработка = ложь у меня же
|
|||
5
craxx
14.07.25
✎
11:43
|
(4) да даже если Истина будет, это мало что поменяет. Где вызов формы выбора документов?
|
|||
6
Fish
гуру
14.07.25
✎
11:44
|
(0) Код сгенерирован при помощи ИИ? Или ты сам такое придумал?
|
|||
7
Обизян
14.07.25
✎
11:45
|
(6) Сам, а что не так с ним?
|
|||
8
Fish
гуру
14.07.25
✎
11:45
|
(7) Ответь на (3) и (5). Всё не так.
|
|||
9
Обизян
14.07.25
✎
11:50
|
(5) Ну если ничего не менять, он же автоматом вызывает форму выбора, думал что и в таком случае раз кнопка Показать все висит, будет отрабатывать
|
|||
10
Обизян
14.07.25
✎
11:48
|
Вообще задача изначально в том, чтобы вывести документы с нужным отбором, теперь просто просят таки дать возможность выбора в том числе
|
|||
11
Обизян
14.07.25
✎
11:49
|
(8) Буду признателен, если подскажешь как правильно сделать
|
|||
12
Fish
гуру
14.07.25
✎
11:56
|
(11) Сформулируй внятно задачу. А то у тебя какая-то каша из "вывести документы с нужным отбором", " дать возможность выбора ".
Ты пытаешься реализовать выбор в поле ТЧ с неким отбором? Так на том же ИС примеров полно. |
|||
13
Обизян
14.07.25
✎
11:58
|
(12) да, в поле ТЧ при выборе необходимо показать только те документы, которые в которых есть нужная номенклатура в нужном количестве, но и так же дать возможность выбрать любой документ
|
|||
14
Fish
гуру
14.07.25
✎
11:59
|
(13) Искал поиском в яндексе? На ИС и не только полно примеров того, что тебе нужно. Примеров прямо с кодом.
|
|||
15
Обизян
14.07.25
✎
12:59
|
(14) может хреново сформулировал запрос, но что-то не могу внятного-понятного найти
|
|||
16
Fish
гуру
14.07.25
✎
12:01
|
+(14) Вот пример с ИТСа:
https://its.1c.ru/db/metod8dev/content/3557/hdoc |
|||
17
Обизян
14.07.25
✎
12:02
|
Проблема еще в том, что у документа нет формы выбора, только форма списка
|
|||
18
Обизян
14.07.25
✎
12:03
|
и когда форма открывается, по клику он просто открывает документ, а не закрывает форму
|
|||
19
Обизян
14.07.25
✎
12:04
|
может в самой обработке сделать форму динамического списка
|
|||
20
Fish
гуру
14.07.25
✎
12:04
|
(17) И в чём тут проблема? Если нет формы выбора, то она будет сгенерирована платформой.
|
|||
21
maxab72
14.07.25
✎
12:05
|
(17) открывай форму списка в режиме выбора. не запрещено.
|
|||
22
Fish
гуру
14.07.25
✎
12:05
|
(19) Мне кажется, ты бредишь.
|
|||
23
Обизян
14.07.25
✎
12:06
|
(21) ставлю режим выбора, все равно просто открывает документ
|
|||
24
maxab72
14.07.25
✎
12:06
|
(22) интересно, а автор читал что-нибудь типа Хрусталевой?
|
|||
25
Обизян
14.07.25
✎
12:07
|
вот так делаю
Процедура ТаблицаНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимВыбора",Истина); ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"ПодборРеализации"); ОткрытьФорму("Документ.Реализация.ФормаСписка",ПараметрыФормы, ЭтаФорма, , , , ОбработкаВыбора); КонецПроцедуры |
|||
26
maxab72
14.07.25
✎
12:11
|
(25) а что тут ПриЗакрытииФормыВыбора
|
|||
27
Обизян
14.07.25
✎
12:14
|
(26)
&НаКлиенте Процедура ПриЗакрытииФормыВыбора(Результат, параметры) Экспорт р = Результат; КонецПроцедуры дело в том, что форма при клике просто открывает документ, т.е. работает не как форма выбора, а как простая форма списка, если через крестик закрываю ее, то попадаю в процедуру ПриЗакрытииФормыВыбора, где результат пустой |
|||
28
Fish
гуру
14.07.25
✎
12:18
|
(25) Ты хоть погугли:
"Нужно заметить, что у таблицы управляемой формы имеется свойство РежимВыбора. Изменение этого свойства в конфигураторе, в палитре свойств, позволяет превратить форму списка в форму выбора, и наоборот. Однако попытка изменить это свойство из встроенного языка в режиме 1С:Предприятие (см. пример ниже) ни к чему не приведет. Если была получена форма списка, будет открыта форма списка. И наоборот." https://its.1c.ru/db/metod8dev/content/3575/hdoc |
|||
29
Обизян
14.07.25
✎
12:21
|
(28) дык я же и говорю, что нет формы выбора, как лучше тогда реализовать выбор?
|
|||
30
Fish
гуру
14.07.25
✎
12:22
|
(29) См. (20)
|
|||
31
Fish
гуру
14.07.25
✎
12:22
|
+(30) Или сделай уже форму выбора. Приложи усилие.
|
|||
32
Обизян
14.07.25
✎
12:24
|
(31) да тут заморочки по поводу изменения конфы, но пофиг, так и сделаю
Спасибо за помощь |
|||
33
Fish
гуру
14.07.25
✎
12:29
|
(32) Можно и без создания. Но тогда команду отключения фильтра на форме выбора придётся создавать программно.
Создать форму будет намного проще. |
|||
34
craxx
14.07.25
✎
12:34
|
(29) в саму форму списка при вызове ОткрытьФорму() можно передать параметры, что она используется в качестве формы выбора, дальше при событии Выбор, вызываешь ОповеститьОВыборе() ну и т.п. обрабатываешь, а там можешь ее закрыть программно, можешь не закрывать, выбор сработает
|
|||
35
maxab72
14.07.25
✎
12:34
|
(26) пример https://infostart.ru/1c/articles/549160/ работает.
|
|||
36
Fish
гуру
14.07.25
✎
12:44
|
(35) Да, но сама 1С рекомендует таки разные формы:
"С точки зрения методологии работы с платформой в управляемых формах рекомендуется в качестве формы выбора и формы списка использовать разные формы. ... Изменение внешнего вида управляемой формы в режиме исполнения влечет за собой обращение к серверу и кроме этого может приводить к отключению кэширования такой формы, что отрицательно сказывается на производительности." https://its.1c.ru/db/metod8dev/content/3575/hdoc |
|||
37
maxab72
14.07.25
✎
12:47
|
(36) ага, если в типовой у какого-то документа или справочника нет формы выбора, это означает, что его и так открывают раз в пятилетку на еврейскую масленицу. и потеря кэширование это минимальная из возможных проблем.
|
|||
38
Fish
гуру
14.07.25
✎
12:54
|
(37) Если нет формы выбора, то она будет сгенерирована автоматически. Но это не значит, что нужно указывать формой выбора форму списка.
|
|||
39
Обизян
14.07.25
✎
13:00
|
хм, передаю номера документов для отбора в форму выбора, все круто, только их и выводит, но отменить отбор на форме не получается(
|
|||
40
maxab72
14.07.25
✎
13:01
|
(38) иногда надо, например если в таблице есть рассчитываемая колонка с интересными значениями. В автосгенерированной такой колонки не будет.
|
|||
41
Обизян
14.07.25
✎
13:28
|
вот так работает:
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Форма.Список.КомпоновщикНастроек.Настройки.Отбор, "Номер", СтрСтрукт.Значение, ВидСравненияКомпоновкиДанных.Равно, ,Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ, Новый УникальныйИдентификатор); но таким образом я могу сделать отбор только по одному номеру документа, не пойму как сделать так, чтобы он мне несколько документов показывал , если это вообще возможно |
|||
42
maxab72
14.07.25
✎
13:30
|
ВидСравненияКомпоновкиДанных.Равно поменяй на ВидСравненияКомпоновкиДанных.ВСписке
|
|||
43
Обизян
14.07.25
✎
13:32
|
(42) Лучший!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |