Имя: Пароль:
1C
1С v8
программное задание характеристик в упр формах
,
0 Валидатор
 
01.07.14
11:27
Пишу загрузку данных из екселя в 1ску. Сначала гружу все данные из екселя в ТЧ. Потом на основании этой ТЧ создаю номенклатуру. Это все ясно как деать, но у номенклатуры есть перечень характеристик, которые я создавал в режиме предприятия, например цвет. Как мне теперь при создании номенклатуры задать чтобы находилась эта характеристика цвет, и туда вставало мое значение?


Номен = Справочники.Номенклатура.СоздатьЭлемент();
            Номен.Наименование            = Наименование;
            Номен.НаименованиеПолное    = НаименованиеПолное;
            Номен.ЕдиницаИзмерения        = ЕдиницаИзмерения;
            Номен.ТипНоменклатуры        = ТипНоменклатуры;
            Номен.СтавкаНДС                = Объект.СтавкаНДС;
            Номен.ВидНоменклатуры        = ВидНом;
            Номен.Родитель                = Группа.Ссылка;
            Номен.Описание                = ТекстовоеОписание;
            Номен.Производитель            = Производитель;
            Номен.ВариантОформленияПродажи    = ВидНом.ВариантОформленияПродажи;
            Для каждого строка из Номен.ДополнительныеРеквизиты Цикл
            //как вот тут найти нужную мне характеристику?    
            КонецЦикла;
            Сообщить("Создана номенклатура: "+Наименование);
            Попытка
                Номен.Записать();
            Исключение
                Сообщить(ОписаниеОшибки());
            КонецПопытки;
1 Валидатор
 
01.07.14
11:28
есть Строка.свойство и Строка.Значение но ни у одной ни у другой нет метода найти по наименованию
2 dj_serega
 
01.07.14
11:38
(0) я так понял это УТ?
В Строка.Свойство нужно подставить найденное значение.
Посмотри на Тип реквизита.
3 Валидатор
 
01.07.14
11:40
(2), да УТ 11
4 Валидатор
 
01.07.14
11:42
(2) ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
так а как его туда подставить?
5 Валидатор
 
01.07.14
11:45
Для каждого строка из Номен.ДополнительныеРеквизиты Цикл
            //как вот тут найти нужную мне характеристику?    

            КонецЦикла;
и почему сюда отладчик не заходит? в этот цикл?
6 Валидатор
 
01.07.14
11:46
ЦветНоменкл =  Номен.ДополнительныеРеквизиты.Найти(Цвет);
Просто так что ли делать? не понимаб с этими характеристиками
7 samozvanec
 
01.07.14
11:55
доп характеристики пишутся либо в тч объекта, либо в РС ЗначенияСвойствОбъектов. одно из них завется характеристиками, другео свойствами - кто есть кто, не помню. соответственно, тебе надо куда-то твою характеристику записать. и само свойство, и значение.
8 samozvanec
 
01.07.14
11:55
(7) "завется"... мда
9 Валидатор
 
01.07.14
12:02
(7) нет в Ут такого регистра сведений
10 samozvanec
 
01.07.14
12:17
(9) вах... куда катится мир... ут11 у меня нет, ищи сам. раньше было так.
11 dj_serega
 
01.07.14
12:20
(5) Потому что у тебя нет этих доп реквизитов. Это ТЧ объекта. А и оно пустое.
Открой в отладке созданную номенклатуру и посмотри что там у тебя хранится.
12 Biker
 
01.07.14
12:28
ТекХарактеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(Цвет,,,ТекНоменклатура.Ссылка);
13 Валидатор
 
01.07.14
12:56
ВЫБРАТЬ
    НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка КАК Группа,
    НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Свойство.Наименование КАК СвойствоРеквизита
ИЗ
    Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеСведения
        ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
            ПО (НоменклатураДополнительныеРеквизиты.Ссылка = ДополнительныеРеквизитыИСведения.Ссылка)
        ПО НаборыДополнительныхРеквизитовИСведенийДополнительныеСведения.Свойство = ДополнительныеРеквизитыИСведения.Ссылка,
    Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты



вот запрос выдает мне в итоге характеристики всех групп номенклатуры которые у меня есть. То есть я получаю этот запрос, потом обхожу его в поисках например цвета, и когда эту характеристику нахожу, как мне ее записать в справочник?
14 Валидатор
 
01.07.14
13:00
(12) в таком случае если у меня номенклатура создается, мне ее нужно наименование заполнить, ед изм, ставку ндс, потом записать, потом заполнить характеристики и опять записать?
15 Валидатор
 
01.07.14
13:19
ап
16 Biker
 
01.07.14
13:40
(14) а ты как хотел ? это кста зависит какие характеристики ты сделал в виде номенклатуры общие или индивидуальные
17 Валидатор
 
01.07.14
13:48
(16) для УТ такой вариант мне кажется не прокатит
18 Biker
 
01.07.14
13:51
Что не прокатит? мы точно по ут11 говорим ? это стандартный функционал
19 Валидатор
 
01.07.14
13:54
(18) у меня в режиме предприятия создано 2 характеристики: цвет и блок. Теперь когда я гружу данные из моей Табличной чатси обработки, у меня создается номенклатура, и этой строкой она не находится:
ТекХарактеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(Цвет,,,ТекНоменклатура.Ссылка);

А если вдруг найдется, то как мне ее потом присобачить к текущей номенклатуре?
20 Валидатор
 
01.07.14
14:00
(18) сделал так:
Номен = Справочники.Номенклатура.СоздатьЭлемент();
            Номен.Наименование            = Наименование;
            Номен.НаименованиеПолное    = НаименованиеПолное;
            Номен.ЕдиницаИзмерения        = ЕдиницаИзмерения;
            Номен.ТипНоменклатуры        = ТипНоменклатуры;
            Номен.СтавкаНДС                = Объект.СтавкаНДС;
            Номен.ВидНоменклатуры        = Объект.ВидНоменклатуры;
            Номен.Родитель                = ГруппаНоменклатуры;
            Номен.Производитель            = Производитель;
            Номен.ВариантОформленияПродажи    = Объект.ВидНоменклатуры.ВариантОформленияПродажи;
            Попытка
                Номен.Записать();
            Исключение
                Сообщить(ОписаниеОшибки());
            КонецПопытки;

            ТекХарактеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("Цвет",,,Номен.Ссылка);        

Но характеристику цвет он не находит, поэтому и не прокатывает
21 Biker
 
01.07.14
14:03
(20) Крута,чо. А посмотреть консолью в справочник ХарактеристикиНоменклатуры религия не позволяет?, поймешь что у тебя там лежит.
22 Валидатор
 
01.07.14
15:52
ВЫБРАТЬ
    СвойстваОбъектов.Ссылка,
    СвойстваОбъектов.Наименование,
    СвойстваОбъектов.ПометкаУдаления
    
ИЗ
    ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК СвойстваОбъектов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО (ДополнительныеСведения.Объект = &ОбъектОтбораЗначений)

этим запросом я получаю все доп реквизиты в моей конфе. Как мне потом запихнуть при создании номенклатуры цвет в цвет?