Имя: Пароль:
1C
 
ЗагрузкаИзExcel в ТаблицуЗначение ОбычныеФормы
0 maptbln
 
14.05.18
11:59
Всем добрый день,пишу загрузку из excel на табличную форму
с добавлением необходимых строк из файла и занесением из в колонки ТЗ начиная с 8 разобрался.

а вот как сделать ,если мне нужно в уже сформированной только что ТЗ заполнить 2 и 3 колонку , не создавая при этом новых строк,а только значения
пробовал Колонки.Вставить ,но почему то не отрабатывает

подскажите пожалуйста

Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
Конецесли;
    
    Для НС = 2 по ФайлСтрок Цикл  // НС указываем с какой строки начинать обработку        
        
        Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");
        
        ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
        
        НоваяСтрока = тпБюджетныеОперации.Добавить();
        
                  
        Для НомерКолонки = 8 по тпБюджетныеОперации.Колонки.Количество() Цикл
            //Для НомерКолонкиЭкс = НомерКолонки-6 по  Цикл
            //заполняем строку значениями
            НомерКолонкиТаб=НомерКолонки-6;
            ТекущееЗначение = Excel.Cells(НС, НомерКолонкиТаб).Value;
            ИмяКолонки = тпБюджетныеОперации.Колонки[НомерКолонки-1].Имя;             
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;            
        КонецЦикла;
    
         КонецЦикла;  
    
    Для НС = 2 по ФайлСтрок Цикл
        
        Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");
        ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
      
        
        Для НомерКолонки = 3 по 3 Цикл
            НомерКолонкиБСП=НомерКолонки-2;
            ТекущееЗначениеСтДдс = Excel.Cells(НС,НомерКолонкиБСП).Value;
            ИмяКолонкиСтДДС = тпБюджетныеОперации.Колонки[НомерКолонки-1].Имя;
            
            
            //тпБюджетныеОперации.ЗаполнитьЗначения(Тест, "ИмяКолонкиСтДДС"];
            КонецЦикла;

КонецЦикла;
1 Ёпрст
 
14.05.18
12:00
(0)

вася[0][0] = "лох";
2 maptbln
 
14.05.18
12:26
ТекущееЗначениеСтДдс1 = Excel.Cells(2,1).Value;
тпБюджетныеОперации[0][2]=ТекущееЗначениеСтДдс1;

хочу заполнить первую строку 3 столбец , попробовал , за пределами цикла

не подгружает
3 Ёпрст
 
14.05.18
12:34
(2) сами строки/столбцы уже есть ?
4 Ёпрст
 
14.05.18
12:35
твой код будет работать, если
>>>в уже сформированной только что ТЗ заполнить 2 и 3 колонку , не создавая при этом новых строк,а только значения
5 maptbln
 
14.05.18
12:38
(3)
да,в конец процедуры добавил,после добавление строк столбцов
6 maptbln
 
14.05.18
12:55
может ли быть дело в том , что 2 - 3 колонка должны содержать значения справочников?
7 Ёпрст
 
14.05.18
13:47
(6) а ты чего туда передаешь ? Строки что ле ?
:))
8 Ёпрст
 
14.05.18
13:47
тогда конечно, >>>yt gjluhe;ftn
9 maptbln
 
14.05.18
13:58
(8)
значения)..
а как тогда заполнить данные колонки , скажем если в столбцах в экселе данные по имени будут совпадать со значениями справочников,то все равно не передастся?
10 3achem
 
14.05.18
14:05
(9) Используй Справочник.ИмяСправочника.НайтиПоНаименованию
11 3achem
 
14.05.18
14:06
(9) Но в таблице значения колонка должна иметь тип того справочника, по которому ты будешь делать поиск
12 maptbln
 
14.05.18
14:14
(11)
понял,спасибо
пробую
13 Михаил Козлов
 
14.05.18
14:29
(12) Посмотрите штатную (ИТС) обработку ЗагрузкаДанныхИзТабличногоДокумента.