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