|
результат запроса возвращает пустое значение | ☑ | ||
---|---|---|---|---|
0
Новый1сник2
01.05.21
✎
13:09
|
подскажите где ошибка в запросе? в консоли возвращает пользователя, а в конфигураторе при отладке результат возвращает пустое значение.
Функция ПолучитьПользователя(Ответственный) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СотрудникиПользователя.Пользователь.Ссылка КАК Пользователь |ИЗ | РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя |ГДЕ | СотрудникиПользователя.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("Сотрудник", Ответственный); Результат = Запрос.Выполнить(); Если НЕ ПустаяСтрока(Результат) Тогда Значение = Результат.Выгрузить()[0].Пользователь; Иначе Значение = ""; КонецЕсли; Возврат Значение; КонецФункции |
|||
1
ДенисЧ
01.05.21
✎
13:10
|
" Результат = Запрос.Выполнить();
Если НЕ ПустаяСтрока(Результат) Тогда" Как жаль, что гильотину отменили... А то в самый раз бы... |
|||
2
Новый1сник2
01.05.21
✎
13:11
|
(1) если проверяю на Результат.Пустой() пишет ошибку
|
|||
3
ДенисЧ
01.05.21
✎
13:12
|
(2) Ошибку где? В ДНК?
|
|||
4
Новый1сник2
01.05.21
✎
13:15
|
(3) в режиме предприятия, что то про несоответствии типов
|
|||
5
Новый1сник2
01.05.21
✎
13:16
|
(3) где может быть ошибка в запросе ? в регистре только два измерения, сотрудник и пользователь
|
|||
6
ДенисЧ
01.05.21
✎
13:17
|
(4) Извини, но по праздникам я не подаю и не угадывают "что-то" в сообщения об ошибках.
|
|||
7
Новый1сник2
01.05.21
✎
13:21
|
вот такая ошибка:
Значение не является значением объектного типа (Пустой) {Документ.ЗадачаСотрудника.Форма.ФормаДокумента.Форма(349)}: Записать(); значение получаю так: Значение = ?(Результат.Пустой() , "", Результат.Выгрузить()[0].Пользователь); |
|||
8
Новый1сник2
01.05.21
✎
13:25
|
есть еще варианты, почему запрос пустое значение дает ?
|
|||
9
ДенисЧ
01.05.21
✎
13:30
|
А если так
РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() тогда Значение = ""; Иначе выборка = результатЗапроса.Выбрать(); выборка.Следующий(); Значение = выборка.Пользователь; КонецЕсли; ? |
|||
10
Новый1сник2
01.05.21
✎
13:41
|
(9) перенес функцию в модуль Формы документа, все заработало, х.з почему
|
|||
11
NcSteel
01.05.21
✎
13:47
|
Ибо "результат" видимо реквизит или глобальная переменная модуля.
|
|||
12
Новый1сник2
01.05.21
✎
13:50
|
(11) возможно
|
|||
13
Новый1сник2
01.05.21
✎
13:54
|
можете еще подсказать по системе взаимодействия, нужно оповестить пользователя о новой задаче. пишет ошибку Ошибка протокола системы взаимодействия
код такой &НаСервере Процедура ОповеститьПользователя(ИмяПользователяИБ) Экспорт _пользователь = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(Пользователи.НайтиПоИмени(ИмяПользователяИБ ).ИдентификаторПользователяИБ); нОбсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); нОбсуждение.Заголовок = СокрЛП(Объект.Ссылка); // "Оповещение о нехватке товара на " + Формат(ТекущаяДата(), "ДЛФ=DDT"); нОбсуждение.Ключ = СокрЛП(Объект.Ссылка); //"Новая задача"; нОбсуждение.Отображаемое = Истина; нОбсуждение.Участники.Добавить(_пользователь); //нОбсуждение.Групповое = Ложь; ////нОбсуждение.Дата //нОбсуждение.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( //НСтр("ru = 'Новая задача %1'"), ПолучитьНавигационнуюСсылку(ЭтотОбъект)); //нОбсуждение.Автор = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); нОбсуждение.Записать(); КонецПроцедуры |
|||
14
Новый1сник2
01.05.21
✎
13:55
|
+ и некоторые реквизиты не доступны, например текст и автор
|
|||
15
Новый1сник2
01.05.21
✎
13:58
|
конфа УНФ 1.6 (1.6.24.180)
|
|||
16
Новый1сник2
01.05.21
✎
13:59
|
(11) результат действительно реквизит документа ))
|
|||
17
Новый1сник2
01.05.21
✎
14:25
|
Вот такой код пишу, задача создается но оповещение не приходит, появляется только после перезапуска сеанса1с.
&НаСервере Процедура ОповеститьПользователя(ИмяПользователяИБ) Экспорт _пользователь = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(Пользователи.НайтиПоИмени(ИмяПользователяИБ ).ИдентификаторПользователяИБ); мОбсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); мОбсуждение.Отображаемое = Истина; мОбсуждение.Заголовок = Объект.Описание; мОбсуждение.Участники.Добавить(СистемаВзаимодействия.ИдентификаторТекущегоПользователя()); мОбсуждение.Участники.Добавить(_пользователь); УстановитьПривилегированныйРежим(Истина); мОбсуждение.Записать(); КонецПроцедуры |
|||
18
Новый1сник2
01.05.21
✎
14:27
|
как сделать чтобы приходило оповещение не перезапуская сеанс ? и как можно передать ссылку на саму задачу, чтобы из сообщения можно было перейти в задачу
|
|||
19
Новый1сник2
01.05.21
✎
14:27
|
некоторые реквизиты не совпадают видимо разные версии БСП
|
|||
20
Новый1сник2
01.05.21
✎
15:08
|
вроде разобрался, спасибо за подсказки. есть еще вопрос как передать ссылку на задачу ?
код такой: СообщениеСВ = СистемаВзаимодействия.СоздатьСообщение(мОбсуждение.Идентификатор); СообщениеСВ.Автор = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); СообщениеСВ.Получатели.Добавить(_пользователь); // СообщениеСВ.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Новая задача %1'"), ПолучитьНавигационнуюСсылку(Объект.Ссылка)); СообщениеСВ.Текст = СокрЛП(Объект); СообщениеСВ.Записать(); |
|||
21
Новый1сник2
01.05.21
✎
15:53
|
еще почему то на идентификатор ошибку пишет:
СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор) {(1)}: Значение не является значением объектного типа (Идентификатор) вот полный код процедуры &НаСервере Процедура ОповеститьПользователя(ИмяПользователяИБ) Экспорт _пользователь = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(Пользователи.НайтиПоИмени(ИмяПользователяИБ ).ИдентификаторПользователяИБ); Отбор = Новый ОтборОбсужденийСистемыВзаимодействия; Отбор.Отображаемое = Истина; Отбор.Ключ = СокрЛП(Объект.Ссылка); МОбсуждение = СистемаВзаимодействия.ПолучитьОбсуждения(Отбор); Если МОбсуждение.Количество() = 0 Тогда Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); Обсуждение.Отображаемое = Истина; Обсуждение.Ключ = СокрЛП(Объект.Ссылка); Обсуждение.Заголовок = Объект.Описание; Обсуждение.Участники.Добавить(СистемаВзаимодействия.ИдентификаторТекущегоПользователя()); Обсуждение.Участники.Добавить(_пользователь); УстановитьПривилегированныйРежим(Истина); Обсуждение.Записать(); Иначе Обсуждение = МОбсуждение[0]; КонецЕсли; СообщениеСВ = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор); СообщениеСВ.Автор = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); СообщениеСВ.Получатели.Добавить(_пользователь); // СообщениеСВ.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Новая задача %1'"), ПолучитьНавигационнуюСсылку(Объект.Ссылка)); СообщениеСВ.Текст = СокрЛП(Объект.ОснованиеПредставление); СообщениеСВ.Записать(); КонецПроцедуры |
|||
22
Новый1сник2
01.05.21
✎
15:54
|
подскажите что не так делаю, как получить этот идентификатор и навигационную ссылку на задачу?
|
|||
23
Новый1сник2
01.05.21
✎
16:01
|
с идентификатором разобрался, как получить ссылку на задачу?
|
|||
24
Новый1сник2
02.05.21
✎
08:42
|
с ссылкой на задачу тоже разобрался
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |