Не знаю как добавить несколько файлов в 1 проект (Qlikview, Sense, 1c)

Автор SEGA, 01 марта 2018, 02:05:04

« назад - далее »

SEGA

Всем доброго дня! У меня появилась новая проблема связанная  с тем что есть куча exel документов выгруженные из 1С соответственно все поля в них сделаны по стандарту. Скрипт для обработки данных у меня может обрабатывать только те документы которые вписал в скрипт. ВОПРОС Такой!!! могу ли я или через скрипт(ОДИН РАЗ ПРОПИСАТЬ И БОЛЬШЕ НЕ ЛАЗИТЬ В СКРИПТ) или через другие функции ДОБАВЛЯТЬ  кучу этих документов в одни проект что бы не лазить постоянно в скрипт и там не прописывать новые пути к файлам!!!

admin

Привет, можно, но надо приводить все к одному стандарту.

SEGA

Все данные находятся в одном стандарте это 1С просто подскажите через какие функции или хотя бы направление в котором нужно следовать что бы сделать эту задачу

admin

#3
1c файловая или SQL?
Файлы можно грузит по маске если они одинакового формата и структуры,
load * from Выручка*.qvd (qvd);
Загрузит все файлы Выручка2017, Выручка2015, Выручка202222, ВыручкаУдалить и т.д.

SEGA

t1:
LOAD Номенклатура, Поставщик, Штрихкод, Количество, PRICEN, Цена_в_рос., ARTICUL
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\НА_АСТАНУ.xls]
(biff, embedded labels, table is [0353704$], filters(
Remove(Col, Pos(Top, 25)),
Remove(Col, Pos(Top, 23)),
Remove(Col, Pos(Top, 21)),
Remove(Col, Pos(Top, 20)),
Remove(Col, Pos(Top, 19)),
Remove(Col, Pos(Top, 18)),
Remove(Col, Pos(Top, 17)),
Remove(Col, Pos(Top, 13)),
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 8)),
Remove(Col, Pos(Top, 7)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3))
));
DIRECTORY;
left join (t1)

LOAD Штрихкод, [Количество товаров], Период
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\Продажи*.xls]
(biff, embedded labels, table is TDSheet$, filters(
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3)),
Remove(Col, Pos(Top, 2)),
Remove(Col, Pos(Top, 1)),
Remove(Row, Pos(Top, 10)),
Remove(Row, Pos(Top, 9)),
Remove(Row, Pos(Top, 8)),
Remove(Row, Pos(Top, 6)),
Remove(Row, Pos(Top, 5)),
Remove(Row, Pos(Top, 4)),
Remove(Row, Pos(Top, 3)),
Remove(Row, Pos(Top, 2)),
Remove(Row, Pos(Top, 1))
));

DIRECTORY;

left join (t1)
load Штрихкод,
num(Количество)-num("Количество товаров") as Остаток,
num(Цена_в_рос.)*num("Количество товаров") as Сумма_реализации
resident t1;

left join (t1) 
load Штрихкод,
NUm(Остаток)/num(Количество)*100 as Процент
resident t1;

Не получилось показывает только первый документ в папке а все остальные игнорит

все документы с одинаковой структурой название их Начинается "Продажа" дальше идет дата помогите все перепробовал не получается








admin

Для начала, следует отладить загрузку из файлов Продажи*.xls в одну таблицу.
Загрузка простых таблиц Excel по маске без преобразований работает без проблем.

admin

Если не получится по маске - сделайте загрузку в цикле.

SEGA

Загрузка в цикле не получится так как документы будут постоянно добавляться а по поводу 1 варианта можете хотя бы примерчик подкинуть а то вообще не соображаю как и что буду очень благодарен 


admin

по вашему коду.
Вы грузите по маске с присоединением. Так нельзя.
Сначала сделайте без join

LOAD Штрихкод, [Количество товаров], Период
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\Продажи*.xls]
(biff, embedded labels, table is TDSheet$, filters(
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3)),
Remove(Col, Pos(Top, 2)),
Remove(Col, Pos(Top, 1)),
Remove(Row, Pos(Top, 10)),
Remove(Row, Pos(Top, 9)),
Remove(Row, Pos(Top, 8)),
Remove(Row, Pos(Top, 6)),
Remove(Row, Pos(Top, 5)),
Remove(Row, Pos(Top, 4)),
Remove(Row, Pos(Top, 3)),
Remove(Row, Pos(Top, 2)),
Remove(Row, Pos(Top, 1))
));

SEGA

Добрый день! Принципе по задачам получилось но проблема в топ что записи почему то дублируются все перепробовал не получается
вот когд
t1:
LOAD Штрихкод, [Количество товаров], Период
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\Продажи*.xls]
(biff, embedded labels, table is TDSheet$, filters(
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3)),
Remove(Col, Pos(Top, 2)),
Remove(Col, Pos(Top, 1)),
Remove(Row, Pos(Top, 10)),
Remove(Row, Pos(Top, 9)),
Remove(Row, Pos(Top, 8)),
Remove(Row, Pos(Top, 6)),
Remove(Row, Pos(Top, 5)),
Remove(Row, Pos(Top, 4)),
Remove(Row, Pos(Top, 3)),
Remove(Row, Pos(Top, 2)),
Remove(Row, Pos(Top, 1))
));
DIRECTORY;

left join (t1)

LOAD Номенклатура, Поставщик, Штрихкод, Количество, PRICEN, Цена_в_рос., ARTICUL
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\НА_АСТАНУ.xls]
(biff, embedded labels, table is [0353704$], filters(
Remove(Col, Pos(Top, 25)),
Remove(Col, Pos(Top, 23)),
Remove(Col, Pos(Top, 21)),
Remove(Col, Pos(Top, 20)),
Remove(Col, Pos(Top, 19)),
Remove(Col, Pos(Top, 18)),
Remove(Col, Pos(Top, 17)),
Remove(Col, Pos(Top, 13)),
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 8)),
Remove(Col, Pos(Top, 7)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3))
));
DIRECTORY;

left join (t1)
load Штрихкод,
num(Количество)-num("Количество товаров") as Остаток,
num(Цена_в_рос.)*num("Количество товаров") as Сумма_реализации
resident t1;

left join (t1) 
load Штрихкод,
NUm(Остаток)/num(Количество)*100 as Процент
resident t1;

помогите разобраться в чем проблема почему дублируются по два и три раза записи в таблице!

admin

Ну правильно, начиная со второй таблицы вы для каждого штрихкода каждого периода грузите данные.
А что при этом с уникальностью штрихкодов во второй таблице?

SEGA

Эталон штрихкода находится во второй таблице а первая таблица, которая загружает все файлы в папке там тоже по одному штрихкоду который находится в первой таблице и соответственно почему то она показывает сразу несколько вариантов и делает расчет в некоторых ячеек правильно а в некоторых не правильно и получается белеберда 

admin

Сложно понять, не видя данные.
Разделите этап получения данных на два: загрузка с сохранением в qvd и преобразование.


t1:
LOAD Штрихкод, [Количество товаров], Период
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\Продажи*.xls]
(biff, embedded labels, table is TDSheet$, filters(
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3)),
Remove(Col, Pos(Top, 2)),
Remove(Col, Pos(Top, 1)),
Remove(Row, Pos(Top, 10)),
Remove(Row, Pos(Top, 9)),
Remove(Row, Pos(Top, 8)),
Remove(Row, Pos(Top, 6)),
Remove(Row, Pos(Top, 5)),
Remove(Row, Pos(Top, 4)),
Remove(Row, Pos(Top, 3)),
Remove(Row, Pos(Top, 2)),
Remove(Row, Pos(Top, 1))
));

store t1 into продажи.qvd (qvd);
drop table t1;

t2:
LOAD Номенклатура, Поставщик, Штрихкод, Количество, PRICEN, Цена_в_рос., ARTICUL
FROM [C:\Users\ASU\Desktop\ПРОЕКТЫ QLIK\АСТАНА\НА_АСТАНУ.xls]
(biff, embedded labels, table is [0353704$], filters(
Remove(Col, Pos(Top, 25)),
Remove(Col, Pos(Top, 23)),
Remove(Col, Pos(Top, 21)),
Remove(Col, Pos(Top, 20)),
Remove(Col, Pos(Top, 19)),
Remove(Col, Pos(Top, 18)),
Remove(Col, Pos(Top, 17)),
Remove(Col, Pos(Top, 13)),
Remove(Col, Pos(Top, 12)),
Remove(Col, Pos(Top, 11)),
Remove(Col, Pos(Top, 10)),
Remove(Col, Pos(Top, 9)),
Remove(Col, Pos(Top, 8)),
Remove(Col, Pos(Top, 7)),
Remove(Col, Pos(Top, 6)),
Remove(Col, Pos(Top, 5)),
Remove(Col, Pos(Top, 4)),
Remove(Col, Pos(Top, 3))
));
store t2 into справочник.qvd (qvd);
drop table t2;



Сначала добейтесь корректной загрузки на этом этапе, сверяя результаты с источниками.
Затем уже работайте с qvd-файлами. Ясности будет больше.

SEGA

Добрый день! вроде как сделал как вы сказали все получилось данные не дублируются и находятся в qvd файлах, но ! когда начинаешь делать расчет например высчитать остаток начинается очередная каша (дублируются данные опять) из за того что дублируются данные в остатке все остальные расчеты начинают падать и все в чем может быть проблема???

Яндекс.Метрика