|
Подбор групп товаров в ТЗ внешней обработки | ☑ | ||
---|---|---|---|---|
0
MWWRuza
гуру
27.07.22
✎
17:39
|
Добрый день!
Подскажите "застарелому семерошнику", можно ли в форму некой внешней обработки, организовать подбор из справочника групп? Без изменения самой конфы(типовая базовая) - ? Подскажите, лучше с примером, если такое вообще возможно.. Скриншот задачи: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-454.jpg Нет, я понимаю, как это можно сделать, создав или изменив открываемую форму справочника. Но, менять конфу нельзя... |
|||
1
Галахад
гуру
27.07.22
✎
17:48
|
А что не получается?
|
|||
2
Михаил Козлов
27.07.22
✎
17:51
|
Наверное, группу не удается выбрать.
|
|||
3
Михаил Козлов
27.07.22
✎
17:52
|
Можно попробовать в типовой обработке Групповое изменение справочников и документов подглядеть, как выбирается группа в условиях отбора.
|
|||
4
Мультук
гуру
27.07.22
✎
18:32
|
||||
5
Мультук
гуру
27.07.22
✎
18:34
|
(0)
Продолжение статьи https://infostart.ru/1c/articles/1233756/ Была другая очень красивая статья. но, увы, не могу её найти. |
|||
6
MWWRuza
гуру
27.07.22
✎
18:49
|
Спасибо, изучаю... Наворочено очень... Думал, как-то проще можно реализовать.
|
|||
7
Мультук
гуру
27.07.22
✎
20:08
|
(0)
Что тут сложного ? Вот пример. В обработке есть некая таблица значений "Проекты", в ней колонка "Проект". Необходимо добавить кнопку "Подбор" 1) Добавляем кнопку -- пишем код при её нажатии "КоманднаяПанель2ДействиеПодборПроекта" 2) В таблице значений ловим событие "ОбработкаВыбора", кликаем в в свойствах, создается обрабочик, пишем код 3) Занимаемся отладкой. Процедура КоманднаяПанель2ДействиеПодборПроекта(Кнопка) пОтбор = Новый Структура("ЭтоГруппа", Истина); ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе, Отбор, ВыборГруппИЭлементов", Ложь, пОтбор, ИспользованиеГруппИЭлементов.Группы); ОткрытьФорму("Справочник.Проекты.ФормаВыбораГруппы", ПараметрыФормы, ЭлементыФормы.Проекты); КонецПроцедуры Процедура ПроектыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) НоваяСтрока = Проекты.Добавить(); НоваяСтрока.Проект = ВыбранноеЗначение; КонецПроцедуры |
|||
8
MWWRuza
гуру
27.07.22
✎
21:51
|
Хм... Может и не сложно, но мне пока не понятно...
В Ваших "Проектах" есть: Справочник.Проекты.ФормаВыбораГруппы. У меня, в Номенклатуре ее нет, только: "ПомощникНового, ФормаВыбора, ФормаГруппы, ФормаЗначенийРеквизитов, ФормаСписка, ФормаСпискаДублирующиеПозиции, ФормаЭлемента"... Формы выбора групп нет. Скорее всего, в этой форме что-то прописано для выбора групп, не даром же она так называется. И вот тут: ОткрытьФорму("Справочник.Проекты.ФормаВыбораГруппы", ПараметрыФормы, ЭлементыФормы.Проекты); ЭлементыФормы.Проекты - это что? Элементы какой формы? Открываемой? PS Извиняюсь, может вопросы глупые, и для Вас это просто и очевидно, но, мне после 7.7, не понятно :-( |
|||
9
MWWRuza
гуру
27.07.22
✎
22:26
|
В принципе, вот это:
&НаКлиенте Процедура ПодборГрупп(Команда) пОтбор = Новый Структура("ЭтоГруппа", Истина); ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе, Отбор, ВыборГруппИЭлементов", Ложь, пОтбор, ИспользованиеГруппИЭлементов.Группы); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыФормы); // Что вместо этого писать, не понятно: ЭлементыФормы.Проекты // Вставить содержимое обработчика. КонецПроцедуры Открывает форму выбора номенклатурв, в которой только группы: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/i-455.jpg А дальше что делать? Кнопка "Выбрать" ничего не делает... 2) В таблице значений ловим событие "ОбработкаВыбора", кликаем в в свойствах, создается обрабочик, пишем код - Нет у меня такого события... Может потому, что у меня не ТЗ а СписокЗначений? |
|||
10
Мультук
гуру
27.07.22
✎
22:32
|
(9)
Но у формы в которой кнопка и список значений, такой обработчик есть >> кликаем в в свойствах, создается обрабочик В этом обработчике ставим точку останова и смотрим, что там падает в переменные |
|||
11
MWWRuza
гуру
27.07.22
✎
22:46
|
Обработчик есть...
И процедура ему назначена: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/i-456.jpg &НаКлиенте Процедура ГруппыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) НоваяСтрока = ГруппыТоваров.Добавить(); НоваяСтрока.ВыбГруппа = ВыбранноеЗначение; КонецПроцедуры только почему-то туда программа не попадает, точка останова стоит внутри этой процедуры, и ничего не происходит ни при нажатии кнопки "Выбрать" в открывшейся форме справочника, ни при двойном клике на группе... |
|||
12
MWWRuza
гуру
27.07.22
✎
22:52
|
Список я поменял на ТЗ, если это имеет значение...
|
|||
13
arsik
гуру
27.07.22
✎
23:03
|
(11) Тебе ОбработкаВыбора нужна не у списка, а у формы.
|
|||
14
MWWRuza
гуру
27.07.22
✎
23:18
|
Сделал у формы. Все равно не отрабатывает...
А разъве это событие возникает не у той формы, которая открывается и в которой выбор осуществляется? В моем случае - форма выбора справочнмика номенклатура? Как-то не очень понимаю, почему это событие должно в моей форме обработки вызываться... |
|||
15
MWWRuza
гуру
27.07.22
✎
23:29
|
В принципе, все работает и так, без этих процедур и кнопки, просто открывается весь список номенклатуры, но подбираются группы. При попытке выбрать элемент, не дает, с предупреждением "Выберите группу а не элемент". Для моей "прикладной задачи", этого более чем достаточно, ну, отображаются элементы, фиг сними, главное выбираются только группы... Просто хотел разобраться, как это сделать правильно.
|
|||
16
MWWRuza
гуру
28.07.22
✎
08:21
|
(2) Наверное, группу не удается выбрать.
Нет,не так. Группы выбираются, с этим нет проблем. Я наверное плохо описал свою "хотелку". Я хотел, что-бы по нажатию "зелененькой кнопочти с плюсиком", открывалась форма справочника "Номенклатура", в которой отображались бы только группы, без элементов. И их можно быфло-бы выбирать в ТЗ своей формы внешней обработки. И все это без вмешательства в саму конфу, только дописками во внешней обработке. Процедурой из (9) получилось открывать форму выбота справочника так, как мне хотелось - отображаются только группы. Правда, не по стандартному "плюсику", а по отдельной кнопке. Но, тут они действительно не выбираются. Остановился на варианте, без единой строчки кода, только правильной "расстановкой галочек" и выборе свойств, когда в выборе открывается весь справочник, и элементы и группы, но дает выбирать только группы. Устраивает полностью. Но, так и не понял, можно ли реализовать первоначальную "хотелку" без вмешательства в типовую "ФормуВыбора" справочника, и без добавления "ФормыВыбораГрупп", с соответствующими отборами, только из внешней обработки. |
|||
17
MWWRuza
гуру
28.07.22
✎
08:32
|
(9) кликаем в в свойствах, создается обрабочик, пишем код - Нет у меня такого события...
Тут я опять "накосячил" с описанием - событие в списке есть, "но его нет", в смысле оно не вызывается, нет самого события в процессе мсполнения, хотя оно описано :-) |
|||
18
6awkup_true
28.07.22
✎
08:52
|
Если вкратце, то чтобы выбранное значение попало в "ОбработкаВыбора" формы, то при открытии формы выбора владельцем формы надо указывать текущую.
вот код модуля &НаКлиенте Процедура ПодборВСписок(Команда) ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия.Вставить("МножественныйВыбор", Ложь); ПараметрыОткрытия.Вставить("Отбор", Новый Структура("ЭтоГруппа", Истина)); ПараметрыОткрытия.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Группы); ПараметрыОткрытия.Вставить("ЗакрыватьПриВыборе", Ложь); ОткрытьФорму("Справочник._ДемоНоменклатура.ФормаВыбора", ПараметрыОткрытия, ЭтаФорма); КонецПроцедуры &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Если ИсточникВыбора.ИмяФормы = "Справочник._ДемоНоменклатура.Форма.ФормаВыбора" тогда Если Список.НайтиПоЗначению(ВыбранноеЗначение) = Неопределено тогда Список.Добавить(ВыбранноеЗначение); КонецЕсли; КонецЕсли; КонецПроцедуры если нужно наглядно посмотреть, то https://disk.yandex.ru/d/yhbX-OuVfHiwlA |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |