Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Получить доступ к реквизитам документа на управляемых формах. (http://forums.kuban.ru/f1040/poluchit-_dostup_k_rekvizitam_dokumenta_na_upravlyaemyh_formah-8638939.html)

kotmurlot 19.04.2018 10:21

Получить доступ к реквизитам документа на управляемых формах.
 
Подскажите плиз. Туплю. Есть форма обработки на управляемых формах. На ней реквизит - тип Документ. Как получить доступ к реквизитам данного документа?

Uho 19.04.2018 10:32

Документ.Реквизит

Jimbo 19.04.2018 10:33

тип ДокументСсылка ? ПолучитьОбъект() не ?

kotmurlot 19.04.2018 10:35

на клиенте не дает через документ.реквизит, не видит реквизита

kotmurlot 19.04.2018 10:36

Мойдокумент = Объект.НужныйМнеДокумент, но доступа к реквизитам нет.

Jimbo 19.04.2018 10:42

что за конфа ? БСП ОбщегоНазначения.ПолучитьРеквизитОбъекта
или проваливаться на сервер и получать весь объект

roma n 19.04.2018 11:04

3-kotmurlot > ну так чтоб получить что-то "через точку" от ссылки это нужно прочитать из базы данных. Никакое чтение данных из базы на клиенте невозможно.
Внеконтекстный вызов сервера. Или свой, или (5)

kotmurlot 19.04.2018 11:11

Разобрался что все на сервере надо делать, а как сделать чтобы перебрать все строки документа на сервере передавая на клиент по одной и там ее обрабатывая?

Uho 19.04.2018 11:34

зачем?

Jimbo 19.04.2018 11:35

вызов серверный один должен быть, посмотри хэлп по РеквизитФормыВЗначение и ДанныеФормыВЗначение

user1C 19.04.2018 12:42

(8)+
и для чего?)

US1C 19.04.2018 12:51

(7) Попробуй значения реквизитов строки ТЧ документа в массив засунуть, а затем сформировать массив из этих строк и верни на клиента.

android 19.04.2018 13:32

7-kotmurlot >По-человечески - никак. Обрабатывай все сразу на сервере. Или получай с сервера массив структур, сформированный из данных строк, и с ним работай.

kotmurlot 19.04.2018 15:33

есть документ, выбран на форме, данные из него надо сохранить в текстовый файл, как шапку, так и табличную часть. На серверной части получаю данные, а в на клиенте сохраняю в файл

Uho 19.04.2018 15:38

13-kotmurlot > Файл передавай через временное хранилище с сервера на клиент

kotmurlot 19.04.2018 16:18

14-Uho > т.е. формировать его на сервере и передавать на клиент?

kotmurlot 19.04.2018 16:19

14-Uho > а почему тогда сразу не сохранить его на сервере?

Uho 19.04.2018 18:13

Если нужно на клиентском компе сохранить, то передавай с сервера на клиент.
Если на сервере или, допустим, в общей папке, в которою есть доступ у пользователя агента сервера, то сохраняй сразу на сервере.

kotmurlot 24.04.2018 09:57

Получаю на сервере доступ к табличной части документа. В табличной части есть реквизит, но в данных документа его нет и когда обращаюсь к табличной части, то к нему доступа тоже нет. Как получить доступ к реквизиту формы обращаясь к самой табличной части?

user1C 24.04.2018 10:20

(18)
запросом, например? мало понятно, что нужно в итоге...

kotmurlot 24.04.2018 10:43

я имею доступ напрямую к объекту на сервере, напрямую к табличной части. На форме документа в табличной части есть реквизит, но среди данных табличной части документа его нет. Когда я обращаюсь например МойДокумент.ТЧ то я вижу и получаю доступ к реквизитам, которые заведены в данных, но не могу получить доступ к нужному мне реквизиту.

kotmurlot 24.04.2018 11:24

В реквизитах есть объект в нем табличная часть но этого реквизита ТЧ нет и есть в реквизитах отдельно типа эта табличная часть и в составе нее уже есть реквизит нужный мне. вот как получить доступ к нему? через форму? на сервере это сделать нельзя? только на клиенте?

roma n 24.04.2018 13:00

Кто на ком стоял?
Них... не понятно.
Что у тебя отображено на форме (см путь к данным для элемента управления)? данные объекта (что-то типа "Объект.ТабличнаяЧасть...") или реквизит формы (типа "Реквизит_ТаблицаЗначенийПоТЧ")?
Если я правильно понимаю - последнее. И это последнее если найти его среди реквизитов формы (в правой верхней четверти окна формы в конфигураторе) имеет тип "(ТаблицаЗначений)". Именно так, со скобками. В этом случае нужно [b]в контекстном серверном вызове[/b] с помощью РеквизитФормыВЗначение получить "настоящую" таблицу значений, обработать её и, если необходимо, вернуть обратно методом значениеВРеквизитФормы

kotmurlot 24.04.2018 16:14

22-roma n >именно так, не у объекта, в правом верхнем углу. Мне нужно просто получить значения и все. Записывать их обратно в форму не надо.

user1C 24.04.2018 17:37

[quote=kotmurlot;45533838]есть в реквизитах отдельно типа эта табличная часть и в составе нее уже есть реквизит нужный мне[/quote]
какой тип у этой "табличной части"? она показывается на форме через элемент "таблица"?

Uho 24.04.2018 18:21

автор, выложи уже скриншот что ли, раз словами написать не можешь

PS.
&НаСервере
Процедура ПрочитатьТЗ()
Для Каждого Строка ИЗ ТЗ Цикл
Сообщить(Строка.Реквизит1);
КОнецЦикла;
КонецПроцедуры

kotmurlot 25.04.2018 15:16

У меня есть обработка. На ней есть объект типа документ. Мне нужно получить РеквизитФормыВзначение с его формы, как достучаться до формы объекта через обработку?

USSR 25.04.2018 15:30

Автор, в чем исходная задача? Объясни на предметном уровне, а не на уровне реквизитов формы

kotmurlot 25.04.2018 15:36

Есть обработка. На ней реквизит типа Документ. В котором есть табличная часть. Мне необходимо эту табличную часть скинуть в таблицу значений через РеквизитФормыВзначение и обработать ее.

Uho 25.04.2018 15:41

28-kotmurlot > Нет такого типа "Документ", есть "ДокументСсылка", "ДокументОбъект"

user1C 25.04.2018 15:44

[img]https://img-fotki.yandex.ru/get/218579/48540211.1fd/0_127ba7_396305a3_S[/img]

kotmurlot 25.04.2018 15:52

29-Uho > сорри, ДокументСсылка

kotmurlot 25.04.2018 15:53

30-user1C > все так плохо?)

user1C 25.04.2018 15:56

(32)
огу)
на сервере запросом получай табличную часть документа по ДокументСсылка в таблицу значений...

Uho 25.04.2018 15:59

31-kotmurlot >


&НаСервереБезКонтекста
Процедура ПрочитатьТЧДокументаНаСервере(РеквизитДокументСсылка)

Запрос = Новый Запрос("ВЫБРАТЬ
| ТвойДокументТвояТабличнаяЧасть.РеквизитТЧ КАК РеквизитТЧ
|ИЗ
| Документ.ТвойДокумент.ТвояТабличнаяЧасть КАК ТвойДокументТвояТабличнаяЧасть
|ГДЕ
| ТвойДокументТвояТабличнаяЧасть.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка",РеквизитДокументСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.РеквизитТЧ);
КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура ПрочитатьТЧДокумента()
ПрочитатьТЧДокументаНаСервере(РеквизитДокументСсылка);
КонецПроцедуры

Uho 25.04.2018 16:01

Или просто

&НаСервере
Процедура ПрочитатьТЧДокументаНаСервере()

Запрос = Новый Запрос("ВЫБРАТЬ
| ТвойДокументТвояТабличнаяЧасть.РеквизитТЧ КАК РеквизитТЧ
|ИЗ
| Документ.ТвойДокумент.ТвояТабличнаяЧасть КАК ТвойДокументТвояТабличнаяЧасть
|ГДЕ
| ТвойДокументТвояТабличнаяЧасть.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка",РеквизитДокумен тСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.РеквизитТЧ);
КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура ПрочитатьТЧДокумента()
ПрочитатьТЧДокументаНаСервере();
КонецПроцедуры

user1C 25.04.2018 16:06

(35)+
желанная таблица значений будет туто
ТЗ = Запрос.Выполнить().Выгрузить();

kotmurlot 25.04.2018 16:15

наверное я объясняю через одно место, но таким образом он не видит этот реквизит и выдает ошибка, реквизит введен для формы в верхнем правом углу он присутствует, а если смотреть свойства документа и Данные - то там в табличной части этого реквизита нет.

roma n 25.04.2018 16:23

[em]я объясняю через одно место[/em] - фточку :)
Ещё раз перечитал. Выдвигаю очередное предположение:
на форме документа отображается реквизит формы типа "(ТаблицаЗначений)". Необходимо получить эту самую ТаблицуЗначений не имея под рукой контекста формы документа, но имея ссылку на документ. Угадал?

user1C 25.04.2018 16:25

все, я пас)))


Текущее время: 02:39. Часовой пояс GMT +3.