Имя: Пароль:
1C
1С v8
Замена вида номенклатуры обработкой.
, ,
0 EverGreenMouse
 
01.07.15
13:29
Написал обработину.

&НаСервере
Процедура КнопкаВыполнитьНажатиеНаСервере()
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ВидНоменклатурыИсх",ЭтотОбъект.Объект.ВидНоменклатурыИсх);
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Ссылка КАК Ссылка,
                   |    Номенклатура.ВидНоменклатуры КАК ВИдНоменклатуры
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.ВидНоменклатуры = &ВИдНоменклатурыИсх";
    Выгрузка = Запрос.Выполнить().Выгрузить();
    
    Для каждого Строка из Выгрузка цикл
        НоменклатураЗамены = Строка.Ссылка.ПолучитьОбъект();
        НоменклатураЗамены.ВидНоменклатуры = ЭтотОбъект.Объект.ВидНоменклатурыТреб;
        НоменклатураЗамены.Записать();
    КонецЦикла
КонецПроцедуры

&НаКлиенте
Процедура КнопкаВыполнитьНажатие(Команда)
    КнопкаВыполнитьНажатиеНаСервере();
КонецПроцедуры

При выполнении выдает ошибку

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (Записать)
        НоменклатураЗамены.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.Номенклатура.МодульОбъекта(156)}: Значение поля "Рабочее наименование" не уникально
                ВызватьИсключение ТекстИсключения;

Что-то я понять не могу, где косяк. Обработка пытается записать новый элемент справочника?
1 butterbean
 
01.07.15
13:30
Значение поля "Рабочее наименование" не уникально
2 vicof
 
01.07.15
13:31
(1) Кэп
3 EverGreenMouse
 
01.07.15
13:33
(1) да, об этом я не подумал как-то. Сейчас проверю.  /сарказм
4 Chikko
 
01.07.15
13:33
(0) ОбменДанными.Загрузка, думаю они так и были записаны в обход проверки.
5 EverGreenMouse
 
01.07.15
13:35
Да. УТ 11.1, если что
6 Chikko
 
01.07.15
13:44
(5) Так а в чем вопрос-то? Нет, новый записать не пытается.
для ут- дополнительныесвойства.вставить("рабочеенаименованиепроверено",истина)
7 Admin_Net_1C
 
01.07.15
13:46
(0) судя по всему, включено "Контроль уникальности рабочего наименования номенклатуры и характеристик" в Администрирование -> Настройки параметров системы -> Номенклатура
8 EverGreenMouse
 
01.07.15
13:47
(7) Чудненько. Вопрос в том, каким чудесным образом обработка влияет на РабочееНаименование. Не предусматривал такого.
9 EverGreenMouse
 
01.07.15
13:49
(7) Получается, что тот, кто до меня тут работал, вводил номенклатуру в обход проверки? как предполагал (4)
10 EverGreenMouse
 
01.07.15
13:56
(6) Помогло, спасибо. Заработало:) Посмотрю теперь, насколько это правильно)