helpf.pro
Регистрация

Значение не является значением объектного типа (ИсполнительЗадачи)...

bless18
12.04.2010 08:07Прочитано: 8303
У меня имеется обработка, при запуске которой должны отображаться сотрудники, работающие с системой и задачи, которые они выполняют.
Задачу для выполнения сотрудник получает через документ "Распределение задачи". Его реквизиты: получатель, исполнитель....
В обработке пишу запрос, в котором выбираю поля из этого документа и параметром ставлю исполнителя, для того, чтобы отследить кто из сотрудников, что выполняет в данный момент.
Один из реквизитов табличной части обработки: ИмяИсполнителя
Код 1C v 8.х
 Процедура ПриОткрытии()
СтрокаТЧ = ЭлементыФормы.Пользователи.ТекущиеДанные;
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();

Колонки = Пользователи.Колонки;

Колонки.Добавить("Пользователь" , , , 10);
Колонки.Добавить("Приложение" , , , 10);

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачи.Дата,
| РаспределениеЗадачи.Получатель,
| РаспределениеЗадачи.НаименованиеОтдела,
| РаспределениеЗадачи.Исполнитель,
| РаспределениеЗадачи.РаспределениеЗадачиСотрудникам.(
| НаименованиеЗадачи,
| ДатаВыполнения,
| Приоритет
| )
|ИЗ
| Документ.РаспределениеЗадачи (Исполнитель = &Исполнитель) КАК РаспределениеЗадачи";

Запрос.УстановитьПараметр("Исполнитель", СтрокаТЧ.ИсполнительЗадачи);
Запрос.Выполнить().Выгрузить();

Для Каждого СтрокаТЧ Из Пользователи Цикл
НоваяСтрока = Пользователи.Добавить();

НоваяСтрока.ДатаНачалаВыполнения = СтрокаТЧ.ДатаНачалаВыполнения;
НоваяСтрока.ДатаВыполненияПоПлану = СтрокаТЧ.ДатаВыполненияПоПлану;
НоваяСтрока.Исполнитель = СтрокаТЧ.Исполнитель;
НоваяСтрока.ПроцентЗавершенности = СтрокаТЧ.ПроцентЗавершенности;

КонецЦикла;



Но выдается ошибка:
{Обработка.РаботаПользователей.Форма.Форма(29)}: Значение не является значением объектного типа (ИсполнительЗадачи)
Запрос.УстановитьПараметр("Исполнитель", СтрокаТЧ.ИсполнительЗадачи);
Подскажите, пожалуйста, как исправить.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
12.04.2010 09:42Ответ № 1
Проблема в том что невозможно получить объект ИсполнительЗадачи из СтрокаТЧ, проверь через отладчик, в момент ошибки, что есть в ИсполнительЗадачи?

Возможно надо писать так СтрокаТЧ.ИсполнительЗадачи.Ссылка
bless18
12.04.2010 10:13Ответ № 2
Сообщается, что переменная не определена. А если написать СтрокаТЧ.ИсполнительЗадачи.Ссылка, то выдается та же ошибка.

Пробую убрать параметры из запроса:
Код 1C v 8.х
 Процедура ПриОткрытии()
СтрокаТЧ = ЭлементыФормы.Пользователи.ТекущиеДанные;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачи.Дата,
| РаспределениеЗадачи.Получатель,
| РаспределениеЗадачи.НаименованиеОтдела,
| РаспределениеЗадачи.Исполнитель,
| РаспределениеЗадачи.РаспределениеЗадачиСотрудникам.(
| НаименованиеЗадачи,
| ДатаВыполнения,
| Приоритет
| )
|ИЗ
| Документ.РаспределениеЗадачи КАК РаспределениеЗадачи";

Для Каждого ТекСтрокаПользователи Из Пользователи Цикл

СтрокаТЧ.ДатаНачалаВыполнения = ТекСтрокаПользователи.ДатаНачалаВыполнения;
СтрокаТЧ.ДатаВыполненияПоПлану = ТекСтрокаПользователи.ДатаВыполненияПоПлану;
СтрокаТЧ.Исполнитель = ТекСтрокаПользователи.ИсполнительЗадачи;
СтрокаТЧ.ПроцентЗавершенности = ТекСтрокаПользователи.ПроцентЗавершенности;
КонецЦикла;


Почему-то программа не зоходит в цикл.
bless18
12.04.2010 10:14Ответ № 3
Не заходит )
E_Migachev
12.04.2010 10:31Ответ № 4
Пользователи - это табличная часть документа?
или просто добавил на форму ТабПоле?
попробуй перед циклом написать
Код 1C v 8.х
 Сообщить(Пользователи.количество());
Для Каждого ТекСтрокаПользователи Из Пользователи Цикл


Количество показывает?
bless18
12.04.2010 12:13Ответ № 5
Да, показывает, их количество = 0. Хотя как минимум один должен быть, так как я захожу под пользователем в конфигурацию.
E_Migachev
12.04.2010 12:15Ответ № 6
так как 0 - вот цикл и не идет, смотри почему не попадают зашедшие пользователи таб поле?
bless18
13.04.2010 11:42Ответ № 7
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.