Имя: Пароль:
1C
1С v8
Внешняя обработка заполнение документа "Заказ клиента" из Exel
0 Vovyaka24
 
29.06.14
19:50
Пишу внешнюю обработку, которая заполняет документ "Заказ" покупателя из документа Exel. Заполняются необходимые колонки Номенклатура, Цена, количество и Вид цены, но почему то первая строка оказывается пустой, в ней заполняется только колонка Вид цены, а остальные игнорируются, а начиная со второй строки начинается корректное заполнение документа. Подскажите где косяк? (УТ11 Тонкий клиент)

&НаКлиенте
Процедура ЗагрузитьФайл(Команда)
    
    App = Новый COMОбъект("Excel.Application");
    App.Visible = True;
    App.DisplayAlerts = False;
    
    Попытка
        File = App.Workbooks.Open(Объект.ИмяФайла);
        Лист = File.Worksheets(1);                
    Исключение
        Сообщить("Ошибка открытия файла!", СтатусСообщения.Важное);
        Сообщить(ОписаниеОшибки());
        App.Quit();
    КонецПопытки;
    
    Сообщить("Загрузка начата...");
    
    МассивСтрок = Новый Массив;
    
    НачСтрока = 2;
    КонСтрока = Лист.UsedRange.Rows.Count;
    
    Для Сч = НачСтрока По КонСтрока Цикл
                
        Артикул = СокрЛП(Лист.Cells(Сч,4).Value);  
        Кукла = СокрЛП(Лист.Cells(Сч,3).Value);
        Цена = СокрЛП(Лист.Cells(Сч,7).Value);
        Кол = СокрЛП(Лист.Cells(Сч,8).Value);
        Если (ПустаяСтрока(Артикул)) или (ПустаяСтрока(Кукла)) или (ПустаяСтрока(Кол))
            Продолжить;
        КонецЕсли;    
                    
        Структура = Новый Структура;
        Структура.Вставить("Артикул", Артикул);
        Структура.Вставить("Кукла", Кукла);
        Структура.Вставить("Цена", Цена);
        Структура.Вставить("Кол", Кол);
        //Структура.Вставить("БлаБлаБла", БлаБлаБла);
        
        МассивСтрок.Добавить(Структура);
КонецЦикла;
    
    File.Close(False);  
    App.Quit();          
    
    ЗаполнитьТЧ(МассивСтрок);
    Сообщить("Загрузка завершена");
    
КонецПроцедуры

===========================================================

&НаСервере
Процедура ЗаполнитьТЧ(МассивСтрок) Экспорт

Док = ИмяДокумента.ПолучитьОбъект();
Док.Товары.Очистить();
ВидЦ = ВидЦены.ПолучитьОбъект();
ВЦ = Справочники.ВидыЦен.НайтиПоНаименованию(ВидЦ);
ТЧВидЦены = Док.Товары.Добавить();
ТЧВидЦены.ВидЦены = ВЦ;

Для Каждого Стр Из МассивСтрок Цикл
          
            Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Стр.Артикул);
                  
Если Номенклатура <> Справочники.Номенклатура.ПустаяСсылка() Тогда
    
            Строка = Док.Товары.Добавить();
            Строка.Номенклатура = Номенклатура;
            Строка.ВидЦены = ВЦ;
            Строка.Цена = Стр.Цена;
            Строка.КоличествоУпаковок = Стр.Кол;
            Док.Записать();
            
Иначе Сообщить ("Номенклатура с артикулом не найдена!");
КонецЕсли;

КонецЦикла;

КонецПроцедуры
1 Apokalipsec
 
29.06.14
19:52
ТЧВидЦены = Док.Товары.Добавить();
ТЧВидЦены.ВидЦены = ВЦ;
2 Wobland
 
29.06.14
19:55
а вот было бы здорово заиметь такую штуку, которая пошагово ходила бы по коду да значения разных переменных показывала
3 Отладчик
 
29.06.14
19:59
Бедняги, со своими УФ...
4 Vovyaka24
 
29.06.14
21:59
Apokalipsec, спасибо! Что то я тупанул =)) До цикла сам не пойму зачем добавлял строку =))