Ограничение списка выбора номенклатуры по группе\виду номенклатуры
Добрый день, 1С 8.3, УФ, серверная база.
Есть некий документ с реквизитом типа СправочникСссылка.Номенклатура.
В самом справочнике 2 группы :ГруппаА и ГруппаБ.
Хочу, чтобы при получении формы выбора справочника выводились только записи справочника по критерию ГруппаА.
Порылся в сети, нашел такое решение:
Но в УФ не работает.
Понимаю, что к записям справочника нужно обращаться на сервере, но на сервере вообще не работает.
Как переделать этот код, чтобы работал на серверной базе в УФ?))
Заранее спасибо!
Есть некий документ с реквизитом типа СправочникСссылка.Номенклатура.
В самом справочнике 2 группы :ГруппаА и ГруппаБ.
Хочу, чтобы при получении формы выбора справочника выводились только записи справочника по критерию ГруппаА.
Порылся в сети, нашел такое решение:
Процедура НоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
//Отключим стандартный выбор, так как делаем свой
СтандартнаяОбработка = Ложь;
//Получаем форму и привязываем ее к Владельцу - Элемент
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
//Установим отбор по Родителю справочника
ФормаВыбора.ЭлементыФормы.СправочникСписок.Родитель = Справочники.Номенклатура.НайтиПоКоду("123456");
//Откроем выбор
ФормаВыбора.ОткрытьМодально();
КонецПроцедуры
ПоказатьНо в УФ не работает.
Понимаю, что к записям справочника нужно обращаться на сервере, но
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
Как переделать этот код, чтобы работал на серверной базе в УФ?))
Заранее спасибо!
По теме из базы знаний
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Информационные системы в оптовой торговле. Часть 1. Номенклатура
- Принципы проектирования справочников номенклатуры в 1С: Управление Предприятием 2 (ERP 2.4.6)
- Запрос всей номенклатуры с характеристиками
- Как я писал ТЗ на внедрение 1С:ERP
Найденные решения
все, понял где затупил.))
&НаКлиенте
Процедура ПродукцияНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
П=ПродукцияНоменклатураНачалоВыбораНаСервере();
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",П,Элемент);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПродукцияНоменклатураНачалоВыбораНаСервере()
Группа=Справочники.Номенклатура.НайтиПоКоду("U0000137672");
П=Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Родитель",Группа);
П.Вставить("Отбор", Отбор);
Возврат П;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
но, не работает.(
&НаКлиенте
Процедура ПродукцияНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
П=ПродукцияНоменклатураНачалоВыбораНаСервере();
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",П,ЭтаФорма);
КонецПроцедуры
&НаСервере
Функция ПродукцияНоменклатураНачалоВыбораНаСервере()
Группа=Справочники.Номенклатура.НайтиПоКоду("U0000137672");
П=Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Владелец",Группа);
П.Вставить("Отбор", Отбор);
Возврат П;
КонецФункции
Показать
(7)
чуть поменял код, все равно ноль на массу
чуть поменял код, все равно ноль на массу
&НаКлиенте
Процедура ПродукцияНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
П=ПродукцияНоменклатураНачалоВыбораНаСервере();
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",П,Элемент);
КонецПроцедуры
&НаСервере
Функция ПродукцияНоменклатураНачалоВыбораНаСервере()
Группа=Справочники.Номенклатура.НайтиПоКоду("U0000137672");
П=Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Группа",Группа);
П.Вставить("Отбор", Отбор);
Возврат П;
КонецФункции
Показать
(9)
поправил, начало писать: Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Поле не найдено "Группа"
&НаКлиенте
Процедура ПродукцияНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
П=ПродукцияНоменклатураНачалоВыбораНаСервере();
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",П,Элемент);
КонецПроцедуры
&НаСервере
Функция ПродукцияНоменклатураНачалоВыбораНаСервере()
Группа=Справочники.Номенклатура.НайтиПоКоду("U0000137672");
П=Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Группа",Группа);
П.Вставить("Отбор", Отбор);
Возврат П;
КонецФункции
Показатьпоправил, начало писать: Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Поле не найдено "Группа"
(12)
Насчет кода
Я бы это сделал в событии формы ПриСозданииНаСервере и хранил в реквизите формы. Чтобы лишние разу не ходить на сервер.
Насчет установки отбора. Тут зависит от вложенности элементов справочника. Если внутри группы - только элементы (без вложенной иерархичности), то, думаю, сработает такой отбор:
Если же в группе есть вложенная иерархичность, то нужно дописывать форму выбора.
Насчет кода
Группа=Справочники.Номенклатура.НайтиПоКоду("U0000137672")
Я бы это сделал в событии формы ПриСозданииНаСервере и хранил в реквизите формы. Чтобы лишние разу не ходить на сервер.
Насчет установки отбора. Тут зависит от вложенности элементов справочника. Если внутри группы - только элементы (без вложенной иерархичности), то, думаю, сработает такой отбор:
Отбор.Вставить("Родитель",Группа);
Если же в группе есть вложенная иерархичность, то нужно дописывать форму выбора.
все, понял где затупил.))
&НаКлиенте
Процедура ПродукцияНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
П=ПродукцияНоменклатураНачалоВыбораНаСервере();
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",П,Элемент);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПродукцияНоменклатураНачалоВыбораНаСервере()
Группа=Справочники.Номенклатура.НайтиПоКоду("U0000137672");
П=Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Родитель",Группа);
П.Вставить("Отбор", Отбор);
Возврат П;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот