Очень удобно добавлять единицу измерения через универсальную подбор и обработку с выполнением произвольного кода:
НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = "шт."; НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796"); НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = Объект.Ссылка; Попытка НайденнаяЕдиницаОбъект.Записать(); Исключение Сообщить("Не удалось записать единицу хранения остатков: " + ОписаниеОшибки(), СтатусСообщения.Важное); КонецПопытки; Попытка НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; Объект.ЕдиницаХраненияОстатков = НайденнаяЕдиница; Объект.ЕдиницаДляОтчетов = НайденнаяЕдиница; Объект.Записать(); Ф = Объект.Ссылка.ПолучитьФорму(); Ф.ЗаписатьВФорме(); Исключение КонецПопытки;
Проблема может возникнуть в том, что товар уже задействован в базе. Тогда можно просто закомментить строки с фразой “в товародвижении” типа:
//Если Не Услуга И Ссылка.ЕдиницаХраненияОстатков <> ЕдиницаХраненияОстатков И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки) Тогда
// ТекстСообщения = «Единица «»» + СокрЛП(Ссылка.ЕдиницаХраненияОстатков) + «»» является единицей хранения остатков для «»» + Наименование + «»»
// |и уже участвует в товародвижении.
// |Изменить эту единицу уже нельзя!»;
// ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ);
//КонецЕсли;