Имя: Пароль:
1C
1С v8
Конвертация данных. Как заполнить реквизит непредопределенным значением?
0 distorter
 
22.10.15
04:25
В базе-приемнике (Розница 8) справочник Номенклатура имеет реквизит ВидНоменклатуры (Тип - Справочник.ВидыНоменклатуры), который нечем заполнить из источника.
В справочнике ВидыНоменклатуры создан один-единственный элемент (естественно, не предопределенный), который надо подставлять в одноименный реквизит справочника Номенклатура.

Вопрос - как сделать это красиво, не усложняя ПВД?

Примечание: обработчики загрузки на данный момент не задействованы, хотелось бы все подготовить на этапе выгрузки.
1 mehfk
 
22.10.15
04:30
Значение = "ИмяПредопределенногоЗначения";
2 mehfk
 
22.10.15
04:31
Тьфу, не так

Значение = "КодСправочникаВПриемнике";
3 Рэйв
 
22.10.15
05:40
в ПослеЗагрузки

Запрос=Новый Запрос;
Запрос.Текст="Выбрать первые 1  Спр.Ссылка Из Справочник.ВидыНоменклатуры КАК Спр";
Выборка=Запрос.Выполнить().Выбрать();
Выборка.Следующий()

Объект.Видноменклатуры=Выборка.ссылка;
4 Альбатрос
 
22.10.15
05:41
(2) А там не структуру ли с описанными полями поиска подставлять надо?
5 Рэйв
 
22.10.15
05:42
Можно еще завернуть в
Если НЕ ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда
   ....
КонецЕсли;

чтобы в пустую запрос не гоняло
6 distorter
 
22.10.15
12:19
(3)(5) Спасибо, работает!

(2) С кодом что-то делать потом надо.
7 mehfk
 
22.10.15
12:42
(6) Что?
8 ks_83
 
22.10.15
12:47
По кошерному делается ПКО только с теми ПКС, по которым осуществляется поиск нужного элемента. У ПКО ставится галка "Не сохдавать если не не найден" на всякий случай. А в (3) это быдлокодерстово и гов.окод. Если уж делаешь заполнение одним и тем же элементом после загрузки, то получай его из параметров, а не ищи каждый раз запросом.
9 mehfk
 
22.10.15
12:51
10 GANR
 
22.10.15
13:05
(0) >Как заполнить реквизит непредопределенным значением?
Вообще легко! В правиле конвертации свойств на стороне источника Значение = ТвойПредопределенный, а в правиле конвертации значений указываешь какой предопределенный источника какому предопределенному приемника соответствует
11 GANR
 
05.11.15
12:58
+(10) Или в событиях на стороне приемника заполняешь реквизит чем тебе надо. Подробности - справка к КД.
Программист всегда исправляет последнюю ошибку.