Вход | Регистрация



таблицаЗначение перевод строки в числовой тип

таблицаЗначение перевод строки в числовой тип
Я
   Enot_tut
 
16.04.18 - 08:51
Доброе утро всем, есть в таблице значения колонка количество, с типом строка как его перевести в строку и получить итог?
 
 
   1Сергей
 
1 - 16.04.18 - 08:52
Добавить новую колонку и перебором заполнить
   Вася Теркин
 
2 - 16.04.18 - 08:58
при заполнении таблицы сразу сделай число. и сабжа не будет.
   Enot_tut
 
3 - 16.04.18 - 09:38
(2) загрузка идет туда с помощью ПостроительОтчета
   Cool_Profi
 
4 - 16.04.18 - 09:41
(3) А в построителе откуда строка?
   Enot_tut
 
5 - 16.04.18 - 09:44
(4) через ексель,
   Enot_tut
 
6 - 16.04.18 - 09:45
Попытка
        лкЕксель = Новый COMОбъект("Excel.Application");
    Исключение
        лкСообщение = "Невозможно загрузить MS EXCEL !!!" + Символы.ПС + ОписаниеОшибки();
        Сообщить(лкСообщение);
        Возврат ОписаниеОшибки();
    КонецПопытки;
    
    лкЭксельКниги = лкЕксель.Workbooks;
    Попытка
        КнигаИзФайла = лкЭксельКниги.Open(прПутьКФайлу,,True);
        лкЕксель.Visible = 0;
    Исключение
        лкСообщение = "Невозможно открыть файл " + прПутьКФайлу + " !!!" + Символы.ПС + ОписаниеОшибки();
        Сообщить(лкСообщение);
        Возврат ОписаниеОшибки();
    КонецПопытки;
    
    Попытка
        лкЛист= КнигаИзФайла.Sheets(Лист);     
    Исключение
        лкОшибка = ОписаниеОшибки();
        Сообщить(лкОшибка);
        
    КонецПопытки;
    
    Попытка
        лкМассивы = лкЛист.UsedRange.Value.Выгрузить();
    Исключение
        лкОшибка = ОписаниеОшибки();
        Сообщить(лкОшибка);
        лкМассивы = Новый Массив;
    КонецПопытки;
    
    //закрываем excel

    Попытка
        КнигаИзФайла.Close();
    Исключение
        лкОшибка = ОписаниеОшибки();
        Сообщить(лкОшибка + Символы.ПС + "При необходимости, закройте Ексель самостоятельно.");
    КонецПопытки;
    
    лкЭксельКниги = Неопределено;
    лкЕксель = Неопределено;
    //лкЕксель.quit(0);

    
    //отфильтровка пустых строк - отключено

    //ПроверитьМассивыДанных(лкМассивы);

    
    лкКоличество = лкМассивы[0].Количество();
    Если Не (лкМассивы.Количество() > 0 и лкКоличество > 0) Тогда
        //Нет данных, может лист не тот указали? Сообщаем выходим

        Сообщить("Книга: " + прПутьКФайлу + " , Лист: + " + Лист + " - Нет данных!");
        Возврат ОписаниеОшибки();
    КонецЕсли;
    //сама загрузка    

    ТабличныйДокумент = Новый ТабличныйДокумент;
    лкСтрока  = 1;
    лкТекСтрока = 1;
    текСтрока = 0;  
    
    Для лкИндекс = 0 По лкКоличество-1 Цикл
        лкКолонка = 0;
        Для каждого лкКол Из лкМассивы Цикл
            
            
            если лкСтрока = 3 тогда
                текСтрока = 1;
            КонецЕсли;    
            
            если текСтрока = 1 тогда
                лкКолонка = лкКолонка + 1;
                лкЗначение = лкКол[лкИндекс];
                ТабличныйДокумент.Область(лкТекСтрока, лкКолонка).Текст = лкЗначение;
                Если  лкТекСтрока = 1 Тогда 
                    Запрос = Новый Запрос;
                    Запрос.Текст = 
                    "ВЫБРАТЬ
                    |    Данные.Наименование КАК Наименование,
                    |    Данные.Кафе КАК Кафе,
                    |    Данные.Склад КАК Склад
                    |ИЗ
                    |    Справочник.Данные КАК Данные
                    |ГДЕ
                    |    Данные.ЭтоГруппа = &ЭтоГруппа";
                    
                    Запрос.УстановитьПараметр("ЭтоГруппа", Ложь);
                    
                    РезультатЗапроса = Запрос.Выполнить();
                    
                    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
                    
                    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                        Если ВыборкаДетальныеЗаписи.Склад = лкЗначение тогда 
                            ТабличныйДокумент.Область(лкТекСтрока, лкКолонка).Текст = ВыборкаДетальныеЗаписи.Наименование;                            
                        КонецЕсли;    
                    КонецЦикла;                
                иначе
                    ТабличныйДокумент.Область(лкТекСтрока, лкКолонка).Текст = лкЗначение;
                КонецЕсли;
            КонецЕсли;    
            
        КонецЦикла; 
        если текСтрока = 1 тогда
            лкТекСтрока = лкТекСтрока+1;
        КонецЕсли;
        лкСтрока  = лкСтрока + 1;
    КонецЦикла; 
    ТабличныйДокумент.ФиксацияСверху = 1;
    ПоследняяСтрока = ТабличныйДокумент.ВысотаТаблицы;
    ПоследняяКолонка = ТабличныйДокумент.ШиринаТаблицы;
    ОбластьЯчеек = ТабличныйДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);
    
    // Создаем описание источника данных на основании области ячеек табличного документа. 

    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);    
    // Создаем объект для интеллектуального построения отчетов,

    // указываем источник данных и выполняем построение отчета.

    ПостроительОтчета = Новый ПостроительОтчета;    
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();
    
    ТабЗначенийОтчетОСкладах = ПостроительОтчета.Результат.Выгрузить();
    
    Возврат ТабЗначенийОтчетОСкладах;
   Enot_tut
 
7 - 16.04.18 - 09:50
а есть у кого код как пробежать именно по колонке?  а не по всей таблице?
   AlexeiIvan
 
8 - 16.04.18 - 09:53
(7) Чего??
   Enot_tut
 
9 - 16.04.18 - 09:54
(8) есть колонка количество, и как тока по не пробежаться?
   AlexeiIvan
 
10 - 16.04.18 - 09:55
(9) Еще раз и медленнее.
 
 Рекламное место пустует
   Lexey_
 
11 - 16.04.18 - 09:55
(9) у тебя колонка находится вне таблицы, отдельно?
   AlexeiIvan
 
12 - 16.04.18 - 09:56
(11) Да, отдельно стоящая )
   Enot_tut
 
13 - 16.04.18 - 09:58
(11) она находиться в таблице значения
   Darych
 
14 - 16.04.18 - 09:58
понедельнично)
   Lexey_
 
15 - 16.04.18 - 09:59
(13) ну и чем тогда тебя не устраивает пробег по всей таблице?
   AlexeiIvan
 
16 - 16.04.18 - 09:59
(13) Ну, и?
   Сияющий в темноте
 
17 - 16.04.18 - 09:59
Отдельно стоящая колонка,это массив,получается через ВыгрузитьКолонку,но зачем?
   AlexeiIvan
 
18 - 16.04.18 - 09:59
(15) Сложно это.
   Lexey_
 
19 - 16.04.18 - 10:04
(6) это гениально, что в базе данных есть справочник, который называется "Данные"
   Enot_tut
 
20 - 16.04.18 - 10:04
(17) связана тем что количество колонок всегда разная, могут быть 3 колонки а могут и 16
   Darych
 
21 - 16.04.18 - 10:05
(20) да хоть 100... обращаться тебе все равно к одной
   AlexeiIvan
 
22 - 16.04.18 - 10:05
(20) И?
   Enot_tut
 
23 - 16.04.18 - 10:09
(21) а у него постоянно название меняется  количество(аркады_55а) или количество(винокурово_7б)
   Lexey_
 
24 - 16.04.18 - 10:11
(23) а как же ты тогда собрался по одной колонке бежать, если не знаешь ее названия?
   Darych
 
25 - 16.04.18 - 10:15
(23) партизанщина... может еще о чем умолчал? Имя колонки то знаешь?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует