![]() |
![]() |
![]() |
|
как программно добавить характеристику номенклатуры при... | ☑ | ||
---|---|---|---|---|
0
Непоседа
23.11.04
✎
11:58
|
...загрузке элемента номенклатуры из файла?
подскажите, где можно посмотреть? |
|||
1
Rovan
гуру
23.11.04
✎
12:03
|
(0) Речь идет о заполнении ПВХ СвойстваОбъектов ?
|
|||
2
Непоседа
23.11.04
✎
12:05
|
да. об этом
|
|||
3
Rovan
гуру
23.11.04
✎
12:20
|
(2) У тебя типовая конфа ? Вот например у меня УТ, там есть процедура
Процедура ПроверитьДобавитьНовоеСвойство(Свойство, ТабличноеПоле) Экспорт |
|||
4
Непоседа
23.11.04
✎
12:25
|
у меня типовая УПП, но наверное и тут есть что-то такое... сейчас посмотрю... спасибо :-)
|
|||
5
Непоседа
23.11.04
✎
12:53
|
нет, это не совсем то, эта процедура, цитирую, проверяет, должно ли новое свойство попасть в табличную часть обработки,
если да - добавляет свойство и активизирует соответствующую строку в табличном поле. она уже созданное свойсво при необходимости добавляет в таблицу... у меня есть файл dbf, в котором мне поставщик передает приходную накладную... так вот я проверяю есть ли у меня переданная номенклатура и если ее еще не было, то надо создавать... при этом в отдельных полях файла для каждой номенклатуры передаются рост, размер, цвет, цвет рисунка - это характеристика номенклатуры... как мне это добавить, чтобы потом в подчиненном справочнике "Характеристики номенклатуры" отобразилось добавленная характеристика??? знаю, что должно быть не сложно.. но сижу туплю :-( |
|||
6
Rovan
гуру
23.11.04
✎
12:57
|
в УПП точно также - при записи элемента номенклатуры
Процедура ОбработкаЗаписиНовогоОбъекта(Объект, Источник) Если ТипЗнч(Объект) = Тип("ПланВидовХарактеристикОбъект.СвойстваОбъектов") Тогда ОбработкаОбъектЗначенияСвойств.ПроверитьДобавитьНовоеСвойство(Объект.Ссылка, ЭлементыФормы.СвойстваИЗначения); КонецЕсли; Если ТипЗнч(Объект) = Тип("СправочникОбъект.КатегорииОбъектов") Тогда ОбработкаОбъектКатегорииОбъекта.ПроверитьДобавитьНовуюКатегорию(Объект.Ссылка, ЭлементыФормы.Категории); КонецЕсли; КонецПроцедуры |
|||
7
Непоседа
23.11.04
✎
13:17
|
(6)то, что то привел, действительно есть...но (чуствую себя полнейшей тупицей :-( и может чуства меня не обманывают) у меня нет ЭлементовФормы, ввиду отсутствия формы и нет соответственно табличной части с введенными значениями...
в общем что-то я совсем , окончательно и бесповоротно запуталась :-((( |
|||
8
Непоседа
24.11.04
✎
11:33
|
в общем, все действительно оказалось предельно просто... наверное просто был вчера не мой день.
со стандартными обработками и процедурами я пока до конца не разобралась. но записывать нужные мне значения и создавать характеристику номенклатуры при загрузке данных из файла я научилась...я думаю, что в очередной раз "изобрела велосипед", но хочу выложить кусочек кода, может кому и пригодится, наверняка ему можно придать и более божеский вид, но для меня в данной ситуации важна была предельная прозрачночность и читаемость кода. Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент(); Характеристика.Владелец = Товар.Ссылка; Размер = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Размер"); Рост = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Рост"); Цвет = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет",истина); ЗначениеРазмер = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(СокрЛП(ФайлОбмена.RAZM),Истина,,Размер); Если ЗначениеРазмер.Пустая() Тогда НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); НовоеЗначение.Владелец = Размер.Ссылка; НовоеЗначение.Наименование = ФайлОбмена.RAZM; НовоеЗначение.Записать(); ЗначениеРазмер = НовоеЗначение.Ссылка; КонецЕсли; ЗначениеРост = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(СокрЛП(ФайлОбмена.ROST),Истина,,Рост); Если ЗначениеРост.Пустая() Тогда НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); НовоеЗначение.Владелец = Рост.Ссылка; НовоеЗначение.Наименование = ФайлОбмена.ROST; НовоеЗначение.Записать(); ЗначениеРост = НовоеЗначение.Ссылка; КонецЕсли; ЗначениеЦвет = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(СокрЛП(ФайлОбмена.COL),Истина,,Цвет); Если ЗначениеЦвет.Пустая() Тогда НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); НовоеЗначение.Владелец = Цвет.Ссылка; НовоеЗначение.Наименование = ФайлОбмена.COL; НовоеЗначение.Записать(); ЗначениеРазмер = НовоеЗначение.Ссылка; КонецЕсли; КоллекцияЗначений = Новый СписокЗначений(); КоллекцияЗначений.Добавить(ЗначениеРазмер); КоллекцияЗначений.Добавить(ЗначениеРост); КоллекцияЗначений.Добавить(ЗначениеЦвет); Наим = Характеристика.СформироватьНаименование(КоллекцияЗначений); Характеристика.Наименование = Наим; Характеристика.Записать(); ТаблицаДляЗаписиВРегистр = Новый ТаблицаЗначений; ТаблицаДляЗаписиВРегистр.Колонки.Добавить("Свойство"); ТаблицаДляЗаписиВРегистр.Колонки.Добавить("Значение"); НоваяСтрока = ТаблицаДляЗаписиВРегистр.Добавить(); НоваяСтрока.Свойство = Размер; НоваяСтрока.Значение = ЗначениеРазмер; НоваяСтрока = ТаблицаДляЗаписиВРегистр.Добавить(); НоваяСтрока.Свойство = Рост; НоваяСтрока.Значение = ЗначениеРост; НоваяСтрока = ТаблицаДляЗаписиВРегистр.Добавить(); НоваяСтрока.Свойство = Цвет; НоваяСтрока.Значение = ЗначениеЦвет; ЗаписьЗначенияВРегистр=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); Для каждого Строка Из ТаблицаДляЗаписиВРегистр Цикл Если НЕ ЗначениеНеЗаполнено(Строка.Значение) Тогда Запись = НаборЗаписейЗначенияСвойств.Добавить(); Запись.Объект = Характеристика.Ссылка; Запись.Свойство = Строка.Свойство; Запись.Значение = Строка.Значение; КонецЕсли; КонецЦикла; НаборЗаписейЗначенияСвойств.Записать(); |
|||
9
Atma
24.11.04
✎
11:59
|
Ничего так велосипед получился, почти мотоцикл. Спасибо за код.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |