Имя: Пароль:
1C
1С v8
Как отловить где тормоза?
0 1dvd
 
03.03.14
15:16
Имеется База доработанная УТ для Казахстана. Самопальный План обмена. В ЦИБе всё нормально, а в ПИБе проблема. Создаю нового контрагента, нажимаю ОК (или Запись) база подвисает на несколько минут. При записи нового элемента, записывается ещё пару записей в регистр сведений ЗначенияСвойствОбъектов. Есть основания полагать, что именно на записи в него случаются тормоза. Вроде, проверил все подписки, проходят на ура. Однако, тормозит ужасно. Вся база замирает на несколько минут.

Как отследить что именно тормозит?
1 Господин ПЖ
 
03.03.14
15:18
техжурнал, замер производительности
2 1dvd
 
03.03.14
15:27
(1) на техжурнал у меня прав нет. А как сделать замер производительности на все модули?
3 Господин ПЖ
 
03.03.14
15:28
>А как сделать замер производительности на все модули?

зачем все то?

у тебя при записи "в стеке выполнения" все процедуры дергаются какие есть?
4 ДенисЧ
 
03.03.14
15:29
(2) Если у тебя нет прав на техжурнал, то разбираться с тормозами - не твоя задача.
5 1dvd
 
03.03.14
15:29
(3) У меня всё дело в подписках. и, скорее всего, на РС
6 Господин ПЖ
 
03.03.14
15:30
>У меня всё дело в подписках

да хоть где
7 1dvd
 
03.03.14
15:37
(4) у меня нет прав на диск С, а техжурнал там настраивается, как я понял
8 ДенисЧ
 
03.03.14
15:38
(7) Налево кругом и шагом марш читать документацию до понимания и просветления.
9 Господин ПЖ
 
03.03.14
15:40
(7) 1с-ину от админа запусти...
10 1dvd
 
03.03.14
15:41
(9) а он не обидится?
11 Господин ПЖ
 
03.03.14
15:42
(9) а потом уже в програм файлес обработкой с ИТС лезь
12 х86
 
03.03.14
15:43
(2)правильно что прав нет  )

разверни копию и на копии тренируйся
13 1dvd
 
03.03.14
15:43
нет у меня прав админа, я же программист
14 1dvd
 
03.03.14
15:43
(12) это и есть копия
15 1dvd
 
03.03.14
15:45
Вот чего показал замер производительности
http://savepic.net/4751009.htm

Как я и предпологал
16 1dvd
 
03.03.14
15:48
всё-равно не понятно где тормозит
17 Avganec
 
03.03.14
15:50
(15) а у тебя ничег не висит на запись этого РС?
18 Господин ПЖ
 
03.03.14
15:51
смысл глубинный неподчиненный РС набором записывать в данной ситуации
19 1dvd
 
03.03.14
15:51
(18) там две записи. Лучше так не делать, да?
20 1dvd
 
03.03.14
15:52
(17) в каком смысле "ничего не висит"? подписки есть
21 Avganec
 
03.03.14
15:55
(20) замер подписок проводил?
22 1dvd
 
03.03.14
15:59
(21) это как
23 1dvd
 
03.03.14
15:59
?
24 1dvd
 
03.03.14
16:02
(18) без набора записей не получается - мне надо передать дополнительное свойство в подписку на РС
:(
25 Avganec
 
03.03.14
16:02
(23) в замере по-моему все галки указать
26 Avganec
 
03.03.14
16:03
(24) а если попробовать РС записывать после записи объекта?
27 1dvd
 
03.03.14
16:06
(26) мне нужно отменять запись при определенных условиях
28 1dvd
 
03.03.14
16:06
Господин ПЖ прав. Без набора всё выполняется мгновенно
29 1dvd
 
03.03.14
16:11
отсюда возникает другой вопрос.

Как при записи элемента справочника записать некоторые значения РС по данному элементу и передать в подписку на событие Перед записью РС, некоторые параметры?
30 H A D G E H O G s
 
03.03.14
16:13
(29) Полный текст записи приведи.
31 H A D G E H O G s
 
03.03.14
16:13
Как наборзаписей получаешь
32 H A D G E H O G s
 
03.03.14
16:13
Как отбор ставишь
33 1dvd
 
03.03.14
16:17

Процедура ПриЗаписиПроверкаЗаполненияГКМСправочникиПриЗаписи(Источник, Отказ) Экспорт
    ...
    Если ИмяИсточника = "Контрагенты" Тогда
        ...
            
            МЗ = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
            МЗ.Объект = Источник.Ссылка;
            МЗ.Свойство = СвойствоКодФА;
            МЗ.Значение = КодФАЧисло;
            МЗ.Записать();
            
            ////2014-03-03 ГКМ-КЗ, ШАХОВ:
            //НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
            //НаборЗаписейЗначенияСвойств.ДополнительныеСвойства.Вставить("СозданиеНовогоКонтрагента", Истина);
            //
            //Запись = НаборЗаписейЗначенияСвойств.Добавить();
            //Запись.Объект   = Источник.Ссылка;
            //Запись.Свойство = СвойствоКодФА;
            //Запись.Значение = КодФАЧисло;
                
            Если Не ПроцедурыОбменаДаннымиПоОрганизацииНСИ.ЭтоЦИБилиПИБУправленческогоУчета() Тогда
                
                ПВХ_КаналСбыта = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Канал сбыта");
                КаналСбытаDSD = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("DSD", , , ПВХ_КаналСбыта);
                
                Если КаналСбытаDSD = Неопределено Тогда
                    ВызватьИсключение "Не найден Канал сбыта ""DSD""";
                    Возврат;
                КонецЕсли;
                
                //Запись = НаборЗаписейЗначенияСвойств.Добавить();
                Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
                Запись.ДополнительныеСвойства.Вставить("СозданиеНовогоКонтрагента", Истина);
                Запись.Объект   = Источник.Ссылка;
                Запись.Свойство = Характеристика_КаналСбыта();
                Запись.Значение = КаналСбытаDSD;
                
            КонецЕсли;
            
            //НаборЗаписейЗначенияСвойств.Записать();
        
            
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Процедура ПередЗаписьюПроверкаЗаполненияГКМРегистрыСведенийПередЗаписью(Источник, Отказ, Замещение) Экспорт
    ...
    ИначеЕсли ИмяРегистра = "ЗначенияСвойствОбъектов" Тогда
        ОтборПоКонтрагенту = Источник.Отбор.Найти("Объект");
        Если Не ОтборПоКонтрагенту = Неопределено Тогда
            Если ТипЗнч(ОтборПоКонтрагенту.Значение) = Тип("СправочникСсылка.Контрагенты") Тогда
                Если Не ПроцедурыОбменаДаннымиПоОрганизацииНСИ.ЭтоЦИБилиПИБУправленческогоУчета()
                    И Не (Источник.ДополнительныеСвойства.Свойство("СозданиеНовогоКонтрагента")=Истина) Тогда
                    
                    ХарактеристикаКаналСбыта = Характеристика_КаналСбыта();
                    Для Каждого ЗаписьРегистра Из Источник Цикл
                        Если ЗаписьРегистра.Свойство = ХарактеристикаКаналСбыта Тогда
                            ВызватьИсключение "В ПИБ нельзя изменять свойство ""Канал сбыта""";
                            Возврат;
                        КонецЕсли;
                    КонецЦикла;
                    
                КонецЕсли;
            КонецЕсли;
        Иначе
            Возврат;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
34 1dvd
 
03.03.14
16:20
(32) ты предлагаешь устанавливать отбор для набора записей?
35 H A D G E H O G s
 
03.03.14
16:24
(34) Как код в (33) согласуется с кодов в (15) ?
36 1dvd
 
03.03.14
16:26
(35) я переделал в два различных менеджера записей. В (15) использовался набор записей
37 1dvd
 
03.03.14
16:48
(32) (34) Поставил отбор - всё летает. Спасибо огромное всем
38 H A D G E H O G s
 
03.03.14
17:19
(37) ППЦ
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший