7.7 Как (или чем) отловить предопределенные процедуры (напр. ВводНаОсновании, ВводНового и т.д.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем PSbest, 13 дек 2012.

  1. TopicStarter Overlay
    PSbest
    Offline

    PSbest

    Регистрация:
    15 янв 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    ТиС
    Небольшая предыстория: проводится очень большое кол-во документов в базе в один момент, соотв-но встал вопрос борьбы с транзакциями. Пошел путем замены процедур кнопок Провести, Записать в документе, процедур документов, обработок и глоб.модуля по программному созданию, удалению, распроведению документов, т.е. кароч везде где я могу добраться до процессов блокирующих таблицу 1SJOURN. В моих процедурах используется объект системы mutex1c (ссылку на описание искать не охота, суть в том что действия идут в очереди). Так вот ситуация конечн с транзакциями намного улучшилась, НО есть процедуры которые не знаю как поменять напр. ввод документа на основании из журнала документа, ну или интерактивная отмена проведения документа. Пробовал использовать 1c++ с перехватом событий напр. функцию СобытиеГМ_ВводНового, пробовал Formex с процедурой ПриЗагрузкеМодуляФормы, однако подобные функции все равно запускаются после того как идет попытка заблокировать таблицу журнала документов. Вот отсюда вопрос. как отловить начало предопределенного события так чтобы вставить до исполнения метода свой код?

    Либо...есть ли ВК, способная изменить страндартное меню в журнале док, вызываемое нажатием прав кнопки мыши , на свое?
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    преклоняюсь перед вашим титаническим трудом. Огромная работа. Конкретного ответа на ваш вопрос нет, но есть вопрос: а так ли нужно? Ведь если все встанет "в очередь" то обработается далеко не сразу. А у оператора может сложится впечатление что с его документом все "ок" и пошел колотить дальше.... Или те же самые остатки... Как быть с их актуальностью? Есть гараздо (лично мое мнение) более логичный способ. "Лечить" 1с от загрузки процессора 100% при транзакции. Это даст не менее лучший эффект
  3. TopicStarter Overlay
    PSbest
    Offline

    PSbest

    Регистрация:
    15 янв 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    И лечить я так понимаю средством от romix'а VK_sleep. Работали все времяс ней, но чесн говоря не помню чем не устроила эта штука..наверн не избавляло от транзакций как следует. А вот насчет нужно или нет, то однозначно ДА. Оч доволен как все выходит.Насчет " у оператора может сложится впечатление что с его документом все "ок" и пошел колотить дальше" тут вы не правы..нажимая провести (к примеру) выполняется ожидание освобождение очереди и только потом ее занятие и проведение документа, т.е. все это время у пользователя в строке состояния "выполняется обработка" и ничего дальше нельзя сделать.Среднее время проведения самых "долгих" документов 3 сек, проводятся такие документы не так часто, поэтому ожидание максимум 3 сек до проведения своего документа вполне нормальное время (ну а основное время это меньше секунды). Зато никаких ожиданий захвата журнала и т.д. Ну тут конечн можно долго рассуждать насчет нужно или нет или как можно было иначе, но отчаявшись как следует побороть транзакции решил пойти таким путем. И вот так сказать последние штрихи и нужно отловить штатные процедуры эти )))) после этого можно будет наслаждаться ))
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    по поводу интерактивной отмены насколько я помню у romix'a точно было, причем с исходниками. Если не найдете - стукните в личку. Поищу. П вот ПКМ в журнале - тут не подскажу.
  5. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    formex.dll

    Код:
    Процедура ПриОтжатииПравойКнопки(Состояние, КоординатаПоГоризонтали, КоординатаПоВертикали, ФСО)
    Если Форма.АктивныйЭлемент()="МногострочнаяЧасть" Тогда
    ФСО=0; //отключаем стандартное меню
    // далее формируем список своего меню
    
    КонецЕсли;
    Конецпроцедуры
  6. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    у автора данного модуля изменился сайт
    http://dorex.pro/?projects&formex
  7. TopicStarter Overlay
    PSbest
    Offline

    PSbest

    Регистрация:
    15 янв 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    GlukAl, formex у меня есть..а как теперь отловить документ по координатам?
  8. Бухгалтерский угодник
    Offline

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

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

    PSbest

    Регистрация:
    15 янв 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Разобрался...заменил штатное меню в журнале на свое с помощью formex.dll. тему можно закрыть

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