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

Помогите

Автор super1dwad21dasa, Сегодня в 10:53

super1dwad21dasa и 2 гостей просматривают эту тему.

super1dwad21dasa

Всем привет, вылезает ошибка: "Значение не является значением объектного типа (Ссылка)
{Обработка.АРМНачальнаяСтраницаПсихиатра.Форма.Форма.Форма(6)}:   ПараметрыФормы = Новый Структура("Ключ", РаботаСпециалистаТекущиеДанные.Ссылка);" и я не совсем понимаю в чем проблема вот код


&НаКлиенте
Процедура ОткрытьНаправление(Команда)           
   
   РаботаСпециалистаТекущиеДанные = Элементы.РаботаСпециалиста.ТекущиеДанные;
   ПараметрыФормы = Новый Структура("Ключ", РаботаСпециалистаТекущиеДанные); ///ругается на эту строку
   ОткрытьФорму("Документ.НаправлениеКСпециалисту.ФормаОбъекта", ПараметрыФормы);
   Элементы.РаботаСпециалиста.Обновить();
   
КонецПроцедуры

&НаКлиенте
Процедура ЗарегистрироватьОтвет(Команда)
   
   Отказ = Ложь;
   
   ДанныеДокумента = Новый Структура;
   
   СформироватьДанныеДокументов(ДанныеДокумента);
   
   Отказ = ПроверитьОтветСпециалиста(ДанныеДокумента);   
   
   Если Отказ Тогда
      Возврат;
   КонецЕсли;   
   
   СоздатьДокументПриемаСпециалиста(ДанныеДокумента);
   Элементы.РаботаСпециалиста.Обновить();   

   СформироватьДанныеДокументов(ДанныеДокумента);
   
   Оповещение = Новый ОписаниеОповещения("ОбновитьФорму", ЭтаФорма);
   
   ОткрытьФорму("Обработка.АРМНачальнаяСтраницаПсихиатра.Форма.ФормаВводаКомментария", ДанныеДокумента,,,,, Оповещение, РежимОткрытияОкнаФормы.Независимый);   
   Элементы.РаботаСпециалиста.Обновить();             
   
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьФорму(Результат, ДополнительныеПараметры) Экспорт
   
   Элементы.РаботаСпециалиста.Обновить();             
   
КонецПроцедуры

&НаКлиенте
Процедура ЗарегистрироватьПрием(Команда)   
   
   ДанныеДокумента = Новый Структура;
   
   СформироватьДанныеДокументов(ДанныеДокумента);
   
   СоздатьДокументПриемаСпециалиста(ДанныеДокумента);
   Элементы.РаботаСпециалиста.Обновить();   
   
КонецПроцедуры

&НаКлиенте
Процедура СформироватьДанныеДокументов(ДанныеДокумента)   
      
   РаботаСпециалистаТекущиеДанные = Элементы.РаботаСпециалиста.ТекущиеДанные;   
   
   ДанныеДокумента.Вставить("НаправлениеКСпециалисту", РаботаСпециалистаТекущиеДанные.Ссылка);
   ДанныеДокумента.Вставить("Студент", РаботаСпециалистаТекущиеДанные.Студент);   
   ДанныеДокумента.Вставить("ГруппаРиска", РаботаСпециалистаТекущиеДанные.ГруппаРиска);   
   ДанныеДокумента.Вставить("ПриемСпециалиста", РаботаСпециалистаТекущиеДанные.ПриемСпециалиста);
   ДанныеДокумента.Вставить("ОтветСпециалиста", РаботаСпециалистаТекущиеДанные.ОтветСпециалиста);
      
КонецПроцедуры

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

&НаСервере
Функция ПроверитьОтветСпециалиста(ДанныеДокумента)   
   
   Если ЗначениеЗаполнено(ДанныеДокумента.ОтветСпециалиста)
      Или Не ДанныеДокумента.ОтветСпециалиста = Документы.ОтветСпециалиста.ПустаяСсылка() Тогда
   
      ОбщегоНазначения.СообщитьПользователю("Ответ специалиста уже зарегистрирован");
      
      Возврат Истина;
      
   КонецЕсли;
   
   Возврат Ложь;
      
КонецФункции

&НаСервере
Процедура ОтборРаботаСпециалиста()   
   
   РаботаСпециалиста.КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();
   
   ОтборНастройки = РаботаСпециалиста.КомпоновщикНастроек.Настройки.Отбор;
   ПолеКомпоновкиПриемСпециалиста = Новый ПолеКомпоновкиДанных("ПриемСпециалиста");
   ПолеКомпоновкиОтветСпециалиста = Новый ПолеКомпоновкиДанных("ОтветСпециалиста"); 
   
   Если БезВзятияВРаботу Тогда
      
      ДобавитьЭлементОтбора(ОтборНастройки, ПолеКомпоновкиПриемСпециалиста, Документы.ПриемСпециалиста.ПустаяСсылка());
      
   КонецЕсли;     
   
   Если БезОтвета Тогда
      
      ДобавитьЭлементОтбора(ОтборНастройки, ПолеКомпоновкиОтветСпециалиста, Документы.ОтветСпециалиста.ПустаяСсылка());
      
   КонецЕсли;       
   
   РаботаСпециалиста.КомпоновщикНастроек.ЗагрузитьНастройки(РаботаСпециалиста.КомпоновщикНастроек.Настройки);
   
КонецПроцедуры

&НаКлиенте
Процедура БезВзятияВРаботуПриИзменении(Элемент)
   ОтборРаботаСпециалиста();
КонецПроцедуры     

&НаСервере
Процедура ДобавитьЭлементОтбора(ОтборНастройки, ПолеКомпоновки, ПравоеЗначение)   
   
   ОтборЭлемент = ОтборНастройки.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ОтборЭлемент.ЛевоеЗначение = ПолеКомпоновки;
   ОтборЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
   ОтборЭлемент.Использование = Истина;
   //ОтборЭлемент.ПравоеЗначение = ПравоеЗначение;
   
КонецПроцедуры


&НаКлиенте
Процедура БезОтветаПриИзменении(Элемент)
   ОтборРаботаСпециалиста();
КонецПроцедуры

Помогите пожалуйста исправить эту ошибку, заранее спасибо



fruitella

РаботаСпециалистаТекущиеДанные = Элементы.РаботаСпециалиста.ТекущиеДанные;

У тебя при получении этих данных, некорректный тип от которого можно получить ссылку. Ставь точку остановы и смотри, что там приелетает.

Теги:

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

Рейтинг@Mail.ru

Поиск