logist @ Сегодня, 16:41
,
Предварительно создаем План Видов Характеристик: Справочник "Характеристики Номенклатуры"
Наименование свойства "Штрих"
Тип значений: строка
Во вкладке "Штрихкоды" номенклатуры на изменение Штрихкода вешаем код:
Процедура ШтрихкодыШтрихкодПриИзменении(Элемент)
ТекущаяСтрока = ЭлементыФормы.Штрихкоды.ТекущиеДанные;
НаименованиеХарактеристики = ТекущаяСтрока.ШтрихКод;
Характеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(НаименованиеХарактеристики,1,,Ссылка).Ссылка;
Если Характеристика.Пустая() Тогда
Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
Характеристика.Наименование = НаименованиеХарактеристики;
Характеристика.Владелец = Ссылка;
Характеристика.Записать();
Если НЕ НаименованиеХарактеристики = "" Тогда
СоздатьЗаписатьВСвойство(Характеристика.Ссылка,"Штрих",НаименованиеХарактеристики);
КонецЕсли;
ТекущаяСтрока.ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(НаименованиеХарактеристики,1,,Ссылка).Ссылка;
КонецЕсли;
ТекущаяСтрока.ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(НаименованиеХарактеристики,1,,Ссылка).Ссылка;
КонецПроцедуры
В том же модуле вешаем еще одну процедуру:
Процедура СоздатьЗаписатьВСвойство(ССылка,Свойство,ТекЗначение)
ТекущееСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(Свойство).Ссылка;
НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(Ссылка);
НаборЗаписей.Отбор.Объект.Использование = Истина;
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство.Ссылка);
НаборЗаписей.Прочитать();
//Сообщить("Количество записей Перед записью = " + НаборЗаписей.Количество());
Если НаборЗаписей.Количество() = 0 Тогда
НоваяЗапись = НаборЗаписей.Добавить();
Иначе
НоваяЗапись = НаборЗаписей[0];
КонецЕсли;
НоваяЗапись.Объект = Ссылка;
НоваяЗапись.Свойство = ТекущееСвойство.Ссылка;
НоваяЗапись.Значение = ТекЗначение;
НоваяЗапись.Период = ТекущаяДата();
Попытка
НаборЗаписей.Записать();
Исключение
КонецПопытки;
КонецПроцедуры
Данное изменение формы позволяет автоматически создавать Штрихкод с соответствующей Характеристикой. Всё много удобнее для простого пользователя, нежели тяжелый механизм ручного формирования.
ПО обеспечение должно работать на народ :-)