|
обращение к элемнту табличной части справочника &НаКлиенте | ☑ | ||
---|---|---|---|---|
0
herArt
21.01.14
✎
17:01
|
Кто знает, подскажите как можно обратиться к элементу табличной части справочника из процедуры, работающей наКлиенте.
Вызываю из процедуры на клиенте функцию на сервере, в которой можно обратиться к табличной части справочника, но как этой функцией передать значения элементов табличной части понять не могу. |
|||
1
Euguln
21.01.14
✎
17:04
|
(0) Структурой
|
|||
2
Euguln
21.01.14
✎
17:05
|
(0) Если нужна вся таблица, то создавай реквизит формы - таблица значений.
|
|||
3
zladenuw
21.01.14
✎
17:10
|
(0) а что ты хочешь делать дальше ?
|
|||
4
Avganec
21.01.14
✎
17:13
|
(0) "РеквизитФормыВЗначение" и "ЗначениеВРеквизитФормы" подойдет?
|
|||
5
zladenuw
21.01.14
✎
17:14
|
(4) так может он хочет текущую строку
|
|||
6
herArt
21.01.14
✎
17:20
|
вообще задача такая:
нужно, чтобы в отчете устанавливался отбор по всем элемментам табличной части справочника. |
|||
7
herArt
21.01.14
✎
17:22
|
не могу понять, как её передать в форму отчёта
|
|||
8
Avganec
21.01.14
✎
17:22
|
(6) через (4) передавай то, что нужно, хоть Объект, хоть ТаблицуЗначений, хоть что, и на сервере обрабатывай.
|
|||
9
Fram
21.01.14
✎
17:24
|
(6) у таб части нет элементов. есть строки
|
|||
10
Fram
21.01.14
✎
17:25
|
(7) её - таб часть?
|
|||
11
herArt
21.01.14
✎
17:27
|
да табличную часть
|
|||
12
Fram
21.01.14
✎
17:29
|
похоже ты неправильно понял задачу. еще раз прочитай вдумайся
|
|||
13
Euguln
21.01.14
✎
17:31
|
(11) А табличная часть вида Параметр|Значение ?
|
|||
14
Avganec
21.01.14
✎
17:32
|
(11) если у тебя табличная часть справочника, то передавай весь объект на сервере, ТЧ передастся тоже, как элемент справочника.
|
|||
15
herArt
21.01.14
✎
17:34
|
всё равно не могу обратиться к строкам табличной части, пишет, что поле не обнаружено
|
|||
16
zladenuw
21.01.14
✎
17:34
|
(15) показывай код. что, куда и как.
|
|||
17
herArt
21.01.14
✎
17:40
|
пробовал как-то так:
&НаКлиенте Процедура Сформировать(Команда) Если Продукция.Пустая() = Ложь Тогда номерСтроки=1; Для Каждого текущийЭлемент из ВыбратьСырьё(Продукция).табличнаячасть Цикл КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(); КомпоновщикНастроек.Настройки.Отбор.Элементы[номерСтроки].ЛевоеЗначение = "ВидСырья"; КомпоновщикНастроек.Настройки.Отбор.Элементы[номерСтроки].ПравоеЗначение = ТекущийЭлемент.ВидСырья; номерСтроки=номерСтроки+1; КонецЦикла; КонецЕсли; СкомпоноватьРезультат(); КонецПроцедуры Функция ВыбратьСырьё(ВидПродукции) Возврат Справочники.КомпонентыРазлива.НайтиПоНаименованию(ВидПродукции); КонецФункции |
|||
18
Avganec
21.01.14
✎
17:40
|
(17) хм... а где вызов сервера?
|
|||
19
herArt
21.01.14
✎
17:41
|
функция ВыбратьСырьё обрабатывается на сервере
|
|||
20
herArt
21.01.14
✎
17:42
|
или я чего-то не догоняю)))
|
|||
21
Avganec
21.01.14
✎
17:43
|
(20) подготовь все данные на сервере это раз, передай на клиента например массив, структуру попроще, и пометь функцию, что она на сервере
|
|||
22
SUA
21.01.14
✎
17:44
|
(19) так возвращается только ссылка на элемент справочника
сделай что-то вроде Справочники.КомпонентыРазлива.НайтиПоНаименованию(ВидПродукции).табличнаячасть.ВыгрузитьКолонку("ВидСырья") |
|||
23
SUA
21.01.14
✎
17:45
|
и далее
Для Каждого текущийЭлемент из ВыбратьСырьё(Продукция) Цикл КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(); КомпоновщикНастроек.Настройки.Отбор.Элементы[номерСтроки].ЛевоеЗначение = "ВидСырья"; КомпоновщикНастроек.Настройки.Отбор.Элементы[номерСтроки].ПравоеЗначение = ТекущийЭлемент; номерСтроки=номерСтроки+1; КонецЦикла; |
|||
24
herArt
21.01.14
✎
17:45
|
функцию помечал - результат тот же, по умолчанию же вроде как на сервере выполняется. Попробую передать массив
|
|||
25
SUA
21.01.14
✎
17:46
|
правда не спасет
надо (телепатирую) в отбор вид сравнения закинуть "в списке" и правое значение все полученные виды сырья |
|||
26
herArt
21.01.14
✎
17:47
|
так пробовал пишет, что не соответствуют типы данных текущийЭлемент и ВыбратьСырьё
|
|||
27
zladenuw
21.01.14
✎
17:47
|
(25) таки да. и список вернет функция которая выгрузить с тч массив
|
|||
28
zladenuw
21.01.14
✎
17:49
|
&НаКлиенте
Процедура Сформировать(Команда) Если Продукция.Пустая() = Ложь Тогда ТекОтбор = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(); ТекОтбор.ЛевоеЗначение = "ВидСырья"; ТекОтбор.ВидСравнения = ВидСравнения.ВСписке ТекОтбор.ПравоеЗначение = ПолучитьМассив(Продукция);ТекущийЭлемент.ВидСырья; КонецЕсли; СкомпоноватьРезультат(); КонецПроцедуры &НаСервере Функция ВыбратьСырьё(ВидПродукции) Возврат Справочники.КомпонентыРазлива.НайтиПоНаименованию(ВидПродукции).табличнаячасть.ВыгрузитьКолонку("ВидСырья"); КонецФункции |
|||
29
herArt
21.01.14
✎
17:49
|
правда не спасет
надо (телепатирую) в отбор вид сравнения закинуть "в списке" и правое значение все полученные виды сырья немного не понял, можно поподробнее? |
|||
30
Avganec
21.01.14
✎
17:50
|
(29) читай (28), правда там, где установка правого значения небольшой косяк, установи там указанную функцию.
|
|||
31
herArt
21.01.14
✎
17:51
|
ок теперь понял, буду пробовать. Спасибо!!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |