#0
by DrShust
Пишу обработку, которая собирает данные из нескольких регистров и записывает их в другой регистр. Перед тем как записать их туда, предоставляется возможность редактирования полученных данных. Народ желает редактировать эти данных в том виде, в котором набросали в Excel’е. В тестовом варианте одни и те же данные вывожу в табчасть обработки и в табличный документ реквизита формы (в который, собственно вывожу макет). При изменении чисел в макете, происходит изменение и пересчёт как в макете так и в табчасти. Суть проблемы: при выводе большого числа строк, обработка виснет, причём не на этапе расчётов, а при методах табличного документа Вывести и Присоединить (которые, чередуясь, используются в цикле). Если эти строки заремарить, тогда всё ОК: табличная часть заполняется за 25-30 сек. На данном этапе выводится 15 тыс. строк, а будет в 10 раз больше. Т.е. табчасть заполнится минут за 5, а если выводить макетом (но в более удобном для пользователей варианте), тогда очень не скоро. Возник вопрос: есть ли порог (например, в количестве выводимых на экран строк), сверх которого не целесообразно идти на уступки пользователям в этой конкретной задаче в ущерб производительности? И второй вопрос: какое максимальное количество строк вы видели на экране в фиксированном макете? Здесь видимо я имею ввиду даже не визуальное наблюдение информации, а использование методов Вывести и Присоединить. Если кто-то выводил, скажем, более 10-15 тыс. строк в макет хотя бы за 5 минут, тогда в коде у меня что-то напутано (хотя для проверки того, что тормоза именно в этих местах кода, я комментил только 2 строки: Табдок.Вывести(ОбластьСтроки) и Табдок.Присоединить(ОбластьСтроки).
#1
by Повелитель
100 000 в легкую. Для того чтобы определить максимум, можно написать обработку внешнюю с циклом на 1 млн, 10 млн вывода строк, это займет ну 5 минут, ты больше писал, чем бы сам тестанул
#4
by DrShust
А если для управляемых не дольше будет? Да, извиняюсь, забыл сказать - Управляемое приложение, тонкий клиент. С модуля формы я ухожу в модуль объекта.
#5
by Повелитель
Тут я не подскажу. Тестировать надо. Знаю только, что некоторые браузере xml с 10000 записей открывают по 10 минут. Возможно как раз из-за этого и тормозит у тебя, 1с тонкий клиент, тоже можно браузером назвать ))
#7
by DrShust
100000 строк вывело за 20 секунд. Может быть дело в количестве параметров - их больше 10. Причём один из них как раз выводится методом присоединить (получается макет расползается не только по вертикали, но и по горизонтали, в зависимости от введённых данных пользователями).
#9
by DrShust
Правда в твоих словах есть (насчёт браузера :))) Но это точнее будет применить к динамическим спискам. Когда прокручиваешь список документов, база может притормаживать. Вроде 1000 строк выводится при открытии формы списка, а при прокрутке добавляется новая порция. В принципе, как в большинстве новых сайтов (для быстроты отображения информации).
#10
by Drac0
т.е. безконтекстно. Есть большой нюанс: если табдок заполняется в контекстном вызове, то на клиента приходит частями при просмотре, а если в безконтекстном вызове, то сразу весь, что несколько дольше иногда.
#11
by DrShust
Немного поэксперементировал. Зависает при методе Присоединить. У меня получается цикл внутри цикла: сначала методом Вывести выводится строка, а потом методом Присоединить к этой строке подцепляются новые колонки и их количество грубо говоря зависит от количество элементов справочника. Т.е. таблица: в строках номенклатура, в колонках города. Видимо оптимизацию нужно в этом куске кода проводить...
#12
by DrShust
Т.е. получается по строкам цикл проходит 15 тыс раз - и это 1С вывозит. Но в каждой итерации новый цикл по городам, а их забили 40. Соответственно 15000*40 = 600 тыс. прогонов. Сейчас ради интереса в простецкую обработку, которая построчно выводит номера строк и больше ничего забил количество проходов 600 тыс. Прошло больше 6 минут - программа зависла. Причём на 100 тыс. - думает 20 сек. Но 20*6 <> 120 :))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Максимальное значение ID
- Максимальное количество строк в экселевском файле?
- Как преобразовать число из вида 1,5*10^3 в обычное число
- Максимальное количество строк в документе?
- как преобразовать строку "246,36" в число 246,36? если Число("246,36") = 24
- Число прописью в макете
- Максимальное количество колонок в запросе для клиент-серверного варианта работы
В этой группе 1С
- Печать этикеток в УНФ
- Как отключить ненужные печатные формы в УТ 11.1.6?
- При переносе данных из ЗУП в БП двоятся фамилии сотрудников
- срочно! можно ли прервать выгрузку информационной базы?
- Как добавить строку в меню Создать на основании.
- Как вывести "большую" картинку в ячейку табличного поля (ТЗ / табличную часть)
- УТ 10.3: выставить счет в евро для рублевого договора
- КопироватьДанныеФормы
- Установка периода в списке документов на начальной странице
- Сканер штрих кода, драйвер АТОЛ. Префикс f7
- Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа
- ошибка при вызове конструктора записьтекста
- v8: УТ 11. регистр РасчетыСКлиентами
- Нужен отчет по Пользователям (Роли+ОсновнойИнтерфейс) в УПП 1.3.45.3
- Мобильное приложение, скрыть клавитуру
- ЗУП 3.0 Распределение окладов
- Бухгалтерия 3.0 вылетает.
- v7: Прямой запрос. Условие в иерархии?
- Тип группировки "Только иерархия в СКД"
- Локализация печатных форм в агент плюс мобильная торговля