Имя: Пароль:
1C
1С v8
Загрузка данных из табличного документа 8,2
0 KonstantinK90
 
10.02.15
11:59
Здрасти! не знаю как сделать или переделать. Взял универсаньную обработку загрузка данных из табличного документа(Эксель). Спомощью этой обработки подгружаю эксель но мне нужно что бы эта обработка не просто сонесла информацию в табличную часть, а  создала столько документов сколько в экскеле строк. Как это сделать
1 KonstantinK90
 
10.02.15
12:02
Как сделать Для каждого Строки Из строк Цикл
            Создать документ для каждой строки
          
            КонецЦикла
2 Godofsin
 
10.02.15
12:04
Напиши свою обработку по созданию документов из екселя, делов на час.
3 KonstantinK90
 
10.02.15
12:05
я не знаю чего начать
4 barrgand
 
10.02.15
12:07
(3) Файл - Новый - Внешняя обработка.
Как грузить из Экселя - в поисковике куча информации.
5 Godofsin
 
10.02.15
12:08
Начни с этого, учиться никогда не поздно:
http://sky1c.ru/node/248
6 1976vas
 
10.02.15
12:23

Процедура ЗагрузитьДокумент()
        НачатьТранзакцию();
    
    //    СписокФайлов=НайтиФайлы(ПутьКФайлу,"*.xls");
    //    Для каждого текстрока из СписокФайлов Цикл
    ExcelApp = Новый COMОбъект("Excel.Application");
    //    Книга = ExcelApp.Workbooks.Open(текстрока.ПолноеИмя);
    Книга = ExcelApp.Workbooks.Open(Объект.ПутьКФайлу);
    Страница = Книга.Worksheets(1);
    //Сообщить("Загружается файл "+Строка(Объект.ПутьКФайлу));
    НомерСтроки     = 25;
    НомерКолонки = 1;
    Док=Документы.ПоступлениеТоваров.СоздатьДокумент();
    Док.Дата=Объект.ДатаДокумента;
    Док.Контрагент=Объект.Контрагент;
    Док.Организация=Справочники.Организации.НайтиПоНаименованию("ИП Назаров Д.С").Ссылка;
    Док.Магазин=Справочники.Магазины.НайтиПоНаименованию("ИП Назаров Д.С. (Магазин ");
    Док.Склад=Объект.Склад;
    Пока Не ПустаяСтрока(Страница.Cells(НомерСтроки,2).Value) Цикл
        ЕдСтрока=Сокрлп(Страница.Cells(НомерСтроки,14).Value);
        НоменклатураСтрока=Сокрлп(Страница.Cells(НомерСтроки,3).Value);
        Количество=Число(Страница.Cells(НомерСтроки,18).Value);
        //Цена=Число(Страница.Cells(НомерСтроки,26).Value);
        Сумма=Число(Страница.Cells(НомерСтроки,39).Value);
        ШтрихКод = Сокрлп(Страница.Cells(НомерСтроки,8).Value);
                
        Нстрока=Док.Товары.Добавить();
        
        ПоискЕд=Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(ЕдСтрока);
        Если ПоискЕд=Справочники.БазовыеЕдиницыИзмерения.ПустаяСсылка() Тогда
            Ед=Справочники.БазовыеЕдиницыИзмерения.СоздатьЭлемент();
            Ед.Наименование=ЕдСтрока;
            //Ед.ТипБазовойЕдиницыУпаковки=Перечисления.ТипыЕдиницИзмеренияНоменклатуры.Штучная;
            Ед.Записать();
        Иначе
            Ед=ПоискЕд.ссылка;
        КонецЕсли;
        
        Поиск=Справочники.Номенклатура.НайтиПоНаименованию(НоменклатураСтрока);
        Если Поиск=Справочники.Номенклатура.ПустаяСсылка() Тогда
            Номенклатура=Справочники.Номенклатура.СоздатьЭлемент();
                
            номенклатура.ЕдиницаИзмерения=Ед.ссылка;
            номенклатура.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
            номенклатура.Наименование= НоменклатураСтрока;
            номенклатура.НаименованиеПолное= НоменклатураСтрока;
            номенклатура.ВидНоменклатуры=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("товары");
            номенклатура.Записать();
            НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
            НаборЗаписей.владелец = Номенклатура.Ссылка;
            НаборЗаписей.Штрихкод = Штрихкод;
            НаборЗаписей.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
            НаборЗаписей.Записать();
        Иначе    
            Номенклатура=поиск.ссылка;
        КонецЕсли;

          Нстрока.Номенклатура =Номенклатура.Ссылка;
           Нстрока.Количество= Количество;
          Нстрока.КоличествоУпаковок=Количество;
          Нстрока.Цена= Окр(Сумма/Количество,2);
          Нстрока.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
          Нстрока.Сумма=Сумма;
          Нстрока.Упаковка=Ед;
         НомерСтроки=НомерСтроки+1;    
     КонецЦикла;
    Док.СуммаДокумента=Док.Товары.Итог("Сумма");
    Док.ДатаВходящегоДокумента=Дата(Прав(Страница.Cells(19,16).Value,4),Сред(Страница.Cells(19,16).Value,5,2),Сред(Страница.Cells(19,16).Value,7,2));
    Док.НомерВходящегоДокумента=строка(Страница.Cells(19,12).Value);
    Док.Ответственный=Справочники.Пользователи.НайтиПоНаименованию("Администратор");
    Док.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Создан документ "+Строка(Док.Ссылка));    
    ExcelApp.Quit();
    ЗафиксироватьТранзакцию();

КонецПроцедуры
7 salvator
 
10.02.15
12:33
А лучше сделай универсальную обработку с загрузкой из экселя в ТЗ и что-то типа консоли произвольного модуля.
8 KonstantinK90
 
10.02.15
13:01
ага спасибо!
9 KonstantinK90
 
10.02.15
13:02
а еще вопрос можно
10 KonstantinK90
 
10.02.15
13:03
как сделать Если СимКарта не обнаружена в справочникеСимКарт Тогда
Создать сим карту(Номер)
КонецЕсли
11 Godofsin
 
10.02.15
13:06
(10) Элемент = Справочники.СимКарты.НайтиПоНаименованию(СимКарта);
Если Элемент.Пустая() тогда
Элемент = Справочники.СимКарты.СоздатьЭлемент();
Элемент.Номер = Номер;
Элемент.Записать();
КонецЕсли;
12 mikecool
 
10.02.15
13:16
я поступаю проще - если что то быстро надо загрузить из файла экселя, то кидаю на форму обработки таб документ, в него копирую лист и работаю с этим табдоком
никаких ком-шмом-адо и прочего, и разбираться - чего ком не поднимается или еще что не надо
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс