#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ПроверитьУникальность(Отказ) Экспорт
Если Отказ
Или ПометкаУдаления Тогда
Возврат;
КонецЕсли;
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Дата(1, 1, 1));
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| КлассификаторТНВЭД.Ссылка КАК Ссылка
|ИЗ
| Справочник.КлассификаторТНВЭД КАК КлассификаторТНВЭД
|ГДЕ
| КлассификаторТНВЭД.Код = &Код
| И КлассификаторТНВЭД.Ссылка <> &Ссылка
| И НЕ КлассификаторТНВЭД.ПометкаУдаления
| И (НЕ &ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
| ИЛИ КлассификаторТНВЭД.ПрослеживаемыйТовар = &ПрослеживаемыйТовар)";
Запрос.УстановитьПараметр("Код", Код);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ПрослеживаемыйТовар", ПрослеживаемыйТовар);
Запрос.УстановитьПараметр("ИспользоватьУчетПрослеживаемыхИмпортныхТоваров",
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
Отказ = Истина;
Если ИспользоватьУчетПрослеживаемыхИмпортныхТоваров Тогда
ТекстИсключения = НСтр("ru='Значения полей ""Код"" и ""Прослеживаемый товар"" не уникальны'");
Иначе
ТекстИсключения = НСтр("ru='Значение ""%1"" поля ""Код"" не уникально'");
ТекстИсключения = СтрШаблон(ТекстИсключения, Код);
КонецЕсли;
ВызватьИсключение ТекстИсключения;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
РеквизитНаименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Наименование");
Если РеквизитНаименование = "сырьевой товар"
Или РеквизитНаименование = "несырьевой товар" Тогда
ТекстСообщения = НСтр("ru='Служебные элементы с указанием признака сырьевого товара созданы при обновлении информационной базы. Их редактирование запрещено.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Наименование", , Отказ);
КонецЕсли;
ПроверитьУникальность(Отказ);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив();
Если ЭлементОбработан Тогда
МассивНепроверяемыхРеквизитов.Добавить("ЕдиницаИзмерения");
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
КонецПроцедуры
#КонецОбласти
#КонецЕсли