Имя: Пароль:
1C
1C 7.7
v7: Категория товаров ТИС
,
0 geniusbsd
 
04.04.15
21:36
Подскажите как получить категорию товара выбранного элемента справочника номенклатуры
Делаю так

Процедура КатТовара()
Перем КатегорииТоваров,КатТов;
    КатегорииТоваров = СоздатьОбъект("Справочник.КатегорииТоваров");    
КатегорииТоваров.ИспользоватьВладельца(ТекущийЭлемент());
КатегорииТоваров.ВыбратьЭлементы();
КатТов = КатегорииТоваров.Категория.Наименование;
Сообщить(КатТов);
КонецПроцедуры
  
Но получаю не то что требуется
Помогите плиз
1 CepeLLlka
 
04.04.15
21:49
ТекущийЭлемент() у тебя тут чему равен?  
Нужно выборку делать из справочника номенклатуры ещё тогда, если я правильно понимаю тебя.. И тогда уже
2 geniusbsd
 
04.04.15
22:26
Я процедуру запускаю из формы списка справочника номенклатуры
ТекущийЭлемент равен товару на котором я стою
3 LazyStranger
 
04.04.15
22:33
У товара 1 категория или много?

КатегорииТоваров.ВыбратьЭлементы();
Пока КатегорииТоваров.ПолучитьЭлемент()=1 цикл
КатТов = КатегорииТоваров.Категория.Наименование;
Сообщить(КатТов);
КонецЦикла;
4 geniusbsd
 
04.04.15
22:42
У товара  только одна категория
Если делаю через цикл то получаю слегка не то
К примеру товар 1 - Кат1
товар 2 Кат2
Товар 3- Кат3

При выборе Товар1 Получаю Сообщение Кат1
При выборе Товар2  получаю две строки кат1 и Кат2
При выборе Товар3 Получаю тоже две строки Кат1 и кат3
5 geniusbsd
 
04.04.15
22:45
Все вроде разобрался
вынес Сообщить(КатТов);
за пределы цикла
Вроде работает
Спасибо
6 Pers0naGrata
 
04.04.15
23:04
(5) Ключевое слово "ВРОДЕ".
Проверь количество подчиненных элементов справочника "КатегорииТоваров" для Товар2 и Товар3. Тебя не смущает, что их должно быть по одному, а выводится по два?
7 geniusbsd
 
04.04.15
23:05
Смущает
8 Pers0naGrata
 
04.04.15
23:07
(7) Так сколько их там?
9 geniusbsd
 
04.04.15
23:09
По одному
10 Pers0naGrata
 
04.04.15
23:12
(9) Напиши еще раз получившийся текст процедуры
11 geniusbsd
 
04.04.15
23:16
Функция КатТовара()
Перем КатегорииТоваров,КатТов;
    КатегорииТоваров = СоздатьОбъект("Справочник.КатегорииТоваров");    
КатегорииТоваров.ИспользоватьВладельца(ТекущийЭлемент());
КатегорииТоваров.ВыбратьЭлементы();
Пока КатегорииТоваров.ПолучитьЭлемент() = 1 Цикл
КатТов = КатегорииТоваров.Категория.Наименование;
КонецЦикла;
Возврат КатТов;
Конецфункции
12 geniusbsd
 
04.04.15
23:20
Вот интересно я у товара удалил категорию а он все равно из справочника получает по последнею установленную категорию
13 Pers0naGrata
 
04.04.15
23:26
(12) Удалил совсем или пометил на удаление?
14 Pers0naGrata
 
04.04.15
23:28
(11) Я бы написал так:

Функция КатТовара()
  КатегорииТоваров = СоздатьОбъект("Справочник.КатегорииТоваров");    
  КатегорииТоваров.ИспользоватьВладельца(ТекущийЭлемент());
  Если КатегорииТоваров.ВыбратьЭлементы() = 1 Тогда
    КатегорииТоваров.ПолучитьЭлемент();
    КатТов = КатегорииТоваров.Категория.Наименование;
  Иначе
    КатТов = "";
  КонецЕсли;
  
  Возврат КатТов;
КонецФункции
15 geniusbsd
 
04.04.15
23:41
Удалял через Справочник номенклатуры(ФормаСписка) закладка категории
Так я функцию(процедуру) тоже писал без условия

    КатегорииТоваров.ВыбратьЭлементы();
    КатегорииТоваров.ПолучитьЭлемент();
    КатТов = КатегорииТоваров.Категория.Наименование;
На выходе получаю первый элемент справочника КатигорииТоваров на любом из выбраных элементов справочника номенклатуры
16 Pers0naGrata
 
04.04.15
23:46
(15) Не может быть -- текст процедуры написан верно. Телепатические способности закончились. Тут может помочь только удаленное подключение.
17 geniusbsd
 
04.04.15
23:50
Могу TeamViewer Включить
18 Pers0naGrata
 
04.04.15
23:52
(17) Предпочитаю Ammyy Admin.
19 geniusbsd
 
04.04.15
23:58
Давайте попробуем 48 009 678
20 Pers0naGrata
 
05.04.15
00:08
Happy End.
21 geniusbsd
 
05.04.15
00:09
Да  пометку на удаление я и не учел :)
Еще раз спасибо
22 Злопчинский
 
05.04.15
00:18
А что
В тис появились категории товаров?
23 geniusbsd
 
05.04.15
09:26
Вроде и были
24 Злопчинский
 
05.04.15
12:40
Не помню!были и Есть Справочник.СвойстваНоменклатурыно иожет в относительно свежих релизах есть и КатегорииТоваров?