Имя: Пароль:
1C
 
Помогите с оптимизацией задачи
0 marshalbratsk
 
07.12.16
07:03
Нужно сделать одну задачу, есть идея как релизовать, но хотелось бы узнать советов у более опытных программистов, как эту идею можно релизовать лучшее, удобнее и не забивать память.

Имеется запрос с которого делаем выгрузку, имеется файл экселя (структура таблицы для загрузки), в который нужно вбить данные с этой выгрузки, но в этом файле имеется группировка с пустыми полями по столбцу "Счёт", которую необходимо сохранить (например под Счёт 10 выделено 1000 строк и в них надо вбивать данные, затем идёт Счёт 11, под который нужно вбивать другие данные). Делалось это до меня и нужно сохранить форму как она есть, но вбивать туда данные с запроса. Хочу перестраховаться, если например будет больше 1000 строк Счёта 10 и надо будет добавлять строки и сбивать индексы.

Есть мысля как это сделать, но хотелось бы узнать мнение остальных

//Задаём индесы
ДобавленныеСтроки=0; //Счётчик добавленных строк


Счёт10Начало=10; //Начало группы, куда вбиваем данные выгрузки
Счёт10Конец=900; //Конец группы
Счёт10Кол=0; //Количество счетов


Для каждого стр из выборка цикл
  Если стр.Счёт=10 Тогда  
    Если СчётКол<Счёт10Конец-Счёт10Начало Тогда  //Если количество записей меньше допущенного количества записей
      ИндексСтроки=Счёт10Кол+ДобавленныеСтроки;
      //Заполняем данные
      Счёт10Кол=Счёт10Кол+1;
    Иначе
     ИндексСтроки=Счёт10Кол+ДобавленныеСтроки;
      // Добавляем строку эксель
      // Заполняем данные
      Счёи10Кол=Счёт10Кол+1;
      ДобавленныеСтроки=ДобевленныеСтроки+1;
  Иначе Если //Продолжаем с другими счетами по аналогии

Спасибо
1 VladZ
 
07.12.16
07:05
(0) Ничего не понял
2 marshalbratsk
 
07.12.16
07:27
http://hkar.ru/Mvsx
Вот тут файл эксель, в котором видна группировка сворачиваемая, куда нужно втыкать данные с выборки, группируя по полю Счёт
3 marshalbratsk
 
07.12.16
07:27
(2) по колонке Номер субсчёта, прошу прощения
4 Мимохожий Однако
 
07.12.16
07:34
(0)"если например будет больше 1000 строк Счёта 10 и надо будет добавлять строки и сбивать индексы. " вот это расшифруй.
Куда денешь то, что не помещается?
5 Это_mike
 
07.12.16
07:36
(0)
сначала нужно протрезветь.
потом написать вопрос чтоб понятно было не только тебк..
6 marshalbratsk
 
07.12.16
07:46
(4) Допустим до 1000 строки я просто записываю данные в уже созданные ячейки, индекс просто добавляю в цикл и всё, но если больше 1000 строк одного счёта идёт, то тогда я добавляю строку новую в экселе (Insert()),чтобы не залезть в другой счёт и тем самым сбиваю индексы для последующих записей.
7 VladZ
 
07.12.16
07:51
(2) Отличная картинка. Только бестолковая. Какая информация из всего этого является нужной? О каких 1000 строках идет речь? Что такое "Счёта 10"?

Что хочу сказать в итоге: правильно заданный вопрос содержит половину ответа.  На текущий момент формулировка вопроса не содержит смысла вопроса.
8 LevelUP
 
07.12.16
08:30
(0) Запоминай смещение в переменную. Потом прибавляй, чтобы получить адреса следующих группировок. Отлаживай, сделай так, чтобы запрос вернул овер1000 строк и смотри правильно ли встали строки.
9 Лефмихалыч
 
07.12.16
08:33
(0) а почему просто не формировать с нуля файл экселя с такими же группировками? Зачем заполнять существующий?
10 LevelUP
 
07.12.16
08:35
(9) там, наверное, формулы аццкие в книге