Проблема с доступом к значению реквизита.

Новая тема
"Здравствуйте все.

Док = СоздатьОбъект("Документ.ПКО");
Док.НайтиДокумент(ВыбДок);
Сообщить(Док.KEY);

Выдаёт сообщение "НеизвестныйОбъект"

KEY - общий реквизит для всех документов имеет строковый тип.

Подскажите, что не так?
"
"Возможно, нужно ввести переменную и присваивать ей ссылку на документ. И к реквизиту обращаться через эту переменную. Например, так:

Док = СоздатьОбъект("Документ.ПКО");
Док_1=Док.НайтиДокумент(ВыбДок);
Сообщить(Док_1.KEY);
"
Если бы всё было так просто, я бы не спрашивал.

Перепробывал все возможные варианты, и с присвоением.

При попытке определить тип реквизита "ТипЗначенияСтр", пишет "СТРОКА"
ПустоеЗначение(Резвизит) = 0
А к значению обратится всёравно не получается.
"НайтиДокумент
Найти документ по значению.
Синтаксис:
НайтиДокумент(<Документ>)
Англоязычный синоним:
FindDocument
Параметры:
<Документ>
Выражение, содержащее значение типа «Документ».
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Возвращаемое значение:
Число 1 — если действие выполнено (документ найден);
Число 0 — если действие не выполнено.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Описание:
Метод НайтиДокумент выполняет поиск документа по значению, заданно­му параметром <Документ>. Данный метод используется для позиционирова­ния объекта на конкретный документ.
Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.
Пример:
Процедура УдалДок(Докум)
  Док = СоздатьОбъект("Документ.НаклПрих");
  // позиционируем созданный объект на заданном документе
  Док.НайтиДокумент(Докум);
  Если Док.Выбран() > 0 Тогда
     // если документ найден, то удалим его
     Док.Удалить();
  Иначе
     Предупреждение ("Неверно задан документ!");
  КонецЕсли;
КонецПроцедуры

Смотрите внимательно, проблема именно с реквизитом.Скорее всего его именно нет.
"
"На твоем месте я бы не много переделал:

Док = СоздатьОбъект("Документ.ПКО");
Если Док.НайтиДокумент(ВыбДок) = 1 Тогда
    Сообщить(Док.KEY);
КонецЕсли;

откуда ты знаешь нашел он документ или нет,все зависит где ты это используешь."
"Вот тело:

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

Вот результат:

 Приходный кассовый ордер 005151 (11.09.07)
 Строка
 0
 НеизвестныйОбъект

Реквизит описан как:

 Документы
   Общие реквизиты
     KEY

Имеет тип "строка(20)""
Все верно,все работает)))
Попрробуй аналогично с реквизитом "комментарий",если нет касяка то колдуй с реквизитом "KEY"
если есть обрати внимание на номер платформы.
С "Комментарием" всё в полном порядке.
Складывается впечатление, что 1С просто глючит на этот реквизит.

Полное тестирование и исправление вылечит ситуацию или нет?

Выскажите свое мнение.
Сохрани базу да поробуй
не думаю что поможет )))
Читают тему
(гостей: 1)

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