|
Выбор работников из определенной папки | ☑ | ||
---|---|---|---|---|
0
Константин536
01.03.15
✎
11:10
|
Здравствуйте.
Хочу выбирать сотрудников из определенной папки, а при выборе из другой выводить предупреждение. Есть справочник *Список сотрудников*. В нем 2 группы: *Продавцы* и *Кладовщики*. В документе *Прием товара* есть реквизит *Сотрудник*, в котором нужно указывать фамилии сотрудников из группы *Кладовщики*, а при выборе сотрудников из группы *Продавцы*, выдавать ошибку. Написал код: &НаКлиенте Процедура СотрудникПриИзменении(Элемент) Результат = Проверить(Объект.Сотрудник); Если Не Результат Тогда Сообщить("не может быть выбран"); КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция Проверить(Сотрудник) //а = 0; если Сотрудник.Родитель = Справочники.НайтиПоКоду("000000002") тогда Результат = истина; иначе Результат = ложь; возврат Результат КонецЕсли; КонецФункции но выдается ошибка: *Метод объекта не обнаружен(найтипокоду)*. Что не так? Может кто другой код подскажет? |
|||
1
XLife
01.03.15
✎
11:11
|
Справочники.Сотрудники.НайтиПоКоду("000000002")
|
|||
2
XLife
01.03.15
✎
11:12
|
а вообще через запрос...
|
|||
3
Константин536
01.03.15
✎
13:32
|
Исправил, но теперь при выборе ЛЮБОГО сотрудника система говорит *не может быть выбран*.
Мне тут подсказали, что проблема в описании функции, она написана для Булево, а надо для Ссылки. Вообще не понимаю теперь ничего |
|||
4
Euroset1
01.03.15
✎
14:35
|
у тебя конец если после возврата стоит. должно быть наоборот и тогда проканает
|
|||
5
Wobland
01.03.15
✎
14:36
|
а всё поломается, когда в группе кладовщиков заведут подгруппу?
|
|||
6
GROOVY
01.03.15
✎
14:38
|
(0) Как я говорил ранее, сравнивать ссылку с булевом не корректно.
|
|||
7
Euroset1
01.03.15
✎
14:40
|
(5) Конечно. Но это уже другой вопрос. Я бы рекомендовал использовать запрос или же хотябы цикл перебора родительских групп.
Но автор всего-то спросил, почему у него функция не пашет |
|||
8
Euroset1
01.03.15
✎
14:42
|
(6) да... и это тоже.
|
|||
9
Константин536
01.03.15
✎
19:55
|
Уважаемые.
Я понимаю, что у Вас у всех большой опыт в программировании. В отсутствии такового у меня, прошу Вас написать корректный код, используя код, написанный мной ранее.. Буду очень Вам признателен. Уважаемый Павел, я за аналог брал Ваш код, написанный в видео, и поэтому я не знаю как преобразовать булево в ссылку.... |
|||
10
ДенисЧ
01.03.15
✎
21:17
|
хм....
Возврат на строчку ниже перенеси... После КонецЕсли.... |
|||
11
zulu_mix
01.03.15
✎
21:22
|
жесть какая то....
&НаКлиенте Процедура СотрудникПриИзменении(Элемент) Если Не Проверить(Объект.Сотрудник) Тогда Сообщить("не может быть выбран"); КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция Проверить(Сотрудник) Возврат Сотрудник.Родитель.Код = "000000002"; КонецФункции |
|||
12
Константин536
02.03.15
✎
15:40
|
(11) Респект!
Все получилось! Буду теперь размышлять почему именно так надо было писать!!!! Благодарю! Спасибо еще раз. |
|||
13
MSOliver
02.03.15
✎
15:45
|
Помогли так помогли, по-мистовски что сказать :)
|
|||
14
Константин536
02.03.15
✎
18:12
|
(11) А я сделал теперь немного по-другому и тоже работает.!!
Использовал &НАСЕРВЕРЕ! &НаКлиенте Процедура СотрудникПриИзменении(Элемент) Если не Проверить(Объект.Сотрудник) тогда Сообщить ("Не может быть выбран"); КонецЕсли; КонецПроцедуры &НаСервере Функция Проверить(Родитель) Возврат Объект.Сотрудник.Родитель.Наименование = "Продавцы"; КонецФункции; |
|||
15
ktvladimir
02.03.15
✎
18:45
|
ужас... а если в папке кладовщики заведут подпапку? опять будешь кодом править?
почему нельзя запросом Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ 1 |ИЗ Справочник.Сотрудник |ГДЕ | Ссылка В ИЕРАРХИИ (&Родитель)"; Запрос.УстановитьПараметр("Родитель", Справочник) Возврат НЕ Запрос.Выполнить().Пустой() папку лучше вытащить в константы (иное место где хранить фиксированные значения элементов), так как у тебя может оказаться другая папка с таким наименованием но в другой иерархии, а также кому то не понравится такое название и он переименует |
|||
16
ktvladimir
02.03.15
✎
18:48
|
p/s/ Найти по коду может не работать если для кода отключили полнотекстовый поиск
|
|||
17
zulu_mix
02.03.15
✎
19:03
|
(15) больше строк + на скорость при единичной выборке не влияет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |