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

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

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

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

Максим75

sokoff, да 30 строчек кода то всего.
что там искать?
стали точкой на начало в рабочей и демо и прошлись построчно и посмотрели, что в каждой строке переменные получают за значения.
там делов на час максимум, а возится уже какой день.

в коде участвуют две выборки неких результатов запросов, на одной спотыкается, да закомментируйте в конце концов обход в цикле ТекДанныеСотрудника и посмотрите что будет.

sokoff

Максим75, сделал,вот ответ-
Ошибка при вызове метода контекста (НайтиПараметры)
{ВнешняяОбработка.КонсольЗапросов.МодульОбъекта(715)}:   ПарЗап = Запрос.НайтиПараметры();
{ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(1763)}:   РезультатСтруктура = ОбъектОбработки().СчитатьПараметрыЗапроса(ТекстЗапроса, ИдентификаторТекущегоЗапроса);
{ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(1274)}:   ЗаполнитьПараметрыПриВыполненииЗапроса(Текст);
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>АдресОрганизации = "";

sokoff

когда на демо версии зуп запрос проходит по этой строчке "ТекДанныеСотрудника.Организация.КонтактнаяИнформация   " у нее появляется такое выражение - ТекДанныеСотрудника.Организация.КонтактнаяИнформация   СправочникТабличнаяЧасть.Организации.КонтактнаяИнформация   СправочникТабличнаяЧасть.Организации.КонтактнаяИнформация,

на моей базе выходит ошибка, в справочнике организации есть контактная информация,
я реально туплю

alexandr_ll

sokoff, Кэш чистили? Конфигурации демо и рабочая - идентичные (проф, базовые, номера релизов)?

sokoff

alexandr_ll, базы были другом месте, потому их прописал впервые,релизы почти одинаковые 3.1.34.57 другая 58,

sokoff

Цитата: alexandr_ll от 24 авг 2025, 18:23sokoff, Кэш чистили? Конфигурации демо и рабочая - идентичные (проф, базовые, номера релизов)?
запускал эту внешнюю печатную форму и вообщена другой зуп,  3.1.34.40 версии - тоже печатает

Максим75

sokoff, дайте еще раз текст функции ПолучитьСтруктуруПараметров
и функции ДанныеСотрудника(Сотрудник)

sokoff

Цитата: Максим75 от 25 авг 2025, 08:29sokoff, дайте еще раз текст функции ПолучитьСтруктуруПараметров
и функции ДанныеСотрудника(Сотрудник)

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

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


Максим75

sokoff,
вместо этого

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

поставьте это

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

что будет?

sokoff

Максим75, вот

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

Теги:

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

Рейтинг@Mail.ru

Поиск