"Элементы создаются, документ поступление создается, но вот установка цен номенклатуры ругается: <br><br>{Форма.Форма(209)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Рознизная : хххххххх : : 06.10.2012 0:00:00 (Регистр сведений: Цены номенклатуры; Номер строки: 7) <br> ДокУстановкаЦенНоменклатуры.Записать(РежимЗаписиДокумента.Проведение); <br>О чем говорит эта ошибка? номенклатура в экселе встречается несколько раз, и оно не может записаться в регистр сведений, так? <br>Скажите пожалуйста в чем проблема?<br> <br><pre>Процедура ЗагрузкаИзExcel() Экзель = Новый COMОбъект("Excel.Application"); Книга = Экзель.Application.Workbooks.Open(Путь); ТекЛист = Книга.WorkSheets(1); КолСтрок = ТекЛист.Cells(1,1).SpecialCells(11).Row; КолКолонок = ТекЛист.Cells(1,1).SpecialCells(11).Column; КоличествоСтраниц = 1; Для ТекНомер = 1 По КоличествоСтраниц Цикл Артикул = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Арт).Value); Наименование = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Наим).Value); Если (ШК = 0) или (ШК > КолКолонок) Тогда Сообщить("ШтрихКод отсутсвует в данной номенклатуре!"); Иначе ШтрихКод = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,ШК).Value); КонецЕсли; Коллекция = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Коллекция1).Value); Цвет = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Цвет1).Value); Размер = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Размер1).Value); Количество = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Колич).Value); Цена = СокрЛП(Книга.Sheets(ТекНомер).Cells(1,Цен).Value); Сообщить("Внешняя накладная прочитана, начилась запись элементов справочника Номенклатура!"); счСтроки = НачСтрока; //// Заполняем шапку Документа Поступление товаров и услуг ////////////////////////////////////// НовыйДокПоступление = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); НовыйДокПоступление.Дата = Дата; НовыйДокПоступление.ВидПоступления = Перечисления.ВидыПоступленияТоваров.НаСклад; НовыйДокПоступление.Организация = Организация; НовыйДокПоступление.Контрагент = Контрагент; НовыйДокПоступление.ДоговорКонтрагента = Дог; НовыйДокПоступление.ВалютаДокумента = ВалютаДок; НовыйДокПоступление.КурсВзаиморасчетов = 1; НовыйДокПоступление.КратностьВзаиморасчетов = 1; НовыйДокПоступление.СкладОрдер = Склад; НовыйДокПоступление.ОтражатьВУправленческомУчете = Истина; НовыйДокПоступление.ОтражатьВБухгалтерскомУчете = Истина; НовыйДокПоступление.ОтражатьВНалоговомУчете = Ложь; //// Создаю док УстановкаЦенНоменклатуры /////////////////////////////////////////////////////// ДокУстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); ДокУстановкаЦенНоменклатуры.Дата = Дата; ДокУстановкаЦенНоменклатуры.ТипыЦен.Очистить(); НовСтрТипыЦен = ДокУстановкаЦенНоменклатуры.ТипыЦен.Добавить(); ТипЦены = ТипЦен; // Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"); НовСтрТипыЦен.ТипЦен = ТипЦены; Для ш = НачСтрока по КолСтрок Цикл Артикул = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Арт).Value); Наименование = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Наим).Value); Если (ШтрихКод = 0) Тогда Сообщить("ШтрихКод отсутсвует в данной номенклатуре!"); Иначе ШтрихКод = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,ШК).Value); КонецЕсли; //ШтрихКод = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,ШК).Value); Коллекция = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Коллекция1).Value); Цвет = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Цвет1).Value); Размер = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Размер1).Value); Количество = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Колич).Value); Цена = СокрЛП(Книга.Sheets(ТекНомер).Cells(СчСтроки,Цен).Value); счСтроки = счСтроки + 1; Если (Наименование = """") или (Наименование = Неопределено) или (Наименование = null) Тогда Продолжить; КонецЕсли; Запись = Истина; СпрНоменклатура = Справочники.Номенклатура; Если Справочники.Номенклатура.НайтиПоНаименованию(Наименование + " " + Цвет + " " + Размер).Пустая() Тогда НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент(); Родитель = ГрпНом; НовыйЭлемент.Родитель = Родитель; НовыйЭлемент.Артикул = Артикул; НовыйЭлемент.Коллекция = Коллекция; НовыйЭлемент.Цвет = Цвет; НовыйЭлемент.Размер = Размер; НовыйЭлемент.Наименование = Наименование + " " + Цвет + " " + Размер; НовыйЭлемент.НаименованиеПолное = Наименование + " " + Цвет + " " + Размер; НовыйЭлемент.ВидНоменклатуры = ВидНомен; НовыйЭлемент.БазоваяЕдиницаИзмерения = ЕдИзмер; НовыйЭлемент.Записать(); НовыйЕдИзмер = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НовыйЕдИзмер.ЕдиницаПоКлассификатору = ЕдИзмер; НовыйЕдИзмер.Наименование = ЕдИзмер.Наименование; НовыйЕдИзмер.Коэффициент = 1; НовыйЕдИзмер.Владелец = НовыйЭлемент.Ссылка; НовыйЕдИзмер.Записать(); НовыйЭлемент.ЕдиницаХраненияОстатков = НовыйЕдИзмер.Ссылка; НовыйЭлемент.СтавкаНДС = СтавкаНДС; //НовыйЭлемент.ВестиУчетПоХарактеристикам = Истина; НовыйЭлемент.Записать(); //Запись РегистраСведений Штрихкоды ЗаписьШК = Истина; РегСведШК = РегистрыСведений.Штрихкоды; ВыборкаРегСведШК = РегистрыСведений.Штрихкоды.Выбрать(); Пока ВыборкаРегСведШК.Следующий() Цикл Если ВыборкаРегСведШК.Штрихкод = ШтрихКод Тогда ЗаписьШК = Ложь; КонецЕсли; КонецЦикла; ЗаписьВРегистрСвед = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); ЗаписьВРегистрСвед.Владелец = НовыйЭлемент.Ссылка; ЗаписьВРегистрСвед.ЕдиницаИзмерения = НовыйЭлемент.ЕдиницаХраненияОстатков; ЗаписьВРегистрСвед.Штрихкод = ШтрихКод; ЗаписьВРегистрСвед.ТипШтрихкода = ЭлементыФормы.ТипШтрихкода.Значение;//ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; ЗаписьВРегистрСвед.Качество = Справочники.Качество.Новый; Если (ШК = 0) или (ШК > КолКолонок) Тогда Сообщить("ШтрихКод не будет добавлен к данному элементу: " + Наименование + " " + Цвет + " " + Размер); Иначе Попытка ЗаписьВРегистрСвед.Записать(); Исключение Сообщить("Номенклатура с таким штрихкодом существует!"); КонецПопытки; КонецЕсли; Иначе НовыйЭлемент = Справочники.Номенклатура.НайтиПоНаименованию(Наименование + " " + Цвет + " " + Размер); КонецЕсли; //Создадим Док Поступления товаров и услуг //////////////////////////////////////////////////// ДокПоступление = НовыйДокПоступление.Товары.Добавить(); ДокПоступление.Номенклатура = НовыйЭлемент.Ссылка; ДокПоступление.Количество = Количество; ДокПоступление.Цена = Цена; ДокПоступление.Склад = Склад; ДокПоступление.ЕдиницаИзмерения = НовыйЭлемент.ЕдиницаХраненияОстатков; ДокПоступление.Коэффициент = НовыйЭлемент.ЕдиницаХраненияОстатков.Коэффициент; ДокПоступление.СтавкаНДС = СтавкаНДС; ДокПоступление.Сумма = Количество * Цена; Сообщить(НовыйЭлемент.Наименование + " " + ШтрихКод + " : "+"Элемент записан"); //Запишем товар и цену в документ установки цен тчТовары = ДокУстановкаЦенНоменклатуры["Товары"]; СтрокаТаблицаТовары = тчТовары.Добавить(); СтрокаТаблицаТовары["Номенклатура"] = НовыйЭлемент.Ссылка; СтрокаТаблицаТовары["Валюта"] = ВалютаДок; СтрокаТаблицаТовары["ЕдиницаИзмерения"] = НовыйЭлемент.ЕдиницаХраненияОстатков; СтрокаТаблицаТовары["ТипЦен"] = ТипЦены; СтрокаТаблицаТовары["Цена"] = Цена; КонецЦикла; Попытка НовыйДокПоступление.Записать(РежимЗаписиДокумента.Проведение); ДокУстановкаЦенНоменклатуры.Записать(РежимЗаписиДокумента.Проведение); Исключение Сообщить("НЕ ЗАПИСАН"); КонецПопытки; КонецЦикла; Экзель.Quit(); Сообщить("Загрузка накладной успешно завершена!");КонецПроцедуры</pre><br><br><br><pre> </pre>"