8.х Проблема с зависанием 1С при выполнении обработки

Тема в разделе "Установка платформы "1С:Предприятие 8"", создана пользователем Pilot2903, 22 мар 2012.

  1. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    А
    Жестоко - нет. А по делу я не всегда. У мну тоже весна и шизы обостренье.

    Прах в землю, от праха азот, от азота - корнеплоды. Корнеплоды съешь - потом в туалет. Короче чем был - тем и останусь:)
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    офтоп... uza не жестОко, а жестко
  3. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    перепишите загрузку данных в документ. у меня загрузка прайсов из ексель в 70 000 позиций происходит в десяток секунд. проведение такого документа - полминуты. откуда часы???

    правда я использовал не типовой документ, а создал свой простейший документ, который двигает один регистр сведений цены номенклатуры (а большего от этого документа и ненадо)

    тогда и делить по 5000 документы ненадо. можно одним документом в 100 000 позиций..
  4. TopicStarter Overlay
    Pilot2903
    Offline

    Pilot2903

    Регистрация:
    22 мар 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Уменьшить нельзя т.к. всплывает косяк только на рабочих (больших) объемах.
    Если бы глючили алгоритмы событий-подписок, то зависание всплывало бы регулярно, нет ? И потом, идет вызов проведения документа, он проводится и обработка работает дальше, делая запись в лог, это разве не показатель того что обработчики событий непричем ?

    Типовая конфигурация - требование заказчика, а в типовой такой документ при большом количестве данных - та еще головная боль.
    В загрузке, конечно, не все хорошо с точки зрения оптимизации, но из-за необходимости проверять исходные данные один хрен быстро не выйдет (а и без проверки тоже не шустро, пробовал раньше)
  5. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Время в "часах" конечно настораживает. А причина может быть - неоптимально написанный код.
    Вникать - честно лениво, но на первый взгляд: например для каждой считанной строки вызывается
    Код:
    Если не ЦенаНовая(лНом,лТипЦен,лЦена,ТекущаяДата()) Тогда
    Что там внутри этой функции - не знаю. По названию подозреваю что сравнивается цена в файле с текущей установленной ценой. Но зачем это делать каждый раз при чтении строки? Ведь можно сначала считать тупо все строки в ТЗ, а потом выполнить один запрос к базе данных.

    Аналогично и далее с
    Код:
    МассивСтрок = лТаблЗнач.НайтиСтроки(Отбор);
  6. TopicStarter Overlay
    Pilot2903
    Offline

    Pilot2903

    Регистрация:
    22 мар 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Вот кстати да, тут вы правы, надо будет переделать.

    А по второй строке, как еще искать дубли и избавляться от них ?
    Хотя данную проверку можно вырубить.

    Но вряд ли виснет из-за этого.
  7. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Что логично наталкивает на мысли о неоптимальном коде.

    Иной раз я водки четвертуху выпью - и огурцом. А иной раз 50 грамм - и пополз под куст.
    Как вариант: во время работы программы срабатывает другая программа (а вот например фоновое задание), которая и вступает в конфликт. На мелких партиях вероятность одновременного исполнения программ - меньше (теория игр называца или массового обслуживания - чем больше время обработки запроса, тем выше вероятность возникновения очереди).


    Ну это мне, например понятно и знакомо.
    Потому и говорю отладчик а не переписчик.
    Вы говорите что программа отрабатывает и на точку выхода попадает, а я вот в этом сумлеваюсь.

    Пардон за аналогию, но вот я зашел в туалет. Все дела сделал - да, но говорит ли это о том, что из туалета я вышел? А вот нет! Потому как ноутбук, wi-fi, письмена на освежителе, мысли о вечном.
    Так вот, чтобы точно знать что я начал выходить из туалета - нужно датчик на выходе (внутри туалета поставить). А чтобы понять что из туалета я при этом вышел - нужен еще и датчик на выходе за туалетом (а том мож я в дверях где застрял, опять задумался)

    А сначала считать файл целиком в память, и лишь потом приступить к обработке считанных данных - вариант?
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Опять-таки запросом.
  9. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    а что такое дубли? типа если цена не изменилась, то нефиг записывать?

    я б так сделал:
    1) прочитал бы все в табличную часть документа. записал бы документ. (лень заморачиваться с таблицей значений, когда можно конструктором запросов по табличной части работать)
    2) одним запросом по табличной части документа и по виртуальной таблице срез последних получил бы цены, которые изменились. (через соединение и условие)
    3) запихал бы результат запроса обратно в табличную часть документа.
  10. TopicStarter Overlay
    Pilot2903
    Offline

    Pilot2903

    Регистрация:
    22 мар 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Фоновые - это регламентные ? Если да, то они отключены настройках сервера.

    Последняя исполняемая строка - запись в лог, сомнительно что виснуть будет именно при последней записи в лог. Точнее после записи, т.к. она в файле появляется. А если учесть что во всей обработке таких записей в лог видимо-невидимо, то грешить на нее я бы не стал.


    Тут ситуация во многом еще и теоретическая. Данная проблема до недавнего времени проявлялась редко и была неприоритетной. Но вот остальные вопросы решены, а данный косяк стал вылазить, вот и решаю, притом, что процедуру во время всех доработок не трогал. Опять же проблема, когда я запускаю загрузку у заказчика на сервере, все нормально или почти нормально, а когда человек заказчика на том же сервере (соотв. другой пользователь и т.д.) но в другой базе, то у него 1 из 2 запусков идет с зависанием.

    Я лично грешу на большую таблицу значений, и заменю данный кусок кода. Но не всегда и не везде такое будет возможно, поэтому хотелось бы знать причину, и является ли такое предположение истиной ?
  11. TopicStarter Overlay
    Pilot2903
    Offline

    Pilot2903

    Регистрация:
    22 мар 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Считывать без таблицы значений - это верно так и переделаю, а вот по новым ценам надо проверять, не съест ли перезапись выгоду от одного большого запроса.
  12. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    вот уже выясняется, что так где виснет - это другая база... Пользователь другой - посмотрите права доступа...
  13. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    ну - в первый раз надо только записать документ (думаю это быстро даже на 100 000 строк в табличной части).. проводить документ нужно, когда в табличной части останутся только измененные цены..
  14. TopicStarter Overlay
    Pilot2903
    Offline

    Pilot2903

    Регистрация:
    22 мар 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Нет, делать один большой документ я точно не буду, его же хрен откроешь, даже непроведенный.

    Виснет в обеих, но с разной частотой. Я не админ и влияния на него не имею, все что я могу сделать - сказать представителю заказчика, что это надо посмотреть, что и было сделано когда разница стала очевидной.
  15. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а вы обычный пользователь или программист?
  16. TopicStarter Overlay
    Pilot2903
    Offline

    Pilot2903

    Регистрация:
    22 мар 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Программист
  17. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    тогда действительно отладчик - ваш лучший друг
  18. non1ka
    Offline

    non1ka

    Регистрация:
    18 дек 2009
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    На правах восстановления темы.

    Вопрос так и не решился. В моем случае ошибка идентичная что и у Pilot2903.

    Добрый день.
    Платформа 8.3.5.1443. Модуль собственной разработки.

    Ошибка в следующем, в определенной ситуации (не диагностируемой), после выполнения процедуры &НаСервереБезКонтекста, которая возвращает «массив структур» для дальнейшего заполнения табличной части справочника в момент когда производится отключение от сервера (КонецФункции) и возврат НаКлиента система «мифически» зависает и не передает управление Клиенту. Другими словами система зависает.

    В некоторых справочниках все отлично, в некоторых зависает.

    Что я предпринял:
    1. Вынес все выводы сообщений из процедуры;
    2. Вывел из контекста формы, перенес НаСерверБезКонтекста, ранее заполнял табличную часть в процедуре &НаСервере методом Загрузить();
    3. Установил привилегированный режим.

    Укажите куда копать?

    forum.mista.ru/topic.php?id=733645

    воздержитесь от прямых ссылок
    Последнее редактирование модератором: 13 фев 2015
Похожие темы
  1. Dimka77
    Ответов:
    7
    Просмотров:
    2.784
  2. Dimka77
    Ответов:
    4
    Просмотров:
    1.118
  3. SerzhM
    Ответов:
    9
    Просмотров:
    1.273
  4. Nik02071
    Ответов:
    2
    Просмотров:
    659
  5. A|_E><Ey
    Ответов:
    2
    Просмотров:
    1.100
Загрузка...

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