Помогите правильно организовать загрузку данных

Автор Валерий, 22 октября 2018, 02:25:07

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

Валерий

Доброго времени суток!
Столкнулся с выгрузкой из 1С и никак не придумаю как правильно организовать загрузку данных, прошу вашей помощи.

Исходные данные допустим такие:

Дата.ФИО                  Расходы                                  Описание
01.10.2018                80 $                                         Командировочные
02.10.2018                300 $                                        Проживание в отеле
10.10.2018                150 $                                        Обед с клиентом
13.10.2018                 20 $                                         Такси
Итого                         450$
Иванов И.И.
03.10.2018                 60 $                                         Аренда авто
04.10.2018                200 $                                        Затраты на семинар
10.10.2018                 50 $                                         Обед с клиентом
13.10.2018                 90 $                                         Проживание в отеле
Итого                         400$
Петров П.П.           

Хотелось бы получить таблицу в привычном виде. Заранее спасибо.

ФИО                   Дата                Расходы                                            Описание
Иванов И.И.        01.10.2018            80 $                                         Командировочные
Иванов И.И.         02.10.2018           300 $                                        Проживание в отеле
Иванов И.И.        10.10.2018           150 $                                        Обед с клиентом
Иванов И.И.        13.10.2018             20 $                                        Такси
Петров П.П.         03.10.2018            60 $                                         Аренда авто
Петров П.П.         04.10.2018            200 $                                       Затраты на семинар
Петров П.П.         10.10.2018             50 $                                        Обед с клиентом
Петров П.П.         13.10.2018            90 $                                         Проживание в отеле





           

Maestro


tmp:
LOAD * Inline [
Дата.ФИО, Расходы, Описание
01.10.2018, 80, Командировочные
02.10.2018, 300, Проживание в отеле
10.10.2018, 150, Обед с клиентом
13.10.2018, 20, Такси
Итого, 450$
Иванов И.И.
03.10.2018, 60, Аренда авто
04.10.2018, 200, Затраты на семинар
10.10.2018, 50, Обед с клиентом
13.10.2018, 90, Проживание в отеле
Итого, 400$
Петров П.П.
];

LET y = 0;

for i=0 to NoOfRows('tmp') - 1
let userID = $(i) + 1;
let id = 0;
LET dt = null;
LET amount = 0;
let descrypt = '';


DO WHILE 1 = 1
let id = $(y) + 1;
let dt = Peek('Дата.ФИО', $(y), 'tmp');
let amount = Peek('Расходы', $(y), 'tmp');
let descrypt = Peek('Описание', $(y), 'tmp');
Расходы:
LOAD * Inline [
Id,UserID, TheDate, Amount, Descr
$(id), $(userID), $(dt), $(amount), $(descrypt)
];
y = $(y) + 1;
if trim(Peek('Дата.ФИО', $(y), 'tmp')) = 'Итого' THEN
EXIT DO
ENDIF
LOOP

LET userName = Peek('Дата.ФИО', $(y)+1, 'tmp');
Сотрудники:
LOAD * Inline [
UserID, UserName
$(userID), $(userName)
];
y = $(y) + 2;
if(IsNull(Peek('Дата.ФИО', $(y), 'tmp'))) then
EXIT FOR
ENDIF
NEXT

DROP Table tmp;


Без циклов вряд ли что-то придумается(

Валерий


Валерий

Всё вышло, благодарю.
Но, как вы знаете, аппетит приходит во время еды :)
Скажите, а у QS есть возможность сохранить эту таблицу, предварительно разбив по каждому сотруднику в отдельный xls файл?

Т.е. должно получиться:

1й файл: Иванов.xls
В файле:
ФИО                   Дата                Расходы                                            Описание
Иванов И.И.        01.10.2018            80 $                                         Командировочные
Иванов И.И.         02.10.2018           300 $                                        Проживание в отеле
Иванов И.И.        10.10.2018           150 $                                        Обед с клиентом
Иванов И.И.        13.10.2018             20 $                                        Такси

2й файл: Петров.xls
В файле:
ФИО                   Дата                Расходы                                            Описание
Петров П.П.         03.10.2018            60 $                                         Аренда авто
Петров П.П.         04.10.2018            200 $                                       Затраты на семинар
Петров П.П.         10.10.2018             50 $                                        Обед с клиентом
Петров П.П.         13.10.2018            90 $                                         Проживание в отеле

Ну и т.д, если больше сотрудников.
Заранее спасибо.

admin


Maestro

Тут, скорее, нужно смотреть в сторону макросов.

admin

Цитата: Maestro от 25 октября  2018, 09:51:21  
Тут, скорее, нужно смотреть в сторону макросов.
Проще и быстрее в 1с отчет подправить.
А если делать с прицелом на будущее - то извлечение из БД напрямую будет оптимальным решением.
Есть еще новый механизм в 1с - oData. Можно его потестировать, заодно с народом поделиться опытом  ;)

Maestro

Если нет программиста 1С, то вряд ли будет проще и быстрее  ;D
Насколько я понял, ТС нужно один отчет из 1С раскидать по нескольким файлам.
А данные, да, проще и удобнее тянуть напрямую из базы 1С.

P.S. Как использовать цитирование? выделяю текст, нажимаю на "Цитата" и... Ничего не происходит. ЧЯДНТ?

Валерий

Цитата: Maestro от 25 октября  2018, 03:25:20  
Если нет программиста 1С, то вряд ли будет проще и быстрее  ;D
Насколько я понял, ТС нужно один отчет из 1С раскидать по нескольким файлам.
А данные, да, проще и удобнее тянуть напрямую из базы 1С.

P.S. Как использовать цитирование? выделяю текст, нажимаю на "Цитата" и... Ничего не происходит. ЧЯДНТ?

На верхнее цитирование нажимай, а не на нижнее :)

Maestro


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