|
Передача ссылки между клиентом и сервером УФ | ☑ | ||
---|---|---|---|---|
0
skupidom
12.04.18
✎
17:34
|
Проблема с отображением ссылки на документ в т.ч. на форме обработки.На сервере ссылка на документ есть, при передаче ее наКлиенте <Объект не найден> (669:b02f0050568a2f3511e821d00853b356), добавлял в списокзначений - битая ссылка. как передать?
|
|||
1
Cyberhawk
12.04.18
✎
17:46
|
Что-то ты гонишь
|
|||
2
Cyberhawk
12.04.18
✎
17:47
|
Или это кэш представлений объектов БД, да
|
|||
3
Cyberhawk
12.04.18
✎
17:47
|
"Показывай своего дружка" (с)
|
|||
4
skupidom
13.04.18
✎
12:56
|
Процедура № 1
&НаКлиенте Процедура СоздатьНовые(Команда) Путь = ПолучитьИмяФайлаОбменаОтвета(); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(Путь); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("УдалитьУИД"); //ПоместитьФайл(АдресВременногоХранилища, Путь,,Ложь, УникальныйИдентификатор); МассивУдалитьУИД = СоздатьНовыеНаСервере(); Для Каждого СтрМ Из МассивУдалитьУИД Цикл ЗаписатьXML(ЗаписьXML,СтрМ,"УИДУдалить",НазначениеТипаXML.Явное); КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); КонецПроцедуры |
|||
5
skupidom
13.04.18
✎
12:57
|
Процедура № 2
&НаСервере Функция СоздатьНовыеНаСервере() Экспорт ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("СсылкаДок"); ОбъектЗагрузкаДанных = РеквизитФормыВЗначение("Объект"); ТаблицаУдалитьУИД = ОбработатьТаблицуНеНайденныхСоответствий(ОбъектЗагрузкаДанных); // Прочитаем ссылки объектов по УИД ТЗСсылок = ОбъектЗагрузкаДанных.Доки; Для Каждого Стр Из ТЗСсылок Цикл Если НЕ ЗначениеЗаполнено(Стр.ДокументБИТ) Тогда Если Стр.ТипДокументаУПП = "СчетНаОплатуПоставщика" Тогда ЕстьСсылка = Документы.СчетНаОплатуПоставщика.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "СчетНаОплатуПокупателю" Тогда ЕстьСсылка = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеТоваровУслуг" Тогда ЕстьСсылка = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеНаРасчетныйСчет" Тогда ЕстьСсылка = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "СписаниеСРасчетногоСчета" Тогда ЕстьСсылка = Документы.СписаниеСРасчетногоСчета.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "АвансовыйОтчет" Тогда ЕстьСсылка = Документы.АвансовыйОтчет.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПриходныйКассовыйОрдер" Тогда ЕстьСсылка = Документы.ПриходныйКассовыйОрдер.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "РасходныйКассовыйОрдер" Тогда ЕстьСсылка = Документы.РасходныйКассовыйОрдер.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеДопРасходов" Тогда ЕстьСсылка = Документы.ПоступлениеДопРасходов.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; ЗначениеВРеквизитФормы(ТЗ,"ТЗДоков"); ЗначениеВРеквизитФормы(ОбъектЗагрузкаДанных,"Объект"); мсДанные = Новый Массив; Для Каждого СтрокаТЗ Из ТаблицаУдалитьУИД Цикл мсДанные.Добавить(СтрокаТЗ.УИД); КонецЦикла; Возврат мсДанные; КонецФункции |
|||
6
skupidom
13.04.18
✎
12:58
|
ссылки на документы на севере находит не битые, но в таблице ТЗДоков - возвращаются битые ссылки: объект не найден <Объект не найден> (669:b02f0050568a2f3511e821d00853b356)
|
|||
7
skupidom
13.04.18
✎
13:00
|
может как-то можно использовать: ЗначениеИзСтрокиВнутр,ЗначениеВСтрокуВнутр
|
|||
8
skupidom
13.04.18
✎
13:00
|
?
|
|||
9
tesseract
13.04.18
✎
13:05
|
(0) А что с сервера приходит? Строка (Элемент.УникальныйИдентификатор()) ?
|
|||
10
skupidom
13.04.18
✎
13:08
|
при передаче с сервера на клиент приходит:
<Объект не найден> (669:b02f0050568a2f3511e821d00853b356) |
|||
11
tesseract
13.04.18
✎
13:11
|
(10) Те ты с сервера получаешь массив GUID из плана обмена, где хранятся данные об удаленных обьектах? Тогда все норм.
|
|||
12
skupidom
13.04.18
✎
13:15
|
здесь на сервере заполняется тз ссылками на объекты:
ТЗСсылок = ОбъектЗагрузкаДанных.Доки; Для Каждого Стр Из ТЗСсылок Цикл Если НЕ ЗначениеЗаполнено(Стр.ДокументБИТ) Тогда Если Стр.ТипДокументаУПП = "СчетНаОплатуПоставщика" Тогда ЕстьСсылка = Документы.СчетНаОплатуПоставщика.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "СчетНаОплатуПокупателю" Тогда ЕстьСсылка = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеТоваровУслуг" Тогда ЕстьСсылка = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеНаРасчетныйСчет" Тогда ЕстьСсылка = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "СписаниеСРасчетногоСчета" Тогда ЕстьСсылка = Документы.СписаниеСРасчетногоСчета.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "АвансовыйОтчет" Тогда ЕстьСсылка = Документы.АвансовыйОтчет.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПриходныйКассовыйОрдер" Тогда ЕстьСсылка = Документы.ПриходныйКассовыйОрдер.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "РасходныйКассовыйОрдер" Тогда ЕстьСсылка = Документы.РасходныйКассовыйОрдер.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеДопРасходов" Тогда ЕстьСсылка = Документы.ПоступлениеДопРасходов.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=Стр.ДокументБИТ; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; |
|||
13
skupidom
13.04.18
✎
13:17
|
и здесь же на сервере передается в данные формы: ЗначениеВРеквизитФормы(ТЗ,"ТЗДоков");
|
|||
14
Fragster
гуру
13.04.18
✎
13:21
|
была такая ошибка платформы, если объект в этом серверном вызове создавался, а потом на него возвращалась ссылка на клиент, то был объект не найден. попробуй на последней платформе, хз, исправили или нет
|
|||
15
tesseract
13.04.18
✎
13:22
|
(12) Это точно Первый Бит писал? Совсем беда со спецами?
У тебя тупо не находиться документ по GUID. Если документ не находиться то эта функция вернет НОВЫЙ GUID, его нет в базе - получай свой "Объект не найден". |
|||
16
tesseract
13.04.18
✎
13:23
|
(14) Не видел такого в багтраке.
|
|||
17
Fragster
гуру
13.04.18
✎
13:24
|
(16) ну не видел и не видел, а ошибка есть
|
|||
18
tesseract
13.04.18
✎
13:24
|
(17) Ошибка - суслик. Никто ее не видел - а ошибка есть.
|
|||
19
Fragster
гуру
13.04.18
✎
13:26
|
ну или попробуй ОбновитьОтображениеДанных, в качестве меры обхода
|
|||
20
tesseract
13.04.18
✎
13:28
|
(19) Ты код посмотри, там идет как раз поиск по GUID на "Объект не найден".
|
|||
21
Segate
13.04.18
✎
13:32
|
(0)А что за конфа? не документооборот случайно? Если да, то вполне может рлс пошаливать. Там все на дескрипторы завязано, и без обновления прав по дескрипторам доступ к объекту не предоставлялся...
|
|||
22
Segate
13.04.18
✎
13:32
|
+(21) правда это в старом доке...
Хотя, если на сервере ссылка доступна, то хз конечно |
|||
23
tesseract
13.04.18
✎
13:35
|
(22) C чего ты решил, что она доступна? Если переписать процедуру на запрос с внутренним соединением, то получишь реальные данные.
|
|||
24
Segate
13.04.18
✎
13:39
|
(23)>>а сервере ссылка на документ есть, при передаче ее наКлиенте <Объект не найден> (669:b02f0050568a2f3511e821d00853b356),
Так топикстартер писал. Если рлс закрывают доступ к программно созданному элементу, то его не будет ни на сервере ни на клиенте. И доступ к нему(и дочерним св-вам) будет только при создании(т.е. до записи объекта в БД) |
|||
25
tesseract
13.04.18
✎
13:44
|
(24) Еще раз "ПолучитьССылку" всегда возвращает ссылку - если объекта нет в базе - она возвращает новую ссылку. Даже если ее не существует. RLS должно на сервере то-же отрабатываться - я не вижу вызова "УстановитьПривелигированныйРЕжим".
|
|||
26
Fragster
гуру
13.04.18
✎
13:55
|
(20) я тебе говорю, была (есть?) ошибка платформы, при создании объекта в серверном вызове и возврате на него ссылки в том же вызове _на клиенте_ получается объект не найден, при этом объект в базе есть и все с ним хорошо
|
|||
27
skupidom
13.04.18
✎
14:07
|
все объекты находятся по УИД, битых нет.Именно при передаче с сервера на клиент ссылка на документ превращается в объект не найден.
|
|||
28
skupidom
13.04.18
✎
14:08
|
УстановитьПривелигированныйРЕжим здесь разве как-то поможет?
|
|||
29
tesseract
13.04.18
✎
14:19
|
(26) Это не ошибка - создание объекта - это не запись его в базу. Объект созданный в серверном вызове и не записанный, существует только до возврата из функции.
Объект.Записать(); Возврат Объект.ссылка; Вот так ты получишь guid. Возврат Объект.ссылка; Получишь "Объект не найден", хотя GUID норм. (27) Ок давай продолжим эксперимент. Поменяй СтрТЗ.СсылкаДок=Стр.ДокументБИТ; На СтрТЗ.СсылкаДок=ЕстьССылка; И проверь какой тип значения имеет эта "СсылкаДок" |
|||
30
skupidom
13.04.18
✎
14:29
|
реквизит составного типа:
СтрТЗ.СсылкаДок Счет от поставщика ID000000295 от 28.02.2018 23:50:59 ДокументСсылка.СчетНаОплатуПоставщика |
|||
31
skupidom
13.04.18
✎
14:30
|
если например тип документа = СчетНаОплатуПоставщику, то это выражение: Если Стр.ТипДокументаУПП = "СчетНаОплатуПоставщика" Тогда
ЕстьСсылка = Документы.СчетНаОплатуПоставщика.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; |
|||
32
skupidom
13.04.18
✎
14:31
|
в параметре СтрТЗ.СсылкаДок вернет ДокументСсылка.СчетНаОплатуПоставщика
|
|||
33
skupidom
13.04.18
✎
14:32
|
и аналогично со всеми типами документов обработки
|
|||
34
skupidom
13.04.18
✎
14:46
|
УстановитьПривилегированныйРежим(Истина), все равно объект не найден,возврат битых ссылок.
|
|||
35
skupidom
13.04.18
✎
14:46
|
&НаСервере
Функция СоздатьНовыеНаСервере() Экспорт УстановитьПривилегированныйРежим(Истина); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("СсылкаДок"); ОбъектЗагрузкаДанных = РеквизитФормыВЗначение("Объект"); ТаблицаУдалитьУИД = ОбработатьТаблицуНеНайденныхСоответствий(ОбъектЗагрузкаДанных); // Прочитаем ссылки объектов по УИД ТЗСсылок = ОбъектЗагрузкаДанных.Доки; Для Каждого Стр Из ТЗСсылок Цикл Если НЕ ЗначениеЗаполнено(Стр.ДокументБИТ) Тогда Если Стр.ТипДокументаУПП = "СчетНаОплатуПоставщика" Тогда ЕстьСсылка = Документы.СчетНаОплатуПоставщика.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "СчетНаОплатуПокупателю" Тогда ЕстьСсылка = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеТоваровУслуг" Тогда ЕстьСсылка = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеНаРасчетныйСчет" Тогда ЕстьСсылка = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "СписаниеСРасчетногоСчета" Тогда ЕстьСсылка = Документы.СписаниеСРасчетногоСчета.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "АвансовыйОтчет" Тогда ЕстьСсылка = Документы.АвансовыйОтчет.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПриходныйКассовыйОрдер" Тогда ЕстьСсылка = Документы.ПриходныйКассовыйОрдер.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "РасходныйКассовыйОрдер" Тогда ЕстьСсылка = Документы.РасходныйКассовыйОрдер.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; ИначеЕсли Стр.ТипДокументаУПП = "ПоступлениеДопРасходов" Тогда ЕстьСсылка = Документы.ПоступлениеДопРасходов.ПолучитьСсылку(Стр.ДокументУПП_УИД); Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда Стр.ДокументБИТ = ЕстьСсылка; СтрТЗ=ТЗ.Добавить(); СтрТЗ.СсылкаДок=ЕстьСсылка; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; ЗначениеВРеквизитФормы(ТЗ,"ТЗДоков"); ЗначениеВРеквизитФормы(ОбъектЗагрузкаДанных,"Объект"); мсДанные = Новый Массив; Для Каждого СтрокаТЗ Из ТаблицаУдалитьУИД Цикл мсДанные.Добавить(СтрокаТЗ.УИД); КонецЦикла; Возврат мсДанные; КонецФункции |
|||
36
skupidom
13.04.18
✎
14:59
|
неужели никто не знает как исправить этот глюк ?
|
|||
37
tesseract
13.04.18
✎
15:42
|
(36) Это не глюк - это код из церковно-приходской школы.
Если НЕ Найти(Строка(ЕстьСсылка),"<Объект не найден>") <> 0 Тогда заменить на ЕстьССЫлка.Пустая() Из функции ты возвращаешь какой-то массив мсДанные, которые в цикле не отрабатываешь. Возвращаешь зачем-то ТЗДоков, а получаешь данные из обьекта, а не с реквизита формы. Причем : ЗначениеВРеквизитФормы(ТЗ,"ТЗДоков"); ЗначениеВРеквизитФормы(ОбъектЗагрузкаДанных,"Объект"); Ты перезаписываешь сначала "ТзДоков" а потом весь объект отправляешь на клиент, который хз чего содержит. Читать документацию до 3-го колокола. Может поймешь, что твой алгоритм вообще делает. |
|||
38
skupidom
13.04.18
✎
15:56
|
ТЗДоков заполняется в выше приведенной процедуре,это таблица значений на форме обработки для визуального видения:что вернулось с сервера-ссылки на объекты.ЗначениеВРеквизитФормы - я везде убрал, это роли не играет
|
|||
39
skupidom
13.04.18
✎
15:57
|
в любом случае возвращаются битые ссылки (объект не найден)
|
|||
40
skupidom
13.04.18
✎
16:01
|
Может все таки здесь исп.: ЗначениеВСтрокуВнутр / ЗначениеИзСтрокиВнутр ?
|
|||
41
tesseract
13.04.18
✎
16:03
|
(40) Здесь нужно использовать мозг. Например понять, что твоя обработка не возвращает результат цикла.
|
|||
42
skupidom
13.04.18
✎
16:23
|
это возвращается ответ загрузки, он не связан с заполнением содержимого таблицы по УИДам ссылками документов на сервере
мсДанные = Новый Массив; Для Каждого СтрокаТЗ Из ТаблицаУдалитьУИД Цикл мсДанные.Добавить(СтрокаТЗ.УИД); КонецЦикла; Возврат мсДанные; не отображаются данные по заполненным документам на сервере при отображении их в таблице на клиенте |
|||
43
skupidom
13.04.18
✎
16:27
|
Нашел такой пример:
&НаКлиенте Процедура ПолучитьТаблицу НаСервер(Команда) ТЗВСтроке = ПолучитьТЗНаСервере(); ТЗ = ЗначениеИзСтрокиВнутр(ТЗВСтроке); КонецПроцедуры // Функция получает данные на сервере &НаСервере Функция ПолучитьТЗНаСервере() // Для примера сформируем ТЗ с данными ТЗ = ЗаполнитьТЗДанными(); Возврат ЗначениеВСтрокуВнутр(ТЗ); КонецФункции НаКлиенте не работает ЗначениеИзСтрокиВнутр(),это так ? |
|||
44
tesseract
13.04.18
✎
16:46
|
>>НаКлиенте не работает ЗначениеИзСтрокиВнутр(),это так ?
FacePalm. F1 забанили? Конечно оно не работает. |
|||
45
Fragster
гуру
13.04.18
✎
22:18
|
(29) под созданием я имею ввиду запись в базу.
|
|||
46
Fragster
гуру
13.04.18
✎
22:19
|
(45)+ запись нового объекта
|
|||
47
Defender aka LINN
13.04.18
✎
23:31
|
(29) жжошь. Объект.Ссылка вернет пустую ссылку.
(37) Тут я даже не знаю, что сказать. ИМХО, даже в церковно-приходской школе рассказывают, что ссылка вида <объект не найден...> - не пустая. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |