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

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

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

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

alexandr_ll

sokoff, Создайте новый документ, выберите других сотрудников и проверьте. Также проверьте регистр контактной информации на наличие неправильных или пустых записей.

sokoff

alexandr_ll, по одному сотруднику проверил адреса, ввел телефоны, почту, ошибка повторяется - ВнешняяОбработка.ПФ_СогласиеНаОбработкуДанных.МодульОбъекта(104)}:   Для Каждого СтрКИ Из ТекДанныеСотрудника.Организация.КонтактнаяИнформация  Цикл,
если я в конфигураторе пр кнопкойпо этой строке в коде - "вычислить выражение", то там в колонке значение - неизвестный модуль, значение не является значением обьектного типа (организация)

Максим75

sokoff, да станьте точкой и посмотрите, что в ТекДанныеСотрудника находится. Что это такое. Видимо нет там Организации.
Ну а потом посмотрите, как это кино ТекДанныеСотрудника заполняется, ну там запрос или еще как-то, может там и увидите, что не так.

sokoff

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

спасибо!

sokoff

Максим75, в тек данных организации в регистре есть организация, только регистр называется ТекущиеКадровыеДанныеСотрудников, но я меня в коде, не помогло

sali

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

sokoff

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

Максим75

еще раз.
становитесь точкой перед циклом и смотрите, что в ТекДанныеСотрудника.
вот как станет отладчик на точке, то в вычислить выражение запихните эти ТекДанныеСотрудника и посмотрите, что это такое (структура, массив, или еще что-то). Если структура, то раскройте и посмотрите, есть ли в ней Организация

Максим75

вот сюда сходите
ТекДанныеСотрудника = ДанныеСотрудника(РуководительОрганизации);
и посмотрите, что возвращает функция ДанныеСотрудника()

sokoff

Максим75, прошу прощения, но я чувствую себя тупым, где увидеть эту функцию

Теги:

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

Рейтинг@Mail.ru

Поиск