|
Ограничить Форму Выбора документа определенной группой и ее подгруппами | ☑ | ||
---|---|---|---|---|
0
DarknessLors
10.06.24
✎
10:43
|
Добрый день всем, учусь 1с и мой преподаватель дал задание в документе "ДефектныйТранспорт" ограничить форму выбора нужной номенклатуры из группы (Дефектная техника) и ее подгруппах, прошу помочь с решением данной задачи, буду очень благодарен если пришлете пример кода, как это можно сделать.
|
|||
1
KJlag
10.06.24
✎
10:54
|
||||
2
DarknessLors
10.06.24
✎
12:12
|
(1) Продвижения есть, но проблема в том что все элементы пропадают, даже в нужной группе и подгруппах, вот код:
Процедура ПриОткрытииВместо(Отказ) ЗначениеОтбора = Новый Структура("Родитель", "Дефектная техника"); ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",ПараметрыВыбора); КонецПроцедуры |
|||
3
takefive
10.06.24
✎
12:29
|
Родитель - ссылка нужна...
|
|||
4
Климов Сергей
10.06.24
✎
12:31
|
Вот в этой строке
ЗначениеОтбора = Новый Структура("Родитель", "Дефектная техника"); второй параметр какой тип имеет? А передать в отбор какой тип надо? |
|||
5
DarknessLors
10.06.24
✎
12:41
|
(4) "Дефектная техника" - название группы в номенклатуре
|
|||
6
DarknessLors
10.06.24
✎
12:47
|
(3) Можете пожалуйста пример указать?
|
|||
7
youalex
10.06.24
✎
12:49
|
(2) хорошая попытка, но Новый Структура("Отбор", ЗначениеОтбора); - работает только на на равенство (или в списке, если в значении собственно список)
А тебе нужно отбор "в Группе", смотри дальше примеры по ссылке из (1) |
|||
8
Мультук
10.06.24
✎
12:51
|
(6)
Если преподаватель за такое получение ссылки будет тебя ругать -- он молодец. Если он не только поругает, но и приведёт "по другому, как надо" -- вдвойне молодец == Плохой пример, но для твоего случая "сойдёт" === ДефТехника = Справочники.Номенклатура.НайтиПоНаименованию("Дефектная техника"); |
|||
9
youalex
10.06.24
✎
12:55
|
(2) и у тебя тут ЗначениеОтбора = Новый Структура("Родитель", "Дефектная техника");
"Дефектная техника" - это строка, а нужна ссылка. Ну и как говорил, тут отбор только по родителю, а тебе нужно по всей иерархии судя по "и ее подгруппах" из условия, а это отбор "В группе" |
|||
10
DarknessLors
10.06.24
✎
13:10
|
(8) Такой способ не подойдет
|
|||
11
DarknessLors
10.06.24
✎
13:12
|
(7) взял второй метод из ссылки, пишет что "Переменная не определена (Список)", код:
&НаСервере Процедура ПриСозданииНаСервереВместо(Отказ, СтандартнаяОбработка ) ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше; ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбора.ПравоеЗначение = "Дефектная техника""; КонецПроцедуры |
|||
12
youalex
10.06.24
✎
13:17
|
(11)
1) где ты это пишешь? это код для формы выбора справочника (список по умолчанию это основной реквизит формы, но не обязательно он именно так называется) 2) ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше; - нужен другой вид сравнения 3) ЭлементОтбора.ПравоеЗначение = "Дефектная техника""; - снова строка, а тебе нужна ссылка 4) дальше в статье читай в этом пункте про "с этим отбором форма будет открываться всегда." |
|||
13
DarknessLors
10.06.24
✎
13:44
|
А кроме способов по ссылке(1), есть способ ограничить форму выбора?
|
|||
14
takefive
10.06.24
✎
14:09
|
Для подгрупп отбор по родителю не сработает. См. (7)
|
|||
15
DarknessLors
10.06.24
✎
14:27
|
(14) Хорошо, тогда что использовать для ограничения формы выбора? сроки просто поджимают, и хотелось бы понять как все сделать
|
|||
16
KJlag
10.06.24
✎
14:44
|
||||
17
takefive
10.06.24
✎
16:08
|
&НаКлиенте
Процедура НоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; фиксНастройки = Новый НастройкиКомпоновкиДанных; Отбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; Отбор.ПравоеЗначение = Группа;//реквизит формы Отбор.Использование = Истина; ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ФиксированныеНастройки", фиксНастройки); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыФормы, Элемент); КонецПроцедуры |
|||
18
DarknessLors
10.06.24
✎
17:25
|
(17) Подскажите пожалуйста, нужно ли менять в этой строчке что нибудь, а то выдает ошибку:
Переменная не определена (Группа) Отбор.ПравоеЗначение = <<?>>Группа; |
|||
19
unbred
11.06.24
✎
05:10
|
(18) тебеж в (17) даже прокомментировали, что такое Группа.
не пытайся копировать бездумно. читай построчно. |
|||
20
takefive
11.06.24
✎
10:04
|
добавь строчку перед...
Группа = Справочники.Номенклатура.НайтиПоНаименованию("Дефектная техника"); |
|||
21
DarknessLors
11.06.24
✎
10:18
|
(20) Простите, вчера протупил вечером, я уже понял что нужно указать, просто при проверке модуля пишет что переменная не определена (Группа) и (Справочник)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |