Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 сен 2025, 03:38

Значение не является значением объектного типа (Организация)

Автор sokoff, 14 авг 2025, 10:17

0 Пользователей и 2 гостей просматривают эту тему.

Максим75

sokoff, ну выкладывайте сюда текст измененной функции.
есть подозрение, что не туда вставили, или не то.

sokoff

Максим75,
Функция ПолучитьСтруктуруПараметров(СсылкаНаОбъект)
           
    ПараметрыМакета = Новый Структура;   
   
    ПараметрыМакета.Вставить("ПолноеНаименованиеОрганизации", СсылкаНаОбъект.Организация.НаименованиеПолное);
       
    РуководительОрганизации = РуководительОрганизации(ТекущаяДата());
    ТекДанныеСотрудника = ДанныеСотрудника(РуководительОрганизации);
    ПараметрыМакета.Вставить("РуководителюОрганизации",    ?(ТекДанныеСотрудника = Неопределено, "", СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(ТекДанныеСотрудника.ТекущаяДолжность), 3) + " " +  СсылкаНаОбъект.Организация.Наименование));     
    ПараметрыМакета.Вставить("ФИОРуководителя",            ?(ТекДанныеСотрудника = Неопределено, "", СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(ТекДанныеСотрудника.Фамилия) + " " + ТекДанныеСотрудника.Имя + " " + ТекДанныеСотрудника.Отчество, 3)));
    //Обработка адреса работодателя
    АдресОрганизации = "";
Если НЕ ТекДанныеСотрудника = Неопределено тогда
   Для Каждого СтрКИ Из ТекДанныеСотрудника.Организация.КонтактнаяИнформация  Цикл
      Если СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации Тогда
         АдресОрганизации = СтрКИ.Представление;
         Прервать;
      КонецЕсли;
   КонецЦикла;
КонецЕсли;
   
    ПараметрыМакета.Вставить("АдресОрганизации", СтрЗаменить(АдресОрганизации, "РОССИЯ, ", ""));
    ПараметрыМакета.Вставить("Работодатель", СсылкаНаОбъект.Организация.Наименование + " (ОГРН " + СсылкаНаОбъект.Организация.ОГРН + ", ИНН " +  СсылкаНаОбъект.Организация.ИНН + ")");
   
    ТекДанныеФизЛица = ДанныеФизЛица(СсылкаНаОбъект.Субъект);
    ПараметрыМакета.Вставить("ФИОСотрудника",                    ?(ТекДанныеФизЛица = Неопределено, "", ТекДанныеФизЛица.Фамилия + " " + ТекДанныеФизЛица.Имя + " " + ТекДанныеФизЛица.Отчество));
    ПараметрыМакета.Вставить("ИОФамилияСотрудника",                ?(ТекДанныеФизЛица = Неопределено, "", Лев(ТекДанныеФизЛица.Имя, 1) + "." + Лев(ТекДанныеФизЛица.Отчество, 1) + ". " + ТекДанныеФизЛица.Фамилия));       
    //Формируем данные ФизЛица
    Если НЕ ТекДанныеФизЛица = Неопределено Тогда
        Адрес = "";
        Для Каждого СтрКИ Из СсылкаНаОбъект.Субъект.КонтактнаяИнформация  Цикл
            Если СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица Тогда
                Адрес = СтрКИ.Представление;
                Адрес = СтрЗаменить(Адрес, "РОССИЯ, ", "");
                Прервать;
            КонецЕсли;
        КонецЦикла;   
        ДанныеФизЛица = Лев(ТекДанныеФизЛица.Имя, 1) + "." + Лев(ТекДанныеФизЛица.Отчество, 1) + ". " + СклонениеПредставленийОбъектов.ПросклонятьПредставление(ТекДанныеФизЛица.Фамилия, 2) + ", "
                      + "паспорт серии " + ТекДанныеФизЛица.СерияПаспорта + " № " + ТекДанныеФизЛица.НомерПаспорта + " выдан " + Формат(ТекДанныеФизЛица.ДатаВыдачи, "ДФ='dd MMMM yyyy ""года""'") + " " + ТекДанныеФизЛица.ОрганВыдачи + ", "
                      + "зарегистрированного(ой) по адресу: " + Адрес;                 
        ПараметрыМакета.Вставить("ДанныеФизЛица", ДанныеФизЛица);                 
    КонецЕсли;
   
    Возврат ПараметрыМакета;
КонецФункции   

Максим75

sokoff, станьте точкой здесь
ТекДанныеСотрудника = ДанныеСотрудника(РуководительОрганизации);

и пошагово пройдитесь, зайдет в условие
Если НЕ ТекДанныеСотрудника = Неопределено тогда ?
если зайдет, то посмотрите что в ТекДанныеСотрудника? значит там должна быть выборка результата запроса.

sokoff

Максим75, эту строчку проскакивает и в выравжении пишет:

ТекДанныеСотрудника      Неопределено

Максим75

sokoff, а дальше куда идет отладка?
раз ТекДанныеСотрудника у Вас неопределено, то не должно и заходить в этот цикл

Для Каждого СтрКИ Из ТекДанныеСотрудника.Организация.КонтактнаяИнформация  Цикл

пройдитесь отладчиком пошагово. в этот цикл заходит?

sokoff

Максим75, да, эту строку проскакивает, доходит до строки 111 - "КонецЕсли" и выходит ошибка

Значение не является значением объектного типа (Организация)
{ВнешняяОбработка.ПФ_СогласиеНаОбработкуДанных.МодульОбъекта(104)}:   Для Каждого СтрКИ Из ТекДанныеСотрудника.Организация.КонтактнаяИнформация  Цикл
{ВнешняяОбработка.ПФ_СогласиеНаОбработкуДанных.МодульОбъекта(51)}:   ПараметрыМакета = ПолучитьСтруктуруПараметров(СсылкаНаОбъект);
{ВнешняяОбработка.ПФ_СогласиеНаОбработкуДанных.МодульОбъекта(41)}:   УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПФ_СогласиеНаОбработкуДанных", "Согласие на обработку данных", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
{ОбщийМодуль.УправлениеПечатью.Модуль(2134)}:   ВнешняяОбработкаОбъект.Печать(
{ОбщаяФорма.ПечатьДокументов.Форма(788)}:      УправлениеПечатью.ПечатьПоВнешнемуИсточнику(
{ОбщаяФорма.ПечатьДокументов.Форма(61)}:      КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(345)}:      ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
{ОбщийМодуль.УправлениеПечатьюГлобальный.Модуль(13)}:   УправлениеПечатьюСлужебныйКлиент.ПродолжитьВыполнениеКомандыПечати();

Максим75

sokoff, вставьте такое

 АдресОрганизации = "";
Если НЕ ТекДанныеСотрудника = Неопределено тогда
Попытка
   Для Каждого СтрКИ Из ТекДанныеСотрудника.Организация.КонтактнаяИнформация  Цикл
      Если СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации Тогда
         АдресОрганизации = СтрКИ.Представление;
         Прервать;
      КонецЕсли;
   КонецЦикла;
Исключение
КонецПопытки;
КонецЕсли;

хотя Вам бы задаться вопросом, почему в текДанныеСотрудника пустота возвращается, что не так с данными в регистре, что запрос ничего не возвращает.

sokoff

Максим75, ошибка та же, пересоздал запись в данных для подбора сотрудников один хрен ошибка та же

Максим75

sokoff, закомментируйте вот этот текст

Если НЕ ТекДанныеСотрудника = Неопределено тогда
   Для Каждого СтрКИ Из ТекДанныеСотрудника.Организация.КонтактнаяИнформация  Цикл
      Если СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации Тогда
         АдресОрганизации = СтрКИ.Представление;
         Прервать;
      КонецЕсли;
   КонецЦикла;
КонецЕсли;

и после этого будет ошибка?
вообще пустой адрес организации подсунем.

sokoff


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск