Имя: Пароль:
1C
 
Нужно ли определять типы для процедуры ЗаписатьСвойстваУОбъекта
0 MaryanaR
 
27.01.25
12:47
Всем доброго дня, подгружаю в КА 2.5. свойства Номенклатуры с внешних источников.
С типом строка все понятно, оно записывается верно. Но вот доп реквизиты номенклатуры с типа значений Число, Булево и ДопЗначение есть проблемы.

Как я поняла, мне необходимо создать 4 таблицы значений, с разным описанием типов у колонки "Значение", чтобы процедура  "ЗаписатьСвойстваУОбъекта"
Отрабатывала корректно.

Или можно в 1 таблицу записать в колонке Значения все типы и процедура Записи свойств сама определит тип?
1 d4rkmesa
 
27.01.25
13:00
Там без разницы абсолютно, тупо присваивается значение, тип не приводится и не проверяется через ТипЗнч. Насчет "есть проблемы", ну они могут быть, только если данные значения не приведены предварительно к нужным типам.
2 MaryanaR
 
27.01.25
13:15
(1) Не поняла. т.е Можно в одной таблице указать все нужные типы и присваивать значения с определенным типом сразу?
3 MaryanaR
 
27.01.25
13:20
С внешних источников все идет с типом строка.
Если я знаю какой тип значения у свойства, можно ли как то привести строку к этому типу без лишней мороки?
4 Волшебник
 
27.01.25
13:29
(3) без лишней мороки нельзя
5 MaryanaR
 
27.01.25
13:31
Благодарю за помощь
6 d4rkmesa
 
27.01.25
14:14
(2) Там нет типов, нужно класть в таблицу уже приведенные значения.

(3) Если тип простой, то можно попробовать Свойство.ТипЗначения.ПривестиЗначение(...) , где Свойство - ссылка на ПВХ ДополнительныеРеквизитыИСведения.
Строку в число дополнительно, если предыдущее будет плохо работать, можно преобразовывать через СтроковыеФункцииКлиентСервер.СтрокаВЧисло(...).
Значение из справочника ЗначенияСвойствОбъектов придется искать тупо по НайтиПоНаименованию(...), скорее всего.

ps: Да, это нужно будет делать для каждого значения, которое помещается в таблицу (в колонку "Значение"). Если обмен через json/xml, там обычно значения десериализуются в нужный тип автоматически, но судя по всему, это не ваш случай.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс