Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: добавление новой группы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
vihuhol
Помогите разобраться, пожалуйста.
Есть вот такой кусок начальной внешней обработки для создания групп 1-го уровня номенклатуры из excel-файла:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Путь = ЭлементыФормы.ИмяФайла.Значение;
    Док = ПолучитьCOMОбъект(Путь);
    КоличествоСтраниц = 1;
    Для ТекНомер  = 1 По КоличествоСтраниц Цикл
        Артикул = Док.Sheets(ТекНомер).Cells(2,1).Value;
        Название = Док.Sheets(ТекНомер).Cells(2,2).Value;
        счСтроки = 3;
        Пока TrimAll(Название) <> "" Цикл    // можно использовать другой признак
            Артикул = Док.Sheets(ТекНомер).Cells(СчСтроки,1).Value;
            Название  = Док.Sheets(ТекНомер).Cells(СчСтроки,2).Value;
            счСтроки = счСтроки + 1;

            НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
            НоваяГруппа.Наименование = Строка(Название);
            НоваяГруппа.Записать();

        КонецЦикла;
    КонецЦикла;    
    Док.Application.Quit();
КонецПроцедуры

При попытке выполнить "НоваяГруппа.Записать();" 1С Ругается:
Цитата
Перед записью элемента - Номенклатура:Группа 2 обнаружены ошибки :
Реквизит "Код" не заполнен !

для поля Код(стандартное встроенное поле) установлены галочки "Контроль уникальности" и "Автонумерация". Если прописывать Код руками в коде - то тогда работает. Но разве это поле не должно заполняться автоматически платформой? Как быть?
Помогите разобраться, а то сегодня целый день промучался icon_cuss.gif и никакого результата 19000000.gif
World1С
        Пока TrimAll(Название) <> "" Цикл    // можно использовать другой признак 
           // код = Док.Sheets(ТекНомер).Cells(СчСтроки,1).Value;
            Артикул = Док.Sheets(ТекНомер).Cells(СчСтроки,1).Value;
            Название  = Док.Sheets(ТекНомер).Cells(СчСтроки,2).Value;
            счСтроки = счСтроки + 1;

            НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
// вот так
// НоваяГруппа.Код = Строка(код);
    НоваяГруппа.Код = Строка(Артикул);
//*****************************
            НоваяГруппа.Наименование = Строка(Название);
            НоваяГруппа.Записать();

Если правильно понимаю то артикул имеется в виду код...
Вот и все.
vihuhol
Да это Альфа-авто - что-то там наворотили при записи номенклатуры.
ПОмогло только пот такое:
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
НоваяГруппа.УстановитьНовыйКод();
НоваяГруппа.Наименование = Строка(Название);
НоваяГруппа.Записать();


Без УстановитьНовыйКод(); никак не зотело работать, в каком-то из обработчиков что-то видимо проверяется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.