|
v7: обработка Импорта с Экзеля | ☑ | ||
---|---|---|---|---|
0
ZADR
26.12.13
✎
10:53
|
Здравствуйте, проблема вот в чем, в коде есть строка "ТМЦ.Записать();" и 1ска почему то видит там ошибку. Если убираю эту строку то создается документ только в "ПриемкаПередачаФиксированныхАктивов", но мне надо что бы и в "ФиксированныеАктивы" тоже создавался.
Можете подсказать в чем проблема. Вот код: Процедура Сформировать() //Создаем ОЛЕ подключение к Excel Excel = СоздатьОбъект("Excel.Application"); //Открываем файл Excel.Workbooks.Open("C:\средства"); //Открываем активную книгу Книга = Excel.ActiveWorkbook; //Получааем количество строк в книге Строк = Excel.Cells.CurrentRegion.Rows.Count; //Перебираем строки и обрабатываем данные Для х = 7 По 50 Цикл ТМЦ=СоздатьОбъект("Справочник.ФиксированныеАктивы"); //Для документа Док = СоздатьОбъект("Документ.ПриемкаПередачаФиксированныхАктивов"); Док.Новый(); Док.НоваяСтрока(); Док.Наименование=СокрЛП(Строка(Excel.Cells(х, 2).Value)); //!1 ТМЦ.Новый(); ТМЦ.Наименование=Док.Наименование; ТМЦ.ИспользоватьДату(ТекущаяДата()); ТМЦ.СпособНачисленияАмортизации = глЗначениеПоУмолчанию("ОсновнойМетодНачисленияАмортизации"); ТМЦ.Организация = глОрганизация(); ТМЦ.ГруппаФА = Перечисление.ГруппыФА.Прочие; //Прочие ПрограммноеОбеспечение МашиныИОборудование ТМЦ.ДатаВвода= ТекущаяДата(); ТМЦ.НачислятьАмортизацию = 1; ТМЦ.СобственныйФА = 1; ТМЦ.ОбъектНалоговогоУчета = 1; ГруппаНалоговогоУчета123 = СоздатьОбъект("Справочник.ГруппыНалоговогоУчета"); ГруппаНалоговогоУчета123.НайтиПоНаименованию("Фиксированные активы не включенные в другие группы",0); ТМЦ.ГруппаНалоговогоУчета=ГруппаНалоговогоУчета123.ТекущийЭлемент(); ТМЦ.СпособНачисленияАмортизации = Перечисление.СпособыНачисленияАмортизацииФА.Линейный; ТМЦ.Комплектность = Перечисление.ТипыКомплектности.ОтдельныйОбъект; ТМЦ.ВидАктива = Перечисление.ВидыФиксированныхАктивов.ОсновноеСредство; ТМЦ.УстановитьАтрибут("Состояние", Перечисление.СостоянияФА.В_Запасе); ТМЦ.НачальнаяСтоимость=Число(Excel.Cells(х, 5).Value); ТМЦ.ЛиквидационнаяСтоимость=Число(Excel.Cells(х, 10).Value); ТМЦ.Счет = СчетПоКоду("241."); //2410 - 241. 2730 - 273 . ТМЦ.СчетЗатрат = СчетПоКоду("71."); ТМЦ.СпособПоступления = Перечисление.СпособыПоступленияФА.Иной; ТМЦ.Код =Число(Excel.Cells(х, 4).Value); СпрВидов = СоздатьОбъект("Справочник.ВидыНоменклатуры"); Если СпрВидов.НайтиПоРеквизиту("ТипНоменклатуры", Перечисление.ТипыНоменклатуры.ФиксированныйАктив, 1) = 1 Тогда ТМЦ.ВидНоменклатуры = СпрВидов.ТекущийЭлемент(); Иначе СпрВидов.Новый(); СпрВидов.Наименование = "Фиксированный актив"; СпрВидов.Типноменклатуры = Перечисление.ТипыНоменклатуры.ФиксированныйАктив; СпрВидов.СчетДоходов = СчетПоКоду("621"); СпрВидов.СчетСебестоимости = СчетПоКоду("741"); СпрВидов.Записать(); ТМЦ.ВидНоменклатуры = СпрВидов.ТекущийЭлемент(); КонецЕсли; ТМЦ.Записать(); //!2 Док.НачальнаяСтоимость=Число(Excel.Cells(х, 5).Value); Док.Код=Число(Excel.Cells(х, 4).Value); Док.ДатаВвода= ТекущаяДата(); Док.ГруппаФА = Перечисление.ГруппыФА.Прочие; //Прочие ПрограммноеОбеспечение МашиныИОборудование Док.СпособНачисленияАмортизации = Перечисление.СпособыНачисленияАмортизацииФА.Линейный; Док.НачислятьАмортизацию = 1; Док.СобственныйФА = 1; Док.ТМЦ = ТМЦ.ТекущийЭлемент(); Док.ВидОперацииНадОбъектом = Перечисление.ТипыОперацийПриемкиПередачиФА.ВводНовогоОбъекта; ВидОперацииНадОбъектом = Перечисление.ТипыОперацийПриемкиПередачиФА.Аренда; БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги"); БухИтоги.ИспользоватьПланСчетов(ВыбранныйПланСчетов()); ВидОперацииНадОбъектом = Перечисление.ТипыОперацийПриемкиПередачиФА.ВводОбъектаПослеМонтажаСтроительства; Док.Счет = СчетПоКоду("241.");//2410 - 241. 2730 - 273 . Док.СчетЗатрат = СчетПоКоду("71."); Док.ВидАктива = Перечисление.ВидыФиксированныхАктивов.ОсновноеСредство; Док.СпособПоступления = Перечисление.СпособыПоступленияФА.Иной; Док.Состояние = Перечисление.СостоянияФА.В_Запасе; ЕдиницаИзмерения = глЗначениеПоУмолчанию("ОсновнаяЕдиницаИзмерения"); Валюта = глЗначениеПоУмолчанию("Основнаявалюта");; СтавкаНДС = глЗначениеПоУмолчанию("ОсновнаяСтавкаНДС"); КоэффициентПересчета = 1; Спр=СоздатьОбъект("Справочник.Организации"); Спр.НайтиПоКоду("00000002",0); Док.Организация = Спр.ТекущийЭлемент(); ВидНом = СоздатьОбъект("Справочник.ВидыНоменклатуры"); ВидНом.НайтиПоКоду("00000006",0); Док.ВидНоменклатуры= ВидНом.ТекущийЭлемент(); ГруппаНалУчета = СоздатьОбъект("Справочник.ГруппыНалоговогоУчета"); ГруппаНалУчета.НайтиПоКоду("II",0); Док.ГруппаНалоговогоУчета=ГруппаНалУчета.ТекущийЭлемент(); Док.Записать(); КонецЦикла; Excel.Workbooks.Close(); КонецПроцедуры Ошибка: ТМЦ.Записать(); {D:\ЗАГРУЗКАИМПОРТ.ERT(68)}: Код не уникальный! |
|||
1
oslokot
26.12.13
✎
11:02
|
о, прекрасный говонокод!
Тебе же говорят, код не уникальный и ты его тут присваиваешь, обрати внимание: ТМЦ.Код =Число(Excel.Cells(х, 4).Value); Ищи в экселе дубли кодов, наверняка они там есть |
|||
2
ЧеловекДуши
26.12.13
✎
11:24
|
(1) Не в екселе надо искать 6)
(0)Ищи в справочнике :) А по сути, код всегда должен присваиваться автоматически :) |
|||
3
oslokot
26.12.13
✎
11:29
|
(2) дык это понятно, пусть в экселе сначала уберет дубли )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |