• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Журналы документов

  • Автор темы Anatoly1987
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Anatoly1987

Привет Форумчане!

Ребята вообщем вопрос такой, в журнале когда жмеш в таблице правой клавишей вылазит контекстное меню, в котором есть графа "Сделать не проведенным", так вот, можно ли перехватить это событие?
 
V

vitfil

Какое именно событие? Если отмену проведения, то оно перехватывается в модуле документа. Если показ контекстного меню, то при помощи внешних компонент.
 
A

Anatoly1987

Так ладно ребята голову морочить вам не буду, смысл вот в чем:

В документы реализация и поступление я добавляю реквизит "ДокИсточник", нужен он для того чтобы хранить документ из-за которого произошло следующее движение:

я дописал документ реализации так, что если не хватает ТМЦ, тогда он продаеться нам с другой фирмы (если его хватает), а потом проводиться сама реализация, и перед проведением в документы которые создаются автоматически нашей реализацией в наш реквизит (ДокИсточник) заноситься документ реализации, который возбудил движение. В последствии мы всегда будем знать что и из-за чего. Так вот но если мы будем делать отмену проведения документа, тогда надо чтобы и те документы тоже были отменены, поэтому я так и хотел перехватить обработку события нажатия "Снять проведение или как там". Вопрос тогда ставим так:

Если я в модуле документа напишу обработчик "ОбработкаПроведенияДокумента", где будут отменяться те вспомогательные документы, будет ли это допустимо?

т.е. :

Процедура ОбработкаУдаленияПроведения()

Если ПустоеЗначение(ДокОснование) = 0 Тогда
Док = СоздатьОбъект("Документ");
Док.НайтиДокумент(ДокОснование);
Док.СделатьНеПроведенным();
Док.Удалить();
КонецЕсли;

КонецПроцедуры;

Вообщем проверил, нормально, будет этот код допустим? Не будет ли он влиять на что-либо?
 
U

unknown181538

Ты точно хочешь их удалить? Возможно нарушение ссылочной целостности. В остальном - ничего плохого не случится.
 
A

Anatoly1987

Ты точно хочешь их удалить? Возможно нарушение ссылочной целостности. В остальном - ничего плохого не случится.

Удалить надо. А ссылочная целостность не проверяется? Ну вообщем представь картину:

1. Мы создаем док. реализации.
2. Начинаем проводить.
3. Если ТМЦ не хватает, то с других фирм он продаеться, т.е.
(ранее я говорил о том что мы создаем реквизит "ДокИст", который хранит документ создавший это движение)
3.1. Автоматически создаеться док. реализации с недостающим ТМЦ на другой фирме, реквизит "ДокИст" заполняеться "документом" шага 1.
3.2. Автоматически создаеться док. поступления на нашей фирме, реквизит "ДокИст" заполняеться "документом" шага 1.
4. Проводиться наш документ.

Созданные документы (на шагах 3.1 и 3.20) ссылаются на нашу реализацию. А когда мы будем делать отмену проведения, обязательно реквизит "ДокИст" всех найденых подчиненных документов будет проверяться на соответствие нашего в ручную созданного документа. Думаю если их (автоматически созданные) не трогать и удалять то ничего нарушено не будет, как считаете?

И сейчас мне в голову мысль пришла, если реквизит "ДокИст" не пустой, тогда док. будет открываться только для просмотра.

Вообщем, Ребята, описанная выше технология возможна? Я в том плане что нарушаться ничего не будет?

П/С. Все наверное поняли что раннее представленный мною алгоритм показан в качестве примера, в реальности он будет другим.
 
V

vbs

Удалить(<?>);
Delete(<?>);
Синтаксис:
Удалить(<Режим>)
Назначение:
Удалить документ.
Параметры:
<Режим> -: 1 - непосредственное удаление, 0 - пометка на удаление (необязателен, по умолчанию - 1).

ПометкаУдаления()
DeleteMark()
Синтаксис:
ПометкаУдаления()
Назначение:
Возвращает флаг пометки удаления документа:
1 - если на документе стоит пометка удаления,
0 - если нет пометки удаления.
 
A

Anatoly1987

Удалить(<?>);
Delete(<?>);
Синтаксис:
Удалить(<Режим>)
Назначение:
Удалить документ.
Параметры:
<Режим> -: 1 - непосредственное удаление, 0 - пометка на удаление (необязателен, по умолчанию - 1).

ПометкаУдаления()
DeleteMark()
Синтаксис:
ПометкаУдаления()
Назначение:
Возвращает флаг пометки удаления документа:
1 - если на документе стоит пометка удаления,
0 - если нет пометки удаления.

Ну и не хвастайся! :wacko:
 
V

vitfil

Anatoly1987
Прям классика получается...
- А если я ляпну?
- А ты ляпай, но ляпай уверенно!
(с) "Москва слезам не верит!".
 
A

Anatoly1987

Вот уж ниче сказать нельзя. Ладно мне на вопрос кто0нить ответит?
 
K

kaa

Процедура ПриОтменеПроведенияДокумента(<?>)
КонецПроцедуры
Procedure OnUnPosting(<?>)
EndProcedure
Синтаксис:
ПриОтменеПроведенияДокумента(<Докум>)
Назначение:
Предопределенная процедура при интерактивной отмене проведения документа.
Параметры:
<Докум> - обрабатываемый документ.
Замечание:
Данная процедура может располагаться только в глобальном программном модуле.
 
A

Anatoly1987

Процедура ПриОтменеПроведенияДокумента(<?>)
КонецПроцедуры
Procedure OnUnPosting(<?>)
EndProcedure
Синтаксис:
ПриОтменеПроведенияДокумента(<Докум>)
Назначение:
Предопределенная процедура при интерактивной отмене проведения документа.
Параметры:
<Докум> - обрабатываемый документ.
Замечание:
Данная процедура может располагаться только в глобальном программном модуле.

Ага уже нашел. Но все равно спасибо!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!