Можно на сервере (в контекстной процедуре), можно на клиенте используя
Если Товар = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Материал") Тогда
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
Если НЕ СтрокаТабличнойЧасти.Товар = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Материал") Тогда
Сообщить(""+СтрокаТабличнойЧасти.Товар+" это не товар!");
УдалитьСтроку(СтрокаТабличнойЧасти.НомерСтроки-1);
Возврат;
КонецЕсли;
(5) на этот код
&НаКлиенте
Процедура МатериалыПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
Если НЕ СтрокаТабличнойЧасти.Товар = ПредопределенноеЗначение("Перечисление.ВидыНоменклатуры.Материал") Тогда
Сообщить(""+СтрокаТабличнойЧасти.Товар+" это не товар!");
//УдалитьСтроку(СтрокаТабличнойЧасти.НомерСтроки-1);
Объект.Товары.Удалить(СтрокаТабличнойЧасти.НомерСтроки-1);
Возврат;
КонецЕсли;
КонецПроцедуры
сообщение "это не товар" выскакивает сразу после нажатия кнопки "Добавить", даже не заходя в выбор элемента :)
+(7) в общем ошибка моя, вместо
ТоварыМатериалПриИзменении(Элемент)
я втулил
МатериалыПриИзменении(Элемент)
т.е. процедурка для всей таблички :)
спасибо
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший