ТЧ проверка номенклатуры Товар или Услуга

1. VKuser263671622 12.04.18 09:57 Сейчас в теме
Есть задача. При поступлении или продажи товара в ТЧ нужно вносить номенклатуру. В ТЧ есть 2 вкладки Товары/Услуги. У каждой номенклатуры есть ВидНомеклатуры - Товар или Услуга. Нужно что бы проходила проверка и если во вкладку Товар вносят Услугу, то должно выходить сообщение об некорректной операции.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. caponid 12.04.18 10:03 Сейчас в теме
так в чем собственно проблема? написать этот механизм?
3. VKuser263671622 12.04.18 10:15 Сейчас в теме
(2) Верно. Есть вариант, но не работает. Возможно есть попроще код.


&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
	
	ЭтоТовар = АнализВиданоменклатурыВСтроке(Элементы.Товары.ТекущиеДанные.Номеклатура);

	Если ЭтоТовар = "Услуга" тогда
		Элементы.Товары.ТекущиеДанные.Номенклатура = "";
		Сообщить ("В табличной части ""Товары"" можно выбрать только ""Товары""");
		КонецЕсли;
	
КонецПроцедуры
	
&НаСервере

Функция АнализВиданоменклатурыВСтроке(Номенклатура)
	
	Если Номенклатура.ВидНоменклатуры = Перечисления.ВидНоменклатуры.Товар тогда
		Возврат "Товар";
	Иначе
		Возврат "Услуга";
	КонецЕсли;
	
КонецФункции
Показать
4. caponid 12.04.18 10:37 Сейчас в теме
(3) Вроде все правильно написано... разве что &НаСервереБезКонтекста надо
а что не работает?
5. VKuser263671622 12.04.18 11:04 Сейчас в теме
(4)Если во вкладке Товары выбрать номенклатуру у которой стоит ВидНомеклатуры - Услуга (например Разработка Сайта), то ошибку не выдаёт, и документ спокойно проводиться.
6. spacecraft 12.04.18 11:12 Сейчас в теме
(3) логичнее использовать другой обработчик:
&НаКлиенте
Процедура ТоварНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	Если ЭтоУслуга(ВыбранноеЗначение) Тогда
		СтандартнаяОбработка = Ложь;
		Сообщить("Это не Товар!");
	КонецЕсли;
	
		
КонецПроцедуры

&НаСервереБезКонтекста          
Функция ЭтоУслуга(Номенклатура)
	Возврат Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Услуга;
	
КонецФункции
Показать
Оставьте свое сообщение

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