Имя: Пароль:
1C
1С v8
И снова значение не является значением объектного типа
0 baziza
 
01.10.15
10:18
Всем доброго утра! Появляется соответствующая ошибка "Значение не является значением объектного типа (Информация).

Функция ИнформацияОбОтклоняемомИнциденте(Инцидент) Экспорт
    
    Информация = Новый Структура("Дата, Ответственный, Автор, Тема", ТекущаяДата(), ПараметрыСеанса.ТекущийПользователь, Неопределено, Неопределено);
    
    Если ТипЗнч(Инцидент) = Тип("ДокументСсылка.прОбращение") Тогда
        
        СтруктураРеквизитов = БСП_ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Инцидент, "Наименование, Автор");
        Информация.Автор = СтруктураРеквизитов.Автор;
        Информация.Тема  = СтруктураРеквизитов.Наименование;
        
    ИначеЕсли ТипЗнч(Инцидент) = Тип("ДокументСсылка.БСП_ЭлектронноеПисьмоВходящее") Тогда
        СтруктураРеквизитов = БСП_ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Инцидент, "Тема, Ответственный, ОтправительАдрес");
        
        Если Не ЗначениеЗаполнено(СтруктураРеквизитов.Ответственный) Тогда
            Запрос = Новый Запрос;
            Запрос.УстановитьПараметр("Адрес", СокрЛП(СтруктураРеквизитов.ОтправительАдрес));
            Запрос.Текст = "ВЫБРАТЬ
            |    Пользователи.Ссылка КАК Пользователь
            |ИЗ
            |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
            |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
            |        ПО КонтактнаяИнформация.Объект = Пользователи.ФизЛицо
            |ГДЕ
            |    КонтактнаяИнформация.Представление ПОДОБНО &Адрес";
            
            Результат = Запрос.Выполнить();
            Если Результат.Пустой() Тогда
                СтруктураРеквизитов.Автор = Справочники.Пользователи.ПустаяСсылка();
            КонецЕсли;
        КонецЕсли;
        
        Информация.Автор = СтруктураРеквизитов.Автор;
        Информация.Тема  = СтруктураРеквизитов.Наименование;
        
    КонецЕсли;
    
    Возврат Информация;
    
КонецФункции



Функция ТекстОповещенияОбОтклоненномИнциденте(Инцидент, ИнформацияОбОтклоняемомИнциденте) Экспорт
    
    Макет = РегистрыСведений.су_Оповещения.ПолучитьМакет("Макет");
    
    Шаблон = Макет.ПолучитьТекст();
    МассивОбластей = БСП_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Шаблон, "--//--");
    
    ТекстШапки = МассивОбластей[0];
    
    ТекстШапки = СтрЗаменить(ТекстШапки, "{Автор}", ИнформацияОбОтклоняемомИнциденте.Информация.Автор);
    ТекстШапки = СтрЗаменить(ТекстШапки, "{Ответственный}", ИнформацияОбОтклоняемомИнциденте.Информация.Ответственный);
    ТекстШапки = СтрЗаменить(ТекстШапки, "{ДатаПринятияВРаботу}", ИнформацияОбОтклоняемомИнциденте.Информация.Дата);
    
    Комментарий =  РегистрыСведений.су_Оповещения.ТекстКомментариев(Инцидент);    
    Если Не ПустаяСтрока(Комментарий) Тогда
    ТекстШапки = ТекстШапки + "<h2>Комментарий исполнителя</h2>" + Символы.ПС;
    ТекстШапки = ТекстШапки + Комментарий + Символы.ПС;
    КонецЕсли;
    
    ТекстШапки = ТекстШапки + "<h2>Текст обращения</h2>" + Символы.ПС;
    ТекстШапки = ТекстШапки + Комментарий + Символы.ПС;
    
    ТекстПодвала = МассивОбластей[2];
    
    Возврат ТекстШапки + ТекстПодвала;        
            
КонецФункции


В этом месте: ИнформацияОбОтклоняемомИнциденте.Информация.Автор. Подскажите какая запись здесь будет правильной для автора, ответственного и даты?
1 Nuobu
 
01.10.15
10:21
ИнформацияОбОтклоняемомИнциденте.Информация.Ответственный

ИнформацияОбОтклоняемомИнциденте.Ответственный
2 baziza
 
01.10.15
10:25
Выдает ту же ошибку.
3 Cyberhawk
 
01.10.15
10:26
Такой текст ошибки говорит о том, что значение СЛЕВА от того слова, что в скобках, не позволяет брать через точку то, что в скобках
4 hhhh
 
01.10.15
10:41
какую ошибку выдает ИнформацияОбОтклоняемомИнциденте.Ответственный ??
5 baziza
 
01.10.15
10:42
(4) Ту же самую
6 Nuobu
 
01.10.15
10:43
(5) Ты уверен, что ругается именно на эту строку?
7 Fish
 
01.10.15
10:43
(5) А что отладчик говорит?
8 hhhh
 
01.10.15
10:46
(5) прямо на слово "Информация"? гонишь.
9 hhhh
 
01.10.15
10:47
(5) так во всех трех строчках убери это дебильное слово "Информация". Откуда ты вообще его откопал?
10 baziza
 
01.10.15
10:47
(7) Теперь это
{ОбщийМодуль.су_ОповещенияСервер.Модуль(3758)}: Значение не является значением объектного типа (Автор)
    ТекстШапки = СтрЗаменить(ТекстШапки, "{Автор}", ИнформацияОбОтклоняемомИнциденте.Автор);
11 Nuobu
 
01.10.15
10:51
(10) Автор - слово из интернациональных букв и вполне может быть, что одна из букв - английская)).
Напиши его ручками везде - и в ф-и заполнения и в своей.
12 hhhh
 
01.10.15
10:54
(10) ну покажите, где вызов этой Функции ТекстОповещенияОбОтклоненномИнциденте()   ??

там ведь ошибка. А то что вы выложили - тут нет вызова этой функции.
13 baziza
 
01.10.15
10:56
(11) Не в этом дело, тем не менее написание проверил. Даже если закомментить строку с автором начинает ругаться на след. с ответственным.
14 hhhh
 
01.10.15
10:59
(13) ну тогда ничем не сможем вамм помочь. Раз вы как партизан скрываете, откуда берется переменная ИнформацияОбОтклоняемомИнциденте. Тут экстрасенс нужен.
15 baziza
 
01.10.15
10:59
(12) Да, кстати. Возможно упустил важный кусок, где наверняка наворочил с переменными. Процедуру приведенную ниже я вызываю в другом модуле, в ней записано обращение к функциям, приведенным выше.

Процедура ОтправитьОповещениеОбОтклоненииИнцидента(Инцидент, КомментарийОтклонения)Экспорт
    
    Информация = ИнформацияОбОтклоняемомИнциденте(Инцидент);
    
    Информация1 = ТемаОповещенияОбОтклоненномИнциденте(Инцидент, Неопределено);
    
    Информация2 = ТекстОповещенияОбОтклоненномИнциденте(Инцидент, Неопределено);
    
КонецПроцедуры


С переменными не в особо хороших отношениях
16 Nuobu
 
01.10.15
11:01
(15) Я в голос засмеялся))
17 baziza
 
01.10.15
11:02
(16) Я думаю у всех глаза зарезало)
18 Nuobu
 
01.10.15
11:03
(15) ТемаОповещенияОбОтклоненномИнциденте(Инцидент, Неопределено);

ТемаОповещенияОбОтклоненномИнциденте(Инцидент, Информация);
19 hhhh
 
01.10.15
11:03
(15) ну вот и ответ: ИнформацияОбОтклоняемомИнциденте = Неопределено.

Ну сами дальше нам расшифруйте чему равно

Неопределено.Автор
20 baziza
 
01.10.15
11:10
(19) Тут и расшифровывать НЕЧЕГО.
21 baziza
 
01.10.15
11:19
Спасибо, мужики, теперь без ошибок. Буду ковыряться с переменными.
22 Nuobu
 
01.10.15
11:31
23 baziza
 
01.10.15
12:35
Продолжаю грызть кочерыжку. Сейчас имею такой текст:

Процедура ОтклонитьНаСервере()
    
    Если ТипЗнч(Инициатор) = Тип("ДокументСсылка.прОбращение") Тогда
        ИнОбъект = Инициатор.ПолучитьОбъект();
        ИнОбъект.ПометкаУдаления = Истина;
        ИнОбъект.Записать();
            
        ТемаОбращения = СокрЛП(Инициатор.Наименование);    
        ТекстОбращения = СокрЛП(Инициатор.ТекстОбращения);
    Иначе
        ТемаОбращения = СокрЛП(Инициатор.Тема);
        ТекстОбращения = СокрЛП(Инициатор.Текст);    
    КонецЕсли;
        
    Заметка = Справочники.БСП_Заметки.СоздатьЭлемент();
    
    Хранилище = Новый ХранилищеЗначения(ЭтаФорма.Комментарий);
    
    Заметка.Предмет            = Инициатор;
    Заметка.Автор            = ПараметрыСеанса.ТекущийПользователь;
    Заметка.Содержание        = Новый ХранилищеЗначения(Комментарий, Новый СжатиеДанных(9));
    Заметка.Пометка            = Перечисления.БСП_ЦветаЗаметок.Красный;
    Заметка.ДатаИзменения    = ТекущаяДата();
    
    ТекстHTML = "";
    Вложения = Новый Структура;
    Комментарий.ПолучитьHTML(ТекстHTML, Вложения);
    
    Заметка.ТекстСодержания = БСП_СтроковыеФункцииКлиентСервер.ИзвлечьТекстИзHTML(ТекстHTML);
      
    ТекстИсходногоОбращения = "
    |
    |Исходное обращение (" + Строка(Инициатор)+ "):
    |Тема обращения: " + ТемаОбращения + "
    |Содержание обращения: " + ТекстОбращения;
    Заметка.ТекстСодержания = Заметка.ТекстСодержания + ТекстИсходногоОбращения;
    //>>
    
    Заметка.Записать();
    
    // обработать обращение
    Если ТипЗнч(Инициатор) = Тип("ДокументСсылка.БСП_ЭлектронноеПисьмоВходящее") Тогда
        БСП_УправлениеЭлектроннойПочтой.ПереместитьПисьмоВОтклоненные(Инициатор);
    КонецЕсли;
    
    су_ОповещенияСервер.ОтправитьОповещениеОбОтклоненииИнцидента(Инициатор, Заметка.ТекстСодержания); //обращение к моим кочерыжкам
    
КонецПроцедуры


Мои кочерыжки

Процедура ОтправитьОповещениеОбОтклоненииИнцидента(Инцидент, КомментарийОтклонения)Экспорт
    
    Информация = ИнформацияОбОтклоняемомИнциденте(Инцидент);
    
    Тема = ТемаОповещенияОбОтклоненномИнциденте(Информация, Инцидент);
    
    Текст = ТекстОповещенияОбОтклоненномИнциденте(Информация, Инцидент);
    
КонецПроцедуры

Функция ИнформацияОбОтклоняемомИнциденте(Инцидент) Экспорт
    
    Информация = Новый Структура("Дата, Ответственный, Автор, Тема", ТекущаяДата(), ПараметрыСеанса.ТекущийПользователь, Неопределено, Неопределено);
    
    Если ТипЗнч(Инцидент) = Тип("ДокументСсылка.прОбращение") Тогда
        
        СтруктураРеквизитов = БСП_ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Инцидент, "Наименование, Автор");
        Информация.Автор = СтруктураРеквизитов.Автор;
        Информация.Тема  = СтруктураРеквизитов.Наименование;
        
    ИначеЕсли ТипЗнч(Инцидент) = Тип("ДокументСсылка.БСП_ЭлектронноеПисьмоВходящее") Тогда
        СтруктураРеквизитов = БСП_ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Инцидент, "Тема, Ответственный, ОтправительАдрес");
        
        Если Не ЗначениеЗаполнено(СтруктураРеквизитов.Ответственный) Тогда
            Запрос = Новый Запрос;
            Запрос.УстановитьПараметр("Адрес", СокрЛП(СтруктураРеквизитов.ОтправительАдрес));
            Запрос.Текст = "ВЫБРАТЬ
            |    Пользователи.Ссылка КАК Пользователь
            |ИЗ
            |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
            |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
            |        ПО КонтактнаяИнформация.Объект = Пользователи.ФизЛицо
            |ГДЕ
            |    КонтактнаяИнформация.Представление ПОДОБНО &Адрес";
            
            Результат = Запрос.Выполнить();
            Если Результат.Пустой() Тогда
                СтруктураРеквизитов.Автор = Справочники.Пользователи.ПустаяСсылка();
            КонецЕсли;
        КонецЕсли;
        
        Информация.Автор = СтруктураРеквизитов.Автор;
        Информация.Тема  = СтруктураРеквизитов.Наименование;
        
    КонецЕсли;
    
    Возврат Информация;
    
КонецФункции

Функция ТемаОповещенияОбОтклоненномИнциденте(ИнформацияОбОтклоняемомИнциденте, Получатель) Экспорт
    
    Тема = "";
    
    Получатель = ИнформацияОбОтклоняемомИнциденте.Автор;
        Тема = Тема + "Автору: ";
    
    Тема = Тема + " заявка отклонена """ + ИнформацияОбОтклоняемомИнциденте.Тема + """";
    
    Возврат Тема;
    
КонецФункции


Функция ТекстОповещенияОбОтклоненномИнциденте(ИнформацияОбОтклоняемомИнциденте, Инцидент) Экспорт
    
    Макет = РегистрыСведений.су_Оповещения.ПолучитьМакет("Макет");
    
    Шаблон = Макет.ПолучитьТекст();
    МассивОбластей = БСП_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Шаблон, "--//--");
    
    ТекстШапки = МассивОбластей[0];
    
    ТекстШапки = СтрЗаменить(ТекстШапки, "{Автор}", ИнформацияОбОтклоняемомИнциденте.Автор);
    ТекстШапки = СтрЗаменить(ТекстШапки, "{Ответственный}", ИнформацияОбОтклоняемомИнциденте.Ответственный);
    ТекстШапки = СтрЗаменить(ТекстШапки, "{ДатаПринятияВРаботу}", ИнформацияОбОтклоняемомИнциденте.Дата);
    
    Комментарий =  РегистрыСведений.су_Оповещения.ТекстКомментариев(Инцидент);
    Если Не ПустаяСтрока(Комментарий) Тогда
    ТекстШапки = ТекстШапки + "<h2>Комментарий исполнителя</h2>" + Символы.ПС;
    ТекстШапки = ТекстШапки + Комментарий + Символы.ПС;
    КонецЕсли;
    
    ТекстШапки = ТекстШапки + "<h2>Текст обращения</h2>" + Символы.ПС;
    ТекстШапки = ТекстШапки + Комментарий + Символы.ПС;
    
    ТекстПодвала = МассивОбластей[2];
    
    Возврат ТекстШапки + ТекстПодвала;        
            
КонецФункции


При отладке вижу, что в "ТемаОповещенияОбОтклоненномИнциденте" Получатель(то бишь автор) и Тема выступают как неопределенная переменная. Есть мысли как это поправить?
24 baziza
 
01.10.15
12:40
Хотя Тема вроде заполняется корректно.
25 baziza
 
01.10.15
16:33
Исправлено. Всё работает! Всем уважуха.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший