7.7 Присвоить ГТД номер страны

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем daab, 6 июн 2012.

  1. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Доброго дня!

    Конфа Бух 4.5

    Задача в следующем присвоить имеющемся ГТДшкам номера стран, страны уже вписаны

    Код:
    //*******************************************
    Процедура ВыборФайла()  
    Каталог="";
    Если ФС.ВыбратьФайл(0,ФормИмяФайла,Каталог,"Выберите файл","Все файлы(*.xls)|*.xls",,)=1 тогда
    ФормИмяФайла=Каталог+ФормИмяФайла;
    КонецЕсли;
    КонецПроцедуры	
    Процедура Сформировать()
    
    //Создаем ОЛЕ подключение к Excel
    Excel = СоздатьОбъект("Excel.Application"); 
    
    //Открываем файл
    //  Excel.Workbooks.Open(ФормИмяФайла);
    
    
    Если ФС.СуществуетФайл(ФормИмяФайла)=1 Тогда 
    Excel.Workbooks.Open(ФормИмяФайла); 
    Иначе
    Предупреждение ("Указанный файл не существует",5);
    КонецЕсли;
    
    //Открываем активную книгу
    Книга = Excel.ActiveWorkbook;
    
    //Получааем количество строк в книге
    Строк = Excel.Cells.CurrentRegion.Rows.Count;
    
    
    //Перебираем строки и обрабатываем данные
    Для х = 1 По Строк Цикл
    
    //Зная типы значений в колонках и перебирая строки получаем
    //необходимые значения и обрабатываем их  
    НаименованиеСтран = СокрЛП(Строка(Excel.Cells(х, 1).Value));
    КодСтран	   = СокрЛП(Строка(Excel.Cells(х, 2).Value)); 
    СпрСтран = СоздатьОбъект("Справочник.ГТД");
    
    ////Не догнать, как здесь сделать проверку по рекизиту "СтранаПроисхождения" не сортируется
    //Если СпрСтран.НайтиПоНаименованию(НаименованиеСтран)=1 тогда	
    
    
    
    СпрСтран.Новый(); 
    СпрСтран.СтранаПроисхождения = НаименованиеСтран;
    СпрСтран.КодПоОКСМ = КодСтран;
    
    
    
    
    СпрСтран.Записать();
    КонецЕсли;
    //.......	
    Конеццикла;
    //После загрузки зарываем соединение с Excel
    Excel.Workbooks.Close();
    
    КонецПроцедуры
    
  2. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    ну, ва-первЫх
    СпрСтран = СоздатьОбъект("Справочник.ГТД");
    вынеси из цикла
    вместо этой строки
    Код:
    СпрСтран.ВыбратьЭлементы()
    Пока СпрСтран.ПолучитьЭлемент()=1 Цикл
    Если СокрЛП(СпрСтран.СтранаПроисхождения)=НаименованиеСтран Тогда
    [font=Courier]СпрСтран.КодПоОКСМ = КодСтран[/font];
    Конец
    Конец
    
  3. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    пасибки но не работает такой вариант.

    я так полагаю здесь надо сравнение делать элементов экселевского файла и справочника и вставлять код где пустое значение
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    что значит не работает
    в цикле из эксель получаешь страну и код
    опять в цикле ищешь страну в спр, нашёл-присвоил код
    што здесь может не работать
    советую пройтия отладчиком
    код выкладывай
  5. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    так и делаю код же выложил

    Код:
    //*******************************************
    Процедура ВыборФайла()  
    Каталог="";
    Если ФС.ВыбратьФайл(0,ФормИмяФайла,Каталог,"Выберите файл","Все файлы(*.xls)|*.xls",,)=1 тогда
    ФормИмяФайла=Каталог+ФормИмяФайла;
    КонецЕсли;
    КонецПроцедуры	
    Процедура Сформировать()
    //Создаем ОЛЕ подключение к Excel
    Excel = СоздатьОбъект("Excel.Application"); 
    
    //Открываем файл
    //  Excel.Workbooks.Open(ФормИмяФайла);
    
    
    Если ФС.СуществуетФайл(ФормИмяФайла)=1 Тогда 
    Excel.Workbooks.Open(ФормИмяФайла); 
    Иначе
    Предупреждение ("Указанный файл не существует",5);
    КонецЕсли;
    
    
    //Открываем активную книгу
    Книга = Excel.ActiveWorkbook;
    
    //Получааем количество строк в книге
    Строк = Excel.Cells.CurrentRegion.Rows.Count;
    
    //Создадим заранее объект справочника ГТД
    
    СпрСтран = СоздатьОбъект("Справочник.ГТД");
    //Перебираем строки и обрабатываем данные
    Для х = 1 По Строк Цикл
    
    //Зная типы значений в колонках и перебирая строки получаем
    //необходимые значения и обрабатываем их  
    НаименованиеСтран = СокрЛП(Строка(Excel.Cells(х, 1).Value));
    КодСтран	   = СокрЛП(Строка(Excel.Cells(х, 2).Value)); 
    
    
    СпрСтран.ВыбратьЭлементы();
    Пока СпрСтран.ПолучитьЭлемент()=1 Цикл
    Если СокрЛП(СпрСтран.СтранаПроисхождения)=НаименованиеСтран Тогда
    СпрСтран.КодПоОКСМ = КодСтран;
    
    КонецЕсли;
    //    СпрСтран.Новый(); 
    // СпрСтран.СтранаПроисхождения = НаименованиеСтран;
    //  СпрСтран.КодПоОКСМ = КодСтран;
    
    
    //  СпрСтран.Записать();
    
    Конеццикла;
    Конеццикла;
    //ЗафиксироватьТранзакцию();
    //  Конеццикла;
    
    //После загрузки зарываем соединение с Excel
    Excel.Workbooks.Close();
    
    КонецПроцедуры
  6. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    ты прикалываешь?
    зачем убрал спр.записать?
  7. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    упсс

    все работает! вот блин супер)) Благодарю
Похожие темы
  1. Alexander
    Ответов:
    1
    Просмотров:
    3.527
  2. andrenko
    Ответов:
    2
    Просмотров:
    426
  3. karlant
    Ответов:
    7
    Просмотров:
    2.782
  4. akalibr
    Ответов:
    7
    Просмотров:
    827
  5. К_Е
    Ответов:
    5
    Просмотров:
    1.710
Загрузка...

Поделиться этой страницей