|
ЗаполнитьЗначенияСвойств ускорить можно? | ☑ | ||
---|---|---|---|---|
0
Дтл
21.11.13
✎
13:37
|
ЗаполнитьЗначенияСвойств быстрее будет если на присвоения свойств переписать или ещё как?
|
|||
2
Дтл
21.11.13
✎
13:42
|
(1)да
|
|||
3
acsent
21.11.13
✎
13:42
|
(2) Пруф
|
|||
4
Дтл
21.11.13
✎
13:45
|
(3)что?
|
|||
5
acsent
21.11.13
✎
13:46
|
(4) Что что?
|
|||
6
Дтл
21.11.13
✎
13:47
|
(5)что значит "пруф" здесь?
|
|||
7
1dvd
21.11.13
✎
13:48
|
||||
8
1dvd
21.11.13
✎
13:48
|
(6) это значит "доказательство"
|
|||
9
sanja26
21.11.13
✎
13:49
|
||||
10
H A D G E H O G s
21.11.13
✎
13:53
|
Ну тормозит, но это пфффф, мелочи. Забей.
|
|||
11
WildSery
21.11.13
✎
13:56
|
(0) Да, будет быстрее.
Нет, сильно не тормозит. |
|||
12
Дтл
21.11.13
✎
15:36
|
(11)раз в 10 ?
|
|||
13
Бешеная Нога
21.11.13
✎
15:37
|
интересно как же оно тормозит. сколько выполняется ЗаполнитьЗначенияСвойств?
|
|||
14
Лефмихалыч
21.11.13
✎
15:38
|
(0) откуда уверенность, что тормозит именно этот вызов? Замер производительности есть?
|
|||
15
Euguln
21.11.13
✎
15:38
|
(0) Используй третий и четвертый параметры.
|
|||
16
Дтл
21.11.13
✎
15:40
|
(15)если третий используется имеет смысл четвертый?
(13)да много и дольше всего (14)да |
|||
17
Maxus43
21.11.13
✎
15:41
|
(16) код в студию + показания замера, это лёгкая операция, что-то не то у вас в коде
|
|||
18
Дтл
21.11.13
✎
15:43
|
(17)хорошо как дойдет до этого в очередной раз - выложу и показания
|
|||
19
Бешеная Нога
21.11.13
✎
15:44
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, ПолучитьЗначенияДляЗаполненияПослеПроведенияРСВЗаПоследнийГод());
|
|||
20
Бешеная Нога
21.11.13
✎
15:44
|
не?
|
|||
21
Дтл
21.11.13
✎
15:53
|
(20)может и это тоже но я видел в ут11 место где там подряд два заполнения идут при формировании движений по партиям товаров и ндс. померять у меня ума хватило. там на интервале в несколько десятков минут это самые долгие операции. просто интересно если кто уже заменял на присвоение значения сколько это времени сократило и зависит ли от типов. сам это всё равно попробую позднее если только технически всё станет по двум месяцам и останутся вопросы скорости для остального периода.
|
|||
22
Maxus43
21.11.13
✎
15:54
|
(21) Это операция ОЧЕНЬ лёгкая, значит проблема не в ней, а в получении данных для заполнения
|
|||
23
Дтл
21.11.13
✎
15:55
|
(22)это ОЧЕНЬ тонкий намек )))
куда копать? |
|||
24
Maxus43
21.11.13
✎
15:56
|
Код покажи, хватит гадать на кофейной гуще, тут не Хогвардс
|
|||
25
Darth Anyan
21.11.13
✎
16:04
|
ПолучитьЗначенияДляЗаполненияПослеПроведенияРСВЗаПоследнийГод()
может, вот эта функция время отъедает? Или есть возможность ее вообще выполнить 1 раз и закэшировать результат куда-нибудь? |
|||
26
Maxus43
21.11.13
✎
16:06
|
(25) мы не знаем что там за код, это не от автора, это попытка телепатии была
|
|||
27
Дтл
21.11.13
✎
17:03
|
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 405 ЗаполнитьЗначенияСвойств(ЗаписьНабора, СтрокаОстатка,, "Количество, Стоимость, СтоимостьБезНДС, СтоимостьРегл, НДСРегл"); 6 4,668468 62,69
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 406 ЗаполнитьЗначенияСвойств(ЗаписьНабора, Расход, "Период, Регистратор, СтатьяПотребления, АналитикаПотребления, ДокументРеализации, ЭтоВозврат"); 5 0,935035 12,56 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 399 Остаток.Стоимость = 0; 5 0,156804 2,11 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 402 Остаток.НДСРегл = 0; 5 0,155993 2,09 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 400 Остаток.СтоимостьБезНДС = 0; 5 0,155908 2,09 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 401 Остаток.СтоимостьРегл = 0; 5 0,155809 2,09 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 408 ЗаписьНабора.ВидДвижения = Расход.ВидДвижения; 5 0,136740 1,84 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 409 ЗаписьНабора.МоментВремени = Новый МоментВремени(Расход.Период, Расход.Регистратор); 5 0,109337 1,47 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 410 ЗаписьНабора.ИсходноеКоличество = РаспределенныйРасход.Количество; 5 0,109290 1,47 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 413 ЗаписьНабора.ИсходнаяСтоимостьРегл = РаспределенныйРасход.СтоимостьРегл; 5 0,109039 1,46 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 411 ЗаписьНабора.ИсходнаяСтоимость = РаспределенныйРасход.Стоимость; 5 0,108970 1,46 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 412 ЗаписьНабора.ИсходнаяСтоимостьБезНДС = РаспределенныйРасход.СтоимостьБезНДС; 5 0,108936 1,46 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 414 ЗаписьНабора.ИсходныйНДСРегл = РаспределенныйРасход.НДСРегл; 5 0,108907 1,46 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 416 ЗаписьНабора.ЗаписьВРегистр = Истина; 5 0,108587 1,46 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 398 Остаток.Количество = 0; 5 0,076558 1,03 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 326 Остатки.Индексы.Добавить("Номенклатура"); 6 0,022402 0,30 |
|||
28
Дтл
21.11.13
✎
17:04
|
Процедура ПодобратьОстатки(Остатки, Расход, ОтборОстатков, ТаблицаОстатковПоАналитикеОтсортированная, ТребуетсяРаспределение, КорректировкаТаблицы)
ЗаполнитьЗначенияСвойств(ОтборОстатков, Расход, "ДокументПоступления, АналитикаУчетаНоменклатуры"); СформироватьТаблицуОстатковПоАналитикеОтсортированную(Остатки, ОтборОстатков, ТаблицаОстатковПоАналитикеОтсортированная, "Период Возр, МоментВремени Возр"); РаспределенныйРасход = СтруктураРасхода(); Если ТипЗнч(Расход.Регистратор) = Тип("ДокументСсылка.РеализацияТоваровУслуг") ИЛИ ТипЗнч(Расход.Регистратор) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах") Тогда МассивРеализаций = Новый Массив(); Иначе МассивРеализаций = Неопределено КонецЕсли; Если ТаблицаОстатковПоАналитикеОтсортированная.Количество() <> 0 Тогда КоличествоКРаспределению = Расход.Количество; ИсходноеКоличество = КоличествоКРаспределению; ДокументПоступленияРасходов = ТаблицаОстатковПоАналитикеОтсортированная[0].СтрокаОстатка.ДокументПоступленияРасходов; Для Каждого СтрокаТЗ Из ТаблицаОстатковПоАналитикеОтсортированная Цикл СтрокаОстатка = СтрокаТЗ.СтрокаОстатка; Если ДокументПоступленияРасходов <> СтрокаОстатка.ДокументПоступленияРасходов Тогда КоличествоКРаспределению = ИсходноеКоличество; КонецЕсли; Если КоличествоКРаспределению <= 0 Тогда Если КорректировкаТаблицы Тогда Остатки.Удалить(Расход); КонецЕсли; Прервать; КонецЕсли; Если СтрокаОстатка.Количество > 0 Тогда РаспределитьСуммы(СтрокаОстатка, РаспределенныйРасход, КоличествоКРаспределению); ЗаписьНабора = Остатки.Добавить(); ЗаполнитьЗначенияСвойств(ЗаписьНабора, СтрокаОстатка,, "Количество, Стоимость, СтоимостьБезНДС, СтоимостьРегл, НДСРегл"); ЗаполнитьЗначенияСвойств(ЗаписьНабора, Расход, "Период, Регистратор, СтатьяПотребления, АналитикаПотребления, ДокументРеализации, ЭтоВозврат"); ЗаписьНабора.ВидДвижения = Расход.ВидДвижения; ЗаписьНабора.МоментВремени = Новый МоментВремени(Расход.Период, Расход.Регистратор); ЗаписьНабора.ИсходноеКоличество = РаспределенныйРасход.Количество; ЗаписьНабора.ИсходнаяСтоимость = РаспределенныйРасход.Стоимость; ЗаписьНабора.ИсходнаяСтоимостьБезНДС = РаспределенныйРасход.СтоимостьБезНДС; ЗаписьНабора.ИсходнаяСтоимостьРегл = РаспределенныйРасход.СтоимостьРегл; ЗаписьНабора.ИсходныйНДСРегл = РаспределенныйРасход.НДСРегл; ЗаписьНабора.ЗаписьВРегистр = Истина; Если МассивРеализаций <> Неопределено Тогда МассивРеализаций.Добавить(ЗаписьНабора); КонецЕсли; Если ЗначениеЗаполнено(Расход.КорАналитикаУчетаНоменклатуры) Тогда ЗаписьПеремещения = Остатки.Добавить(); ЗаполнитьЗначенияСвойств(ЗаписьПеремещения, ЗаписьНабора); ЗаполнитьЗначенияСвойств(ЗаписьПеремещения, РаспределенныйРасход); ЗаписьПеремещения.ВидДвижения = ВидДвиженияНакопления.Приход; ЗаписьПеремещения.ВидЗапасов = Расход.КорВидЗапасов; ЗаписьПеремещения.АналитикаУчетаНоменклатуры = Расход.КорАналитикаУчетаНоменклатуры; ЗаписьПеремещения.АналитикаУчетаПартий = Расход.КорАналитикаУчетаПартий; ЗаписьПеремещения.ДокументПоступления = Расход.КорДокументПоступления; ЗаписьПеремещения.Организация = Расход.КорОрганизация; ЗаписьПеремещения.НалогообложениеНДС = Расход.КорНалогообложениеНДС; Если ТипЗнч(ЗаписьПеремещения.Регистратор) = Тип("ДокументСсылка.СборкаТоваров") Тогда ЗаписьПеремещения.Количество = Расход.КорКоличество; ЗаписьПеремещения.ИсходноеКоличество = Расход.КорКоличество; Иначе ЗаписьПеремещения.Количество = РаспределенныйРасход.Количество; КонецЕсли; Если ЗначениеЗаполнено(ЗаписьПеремещения.АналитикаУчетаПартий) Тогда ОпределитьАналитикуУчетаПартий(ЗаписьНабора, ЗаписьПеремещения, Истина, ЗаписьПеремещения.АналитикаУчетаПартий); КонецЕсли; Если ТипЗнч(ЗаписьПеремещения.Регистратор) = Тип("ДокументСсылка.ПередачаТоваровМеждуОрганизациями") Тогда ЗаписьПеремещения.СтоимостьРегл = 0; ЗаписьПеремещения.НДСРегл = 0; ЗаписьПеремещения.ИсходнаяСтоимостьРегл = 0; ЗаписьПеремещения.ИсходныйНДСРегл = 0; КонецЕсли; КонецЕсли; Если КорректировкаТаблицы Тогда Расход.Количество = КоличествоКРаспределению; КонецЕсли; ТребуетсяРаспределение = Истина; КонецЕсли; КонецЦикла; Если КоличествоКРаспределению > 0 И НЕ КорректировкаТаблицы Тогда ЗаписьНабора = Остатки.Добавить(); ЗаполнитьЗначенияСвойств(ЗаписьНабора, Расход); ЗаписьНабора.Количество = КоличествоКРаспределению; ЗаписьНабора.ВидДвижения = ВидДвиженияНакопления.Расход; ЗаписьНабора.Распределено = Ложь; КонецЕсли; Иначе Если НЕ КорректировкаТаблицы Тогда ЗаписьНабора = Остатки.Добавить(); ЗаполнитьЗначенияСвойств(ЗаписьНабора, Расход); ЗаписьНабора.ВидДвижения = ВидДвиженияНакопления.Расход; ЗаписьНабора.Распределено = Ложь; КонецЕсли; КонецЕсли; // Указание партий для документов возврата по данному документу реализации Если МассивРеализаций <> Неопределено И НЕ КорректировкаТаблицы Тогда Счетчик = МассивРеализаций.Количество(); Пока Счетчик > 0 Цикл СкорректироватьВозвраты(Остатки, МассивРеализаций[Счетчик-1]); Счетчик = Счетчик - 1; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
29
Dmitry1c
21.11.13
✎
17:07
|
Дтл - это слово без единой гласной буквы?
|
|||
30
Дтл
22.11.13
✎
11:32
|
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 412 ЗаписьНабора.СтоимостьБезНДС = СтрокаОстатка.СтоимостьБезНДС; 5 0,885091 3,65
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 433 ЗаписьНабора.ИсходныйНДСРегл = РаспределенныйРасход.НДСРегл; 5 0,895292 3,69 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 432 ЗаписьНабора.ИсходнаяСтоимостьРегл = РаспределенныйРасход.СтоимостьРегл; 5 0,910266 3,75 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 431 ЗаписьНабора.ИсходнаяСтоимостьБезНДС = РаспределенныйРасход.СтоимостьБезНДС; 5 0,958894 3,95 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 430 ЗаписьНабора.ИсходнаяСтоимость = РаспределенныйРасход.Стоимость; 5 0,965688 3,98 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 412 Остаток.Количество = Остаток.Количество - РаспределяемоеКоличество; 4 1,389572 5,73 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 416 Остаток.НДСРегл = Остаток.НДСРегл - Расход.НДСРегл; 4 1,422046 5,86 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 415 Остаток.СтоимостьРегл = Остаток.СтоимостьРегл - Расход.СтоимостьРегл; 4 1,533459 6,32 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 413 Остаток.Стоимость = Остаток.Стоимость - Расход.Стоимость; 4 1,608745 6,63 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; 4 1,621341 6,68 как-то можно ускорить или может быть переписать сами расчеты? кто-нибудь делал? |
|||
31
Дтл
22.11.13
✎
11:34
|
точнее вот это
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; 1 0,443816 6,32 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 415 Остаток.СтоимостьРегл = Остаток.СтоимостьРегл - Расход.СтоимостьРегл; 1 0,449871 6,41 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 412 Остаток.Количество = Остаток.Количество - РаспределяемоеКоличество; 1 0,459970 6,55 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 413 Остаток.Стоимость = Остаток.Стоимость - Расход.Стоимость; 1 0,507228 7,23 |
|||
32
hhhh
22.11.13
✎
11:36
|
что-то гоните. Ну не может
Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС выполняться полсекунды. |
|||
33
H A D G E H O G s
22.11.13
✎
11:43
|
(31) Давай я подключусь к тебе, гляну на кот и вылечу разрыв шаблона у участников этого форума и тебя в частности.
|
|||
34
acsent
22.11.13
✎
11:44
|
(32) Может это 386?
|
|||
35
Дтл
22.11.13
✎
11:45
|
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; 5 2,487962 7,31
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 415 Остаток.СтоимостьРегл = Остаток.СтоимостьРегл - Расход.СтоимостьРегл; 5 2,577914 7,57 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 416 Остаток.НДСРегл = Остаток.НДСРегл - Расход.НДСРегл; 5 2,606330 7,66 |
|||
36
Дтл
22.11.13
✎
11:46
|
(32)через точку...
|
|||
37
Maxus43
22.11.13
✎
11:47
|
не могут такие простые операции столько выполнятся, ересь, ересь!
|
|||
38
H A D G E H O G s
22.11.13
✎
11:49
|
(36) Че там? Документ штоле?
|
|||
39
H A D G E H O G s
22.11.13
✎
11:49
|
(37) см (36) Может там ссылочный тип.
|
|||
40
Дтл
22.11.13
✎
11:49
|
а вот с птичкой типа галочка )))
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; 1 0,504089 16,37 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 415 Остаток.СтоимостьРегл = Остаток.СтоимостьРегл - Расход.СтоимостьРегл; 1 0,549160 17,84 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 416 Остаток.НДСРегл = Остаток.НДСРегл - Расход.НДСРегл; 1 0,564748 18,34 ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 402 РаспределитьСуммы(СтрокаОстатка, РаспределенныйРасход, КоличествоКРаспределению); 1 2,285134 74,22 |
|||
41
acsent
22.11.13
✎
11:49
|
Я понял, он биткойны на сервере 1с майнит
|
|||
42
acsent
22.11.13
✎
11:51
|
(38) Думаешь Остаток - это документ с 100000 строк?
|
|||
43
Maxus43
22.11.13
✎
11:51
|
(39) зело подозрительно и если это так - надо вручить медаль автору сего кода
|
|||
44
GANR
22.11.13
✎
11:51
|
(0) По логике вещей, если не указать процедуре заполняемые колонки - это будет по сути вложенный цикл по полям того и другого объекта с поиском одноименных. Возможно, не надо переписывать на присвоение, а просто в 3 параметре процедуры ЗаполнитьЗначенияСвойств указать колонки - и все.
|
|||
45
H A D G E H O G s
22.11.13
✎
11:53
|
(43) Мы это обсудим сегодня с 19 по 21 вечера.
|
|||
46
Дтл
22.11.13
✎
11:53
|
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 402 РаспределитьСуммы(СтрокаОстатка, РаспределенныйРасход, КоличествоКРаспределению); 2 2,940640 28,39
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 416 Остаток.НДСРегл = Остаток.НДСРегл - Расход.НДСРегл; 1 0,664850 6,42 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; 1 0,591796 5,71 |
|||
47
Дтл
22.11.13
✎
11:54
|
к (46) вот с птичкой, (40) ошибка буфера
|
|||
48
Maxus43
22.11.13
✎
11:58
|
(45) чойто по 21 вечера? рановато баиньки ещё
|
|||
49
kiruha
22.11.13
✎
11:58
|
(0)
Да, я переписывал Зависит от структуры источника/приемника Для 2 таблиц зн-й КолонкиИсточника=ТаблицаДанныхВрем.Колонки; Для Каждого Колонка Из ТаблицаКолонки Цикл Если КолонкиИсточника.Найти(Колонка.Имя)=Неопределено Тогда продолжить; КонецЕсли; МассивВыгрузки=ТаблицаДанныхВрем.ВыгрузитьКолонку(Колонка.Имя); ТаблицаДанных.ЗагрузитьКолонку(МассивВыгрузки,Колонка.Имя); КонецЦикла; далее удаляешь строки которые не подходят, заполняешь вычисляемые столбцы Загрузка в набор или еще куда нужно |
|||
50
Maxus43
22.11.13
✎
11:59
|
(47) ты раскроешь нам важную военную тайну? ТИП какой у остаток и Расход?
|
|||
51
Дтл
22.11.13
✎
12:00
|
строка таблицы значений и структура
|
|||
52
Дтл
22.11.13
✎
12:02
|
(49)спасибо, а это быстрее чем через присвоение свойств, присвоение кстати быстрее
|
|||
53
Дтл
22.11.13
✎
12:02
|
(49)к (52)?
|
|||
54
hhhh
22.11.13
✎
12:04
|
(50) всё равно, даже если и ссылка,
Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; выполняется 0,44, объект загружается в память, затем вторая строка Остаток.СтоимостьРегл = Остаток.СтоимостьРегл - Расход.СтоимостьРегл; должна быть 0 секунд. Потому что объект уже в кеше. |
|||
55
Дтл
22.11.13
✎
12:08
|
проц там E31270 3,4
|
|||
56
Дтл
22.11.13
✎
12:15
|
закончилось всё тем что вывалилась сессия по ошибке (забыл скопипастить но что-то там с POS ошибкой доступа к серверу) и на январе появилась зелёная галочка, есть подозрение что после расчета себестоимости сервер ушел в глюки которые я и ловил замером
|
|||
57
kiruha
22.11.13
✎
12:56
|
(52)
Примерно на 2 порядка быстрее для больших таблиц Но вот для "склейки" 2 таблиц значений методов не нашел |
|||
58
WildSery
22.11.13
✎
14:11
|
(57) Что такое "склейка 2 тз"?
|
|||
59
kiruha
22.11.13
✎
15:07
|
Это когда надо 2 ТЗ одинаковой структуры объединить в одну таблицу
|
|||
60
WildSery
22.11.13
✎
17:50
|
(59) А можно поинтересоваться, в какой задаче потребовалось объединять две ТЗ с большим объёмом данных?
|
|||
61
Дтл
23.11.13
✎
09:39
|
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 416 Остаток.НДСРегл = Остаток.НДСРегл - Расход.НДСРегл; 2 3,592637 13,50
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС - Расход.СтоимостьБезНДС; 1 1,829030 6,87 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 415 Остаток.СтоимостьРегл = Остаток.СтоимостьРегл - Расход.СтоимостьРегл; 1 1,812970 6,81 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 413 Остаток.Стоимость = Остаток.Стоимость - Расход.Стоимость; 1 1,746088 6,56 шоу продолжается... что вот в таком коде можно ещё местами переставить чтобы он заработал? сначала переменным присвоить значения полей а потом вычесть? |
|||
62
Дтл
23.11.13
✎
09:49
|
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 430 ЗаписьНабора.ИсходнаяСтоимость = РаспределенныйРасход.Стоимость; 1 0,598319 6,01
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 398 Остаток.Количество = 0; 1 2,119650 21,30 ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 399 Остаток.Стоимость = 0; 1 2,130822 21,41 может у нас учебная версия стоит? |
|||
63
Дтл
23.11.13
✎
09:52
|
rphost отожрал больше 11 гигов...
|
|||
64
Дтл
24.11.13
✎
14:56
|
короче после 21 гига я остановил это безумие. кто-то может подсказать куда копать в расчете себестоимости чтобы как-то частями это сделать или принудительно память заставить освобождать если есть утечка? кстати последняя платформа стабильна?
|
|||
65
kiruha
24.11.13
✎
16:05
|
Ищи утечку памяти - циклические ссылки, созднание обработок, активные транзакции , экспортные переменные
|
|||
66
КонецЦикла
24.11.13
✎
16:06
|
В снеговике все тормозит, все
Это система для ларьков с понтами |
|||
67
КонецЦикла
24.11.13
✎
16:07
|
И уепано закрученные типовые еще усугубляют это торможение
|
|||
68
Лефмихалыч
24.11.13
✎
16:24
|
(27) переменные ЗаписьНабора, СтрокаОстатка и Расход - это что? Какой тип в них?
|
|||
69
Дтл
24.11.13
✎
17:58
|
(68)см. (51) а "ЗаписьНабора" наверное можно и не смотреть )))
(65)методологически верное предложение но практически такой совет малопригоден ))) |
|||
70
Дтл
24.11.13
✎
17:58
|
(67)и что делать?
|
|||
71
КонецЦикла
24.11.13
✎
18:38
|
(70) Для оперативного учета использовать семерку или не 1С
|
|||
72
Лефмихалыч
24.11.13
✎
18:40
|
(70) не слушать нытье клюшководов
(69) тут или ты что-то недоговариваешь, или проблема в конкретной конфе, конкретном сервере, конкретном чем-то еще, что у тебя там живет. |
|||
73
КонецЦикла
24.11.13
✎
19:31
|
(72) Какое еще нытье :)
Если ты записывал какой-нить "набор записей", то должен быть в теме :) |
|||
74
Лефмихалыч
24.11.13
✎
19:32
|
(73) в теме чего? Что он удаляется по одной записи?
|
|||
75
КонецЦикла
24.11.13
✎
19:35
|
(74) Он плохо удаляется, плохо записывается и плохо работают отборы :)
Я хочу раз в 100 быстрее... и это возможно если сделать работу с БД не через ЖПО (хотя бы не в файловом варианте) |
|||
76
hhhh
24.11.13
✎
19:37
|
(75) это клюшечники не догнали пока. Набор записей записывается за сотые доли миллисекунды.
|
|||
77
КонецЦикла
24.11.13
✎
19:41
|
(76) Епать...
ОК, будем копать глубже А есть пример для много-много записей, мне нужно проапдейтить тупо одно поле (поставить ложь где была истина)? |
|||
78
Дтл
24.11.13
✎
19:41
|
(72)а что недоговаривать... пример один приведу только. предшественники когда их попросили развернутое сальдо убрать написали обработку которая вводит корректировку регистров по товарам на складах. учет кое-как (несколько связанных с этим проблем уже решено) вели, а когда себестоимость посчитать понадобилось думали что достаточно кнопку нажать. оказалось нет. и те кто внедрение сопровождал тоже естественно не смогли. я вот теперь сразу все косяки разгребаю. т.е. это не внезапное что-то произошло. это жизнь как говорится )))
|
|||
79
Дтл
24.11.13
✎
19:50
|
так как же быть с утечкой памяти? план конечно есть но может кто подскажет чего ещё?
|
|||
80
Дтл
25.11.13
✎
08:51
|
Up
|
|||
81
vvp91
25.11.13
✎
10:00
|
> (80) Up
Скажи номер версии конфигурации. И, как обычно, обновись до последней вышедшей. В использовании ЗаполнитьЗначенияСвойств и присвоениях в этом коде проблемы нет. Проблемы там в куче других мест, например в множественном применении НайтиСтроки по таблицам значений. Или в том, что таблицы значений там по сотне колонок. Странно, что именно этих проблем ты не заметил, а зациклился на присвоениях. |
|||
82
Дтл
25.11.13
✎
10:03
|
(81)я заметил то что показал замер
|
|||
83
vvp91
25.11.13
✎
10:07
|
> (81)я заметил то что показал замер
Плохо заметил. Точнее - плохо замерял. Замерять надо от точки входа в модуль - ВыполнитьРегламентноеФормированиеДвиженийПоПартиямТоваров. |
|||
84
kiruha
25.11.13
✎
10:34
|
(69)
Я искал утечки памяти и вполне успешно. Процесс трудоемкий но вполне есть практические методы. а) Поиск незакрытых транзакций В отладчике переодически наблюдаешь состояние функции ТранзакцияАктивна() естественно в тех местах где транзакции не должно быть б) Там же наблюдаешь состояние экспортных переменных - количество элементов и вложенные уровни в) Поиск обработки создать и количество их вызовов г) Циклич ссылки самое сложное Отключаешь участки кода и отслеживаешь разрастание памяти Например партионное проведение |
|||
85
Дтл
25.11.13
✎
13:31
|
64 бита или 32 на сервере 1С что-то изменят?
|
|||
86
vvp91
25.11.13
✎
13:37
|
>> (85) 64 бита или 32 на сервере 1С что-то изменят?
Это вряд ли. |
|||
87
mikeA
25.11.13
✎
13:58
|
(85) судя по тому, что "rphost отожрал больше 11 гигов..." там уже 64 бита. на 32 битах он бы на 3 - 3.5 гигах свалился
|
|||
88
acsent
25.11.13
✎
14:03
|
(84) вообщето тех журнал умеет инфу по утечкам собирать
|
|||
89
kiruha
25.11.13
✎
15:27
|
(88)
А как по простому не подскажешь ? Я искал по (84) - выяснил что ЗапросРезультат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией) вызывал утечку. Не знаю что там нареализовали . Платформа 8.2.18 |
|||
90
Дтл
25.11.13
✎
17:02
|
(89)а обход?
|
|||
91
Дтл
25.11.13
✎
17:04
|
(89)вообще не удивительно. там сейчас кажется нет такого есть выполнить а потом обход выборок по группировкам
|
|||
92
МихаилМ
25.11.13
✎
19:30
|
(57) kiruha
"Но вот для "склейки" 2 таблиц значений методов не нашел" создайте пустую колонку тз с колвом строк равным 1тз+ 2 тз поколоночно перенесите данные первой таблицы удалите пустую колонку отсортируте по непустой колонке, чтобы первая таблица оказалась внизу поколоночно перенесите данные второй таблицы создать пустую колонку быстрей чем через добавить можно используя для построителя запросов область тч с нужным колвом строк |
|||
93
kiruha
26.11.13
✎
00:17
|
(92)
Хм, интересно - надо поэксперементировать |
|||
94
Steel_Wheel
26.11.13
✎
00:20
|
(0)
1) Писать напрямую, в виде Объект[Свойство] = МоеЗначений должно быстрее быть -- никто не знает, как ЗаполнитьЗначенияСвойств отыскивает совпадающие свойства 2) Еще, у метода ЗаполнитьЗначенияСвойств есть параметры, в котором передается список заполняемых/пропускаемых свойств. Попробуй поиграться с ними |
|||
95
kiruha
26.11.13
✎
13:12
|
(92)
Вообщем пока не взлетел каменный цветок. Основная проблема - сформировать ТЗ заданного размера. Например путсую ТЗ на 10 000 строк. Можно конечно к регистру запрос - ВЫБРАТЬ ПЕРВЫЕ 10000 0 КАК Столбец ИЗ ... но так не универсально ( При использовании Добавить или Вставить - на добавление уходит много времени и суммарные выигрыш только 30% |
|||
96
kiruha
26.11.13
✎
14:32
|
(92)
Все взлетело - нетривиально ) Огромное спасибо! |
|||
97
МихаилМ
26.11.13
✎
16:37
|
(96)
я Вас возможно обманул: тк идею проверял в режиме отладки. без режима отладки добавить() работает примерно с такой же скоротью. проверялось на 500000 строк |
|||
98
ASU_Diamond
26.11.13
✎
16:53
|
заменяли ЗаполнитьЗначенияСвойств на непосредственное заполнение в колонки ТЗ. Количество колонок в таблицах было порядка 20, из них 3 числовых. Количество строк в ТЗ порядка 100 к. Прирост получился 30%
|
|||
99
kiruha
26.11.13
✎
16:57
|
(97)
Не все правильно, но испортил метод сортировать. На него ушла львиная доля. Добавление индекса не спасло. Итоговый прирост 30-50% Что недостаточно хорошо чтобы широко использовать |
|||
100
kiruha
26.11.13
✎
16:58
|
(98)
Да аналогичный результат |
|||
101
Дтл
30.11.13
✎
15:50
|
короче ускорить в несколько раз уже получилось но январь считает с часу ночи до сих пор (((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |