Имя: Пароль:
1C
 
Очень много записей в справочнике или регистре сведений
0 Вопросы Задающий
 
12.06.11
01:08
Всем привет! Подскажите плиз, я заметил что при импорте товаров в справочник товары и даже при импорте данных в регистр сведений "цены поставщиков" , если записей справочника много, например около 500 тыс, то 1с жутко тормозит. конфа самописная, но независимо от обработчиков "при открытии" и тп, если все поотключать, все равно все тормозит. с регистром сведений та же беда. дело-таки в конфе или в платформе ? или может в конкретном компе?
1 NcSteel
 
12.06.11
01:24
Если конфа в вакууме то должно работать идиально.
2 Злобный Фей
 
12.06.11
01:27
Неплохо бы обновить brain.dll и hands.sys
3 Immortal
 
12.06.11
01:29
+(2)и не забыть поправить в head.ini=)
4 kotletka
 
12.06.11
02:19
(2),(3)а ведь он полез искать их, злые вы
5 Lionee
 
12.06.11
02:34
(0)Какая конфа? импорт откуда? платформа ? телепаты спят!
6 IamAlexy
 
12.06.11
02:38
справочник клиентов 2.5 млн. записей.. вроде ничо так. работает..
7 GROOVY
 
12.06.11
02:39
ИМХО он перебором ищет элементы справочника, чтобы в регистре запись сделать...
8 Варвар
 
12.06.11
03:40
у меня всё работает.
9 Вопросы Задающий
 
12.06.11
11:19
платформа 8.2.13.205
конфа самописная вапсче, не мной, тормознутая конечно , но не настолько же.... чтобы если я импортировал 500 тыс значений в регистр, простейший причем, очень долго
10 Вопросы Задающий
 
12.06.11
11:21
импорт из excel, версия серверная
но я пробую сначала на локальном компе
просто считываю из екселя в ТЗ, потом из ТЗ делаю набор нужных мне записей (а это практически ВСЕ записи, просто без дублей на всякий случай), и записываю этот набор. и вот это у меня на 500 тыс работает больше 3х часов, хотя в регистре самом никаких процедур типа "призаписи" нету
11 ДенисЧ
 
12.06.11
11:22
Эм.... Ты одним махом пишешь 500 000 записей? Неудивительно...
По моему опыту - лучше писать кусками.
12 Вопросы Задающий
 
12.06.11
11:24
например? по 100 тыс?
13 IamAlexy
 
12.06.11
11:24
(12) например замерить отладчиком на предмет как на твоем железе и твоей нагрузке будет оптимальнее...
14 ДенисЧ
 
12.06.11
11:25
(12) зависит. У меня разные регистры пишутся разными порциями. От 5000 до 25 000.
15 Вопросы Задающий
 
12.06.11
11:26
ну это простейший регистр
попробую по 50 тыс. но идея хорошая конечно, спасибо
16 Вопросы Задающий
 
12.06.11
11:34
за какое время (минимально) можно загрузить 500 тыс записей в регистр сведений, если при записи туда не выполняется никаких условий?
17 rs_trade
 
12.06.11
11:47
(0) 500 тыщ это вовсе не большая таблица
18 Вопросы Задающий
 
12.06.11
11:51
ну и как максимально быстро такую сохранить? все равно файл считывать надо построчно.. и потом , записывать даже кусками, 500 тыс займет не меньше пары часов
19 IamAlexy2
 
12.06.11
11:52
(18) а чо за файл?
20 Вопросы Задающий
 
12.06.11
11:53
упссс
файл csv
содержит код поставщика, цену, наименование
21 Вопросы Задающий
 
12.06.11
11:54
надо это просто сохранить в регистре сведений, но там может быть 500 тыс строк... вот я и ищу оптимальный вариант записи
22 Вопросы Задающий
 
13.06.11
23:45
записываю записи.. первые 100 тыс идут более-менее быстро.. потом почему-то все идет медленнее, даже если регистр изначально был пуст...
23 Лефмихалыч
 
13.06.11
23:59
(0) замер производительности что показывает?
24 Вопросы Задающий
 
14.06.11
00:11
(23) как его сделать...?
25 Лефмихалыч
 
14.06.11
00:18
(24) Тебе потребуется Некрономикон (обязательно в оригинале), черный петух (живой, одна штука) и кровь младенца. Они у тебя есть?


PS Кто впустил неотесанного неофита?
26 Лефмихалыч
 
14.06.11
00:19
27 Вопросы Задающий
 
14.06.11
00:26
(26) спасибо
28 Злопчинский
 
14.06.11
00:28
потому что видать в транзакции все пишется может быть.. если в транзакцию запихнуть ВСЕ - то может быть меделенно, если разумными порциями фиксировать - то будет оК. По крайней мере на 7.7 - так, может и на 8-ке таковое мае буты?
29 IamAlexy
 
14.06.11
00:28
(25) ты лучше спроси кто его выпустил...
30 Immortal
 
14.06.11
00:29
(28)платформа все херачит в память(читает набор) - памяти не хватает - вылет.
31 Лефмихалыч
 
14.06.11
00:30
(29) да тут-то все более-менее понятно - заборостроительный какой-нить межгалактический университет имени Добра
32 Reaper_1c
 
14.06.11
00:30
(28) Мае, мае, всяко бывае... кто поумнее - в настройках СУБД пороги эскалации плокировок поправляе...
33 Лефмихалыч
 
14.06.11
00:30
(30) моет дождемся каких-нить фактов от отладчика вместо того, чтобы пальцем в небо яростно херачить?
34 Reaper_1c
 
14.06.11
00:30
(31) Имени победы бобра над ослом
35 Immortal
 
14.06.11
00:31
(32)это пусть dba поправляе, нефиг их работу делать
36 Immortal
 
14.06.11
00:31
(33)а чего херачить, проверял-)
37 Вопросы Задающий
 
14.06.11
00:53
я пихаю по 25 тыс записей
38 Вопросы Задающий
 
14.06.11
00:53
потом обнуляю набор записей
39 Вопросы Задающий
 
14.06.11
00:54
в транзакции то же самое, такое же количество...
40 Immortal
 
14.06.11
00:57
(38)обнуляю - это зачем?
41 Вопросы Задающий
 
14.06.11
00:59
(40) я записываю и обнуляю
42 Вопросы Задающий
 
14.06.11
00:59
то есть записывается кусками
43 Вопросы Задающий
 
14.06.11
01:05
If Int(counter/25000) = counter/25000 Then
recordset.Write();
Message("Writing of recordset... " + trimall(counter)+ " " +String(CurrentDate()));
recordset.Clear();
CommitTransaction();
BeginTransaction();
EndIf;    

вот такой код
44 Вопросы Задающий
 
14.06.11
01:07
в конце цикла это все происходит
45 Лефмихалыч
 
14.06.11
01:08
(43) во-первых, есть в природе оператор %, а, во-вторых, ты замер запустил? Узнал, какая строчка больше всего времени жрет?
46 Вопросы Задающий
 
14.06.11
01:10
(45) да, запустил, больше времени жрет чтение csv файла...
47 Вопросы Задающий
 
14.06.11
01:10
я знаю про %, но разве от этого зависит?
48 Immortal
 
14.06.11
01:11
(46)ыыыыыыы
49 Вопросы Задающий
 
14.06.11
01:12
запись в регистр совсем мало процентов жрет...
50 Вопросы Задающий
 
14.06.11
01:13
(48) набор записей обнулять не нужно??
51 Immortal
 
14.06.11
01:14
да не, просто (33)прав оказалсо
52 Вопросы Задающий
 
14.06.11
01:15
хотя читает довольно резво, у меня в статусную строку номер строки выводится, это все идет очень быстро, тем более с помощью ADODB.Connection
53 Вопросы Задающий
 
14.06.11
01:15
но почему тогда при увеличении количества записей такое происходит... хз
54 H A D G E H O G s
 
14.06.11
01:41
Собственно.

1) База по сети - таскается вся таблица регистра, чем она больше - тем дольше таскается.
2) Индексы - каждая вставка новой записи требует перестроения индексного дерева. Чем больше записей - тем дольше перестроение.
3) Убрать вывод на экран статусные строки для каждой записи. Выводить для каждых 25000.
4) Инное.

p.s. Я не увидел кода
55 Вопросы Задающий
 
15.06.11
17:30
170 тысяч записей в обычный регистр сведений на 8.2, клиент-серверная версия, импортировались за 1.5 часа. это нормально?
56 rs_trade
 
15.06.11
17:31
(55) это долго
57 Вопросы Задающий
 
15.06.11
17:32
я использовал транзакции... и периодически очищал recordset... что еще можно сделать?
58 Вопросы Задающий
 
15.06.11
17:33
никаких доп. условий... просто импорт из csv файла...
59 H A D G E H O G s
 
15.06.11
17:36
(58) что по (54) ?
60 Вопросы Задающий
 
15.06.11
17:38
1) не по сети
3) статус убрал
61 Вопросы Задающий
 
15.06.11
17:39
2) как проверить?
62 H A D G E H O G s
 
15.06.11
17:40
(61) Индексы в РС есть?
63 Вопросы Задающий
 
15.06.11
17:41
есть
64 rs_trade
 
15.06.11
17:44
(55) надо детализацию. на что были потрачены 1.5 часа.
65 Вопросы Задающий
 
15.06.11
17:44
на запись в регистр
66 Вопросы Задающий
 
15.06.11
17:44
BeginTransaction();
   counter = 1;
   For Each VTLine in ValueTable Do
       If VT.FindByValue(VTLine.ProducerCode) <> Undefined Then
           Continue;
       EndIf;    
       counter = counter + 1;
       newrow = recordset.Add();
       newrow.Klient = Klient;
       newrow.Quantity = 1;
       newrow.Description = VTLine.Description;
       newrow.code = VTLine.ProducerCode;
       newrow.BP = VTLine.BP;
       newrow.IsOldItem = false;
       DiscountGroupString = VTLine.DiscountGroup;
       Try
           newrow.DiscountGroup = MapDiscauntGroup[DiscountGroupString].ref;
           newRow.Price =  newRow.BruttoPrice * (100-MapDiscauntGroup[DiscountGroupString].Discount)/100;
       Except    
           newrow.DiscountGroup = Catalogs.DiscountGroups.Unknown;
           newRow.Price =  newRow.BruttoPrice;
       EndTry;    
       
       newrow.Info = VTLine.Info;
       newrow.Producer = Producer;
       
       newrow.TimeStamp = CurDate;
       NewVTRow = VT.Add(newrow.code);
       If Int(counter/25000) = counter/25000 Then
           Status(string(counter));
           recordset.Write();
           recordset.Clear();
           CommitTransaction();
           BeginTransaction();
       EndIf;    
   EndDo;    
   
   recordset.Write();
   CommitTransaction();
67 Вопросы Задающий
 
15.06.11
17:46
вернее на кусок выше
68 Вопросы Задающий
 
15.06.11
17:47
recordset = InformationRegisters.Prices.CreateRecordSet();
   recordset.Filter.Klient.set(Klient);
   recordset.Write();

вот что было в начале
69 H A D G E H O G s
 
15.06.11
17:50
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
Записать (Write)
Синтаксис:
Записать(<Замещать>)
Параметры:
<Замещать> (необязательный)
Тип: Булево. Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям
Значение по умолчанию: Истина
70 rs_trade
 
15.06.11
17:50
Может сам скуль тупит? Счетчики производительности в порядке? Длинна очереди к диску?
71 Вопросы Задающий
 
15.06.11
17:50
структура регистра - 5 измерений

Klient
Quantity
code
unit
producer
72 H A D G E H O G s
 
15.06.11
17:50
Чего-то у тебя с кодом не так.
73 Вопросы Задающий
 
15.06.11
17:51
(72) я догадываюсь, и поэтому прошу помочь...
74 H A D G E H O G s
 
15.06.11
17:51
Отборы как устанавливаются?
75 Вопросы Задающий
 
15.06.11
17:51
скуль работает нормально, не тормозит ничего. почти уверен, что в коде дело либо в индексах и тп
76 H A D G E H O G s
 
15.06.11
17:52
Просто скорее всего чистится регистр при каждой записи
77 Вопросы Задающий
 
15.06.11
17:52
вот один отбор только, по клиенту, чтобы записывать каждый раз цены его заново
recordset = InformationRegisters.Prices.CreateRecordSet();
   recordset.Filter.Klient.set(Klient);
   recordset.Write();
78 Вопросы Задающий
 
15.06.11
17:52
нет, чистится только по клиенту, один раз, не в цикле
79 rs_trade
 
15.06.11
17:52
по английски не привычно анализировать код ((
80 Вопросы Задающий
 
15.06.11
17:53
я понимаю, но так попросили делать, на всякий случай. да и смотрится все-таки как-то привычнее
81 H A D G E H O G s
 
15.06.11
17:53
(78) Каждый раз чистится
82 H A D G E H O G s
 
15.06.11
17:54
При
recordset.Write();
83 H A D G E H O G s
 
15.06.11
17:54
Ибо у тебя отбор по клиенту уже установлен не в цикле и записи по клиенту есть.
84 Вопросы Задающий
 
15.06.11
17:55
дык подожди, мне его чего, убрать чтоли из цикла?
85 Вопросы Задающий
 
15.06.11
17:55
и оставить только в конце, после цикла?
86 H A D G E H O G s
 
15.06.11
17:57
ValueTable  у тебя содержит данные по нескольким клиентам?
87 Вопросы Задающий
 
15.06.11
17:58
нет
88 H A D G E H O G s
 
15.06.11
18:01
Ну так замени
recordset.Write();
на
recordset.Write(false);
89 Вопросы Задающий
 
15.06.11
18:02
где? в цикле? а после цикла тоже?
90 Вопросы Задающий
 
15.06.11
18:04
recordset.Write() - у меня в трех местах в коде
первый раз когда отбор по клиенту
второй раз когда каждые 25 тыс записывается
3 раз в самом конце
91 H A D G E H O G s
 
15.06.11
18:05
2 и 3 раз
92 Вопросы Задающий
 
15.06.11
18:05
понял, спасибо
насколько это может увеличить скорость?
93 H A D G E H O G s
 
15.06.11
18:06
(92) На Х.З. единиц.
94 H A D G E H O G s
 
15.06.11
18:06
Структуру регистра расскажи.
Есть ли РЛС ?
95 Вопросы Задающий
 
15.06.11
18:07
структура регистра - 5 измерений
Klient
Quantity
code
unit
producer

РЛС - это что?
96 Вопросы Задающий
 
15.06.11
18:08
есть еще ресурсы, цена и тп
97 H A D G E H O G s
 
15.06.11
18:08
(95) Пилят.

Тип измерений, наличие индексов.
98 H A D G E H O G s
 
15.06.11
18:09
(96) Строки большой длины?
99 Вопросы Задающий
 
15.06.11
18:10
(98) нет
100 Вопросы Задающий
 
15.06.11
18:10
тип измерений

Klient справочник
Quantity число 15.2
code текст
unit справочник
producer справочник
101 Вопросы Задающий
 
15.06.11
18:11
индексы есть в code
102 H A D G E H O G s
 
15.06.11
18:13
(101) Убери для замера
103 Вопросы Задающий
 
15.06.11
18:14
ок. а еще есть индексы в ресурсах, их тоже убрать?
104 H A D G E H O G s
 
15.06.11
18:14
(103) Тоже
105 Вопросы Задающий
 
15.06.11
18:15
ок, так и сделаю, спасибо!
106 Вопросы Задающий
 
15.06.11
18:16
каждый индексированный атрибут затормаживает загрузку тоже да?
107 H A D G E H O G s
 
15.06.11
18:24
(106)

Почитать для общего развития

http://www.sql.ru/articles/mssql/03013101Indexes.shtml#13

Особенно про фрагментацию и статистику.
108 H A D G E H O G s
 
15.06.11
18:24
(106) Да
109 Вопросы Задающий
 
15.06.11
18:27
СПАСИБО!
110 H A D G E H O G s
 
16.06.11
11:15
Астрологи объявили неделю быстрой записи в регистр сведений.
Поголовье индексов регистра снижено вдвое.
111 H A D G E H O G s
 
16.06.11
11:15
(0) Автор, помогло?
112 Вопросы Задающий
 
16.06.11
12:20
(111) спасибо за интерес! сразу откомментирую, когда проверю. дело в том, что как раз после твоих последних советов в офисе где сервак, была лажа со светом, жду когда починят
113 H A D G E H O G s
 
16.06.11
13:16
(112) Запах серы отлично перебивает запах свежезаваренного кофе.
114 Вопросы Задающий
 
16.06.11
14:07
(113) пока что 100 тыс дольше, чем за полчаса грузит...
115 Вопросы Задающий
 
16.06.11
14:08
но индексы я еще не убирал, попробовал только с False при записи Recordset
116 H A D G E H O G s
 
16.06.11
14:28
(115) Измерение
Code у тебя какой длины?
117 Вопросы Задающий
 
16.06.11
14:29
20
118 H A D G E H O G s
 
16.06.11
14:33
(117) Это Прискорбно.

ОсновнойОтбор стоит у него?
119 Вопросы Задающий
 
16.06.11
14:34
lf
120 Вопросы Задающий
 
16.06.11
14:34
ага
121 H A D G E H O G s
 
16.06.11
14:34
(120) Убирай его (Основной отбор) отовюду, откуда можно, ибо:
122 Вопросы Задающий
 
16.06.11
14:37
понял
123 Вопросы Задающий
 
16.06.11
14:37
но это потом не будет тормозить поиск?
124 H A D G E H O G s
 
16.06.11
14:40
125 H A D G E H O G s
 
16.06.11
14:41
Твое измерение Code имеет размер в 40 байт и юзается в 2 встроенных индексах - индексе измерений и индексе основного отбора.

Это жестоко
126 H A D G E H O G s
 
16.06.11
14:41
Из основного отбора я бы убрал все, кроме Client
127 Вопросы Задающий
 
16.06.11
14:41
а если я вообще поудаляю везде основной отбор, как это отразится потом на поиске?
128 Вопросы Задающий
 
16.06.11
14:42
понял! спасибо!
129 tdm
 
16.06.11
14:42
(0) структуру регистра надо пилить для начала)
130 H A D G E H O G s
 
16.06.11
14:45
Еще вопрос - что делает Quantity (количество) в измерении ?
131 Вопросы Задающий
 
16.06.11
14:45
количество единиц за цену
132 H A D G E H O G s
 
16.06.11
14:48
(131) Ясно. Но как то логичнее тогда поменять местами цену (в измерения) и количество (в ресурсы). Но это лирика.
133 H A D G E H O G s
 
16.06.11
14:49
А что такое Code в регистре?
134 Вопросы Задающий
 
16.06.11
14:49
Код товара (данный поставщиком)
135 Вопросы Задающий
 
16.06.11
15:39
сейчас 100 тысяч за полчаса записалось. это нормально?
136 H A D G E H O G s
 
16.06.11
15:54
(135) Нет
137 H A D G E H O G s
 
16.06.11
15:56
Если конфа небольшая - скинь dt-шник и исходник данных. Если не критично-конфидициально.
138 Serginio1
 
16.06.11
16:59
Я пишу напрямую. Скопом по миллиону записей из текстового файла. По 30 минут если новый (индексы тормозят) и минуты по 2-5 при обновлении
139 H A D G E H O G s
 
16.06.11
17:19
(138) nvarchar(40) (в индексе!) имеет длину 40 байт фиксированно, либо реальную длину ?
140 H A D G E H O G s
 
16.06.11
17:22
Просто может товарисчу на справочник перейти, как с НомераГТД сделано.
141 Serginio1
 
16.06.11
17:45
(140) Я работаю с регистрами сведений, единственно, что там нужно симплкей прописать при вставке
v8: _SimpleKey и его установка
142 H A D G E H O G s
 
16.06.11
17:49
(141) Чего то я не верю про такие различия по времени в 1С и SQL
143 Serginio1
 
16.06.11
17:59
Не то слово.  Раньше простенький прайс грузился часами, да и сейчас кое где анахронизмы остались и грузится через тз, записей несколько тысяч по скорости сопостаимы со 100 тысячами. В 1с ненормально сделано merge, а по одной записи тоже оочень долго. Поверь, не от хорошей жизни перешел на прямую запись в SQL, зато сейчас все рады, т.к. такие прайсы грузятся по многу раз на дню.
Отсутствие merge в 1С считаю большим минусом. А вот использование внешнего источника очень хорошо, только интересно как у них с драйверами по 64 битные оси? Год назад неподдерживались.
144 H A D G E H O G s
 
16.06.11
18:04
Че такое merge?
145 Вопросы Задающий
 
16.06.11
18:07
(137) - сама запись в регистр уже летает, спасибо!
тормозит теперь только одна фигня - я записываю в регистр порциями ведь. а код поставщика - уникальным должен быть. иногда поставщики высылают прайсы, где дважды один и тот же код есть. и получается, что запись скопом в регистр невозможна. вот мой код

   counter = 1;
   record.MoveNext();
   
   BeginTransaction();
   while record.EOF = 0 do
       counter = counter + 1;
       
       Try
           newrow = ValueTable.Add();
           newrow.ProducerCode = Trimall(StrReplace(record.Fields(1).Value,char(160),""));
           If TableWithProducerCodes.FindByValue(newrow.ProducerCode) <> Undefined Then
               Continue;
           EndIf;    
           
           newrow.ItemName = Trimall(record.Fields(2).Value);
           Price = record.Fields(3).Value;
           newrow.Price = number(StrReplace(Price,char(1026),""));
           NewProducerCodeinTable = TableWithProducerCodes.Add(newrow.ProducerCode);
           If Int(counter/50000) = counter/50000 Then
               CommitTransaction();
               BeginTransaction();
           EndIf;    
           record.MoveNext();
       Except    
           Message("Error");
           record.MoveNext();
       EndTry;    
   EndDo;
146 Вопросы Задающий
 
16.06.11
18:08
If TableWithProducerCodes.FindByValue(newrow.ProducerCode) <> Undefined Then
               Continue;
           EndIf;  

вот тут все и тормозит
147 H A D G E H O G s
 
16.06.11
18:08
(145) Xnj pyfxbn ktnftn&
148 H A D G E H O G s
 
16.06.11
18:08
Что значит летает?

У меня, с упрощениями, в такой же по структуре регистр 25000 записей пишется за 10-15 секунд, к примеру.
149 H A D G E H O G s
 
16.06.11
18:11
(146) ВОООТ. Блеать!.
150 H A D G E H O G s
 
16.06.11
18:12
Агрххх.
151 H A D G E H O G s
 
16.06.11
18:12
Таблицу значений с индексированной колонкой!
152 H A D G E H O G s
 
16.06.11
18:13
Чтож ты мозг то насиловал то.
153 H A D G E H O G s
 
16.06.11
18:14
(143) Че такое merge - я понял. Нету - ну и фиг с ним.

Ты дошел до смысла _SimpleKey ?
154 Вопросы Задающий
 
16.06.11
18:14
не ругайся ))
155 Вопросы Задающий
 
16.06.11
18:15
порекомендуй плиз, как это оптимизировать!
156 Serginio1
 
16.06.11
18:16
(146) Я гружу в темп таблицу, если нужно удаляю дубли в ней.
157 Вопросы Задающий
 
16.06.11
18:17
(156) ну загружу я коды в другую таблицу, сверну ее, а потом? я ж не могу по цене сворачивать
158 SUA
 
16.06.11
18:18
(146)замени на поиск по структуре - на порядок быстрее
159 H A D G E H O G s
 
16.06.11
18:18
(157) Удалишь строки, в которых дубли по коду.
Но лучше вместо списка - индексированную таблицу!
160 H A D G E H O G s
 
16.06.11
18:20
(158) Нихрена.
161 Вопросы Задающий
 
16.06.11
18:23
(160) это таблицу значений что ли? не можешь код кусочек скинуть, как бы получше?
162 SUA
 
16.06.11
18:25
(158)
лично проверял
ТЗ ~2000 строк, специально не индексировалась
поиск значения по колонке через НайтиЗначение медленнее чем через НайтиСтроки на порядок
(автоматически индексируется сама - возможно)
163 H A D G E H O G s
 
16.06.11
18:26
(162) Ниче само не индексируется.
164 SUA
 
16.06.11
18:26
проиндексировать колонку конечно еще быстрее
165 Вопросы Задающий
 
16.06.11
18:27
(163) Ежик, подскажи код плииизз ;)
166 Вопросы Задающий
 
16.06.11
18:33
так, добавил ТЗ, в ней намного быстрее идет поиск?
167 Serginio1
 
16.06.11
18:34
(153) До конца не дошел, но по всей верояности это сделано как уникальный ключ, вроде как для обмена нужен но точно не знаю. Уже где то 1.5 года полет нормальный
168 H A D G E H O G s
 
16.06.11
18:35
TableWithProducerCodes=Новый ТаблицаЗначений;
   TableWithProducerCodes.Колонки.Добавить("ProducerCode",Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(20,ДопустимаяДлина.Переменная)));
   TableWithProducerCodes.Индексы.Добавить("ProducerCode");
169 H A D G E H O G s
 
16.06.11
18:36
Это ты создашь таблицу.
В ней и ищи
170 Вопросы Задающий
 
16.06.11
18:36
так и сделал уже! спасибо! ща проверю!
171 Вопросы Задающий
 
16.06.11
18:36
ооо, уже вижу, что летает практически ;)
172 Вопросы Задающий
 
16.06.11
18:37
ща посмотрим за сколько загрузится
173 H A D G E H O G s
 
16.06.11
18:38
(162) НайтиСтроки() работает с индексами тогда, когда точно ВСЕ строки поиска индексированны. Частично - не работает.
174 H A D G E H O G s
 
16.06.11
18:39
(162) Я в курсе, что Структура индексированна, НО!.

Когда у 1С подходит к концу память - начинается жесть. Первые элементы извлекаются мгновенное, конечные - по нескольку минут.

Посмотри на регламентированной отчетности, декларации какие-нибудь строк так на 40000-50000.
175 H A D G E H O G s
 
16.06.11
18:41
(174) Кроме того, очистка ИМЕННО структуры - некорректна, физически память освобождается, но через некоторое время 1С вылетает с out of memory (что 8.1, что 8.2)
176 H A D G E H O G s
 
16.06.11
18:41
Все, я домой.

Ауфтор, пеши есчо!
177 Вопросы Задающий
 
16.06.11
18:42
спасибо тебе!
178 Вопросы Задающий
 
16.06.11
18:42
напишу напишу ))
179 Вопросы Задающий
 
17.06.11
11:10
итог на сейчас - 411.469 штук меньше, чем за 5 минут!!!
180 H A D G E H O G s
 
17.06.11
11:43
(179) Плохо.
Но уже лучше
181 Вопросы Задающий
 
17.06.11
17:50
(180) значительно лучше, я доволен очень ;) спасибо за поддержку. буду писать еще ;)