Дублирование объектов

Материал из GedeminWiki
Перейти к: навигация, поиск

При дублировании простых объектов, как то, простой справочник, или накладная состоящая из шапки и позиции обычно проблем не возникает. Проблемы появляются при дублировании объектов в которых кроме шапки и позиции присутствует еще позиции привязанные к шапке, или позиции привязанные к позициям.

Дополнительные позиции, привязанные к шапке

В этом случае идет связь между позицией и шапкой на основании какого-либо поля, которое при копировании позиции заполняется не правильным значением ключа новой шапки, а неверным значением ключа старой шапки. Выход из ситуации заключается в добавлении имени этого поля в событие GetNotCopyField.

Пример

Объект шапка "Наряд на конно-ручные работы" - "USR$AGROWG_LISTTR"

Объект доп-позиция "Работы по нарядам на работу" - "USR$AGROWG_WORKEMP"

Объекты связаны по полям "USR$AGROWG_LISTTR.DOCUMENTKEY" - USR$AGROWG_WORKEMP.USR$LISTTRLINEKEY"

Для решения проблемы напишем в обработчике GetNotCopyField объекта дополнительной позиции следующий код:

option explicit
function TgdcUserDocumentGetNotCopyField(Self)
'*** Данный код необходим для вызова кода определенного в gdc-классе.***
'*** При его удаления  возможно нарушение  правильной работы системы.***
  TgdcUserDocumentGetNotCopyField = _
    Inherited(Self, "GetNotCopyField", Array(Self))
'***               Конец кода поддержки gdc-класса.                  ***
 
dim NotCopyFieldStr
 
  NotCopyFieldStr = TgdcUserDocumentGetNotCopyField
  if NotCopyFieldStr = "" then
    NotCopyFieldStr = "USR$LISTTRLINEKEY"
  else
    NotCopyFieldStr = NotCopyFieldStr + _
      ",USR$LISTTRLINEKEY"
  end if
  TgdcUserDocumentGetNotCopyField = NotCopyFieldStr
end function

(Разумеется название функции "TgdcUserDocumentGetNotCopyField" зависит от конкретного типа документа)

Дополнительные позиции, привязанные к позиции

На текущий момент копирование таких позиций в коде платформы не осуществляется.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты