CftClub.ru
Клуб специалистов ЦФТ-Банк

Проблема. Надо отследить статус документа.

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеЧт Май 05, 2011 12:03   Проблема. Надо отследить статус документа. Ответить с цитатой
Полезность: Нет оценки
Суть проблемы в следующем:
Создал собственную структуру. К ней привязал счета (стандартные из Фин. счета). Написал операцию для контроля элементов этой структуры в зависимости от проводок по счету(который я привязал). Т.е. в структуре 5 элементов, по привязанному счету создан платежный документ, в структуре стало 4 (ну или 6) элементов. Беда в том что при создании платежного документа у него статус "Не обработан", а число элементов структуры уже уменьшилось/увеличилось. А хотелось бы, что бы только после того как документ был проведен (причем не обязательно из моей операции, а допустим др. юзером), то только после этого число элементов увеличилось или уменьшилось.
Вообщем, если кто понял суть проблемы и имеет какие нибудь мысли по этому поводу, прошу помочь.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеЧт Май 05, 2011 12:54    Ответить с цитатой
Полезность: Нет оценки
Не уверен, что все правильно понял.
В какой момент изменяется количество элементов (что это? м.б. экземпляров?) структуры? И кто/что производит это изменение? Разве нельзя там же анализировать состояние документа?
И дополнительно: может быть в хуке MD_FOR_PROV_1 проводить анализ на счета, состояние документа (и т.п.) и только после этого делать изменения в структуре?
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеЧт Май 05, 2011 13:21    Ответить с цитатой
Полезность: Нет оценки
Цитата:
Не уверен, что все правильно понял.
В какой момент изменяется количество элементов (что это? м.б. экземпляров?) структуры? И кто/что производит это изменение? Разве нельзя там же анализировать состояние документа?


Речь идет именно о количесте, допустим золотые слитки. Спец счета для них нет, а учитываются они на счете где и без них хватает мусора. Соответственно для них создана структура вида: Счет(на котором они хранятся), Количество.
Это позволяет учитывать количество слитков именно на этом счете.
Допустим операционист делает проводку/платежный документ на продажу этого слитка. После чего сформировался платежный документ, если он удачно сформирован, то число слитков уменьшается на 1, иначе документ просто не создается.
Документ создается в статусе Не обработан. Соответственно, кассир или еще кто, имеет возможность перевести его в статус Проведен. И вот хотелось бы, чтобы только после того, как касир поменял статус документа на Проведен произошло уменьшение числа слитков.[/quote]
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеЧт Май 05, 2011 13:33    Ответить с цитатой
Полезность: Нет оценки
Стало заметно понятнее. Кроме вот этого:
nOnAME пишет:
Допустим операционист делает проводку/платежный документ на продажу этого слитка. После чего сформировался платежный документ, если он удачно сформирован, то число слитков уменьшается на 1, иначе документ просто не создается.

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


Вступление в Клуб: 25.01.2011
СообщениеЧт Май 05, 2011 13:55    Ответить с цитатой
Полезность: Нет оценки
Операционист делает документ из созданной мною операции, где я использую обычный MAIN_DOCUM.NEW#AUTO. Т.е. он просто выбирает слиток и жмет OK. Счета подставляются/формируются мною же, по определенным параметрам. Соответственно по результату данной операции, если документ создан, я вычитаю из числа слитков 1.
Структура отката...в планах было так, если документ проведен, то отката не происходит. А сейчас, сам задумался над этим делом.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеЧт Май 05, 2011 14:52    Ответить с цитатой
Полезность: 1
Тогда мне представляется, что лучше изменение значения поля структуры перенести в хук MD_FOR_PROV_1. А откат вероятно получится анализировать только в MD_DO_TRANS_1.
Если же есть необходимость пересчитывать количество (плановое) и при создании документа, то откат видимо нужно делать через MD_DELETE#AUTO
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеЧт Май 05, 2011 15:53    Ответить с цитатой
Полезность: Нет оценки
Да, на уме щас такие же идеи)
Ладно, буду пробовать. Спс.
vadim.corostelev
Участник


Вступление в Клуб: 06.05.2011
СообщениеСр Май 11, 2011 04:40    Ответить с цитатой
Полезность: 1
Может, попытаться подойти к проблеме с другой стороны?
Например, в структуре фиксировать не количество, а ссылки на фин.документы.
А там, где вы используете структуру для показа количества слитков (отчет, представление) подсчитывать проведенные документы.
Получаем полную свободу в движении документов, не надо никаких хуков, сопровождаем только свои операции и представления.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru