Управляемые формы. Признак копирования документа #755797


#0 by Wefast
При создании документа_1, перед его записью я создаю другой документ_2 программно. Если реквизит с ссылкой на этот новый документ_2 существует значит документ_1 не новый и документ_2 новый не создается. Если реквизит пустой, значит это новый документ_1 и создается документ_2 Но внезапно нашлась лазейка которая сломала такой алгоритм. При копирование этот реквизит заполнен, а должен создаваться новый документ_2 Вот я и не пойму как понять создается документ копированием или нет. Дошел только до того, что бы проверять заполненость обязательного реквизита формы. Но не нашел событие которое бы вызывалось для еще не записанных(новых) документов.
#1 by butterbean
просто очищай реквизит ПриКопировании
#2 by vicof
"перед его записью я создаю другой документ_2 программно" это 5
#3 by Wefast
? что то я не найду такой реквизит
#4 by GROOVY
Данные заполнения проверяй. Да и событие, вроде как есть.
#5 by butterbean
ПриКопировании - это событие, в котором нужно очищать твой реквизит документа_1, содержащий ссылку на документ_2
#6 by GROOVY
ДокументОбъект.<Имя документа>.ПриКопировании (DocumentObject.<Имя документа>.OnCopy) ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ПриКопировании (OnCopy) Синтаксис: ПриКопировании(<ОбъектКопирования>) Параметры: <ОбъектКопирования> Тип: ДокументОбъект. Исходный документ, который является источником копирования. Описание: Возникает при создании документа копированием. См. также: ДокументСсылка, метод Скопировать
#7 by Wefast
у формы нет такого события не пойму как это применить. Это разве не способ программно скопировать какой то документ? Что то вроде Документы.МойДокумент.ПриКопирование(СсылкаНадокумент); Иначе я не понима что и куда написать
#8 by GROOVY
Это событие объекта
#9 by Wefast
ну вот я создаю документ копированием. Поставил точку останова на событие ПриОткрытие открываю отладку Shift+f9 Ввожу Объект И нет там ПриКопирование Ввожу ЭтаФорма И тоже не нахожу ПриКопирование Ввожу Документы.КА_ГрафикПлатежей.Прикопирование и нет там ничего
#10 by Wefast
В общем мне тут подсказали, что в модуле объекта можно такое событие создать и видимо тут то и нужно останавливаться точкой останова
#11 by Jonny_Khomich
ага, в этом событии тебе надо очищать значение твоего реквизита
#12 by olegves
как все запущено... открой модуль объекта (твоего документа), найди (создай) процедуру ПриКопировании и там ставь ТО
#13 by Wefast
да, у меня много таких огромных дыр в знаниях. Без понятия что нужно сделать, что бы познать все эти основы. Пока получается вот только таким способом когда сталкиваешься с подобным
#14 by Матиус
>> перед его записью я создаю другой документ_2 программно Что происходит с документом_2 при отмене проведения документа_1? А при пометке удаления? А при удалении? А если документ_1 не записался? А если юзер изменил документ_2, документ_1 скорректируется? Иди уж в дворники, хоть какой-то толк из тебя будет.
#15 by Wefast
Ничего не происходит. При удаление или отмене проведения и не должно, заказчик этого не указывал. А вот если документ не записан, я так понимаю это произойдет если к примеру что то не заполнено, а потом пользователь решил и не делать документ и закроет его. Тут косяк. И как мне его исправить? А советы свои где и кем мне работать прошу оставить при себе. Считаю что все это приходит с опытом.
#16 by Wefast
При удаление, при отмене проведения я могу получить свой документ_2 и удалить его(теоретически). А вот что делать если документ_1 пытались записать но не записали в итоге я не знаю. Может можно создать событие ОбработкаЗаполения и вызвать ее перед созданием документ_2. Но как это все сделать правильно не представляю
#17 by Wefast
Ну вот можно вызвать ПроверитьЗаполнение перед созданием документ_2
#20 by lefthander
реквизит с ссылкой на этот новый документ_2 = Неопределено;           КонецПроцедуры
#21 by Матиус
Я просто советую тебе быть полезным обществу. >> А вот что делать если документ_1 пытались записать но не записали в итоге я не знаю. Транзак...
#22 by Матиус
>> заказчик этого не указывал. Правильно, тыжпрограммист, все сделаешь как надо.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С