Бухгалтерия ред.2.0, ПКО, Составной тип данных, Неопределено

Новая тема
"В док-те ПКО типовой Бухгалтерии 2.0 (2.0.23.9), 1С 8.2 есть реквизит "ДокументОснование" (составной тип данных, разные виды док-тов). Он заполняется если ввести ПКО на основании счета, реализации и т.д., но можно выбрать вручную.
Мною написана внешняя обработка, которая формирует печатную форму ПКО, используя реквизит "ДокументОснование". Проблема такая: берем ПКО введенный на основании счета или реализации, копируем его, сохраняем - поле "ДокументОснование" заполнено. Пытаюсь сформировать печ.форму с помощью своей внешн.обработки - выдается ошибка при использовании реквизита "ДокументОснование"
(например, на строку Сообщить(СокрЛП(СсылкаНаОбъект.ДокументОснование.ДокументСсылка));)!! Ок, вручную выбираю другой док-т основание, снова пытаюсь сформировать печ.форму - опять ошибка. Хотя визуально в форме док-та ПКО поле не пустое, оно заполнено выбранным док-том, при повторном закрытии/открытии док-та оно не пропадает. Такой глюк проявляется когда ПКО скопирован. Когда введен на основании все работает прекрасно. Судя по алгоритму проблема в процедуре ПКО:

Процедура ПриКопировании(ОбъектКопирования)    ДокументОснование = Неопределено;КонецПроцедуры 


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

Нужна помощь - как обратиться к этому реквизиту и взять оттуда нужные данные??? Ведь он где-то сохранен, т.к. при открытии ПКО отображает документ-основание, значит он где-то есть, как-то сохранен, но как?!"
"> открытии ПКО отображает документ-основание
Вы это случайно не о поле Основание на закладке Печать говорите?
Если вы о нем - то оно текстовое, и отношение к реквизиту ДокументОснование имеет посредственное.
Так что никакой ошибки нет. Да и логично, что при копировании ПКО очищается ДокументОснование - зачем вешать все деньги на один Счет или еще что-то, если он уже оплачен?
А вы лучше прежде чем обратиться к реквизиту некоторого объекта - проверьте, вдруг он пустой.
Например код:

Если ЗначениеЗаполнено (СсылкаНаОбъект.ДокументОснование) Тогда
  Сообщить(СокрЛП(СсылкаНаОбъект.ДокументОснование.ДокументСсылка));
КонецЕсли;

ошибки не вызовет."
Нет, я написал про реквизит "ДокументОснование". Это не текстовое поле, а составной тип данных.
ЗначениеЗаполнено() не вызовет ошибку, именно так у меня все и было, пока в один прекрасный момент бухгалтера мне не стали говорить, что поле "ДокументОснование" у них заполнено (т.е. выбран док-т), а в печатную форму не попадают данные из этого поля.
Т.е. в док-те ПКО выбран документ-основание (визуально при открытии формы он есть и даже открывается и можно выбрать другой и пересохранить ПКО), а когда к нему обращаешься программно, то его нет. Вопрос весь в том как такое может быть?! И как все таки к нему обратиться?

P.S. один счет/накладная может оплачиваться частями (это к вопросу о логичности копирования ПКО по одному счету/накладной).
> что поле "ДокументОснование" у них заполнено (т.е. выбран док-т)
И где они это видят??? Нет в стандартной конфигурации этого реквизита на форме.

> P.S. один счет/накладная может оплачиваться частями (это к вопросу о логичности копирования ПКО по одному счету/накладной).
Может. Но копировать то зачем? почему не ввести на основании, как положено?

> И как все таки к нему обратиться?
Заполнить реквизит ДокументОснование.

п.с.: Если уж вы с конфигуратором работаете,  то почему не посмотрите, что за реквизиты у вас на форме размещены? Заодно посмотрите процедуру ОбработкаЗаполнения в модуле документа и поймете, почему не копируется документ основание.
> Может. Но копировать то зачем? почему не ввести на основании, как положено?
Это не ко мне вопрос, это вообще риторический вопрос, что положено и как.
Уже сделали половину правильно, половину через копирование, решили распечатать кассу за период, док-тов очень много.


На форме в закладке "Реквизиты платежа" есть поле "Документ расчетов". Берется он из "РасшифровкаПлатежа" реквизит "Сделка". В общем понятно откуда брать данные, если "ДокументОснование" не заполнен.
Проблема решена, спасибо за наводку.
Читают тему
(гостей: 1)

Быстрый переход