7.7 тис тормозит при интенсивной работе.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем sergey484, 12 май 2011.

  1. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ну если при припереносе в табличную часть из подбора БОЛЬШОГО количества элементов тормоза.... это нормально (там тоже есть что оптимизировать)....

    Кстати вы железо давно тестили? С HD все ок?
  2. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    В том то и дело что бывает затык на 10 строчках, тут же перебиваешь эту накладную, все проходит ок.


    сервер новый, поставили буквально 10 дней назад, раньше я грешил на железо, сейчас уж скажем так язык не поворачивается....
    дело где-то в коде...
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Нужно вдумчиво изучить глПересчетТаблЧасти (из нее много что вызывается). При переносе подбора в т.часть документа - она главная
  4. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    При переносе из подбора, данная процедура вызывается по колнке "цена", из этого всего хозяйства
    Код:
    Конт.Сумма = Конт.Цена*Конт.Количество*Конт.Коэффициент-ПроцентСкидки/100*Конт.Цена*Конт.Количество*Конт.Коэффициент;
    Если ЕстьНП = 1 Тогда
    глРасчетНалога(Конт,"НП");
    КонецЕсли;
    Если ЕстьНДС = 1 Тогда
    глРасчетНалога(Конт,"НДС");
    КонецЕсли;
    
    // Если есть розничная цена, то расчитаем ее из наценки розничного типа цены
    Если (глЕстьРеквизитМнЧ("РозничнаяЦена", Конт.Вид()) = 1) И (глЕстьРеквизитМнЧ("РозничнаяНаценка", Конт.Вид()) = 1) Тогда
    
    // Пересчитаем и округлим розничную цену            
    Конт.РозничнаяЦена = глРасчитатьРозничнуюЦенуВДокументе(Конт, Конт.Цена, Конт.РозничнаяНаценка, 
    ЕстьНДС, СтавкаНДСТМЦ, СтавкаНДСКонт, 
    ЕстьНП, СтавкаНПТМЦ, СтавкаНПКонт);
    
    КонецЕсли;
    
    выполняется только это

    Код:
    Конт.Сумма = Конт.Цена*Конт.Количество*Конт.Коэффициент-ПроцентСкидки/100*Конт.Цена*Конт.Количество*Конт.Коэффициент;
    
    
    т.к нп и ндс не используются, и еквизитов "розничная цена" и "рознична наценка" нет
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Код:
    Процедура ОбработкаПодбора(ВыбЗнач, КонтФормыПодбора)
    
    // есть ставки налогов, есть скидка
    глОбработкаПодбора(Контекст, ВыбЗнач, 1, 1, 1);
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    глПересчетТаблЧасти(Контекст,"Номенклатура");
    цена=0;сумма=0;
    ед=единица;
    глПересчетТаблЧасти(Контекст,"ТипЦены");
    единица=ед;
    глПересчетТаблЧасти(Контекст,"Единица");
    глПересчетТаблЧасти(Контекст,"Цена");
    КонецЦикла;	
    
    КонецПроцедуры // ОбработкаПодбора()
    
    
  6. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    У меня такая,
    Код:
    Процедура ОбработкаПодбора(ВыбЗнач, КонтФормыПодбора)
    
    // есть ставки налогов, есть скидка
    глОбработкаПодбора(Контекст, ВыбЗнач, 1, 1, 1);
    
    КонецПроцедуры // ОбработкаПодбора()
    
    
    
    т.е предлагаете из глОбработкаПодбора убрать
    Код:
    глПересчетТаблЧасти
    
    
    и выполнять так?

    Код:
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    глПересчетТаблЧасти(Контекст,"Номенклатура");
    цена=0;сумма=0;
    ед=единица;
    глПересчетТаблЧасти(Контекст,"ТипЦены");
    единица=ед;
    глПересчетТаблЧасти(Контекст,"Единица");
    глПересчетТаблЧасти(Контекст,"Цена");
    КонецЦикла;  
    
    

    а что это даст?
    в чем приемущества?
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Я привел пример СТАНДАРТНОЙ. У вас переделка. Нужен МДшник иначе трудно сказать
  8. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    чтот нехочет прикрепляться, как еще можно Вам его переслать?
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    А паковать пробовали? стукните в аську
  10. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    ок
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Код модуля далек от совершентсва (от стандарта мало что осталось). Оптимизировать можно и нужно
  12. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    Добрый день! В продолжении темы...
    Много чего переработал в подборе, 3 дня пользователи работали нормально, но как выяснилось проблема так и осталась....
    При чем выявилась одна интересная деталь...
    Если пользователи которые наиболее интенсивно работают с 1с, в обед просто пере зайдут в программу, то проблем с зависанием не будет.... Проблемы с зависанием стали проявляться и в других случаях.
    У пользователя открыт документ реализации, подбор, и при всем этом он хочет зайти в Справочники->Номенклатура->открывает элемент справочника, тоже может быть висяк.
    Или сегодня было так. Пользователь набил позиции в подборе, перенес их в документ, провел этот документ, затем решил сформировать печатную форму "ТОРГ-12", тоже завис.... Повисев минуты 3 отвис, решил пере зайти в программу, и при закрытии программы тоже завис... Эту картину наблюдал я лично...

    Складывается такое ощущение что то ли какой то буфер переполняется, то ли еще что... Но проблема эта имеет место...

    В файле быстродействие2 показана загруженность процессора при нормальной работе всех пользователей
    В файле быстродействие1 показана загруженность процессора когда один из пользователей завис.
    В файле процессы показана загруженность процессора когда один из пользователей завис.

    Вложения:

  13. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    sergey484, я наблюдаю за этой темой, помочь к сожалению не могу - идей у меня почему так происходит нет.
    Но такой вопрос: а есть возможность пользователей попробовать не через citrix, а через стандартный rdp? Если при доступе по RDP - проблем не будет, то значит проблема в citrix, и надо будет копать его.
  14. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    Тоже думал...
    Сегодня один из проблемных пользователей как раз работал через стандартный rdp... И тоже подвис:(
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вряд ли так на самом деле. От завершения сеанса ничего не зависит


    Я смотрел вашу конфу - там ничего эксклюзивного в справочнике номенклатур нет. Тем более что открывается форма не для подбора, а просто список.


    Документ закрыли/открыли или просто жмакнули "провести" и потом "печать?

    Не похоже все это на косяки 1с. Уж слишком не характерны. Я бы погрешил на CITRIX или сеть
    У "косячных" пользователей попробовать пропинговать сеть подольше... вдруг да вылезут потерянные пакеты.




    Немного опередили.... А КАК повис? Может подвис сам СЕАНС? Вы это отследили?
  16. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Еще небольшое дополнение - если взять Process Explorer, и на зависшем процессе попробовать посмотреть что он делает (properties-> threads, поле state). Также попробовать открыть stack. Информации то там по сути никакой (для обычного пользователя), но мало ли, может на какие-то предположения наведет, куда (в какой модуль) 1С пытается достучаться.
  17. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    Да, именно так, при чем загруженности процессора была как на картинке "Быстродействие1"

    Этого пользователя не отследил... Пользователи территориально достаточно отдаленно находятся друг от друга...

    Наблюдал за тем что через citrix а там не совсем понятно что подвисло сеанс или 1с...
  18. TopicStarter Overlay
    sergey484
    Offline

    sergey484 Опытный в 1С

    Регистрация:
    14 авг 2007
    Сообщения:
    165
    Симпатии:
    0
    Баллы:
    26
    Может быть это глупость, но....
    Если проблемы с сетью, то мне кажется загруженности процессора не было бы...
  19. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Тоже не факт.. :angry:
    Исходников 1С естественно не видел, но хз что там написали. Если к слову, там бесконечный цикл попытки достучаться до сети с минимальным таймаутом, причем еще и в основной (не фоновой) ветви приложения - вот вам и загрузка проца под 100%.
    Ну эт так, как пример, реально я естественно не знаю.
  20. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ошибаетесь....
    Я бы все же понаблюдал...
    ping ВашСервер /t

    А пользователь вразумительно не может сказать - завис сеагс или 1с (мог он выполнять какие-либо еще действия)

Поделиться этой страницей