Имя: Пароль:
1C
1С v8
Доступ к партнерскому форуму
🠗 (Волшебник 30.05.2013 15:41)
,
0 pers200590
 
28.05.13
05:25
Здравствуйте, форумчане.
У кого есть доступ к партнерскому форуму . Подскажите что пишут насчет зарегистрированной ошибки УТ 111.1.17 и УТ 11.1.2.6.
СППР00008376    
Дата публикации:    21 мая 2013 г.    
Описание:    На некоторых компьютерах при работе с подбором товаров в документы продажи возможно медленное добавление выбранной номенклатуры в список подобранных товаров.

Буду очень благодарен
1 pers200590
 
28.05.13
10:04
?
2 zak555
 
28.05.13
10:04
пишут, чтобы сами исправляли
3 pers200590
 
28.05.13
10:05
так а как самим исправлять в чем там ошибка. Можете помочь?за деньги естественно
4 ДенисЧ
 
28.05.13
10:06
обоги.
возьми замер производительности и посмотри, на чём тормозит.
5 pers200590
 
28.05.13
10:07
ну и допустим вижу на чем тормозит что далее как исправить
6 ДенисЧ
 
28.05.13
10:08
(5) а дальше думаешь, почему это тормозит.
В крайнем случае - приходишь сюда с конкретной строчкой.
7 kiruha
 
28.05.13
10:09
А можно получить доступ к партнерскому, если работа на фикси ?
Лицензии все есть
8 Lama12
 
28.05.13
10:11
(7) Вопрос интересный. Вроде нет.
Иначе бы сам имел туда доступ.
Вся компания белая. :)
9 pers200590
 
28.05.13
10:16
Документ чекККМ ФормаДокументаМастер
строчка    ДобавитьВКорзинуНаСервере(ПараметрыТовара); и строчка там же
НовыеПараметрыТовара = ОткрытьФормуМодально("Документ.ЧекККМ.Форма.ЗапросКоличества", ПараметрыФормы, ЭтаФорма);
10 pers200590
 
28.05.13
10:16
Кто может помочь?
11 pers200590
 
28.05.13
10:28
форумчане?
12 pers200590
 
28.05.13
11:37
откликнитесь
13 pers200590
 
28.05.13
12:02
и как всегда все молчат
14 pers200590
 
28.05.13
12:07
помогите решить проблему
15 IamAlexy
 
28.05.13
12:11
дальше смотри - почему тупит форма при открытии. .какие там при создании выполняются процедуры и функции
16 kiruha
 
28.05.13
12:43
(14)
Слушай, ты привел ошибку по названию функции и формы.

Никто (?) ковыряться в ней бесплатно не будет
Отлови место ошибки внутри - запости - здесь посмотрим
17 kiruha
 
28.05.13
12:44
Отладчиком замером произв по наиболее длинной операции (>70%)
18 pers200590
 
28.05.13
14:12
не могу я отловить место ошибки. замером выяснил только место где наиболее длинное время операции и все
19 pers200590
 
28.05.13
14:22
и тем более не бесплатно
20 pers200590
 
29.05.13
03:14
тема еще актуальна
21 gae
 
29.05.13
06:33
(0) В 11.1.2.6 все еще висит в списке ошибок.
22 pers200590
 
29.05.13
08:33
висит ну а как люди работают
23 pers200590
 
29.05.13
08:55
помогите моему горюж
24 Базис
 
naïve
29.05.13
09:10
Могу не совсем дорого перевести на УТ 10.3 :)
25 pers200590
 
29.05.13
09:11
(24) очень смешно
26 MaxisUssr
 
29.05.13
09:13
(18)
Процедура серверная? Если да - то ты не сможешь зайти отладчиком внутрь нее, если сервер 1С не запущен с ключом "Отладка на сервере разрешена".
27 pers200590
 
29.05.13
09:27
( 26) у нас файловая
28 gae
 
29.05.13
09:30
А вообще пишут, что все плохо
29 pers200590
 
29.05.13
09:31
(28) а по подробнее
30 gae
 
29.05.13
09:46
Что это в том числе и проблемы платформы
31 kiruha
 
29.05.13
09:46
Написали же - отладчиком смотришь где тормозит - выкладываешь здесь кусок кода который долго выполняется
32 pers200590
 
29.05.13
09:58
ну вот замером производительности показало 73,47 на процедуре в документе ЧекККМ. ФормаДОкументаМастер
Процедура ДобавитьВКорзинуНаСервере(ПараметрыТовара)
   
   Отбор = Новый Структура;
   Отбор.Вставить("Номенклатура",   ПараметрыТовара.Номенклатура);
   Отбор.Вставить("Характеристика", ПараметрыТовара.Характеристика);
   Отбор.Вставить("Упаковка",       ПараметрыТовара.Упаковка);
   Отбор.Вставить("Цена",           ПараметрыТовара.Цена);
   
   РезультатПоиска = Объект.Товары.НайтиСтроки(Отбор);
   
   МожноДобавлятьСтроку = Истина;
   
   Если ИспользоватьАссортимент Тогда
       
       СтруктураСостоянияАссортимента = АссортиментСервер.СтруктураСостоянияАссортиментаТовараВФормате(ПараметрыТовара.Номенклатура, Объект.Склад, Объект.Дата);
       
       Если Не СтруктураСостоянияАссортимента.РазрешеныПродажи Тогда
           
           ТекстСообщения = НСтр("ru = 'Товар """ + ПараметрыТовара.Номенклатура + """ не включен в ассортимент или запрещен к продаже.'");
           Сообщить(ТекстСообщения);
           
           МожноДобавлятьСтроку = Ложь;
           
       КонецЕсли;
       
   КонецЕсли;
   
   Если РезультатПоиска.Количество() = 0 Тогда
       
       Если МожноДобавлятьСтроку Тогда
           
           ТекущаяСтрока = Объект.Товары.Добавить();
           
           ЗаполнитьЗначенияСвойств(ТекущаяСтрока, ПараметрыТовара);
           
           СтруктураДействий = Новый Структура;
           
           СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
           СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка);
           СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", Объект.НалогообложениеНДС);
           СтруктураДействий.Вставить("ЗаполнитьПризнакНаличияНоменклатурыПродаваемойСовместно", ПредопределенноеЗначение("Перечисление.ВариантыАнализаНоменклатурыПродаваемойСовместно.РозничнаяТорговля"));
           
           ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий,Объект);
           
       КонецЕсли;
       
   Иначе
       
       ТекущаяСтрока = РезультатПоиска[0];
       
       ТекущаяСтрока.КоличествоУпаковок = ПараметрыТовара.КоличествоУпаковок + ТекущаяСтрока.КоличествоУпаковок;
       
       СтруктураДействий = Новый Структура;
       ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, Объект);
       
   КонецЕсли;
   
   Если ТекущаяСтрока <> Неопределено Тогда
       
       // Активизируем текущую строку табличной части.
       Элементы.Товары.ТекущаяСтрока = ТекущаяСтрока.ПолучитьИдентификатор();
       
       СтрокаДисплеяПокупателя = Строка(ТекущаяСтрока.Номенклатура);
       
       ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, Неопределено);
       НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
       
   КонецЕсли;
   
   ПриИзмененииКорзиныНаСервере();
   
КонецПроцедуры
33 MaxisUssr
 
29.05.13
10:21
(32)
Так на каком конкретно действии в этом методе самое долгое время исполнения?
34 pers200590
 
29.05.13
10:24
(33) цифра 73,47% стояла именно на этой процедуре
35 pers200590
 
29.05.13
10:32
а если быть точнее
Процедура ДобавитьВКорзину(ПараметрыТовара)
   
   Если ТолькоПросмотр Тогда
       Возврат;
   КонецЕсли;
   
   Если ЗапрашиватьКоличество Тогда
       
       ПараметрыФормы = Новый Структура("Номенклатура, Характеристика, ВидЦены, Упаковка, Цена,
       |Дата, Валюта, РедактироватьЦену, РедактироватьВидЦены");
       
       ЗаполнитьЗначенияСвойств(ПараметрыФормы, ПараметрыТовара);
       
       ПараметрыФормы.Дата                 = Объект.Дата;
       ПараметрыФормы.Валюта               = Объект.Валюта;
       ПараметрыФормы.РедактироватьЦену    = Ложь;
       ПараметрыФормы.РедактироватьВидЦены = Ложь;
       
       НовыеПараметрыТовара = ОткрытьФормуМодально("Документ.ЧекККМ.Форма.ЗапросКоличества", ПараметрыФормы, ЭтаФорма);
       
       Если НовыеПараметрыТовара = Неопределено Тогда
           Возврат;
       КонецЕсли;
       
       ЗаполнитьЗначенияСвойств(ПараметрыТовара, НовыеПараметрыТовара);
       
   Иначе
       
       Если ПараметрыТовара.Упаковка.Пустая() Тогда
           ПараметрыТовара.Упаковка = ПодборТоваровВызовСервера.ПолучитьУпаковкуХранения(ПараметрыТовара.Номенклатура);
       КонецЕсли;
       
   КонецЕсли;
   
   ПараметрыТовара.Удалить("ВидЦены");
   
   ДобавитьВКорзинуНаСервере(ПараметрыТовара);
   СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
   ПересчитатьДокументНаКлиенте();
   
   Модифицированность = Истина;
   
   Если ЗначениеЗаполнено(СтрокаПоиска) И
       (Элементы.СтраницыСписокНоменклатуры.ТекущаяСтраница = Элементы.ГруппаНоменклатура) Тогда
       ТекущийЭлемент = Элементы.СтрокаПоиска;
   КонецЕсли;
   
КонецПроцедуры
36 pers200590
 
29.05.13
10:32
строчка ДобавитьВКорзинуНаСервере(ПараметрыТовара);
37 Операция 1Ы
 
29.05.13
10:58
(36) а вот если пойти дальше и еще точнее, посмотрев внимательно внутренности ДобавитьВКорзинуНаСервере(ПараметрыТовара)
38 DailyLookingOnA Sunse
 
29.05.13
11:38
(7),(8)
Да. Можно.
Через приобретение комплекта специалиста. Могут возникнуть дополнительные условия.
39 pers200590
 
29.05.13
11:41
(37) я же их выложил в (32)
40 pers200590
 
29.05.13
13:23
ау
41 pers200590
 
29.05.13
15:20
все же интересно как же люди работаю с этой проблемой
42 kiruha
 
29.05.13
15:52
Так если это ДобавитьВКорзинуНаСервере
так надо место этой процедуры указать тормозящее
43 kiruha
 
29.05.13
15:54
Конкретное место
44 pers200590
 
29.05.13
16:03
(43) так нет там место тормозящего
45 romansun
 
29.05.13
16:03
по приведенным листингам ничо такого нет, но есть вызовы других процедур - нужно смотреть как распределяется время в процедуре ДобавитьВКорзинуНаСервере(), из неё, вероятно, смотреть другие процедуры, и т.д. до тех пор пока не будет найден конечный код, на котором тормозит (какая-либо запись, запрос в цикле и т.п.)

также в (26) написано, что в серверный код вы не попадете без запуска 1С с ключом
46 kiruha
 
29.05.13
17:09
(44)
т.е. 73% равномерно по всем строкам распределяются ?
Там есть еще вызовы других процедур - может туда ?

Тогда в чем торможение - в процедуре в целом ?
47 pers200590
 
30.05.13
11:36
ау форумчане
48 Базис
 
naïve
30.05.13
15:09
Чо "Ау"? Или учиться и вникать, или платить. Советов тебе накидали предостаточно.
49 pers200590
 
30.05.13
15:38
Я уже давно написал "платить" готов
50 DexterMorgan
 
30.05.13
15:43
(49) Ну так замерь процедуру ДобавитьВКорзинуНаСервере(ПараметрыТовара) если остановится опять на процедуре замеряй ее и тд
51 pers200590
 
30.05.13
15:47
(50) делал, обьясни поподробнее
52 DexterMorgan
 
30.05.13
16:42
(51) Замер производительности? На какой строчке наибольший процент?
Основная теорема систематики: Новые системы плодят новые проблемы.