Подстановка вида товара в зависимости от группы

1. Гость 11.10.18 17:34
День добрый. Есть иерархический справочник, и две папки товары и услуги, нужно чтобы в зависимости от группы при создании новой номенклатуры автоматически подставлялось значение ее вида.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Номенклатура.Родитель КАК Родитель,
	|	Номенклатура.Родитель.Наименование КАК РодительНаименование,
	|	ПРЕДСТАВЛЕНИЕССЫЛКИ(Номенклатура.Родитель.Наименование) КАК РодНаи
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура";	
	  РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаТовары = РезультатЗапроса.Выбрать();
	Если ВыборкаТовары.РодНаи = "Товары"  Тогда
		 Объект.Вид = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Товар");
	 ИначеЕсли ВыборкаТовары.РодНаи = "Услуга" Тогда 
		 Объект.Вид = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Услуга");
	 КонецЕсли;	

КонецПроцедуры
Показать

не понимаю почему не работает и ошибок не выдает
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. alex-l19041 8 11.10.18 17:47 Сейчас в теме
(1) этот запрос вернет ВСЕ группы номенклатуры! и еще столько раз сколько элементов в справочнике...
+
2. DenisCh 11.10.18 17:42 Сейчас в теме
Выборка.Следующий() за тебя Ангела будет писать?
+
4. YellowAndBlue 12.10.18 09:06 Сейчас в теме
Спасибо)
+
5. YellowAndBlue 12.10.18 09:48 Сейчас в теме
(2)Есть другая проблема.
Теперь он игнорирует условие Если и подставляет какой-то один вид номенклатуры
Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Номенклатура.Родитель КАК Родитель,
	|	Номенклатура.Родитель.Наименование КАК РодительНаименование,
	|	ПРЕДСТАВЛЕНИЕССЫЛКИ(Номенклатура.Родитель.Наименование) КАК РодНаи,
	|	Номенклатура.Вид КАК Вид
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура";	
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаТовары = РезультатЗапроса.Выбрать();
	Пока ВыборкаТовары.Следующий() Цикл
	Если ВыборкаТовары.РодНаи = "Услуги" Тогда 
		 Объект.Вид = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Услуга");
	ИначеЕсли ВыборкаТовары.РодНаи = "Товары"  Тогда
		 Объект.Вид = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Товар");		
	КонецЕсли;	 
	КонецЦикла; 
	
Показать

что не так?
+
6. DenisCh 12.10.18 10:49 Сейчас в теме
(5) Дядя-отладчик что показывает? Не нравится мне тут в твоём запросе ПредставлениеСсылки...
Почему просто наименование не проверить?
+
8. YellowAndBlue 12.10.18 10:50 Сейчас в теме
(6) нужен отбор в запросе, чтобы отбирать только родителя нужной номенклатуры. но я не знаю как его написать. как он должен выглядить
+
7. YellowAndBlue 12.10.18 10:49 Сейчас в теме
да я его уже убрала
+
9. DenisCh 12.10.18 11:15 Сейчас в теме
А где условие на нужную номенклатуру в запросе?
+
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот