Имя: Пароль:
1C
 
Разделитель триад
0 nAPACEHAK
 
10.04.18
12:23
Доброго

подскажите, плз.
Загрузка номенклатуры из экселя, обработка в доке установка цен
2 колонки - артикул, цена

в эске, в номенклатуре, артикул хранится как 123456
в экселе - 123456 (типом строка-число игрался, без разницы)

в обработке:
Результат = СокрЛП(МассивКолонок.Получить(0).Получить(строкаТП));
// Тут мы получаем в виде Результат = "123 456"

Артикул = СтрЗаменить(Результат, " ", "");
// тут Артикул = "123 456" // Какого хрена???

ну и
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);

т.к. "123 456" это не "123456", естественно нифига не находится (((

Как победить?
Конфу править - не вариант, т.к. фиг выгонишь всех

Спасибо
1 Злопчинский
 
10.04.18
12:24
НеразрывнайПрбел
Симв(160)
2 Остап Сулейманович
 
10.04.18
12:27
(0) У ячейки экселя забирать не text, а value. Или наоборот.
3 nAPACEHAK
 
10.04.18
12:28
(1) эмм.....

http://prntscr.com/j38sol
http://prntscr.com/j38sw6

(2)
в конфе так:
Если ЗначениеЗаполнено(ПутьКФайлу) Тогда
        //Открываем xlsx файл
        Попытка
            Excel     = Новый COMОбъект("Excel.Application");
            WB         = Excel.Workbooks.Open(ПутьКФайлу);
            WS         = WB.Worksheets(1); //Указываем номер листа - 1
            arr     = WS.UsedRange.Value; //Передаем таблицу в переменную
            WB.Close(0);
        Исключение
            Предупреждение("Внимание! Файл не открыт. "+Символы.ПС+
                           "Попробуйте открыть и пересохранить данный файл программой Excel");
            Возврат;
        КонецПопытки;
        
        МассивКолонок     = arr.Выгрузить(); //Выгружаем таблицу в массив
        ВсегоСтрок         = (МассивКолонок.Получить(0).Количество()) - 1;

и опять же, конфу не смогу поправить
4 nAPACEHAK
 
10.04.18
12:28
(с) Рарус
5 Масянька
 
10.04.18
12:31
мАртикул    = СокрЛП(Строка(Лист.Cells(НомерСтроки, 2).Value));
В Excel тип ячейки Общий.
6 DmitriyDI
 
10.04.18
12:31
(0)     
Артикул = СокрЛП(СтрЗаменить(Результат, " ", ""));
Артикул= СтрЗаменить(Артикул, Символ(160), "");
7 Масянька
 
10.04.18
12:32
(4) А почему конфу поправить низя?
8 nAPACEHAK
 
10.04.18
12:34
(5) в экселе менял типы на разные - ничего не меняется
(6) Опять же изменения в конфе. Подумалось, что альфу рарус не вчера выпустил, и изменением цен многие пользуются. Не может ж быть что косяк не онаружен
(7) из базы фиг выгонишь народ. только принудительно ночью и если звёзды сложатся (((
9 Масянька
 
10.04.18
12:36
(8) Или зверей гони, или пусть мучаются.
10 Ц_У
 
10.04.18
12:36
Формат(число("10 000"),"ЧГ=0")
11 nAPACEHAK
 
10.04.18
12:37
(6) ща на древнем архиве попробую. отпишусь
12 DmitriyDI
 
10.04.18
12:37
(0) а если в экселе сделать тип столбца текстовый, проверить чтобы остались такого формата строки "123456", и загрузить?
13 Kigo_Kigo
 
10.04.18
12:45
Строка(Формат(Число(НашаСтрока),"ЧГ=0")
14 Ц_У
 
10.04.18
12:45
(13) строка строкой
15 nAPACEHAK
 
10.04.18
12:45
(6) Да. Работает. Спс
так и придется конфу пилить

(12) выше писал - с типами в экселе не прокатывает
16 Ц_У
 
10.04.18
12:47
(15) попробуй (10)
17 Kigo_Kigo
 
10.04.18
12:48
(14) Ну да, можно без Строка()
18 nAPACEHAK
 
10.04.18
12:52
(14) да там и так строка в эске
(13) опять же изменения в конфе
да и артикул может попасться АБВ123 (кстати, такие норм.отрабатывают)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn