Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не выводит значение реквизита
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
wmatik
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)
Есть документ "Доверенность", в его печатной форме надо чтобы выводилась должность сотрудника. В печатной форме там где должна быть должность пишет "Неопределнный объект":

Процедура ИзмСотрудник()
    Если Сотрудник.Выбран()=1 Тогда
        ПодтверждающийДокумент = "паспорт";
        СерияПодтверждающегоДокумента = Сотрудник.ПаспортСерия;
        НомерПодтверждающегоДокумента = Сотрудник.ПаспортНомер;
        ДатаПодтверждающегоДокумента = Сотрудник.ВыданДата;
        КемВыданПодтверждающийДокумент = Сотрудник.ВыданКем;
        НовыйКомуВыдана = глФИО(Сотрудник);
        Если ПустаяСтрока(КомуВыдана) = 1 Тогда
            КомуВыдана = НовыйКомуВыдана;
        ИначеЕсли КомуВыдана <> НовыйКомуВыдана Тогда
            Рез = Вопрос("Изменить ФИО сотрудника в документе?","Да+Нет");
            Если Рез = "Да" Тогда
                КомуВыдана = НовыйКомуВыдана;
            КонецЕсли;    
        КонецЕсли;            
        Сотрудник = Сотрудник.Должность;
    КонецЕсли;
КонецПроцедуры


"НеизвестныйОбъект" выдает
DartRomanius
Цитата(wmatik @ 17.06.11, 12:05) необходимо зарегистрироваться для просмотра ссылки
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)
Есть документ "Доверенность", в его печатной форме надо чтобы выводилась должность сотрудника. В печатной форме там где должна быть должность пишет "Неопределнный объект":

Процедура ИзмСотрудник()
    Если Сотрудник.Выбран()=1 Тогда
        ПодтверждающийДокумент = "паспорт";
        СерияПодтверждающегоДокумента = Сотрудник.ПаспортСерия;
        НомерПодтверждающегоДокумента = Сотрудник.ПаспортНомер;
        ДатаПодтверждающегоДокумента = Сотрудник.ВыданДата;
        КемВыданПодтверждающийДокумент = Сотрудник.ВыданКем;
        НовыйКомуВыдана = глФИО(Сотрудник);
        Если ПустаяСтрока(КомуВыдана) = 1 Тогда
            КомуВыдана = НовыйКомуВыдана;
        ИначеЕсли КомуВыдана <> НовыйКомуВыдана Тогда
            Рез = Вопрос("Изменить ФИО сотрудника в документе?","Да+Нет");
            Если Рез = "Да" Тогда
                КомуВыдана = НовыйКомуВыдана;
            КонецЕсли;    
        КонецЕсли;            
        Сотрудник = Сотрудник.Должность;
    КонецЕсли;
КонецПроцедуры


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


Сотрудник = Сотрудник.Должность;
А это как?
g789
Цитата(wmatik @ 17.06.11, 12:05) необходимо зарегистрироваться для просмотра ссылки
Сотрудник = Сотрудник.Должность;

Это ересь
Переменная Сотрудник стирает себя неопределенным значением, т.к. Реквизит Должность скорее всего переодический.
Пробуйте примерно так

 ДолжностьПеч = Сотрудник.Должность.Получить(ДатаДок)
wmatik
Цитата(g789 @ 17.06.11, 12:12) необходимо зарегистрироваться для просмотра ссылки
Это ересь
Переменная Сотрудник стирает себя неопределенным значением, т.к. Реквизит Должность скорее всего переодический.
Пробуйте примерно так

 ДолжностьПеч = Сотрудник.Должность.Получить(ДатаДок)


Переменная не определена
-=VJ=-
Цитата(wmatik @ 20.06.11, 9:47) необходимо зарегистрироваться для просмотра ссылки
Переменная не определена


Какая именно переменная?
Цитируйте ошибки так, как они выводятся программой.
wmatik
ДолжностьПеч<<?>>
Переменная не определена (ДолжностьПеч)
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:07) необходимо зарегистрироваться для просмотра ссылки
ДолжностьПеч<<?>>
Переменная не определена (ДолжностьПеч)


Ну так объявите её сначала в начале модуля.

Перем ДолжностьПеч;
wmatik
теперь ничего не выводит, никаких ошибок не вылазит
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:21) необходимо зарегистрироваться для просмотра ссылки
теперь ничего не выводит, никаких ошибок не вылазит


У сотрудника поле должность точно заполнено?
wmatik
Цитата(-=VJ=- @ 20.06.11, 10:35) необходимо зарегистрироваться для просмотра ссылки
У сотрудника поле должность точно заполнено?

Да
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:35) необходимо зарегистрироваться для просмотра ссылки
Да


А если так - что выводит?

ДолжностьПеч = Сотрудник.Должность.Получить(ДатаДок);
Сообщить(ДолжностьПеч);
wmatik
Цитата(-=VJ=- @ 20.06.11, 10:37) необходимо зарегистрироваться для просмотра ссылки
А если так - что выводит?

ДолжностьПеч = Сотрудник.Должность.Получить(ДатаДок);
Сообщить(ДолжностьПеч);

Ничего, даже табло не показывается
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:42) необходимо зарегистрироваться для просмотра ссылки
Ничего, даже табло не показывается


Значит программа до этого места даже не доходит.
Сотрудник точно выбран и изменялся - поле сотрудника активировали?
wmatik
точно
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:46) необходимо зарегистрироваться для просмотра ссылки
точно


Поле сотрудника активировали? Ведь ИзмСотрудник к нему привязано.

Вообще вот эту радость

ДолжностьПеч = Сотрудник.Должность.Получить(ДатаДок);


Стоит поместить не в изменение сотрудника, а в саму процедуру Печать().
wmatik
все равно пусто(
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:50) необходимо зарегистрироваться для просмотра ссылки
все равно пусто(


Пусто когда в печать перенесли? Переносили вместе с Сообщить?
wmatik
конечно
-=VJ=-
Цитата(wmatik @ 20.06.11, 10:56) необходимо зарегистрироваться для просмотра ссылки
конечно


Переделайте с

Сообщить(ДолжностьПеч);


На

Сообщить(Сотрудник);
wmatik
пусто
-=VJ=-
Цитата(wmatik @ 20.06.11, 11:15) необходимо зарегистрироваться для просмотра ссылки
пусто


Тогда куда-то не туда поставили.
В данном случае оно просто обязано было что-то сообщить.
Или бросьте весь код модуля Декларации в ЛС, чтобы не рвать тему в клочья.
wmatik
отправила
-=VJ=-
Цитата(wmatik @ 20.06.11, 11:29) необходимо зарегистрироваться для просмотра ссылки
отправила


Ничего не пришло.
wmatik
проверьте сейчас
-=VJ=-
Цитата(wmatik @ 20.06.11, 11:46) необходимо зарегистрироваться для просмотра ссылки
проверьте сейчас


Отправил исправленный код.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.