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

Тема в разделе "1C и всё что с ней связано", создана пользователем Anatoly1987, 8 май 2009.

Статус темы:
Закрыта.
  1. Anatoly1987

    Anatoly1987 Гость

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

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

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Какое именно событие? Если отмену проведения, то оно перехватывается в модуле документа. Если показ контекстного меню, то при помощи внешних компонент.
     
  3. Anatoly1987

    Anatoly1987 Гость

    Перехват нажатия "Сделать не проведенным" из контекстного меню
     
  4. ech

    ech Гость

    Можно, но в соседней ветке
     
  5. Anatoly1987

    Anatoly1987 Гость

    Это в какой?
     
  6. ech

    ech Гость

    В ветки по программировании ООП
     
  7. Anatoly1987

    Anatoly1987 Гость

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

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

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

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

    т.е. :

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

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

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

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

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Ты точно хочешь их удалить? Возможно нарушение ссылочной целостности. В остальном - ничего плохого не случится.
     
  9. Anatoly1987

    Anatoly1987 Гость

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

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

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

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

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

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

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Не удаляет, а помечает на удаление.
     
  11. Anatoly1987

    Anatoly1987 Гость

    Удаляет! "ПометитьНаУдаление" для этого функция есть.
     
  12. vbs

    vbs Well-Known Member

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

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

    Anatoly1987 Гость

    Ну и не хвастайся! :wacko:
     
  14. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А в чем хвастовство ? Просто справку привел
     
  15. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Anatoly1987
    Прям классика получается...
    - А если я ляпну?
    - А ты ляпай, но ляпай уверенно!
    (с) "Москва слезам не верит!".
     
  16. Anatoly1987

    Anatoly1987 Гость

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

    kaa Гость

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

    Anatoly1987 Гость

    Ага уже нашел. Но все равно спасибо!
     
Загрузка...
Статус темы:
Закрыта.

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