Имя: Пароль:
1C
 
Как сделать чтобы табличное поле не тормозило при прокрутке?
0 Тормоза
 
21.02.06
09:19
И при обработке ПриокончанииРедактирования и ОбновлениеОтображения?
В нем ~300 колонок. Если строк в табличном поле не много, то не тормозит, а когда 650, то тормозит при прокрутке вниз-вверх. Вправо-влево - нет.
1 Волшебник
 
модератор
21.02.06
09:20
Сначала создадут 300 колонок, а потом спрашивают, почему тормозит? Я валяюсь...
2 Тормоза
 
21.02.06
09:24
(1) Так надо. Вправо-влево же не тормозит. И процедуры не тормозят с малым количеством строк.
3 Волшебник
 
модератор
21.02.06
09:25
(2) Задействуй кеширование.
4 Тормоза
 
21.02.06
09:27
(3) Как? Средствами 1С?
5 Волшебник
 
модератор
21.02.06
09:30
6 romix
 
модератор
21.02.06
09:39
Если рассчетные поля берутся из регистра, и при этом тормозят, то возможен алгоритм с использованием событий (образчик кода для 7.7).
Асинхронная работа с регистром остатков 1С: полезные алгоритмы

Если 300 колонок, то имхо их лучше показывать отчетом, т.к. глаз воспринимает не больше 7.
7 Ослина
 
21.02.06
09:45
А может есть вычисляемые поля (в ПриВыводеСтроки), где идет обращение через Ссылка?
8 Тормоза
 
21.02.06
09:46
(6) Что значит глаз воспринимает не больше 7? А что, если я вывиду в отчет, то у человека появятся дополнительные способности? У меня все равно там данные заносятся, а не из регистров беруться. Так что, отчет не поможет.
9 Тормоза
 
21.02.06
09:48
(7) Да нет. Ссылочные данные только в названии колонок, и во второй колонке ссылки к номенклатуре. Остальные все колонки - цифры.
10 Волшебник
 
модератор
21.02.06
09:49
(9) Что это за цифры? Остатки, цены, взаиморасчеты? Откуда они берутся?
11 Тормоза
 
21.02.06
09:53
Вносит оператор с листочков.

                Обработка Заполнение свода заказов
__________Точка1__Точка2...__Точка300
Валенок_____4_______5___...______1___
Велосипед___10______2___...______2___
12 Тормоза
 
21.02.06
10:29
Может (11) вообще как-нибудь по другому организовать?
13 Волшебник
 
модератор
21.02.06
10:31
(12) Откуда берутся листочки?
14 Тормоза
 
21.02.06
10:40
(13) Существует несколько типов листочков, например табак, продукты питания и т.п. Состав каждого типа листочка создает наш ц.офис и рассылает в каждую точку эти листочки. Они оттуда приходят с проставленными цифрами (заказами). И вот перед операторами лежат эти листочки (с каждой точки -  несколько типов) и она вбивает. Сначала выбирает в обработке тип заказа(листочка) - вываливается номенклатурный список, и давай вбивать по каждой точке сверху-вниз.
15 Волшебник
 
модератор
21.02.06
10:48
(14) Пусть присылают листочки в электронном виде по e-mail, а ты напиши обработку по их обработке.
16 Лохматые Уши
 
21.02.06
10:53
Да, сильно у тебя все поставлено, мучаешь операторов.
А вообще, чтоб не тормозило (поскольку столбцов много), заводи все в таблице SQL. Коннектиться и апдейтить все можно из 1С с помощью COM-соединения. Потом запросом деогать результаты.
И от листочков пора избавляться, электронные должны быть листочки. Неужто электронной почты нет? ;)
17 Тормоза
 
21.02.06
10:55
(15) Эти торговые точки не автоматизированы. Ни компьютеров, ни тем более интернета. В (12) "по-другому" - имелось ввиду, может через документы? Заказ с одной точки - один документ. Но тогда откуда в этом документе будет браться список номенклатуры (состав типа листочка). Ни каждый же раз его вносить в каждый документ.
18 IriskaN
 
21.02.06
10:57
(17) А почему бы и нет? Если это делается программно в момент открытия формы документа или в момент выбора типа "листочка".
19 Матрица
 
21.02.06
11:14
У нас сделано именно через документ на каждую точку. А потом они сливаются в общий док.
20 Тормоза
 
21.02.06
11:25
(19) Наверное, буду делать так же. Хотя в принципе и так все пашет. Интересно, почему когда вывожу в список (через ПрКнМыши), то не тормозит. Наверное, потому что поле номенклатура не ссылочное.
21 Тормоза
 
21.02.06
16:59
Есть две процедуры(взял с этого сайта) для перехода по Enter на строку вниз.

Процедура ТаблицаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, КолТаблица)

СтрокаТЧ = Элемент.ТекущаяСтрока;
Если СтрокаТЧ <> Неопределено Тогда
   ИндексСтрокиТЧ = Таблица.Индекс(СтрокаТЧ);
   Если ИндексСтрокиТЧ >= 0 И ИндексСтрокиТЧ+1 < Таблица.Количество() Тогда
       мСледующаяСтрока = Таблица[ИндексСтрокиТЧ+1];
       мСменитьСтроку = Истина;
   КонецЕсли;
КонецЕсли;
КонецПроцедуры

Процедура ОбновлениеОтображения()
   Если мСменитьСтроку Тогда
       мСменитьСтроку = Ложь;
       ЭлементыФормы.Таблица. ТекущаяСтрока = мСледующаяСтрока;
   КонецЕсли;
КонецПроцедуры

Вот это
     ЭлементыФормы.Таблица. ТекущаяСтрока = мСледующаяСтрока;
при большом кол-ве строк и колонок очень медленно работает.
Есть варианты как сделать по-другому?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший