|   |   | 
| 
 | Передача ссылки между клиентом и сервером УФ | ☑ | ||
|---|---|---|---|---|
| 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) Тут я даже не знаю, что сказать. ИМХО, даже в церковно-приходской школе рассказывают, что ссылка вида <объект не найден...> - не пустая. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |