Имя: Пароль:
1C
 
Заведение свойств размер и цвет у товаров в УПФ 1.6
,
0 falselight
 
26.05.20
07:42
В базе УНФ 1.6, в категориях товара
Свойства Цвет и Размер в новых категориях заведены неправильно.
Надо объединить свойства Цвет и Размер в категориях, в качестве основного элемента -
выбрать элементы в которых указано имя "Цвет_Основной", "Размер_Основной".
Также при заведении новых характеристик сделать проверку на повторение свойств
и при этом делать создавать общее свойство.

Подскажите пожалуйста, свойства и цвет эти вводятся в свойства и значения, характеристик номенклатуры?
1 Winnie Buh
 
26.05.20
08:57
какой-то набор слов
категория <> характеристика <> свойство
2 hhhh
 
26.05.20
10:20
(0) что такое УПФ?
3 falselight
 
26.05.20
16:20
(2)

Управление нашей фирмой, редакция 1.6 (1.6.13.60)

Есть свойства для категорий и для характеристик. Общие. Цвет и Размер. Но для некоторых категорий были введены те же свойства, но дублирующие уже имеющиеся.
Мне нужно сейчас эти дубли, переписать на общие, основные свойства.

Только взялся, как то так с наскока не дается. С характеристиками ещё был знаком. Но вот с категориями как то не помню что встречался.

Буду сейчас разбираться.
4 falselight
 
27.05.20
05:54
Подсчкажите пожалуйста, каким образом ПланВидовХарактеристик.ДополнительныеРеквизитыИсведения
связан со справочником КатегорииНоменклатуры?
5 falselight
 
27.05.20
06:17
Где нужно выявить, что у категорий номенклатуры. задан не верный размер? Нужно тот у которого имя Размер_Основной - Это значение плана видов характеристик
ДополнительныеРеквизитыИСведения . Подскажите пожалуйста.
6 Ёпрст
 
27.05.20
09:42
(5) посмотреть запросом, выполнить в консоле, там же изменить на нужный
7 falselight
 
27.05.20
10:13
(6) Обработку делаю. как это в консоле изменить на нужный?
8 Ненавижу 1С
 
гуру
27.05.20
10:39
так заведены как что: доп.реквизиты, доп. свойства или характеристики?
9 falselight
 
27.05.20
11:59
Выбираю дополнительные характеристики номенклатуры
как сейчас в объекте полученном по ссылке подменить свойство
на

НужноеСвойствоЦвет ???

&НаСервере
Процедура ВыполнитьКорректировкуНаСервере()
    НужноеСвойствоЦвет   = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Цвет_Основной");
    //
    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка                КАК ХарактеристикаСсылка,
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка.Владелец       КАК ВладелецНоменклатура,
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Ссылка       КАК СвойствоСсылка,
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Наименование КАК СвойствоНаименование,
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Заголовок    КАК СвойствоЗаголовок,
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Имя          КАК СвойствоИмя,
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение              КАК Значение
        |ИЗ
        |    Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
        |ГДЕ
        |    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Заголовок = ""Цвет""
        |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Имя = """"";
    Рез = Запрос.Выполнить();
    Если Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        Пока Выборка.Следующий() Цикл
            Если СтрНайти(Выборка.СвойствоИмя, "Цвет2") <> 0 Тогда
                Продолжить;
            КонецЕсли;
            Если СтрНайти(Выборка.СвойствоИмя, "Цвет3") <> 0 Тогда
                Продолжить;
            КонецЕсли;
            Если СтрНайти(Выборка.СвойствоИмя, "Цвет4") <> 0 Тогда
                Продолжить;
            КонецЕсли;
            //
            ХарактеристикаОбъект = Выборка.ХарактеристикаСсылка.ПолучитьОбъект();
            ХарактеристикаОбъект
        КонецЦикла;
    КонецЕсли;
10 falselight
 
27.05.20
12:00
(9+) То есть я получил объект, у которого в табличной части есть строка у которой мне нужно подменить свойство?
11 falselight
 
27.05.20
12:40
Та отработает ли? На сколько оптимальный код?

            //
            ХарактеристикаОбъект = Выборка.ХарактеристикаСсылка.ПолучитьОбъект();
            Для Каждого СтрДопР Из ХарактеристикаОбъект.ДополнительныеРеквизиты Цикл
                Если СтрДопР.Свойство.Заголовок = "Цвет" Тогда
                    СтрДопР.Свойство = НужноеСвойствоЦвет;
                КонецЕсли;
            КонецЦикла;
            ХарактеристикаОбъект.Записать();
            Сообщить("У характеристики " + Выборка.ХарактеристикаНаименование + ", свойство " + Выборка.СвойствоНаименование + " изменено на " + НужноеСвойствоЦвет);
        КонецЦикла;
12 falselight
 
27.05.20
15:12
Gjlcrf;bnt gj;fkeqcnf gj fkujhbnve
13 falselight
 
27.05.20
15:13
Подскажите пожалуйста по алгоритму
14 falselight
 
28.05.20
04:49
Имею выборку.
И заполненную ею табличную часть обработки.
Нужно в характеристике что есть в тч, изменить реквизит её табличной части.
Оптимальный ли такой код ?????

    Для Каждого СтрХНЦвета Из ХарактеристикиНоменклатурыЦвета Цикл
        Если СтрНайти(СтрХНЦвета.СвойствоИмя, "Цвет2") <> 0 Тогда
            Продолжить;
        КонецЕсли;
        Если СтрНайти(СтрХНЦвета.СвойствоИмя, "Цвет3") <> 0 Тогда
            Продолжить;
        КонецЕсли;
        Если СтрНайти(СтрХНЦвета.СвойствоИмя, "Цвет4") <> 0 Тогда
            Продолжить;
        КонецЕсли;
        //
        ХарактеристикаОбъект = СтрХНЦвета.Характеристика.ПолучитьОбъект();
        Для Каждого СтрДопР Из ХарактеристикаОбъект.ДополнительныеРеквизиты Цикл
            Если СтрДопР.Свойство.Заголовок = "Цвет" Тогда
                СтрДопР.Свойство = НужноеСвойствоЦвет;
            КонецЕсли;
        КонецЦикла;
        ХарактеристикаОбъект.Записать();
        Сообщить("У характеристики " + СтрХНЦвета.Характеристика + ", свойство " + СтрХНЦвета.Свойство + " изменено на " + НужноеСвойствоЦвет.Наименование);
        //
        СвойствоОбъект = СтрХНЦвета.Свойство.ПолучитьОбъект();
        СвойствоОбъект.УстановитьПометкуУдаления(Истина);
        Сообщить("Свойство " + СтрХНЦвета.Свойство + " помечено на удаление.");
        //
    КонецЦикла;
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.