|
НайтиПоРеквизиту | ☑ | ||
---|---|---|---|---|
0
polkin
28.02.15
✎
09:47
|
Нужно НайтиПоРеквизиту справочник и открыть ФормуЭлемента
Выдает ошибку Переменная не определена (Справочники) ПараметрыФормы = <<?>>Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код1С"); (Проверка: Тонкий клиент) &НаКлиенте Процедура Записать1() Строка =Элементы.ТаблицаНоменклатурыСайта; Для Каждого Строка Из Объект.ТаблицаНоменклатурыСайта Цикл Код1С = Строка.Код; ПараметрыФормы = Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код1С"); КодРеквизита = Строка.Код; ПараметрыФормы = Новый Структура("Ключ", КодРеквизита); Форма=ПолучитьФорму("Справочник.ИМНоменклатура.Форма.ФормаЭлемента",,,ПараметрыФормы); Форма.Открыть(); КонецЦикла; КонецПроцедуры |
|||
1
ДенисЧ
28.02.15
✎
09:49
|
НаКлиенте в тонком Справочники не доступны
|
|||
2
Ненавижу 1С
гуру
28.02.15
✎
09:49
|
на клиенте именно так
|
|||
3
polkin
28.02.15
✎
09:52
|
Без клиента форму открыть не могу....
Процедура или функция с указанным именем не определена (ПолучитьФорму) |
|||
4
Ненавижу 1С
гуру
28.02.15
✎
09:54
|
(2) передай на сервер
|
|||
5
Ненавижу 1С
гуру
28.02.15
✎
09:58
|
1С давно надо было проводить курсы по паттерну MVC
|
|||
6
Wobland
28.02.15
✎
10:05
|
(3) ОткрытьЗначение(ПоискатьНаСервере())
|
|||
7
polkin
28.02.15
✎
10:12
|
Форму можно открыть только на Клиенте.
Найти по реквизиту только на сервере. Как быть? |
|||
8
nva_15
28.02.15
✎
10:40
|
создать функцию ПоискатьНаСервере() на сервере и вернуть значение на клиента
|
|||
9
Wobland
28.02.15
✎
10:52
|
хорошо, если в Объект.ТаблицаНоменклатурыСайта будет менее трёхсот строк
|
|||
10
polkin
28.02.15
✎
11:01
|
Процедура Записать1()
Код1С = Объект.Код1С; ПараметрыФормы = Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код1С",Код1С); Объект.Код1С1=ПараметрыФормы.Код1С; КонецПроцедуры По отдельной процедуре ищет. Теперь как найти по реквизиту (колонке), находящейся в таблице искомой формы? ПараметрыФормы = Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код1С",Объект.ТаблицаНоменклатуры.ТекущаяСтрока.Код1С); Так искать не хочет... |
|||
11
Torquader
28.02.15
✎
11:06
|
Чего-то мне подсказывает, что параметр поиска у нас на клиенте, соответственно, искать мы будем на сервере без контекста, передав туда наш параметр, а в ответ получая ссылку на того, которого нашли.
А по ссылке на клиенте прекрасно открывается форма. |
|||
12
Wobland
28.02.15
✎
11:17
|
(10) берём объект.код1с, по нему находим какую-то ссылку, из найденной ссылки присваиваем код1с обратно в объект. я всё правильно понял?
|
|||
13
polkin
28.02.15
✎
11:32
|
(12) Все правильно, теперь код ищется и передается, но почему-то форма открывается пустая, несмотря на то, что код получен...
&НаКлиенте Процедура Записать(Команда) Строка =Элементы.ТаблицаНоменклатурыСайта; Для Каждого Строка Из Объект.ТаблицаНоменклатурыСайта Цикл Объект.Код = Строка.Код; НайтиФормуНоменклатурыСайта(); Номер = Объект.Код; ПараметрыФормы = Новый Структура("Ключ", Номер); Форма=ПолучитьФорму("Справочник.ИМНоменклатура.ФормаОбъекта", ПараметрыФормы); Форма.Открыть(); КонецЦикла; КонецПроцедуры Процедура НайтиФормуНоменклатурыСайта() Код = Объект.Код; ПараметрыФормы = Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код1С",Код); Объект.Код=ПараметрыФормы.Код; КонецПроцедуры |
|||
14
Torquader
28.02.15
✎
11:32
|
(10) Делим задачу на две - как получить значение из текущей строки таблицы и как найти по этому значению.
|
|||
15
Torquader
28.02.15
✎
11:34
|
(13) Нах.ра объекту код присваивать - у функции должен быть параметр, в который ты передаёшь код, а получаешь ответ.
А объект вообще тут ни при чём. |
|||
16
Torquader
28.02.15
✎
11:37
|
&НаСервереБезКонтекста
Функция НайтиФормуНоменклатурыСайта(КодПоиска) Возврат Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код1С",КодПоиска); КонецФункции P.S. только визит на сервер в цикле - не есть хорошо - нужно готовить массив на входе, чтобы получить массив на выходе. |
|||
17
kosts
28.02.15
✎
11:38
|
На УФ рекомендуется вместо
использовать
Только я не знаю как открыть конкретную ссылку с помощью оф() |
|||
18
Torquader
28.02.15
✎
11:39
|
(13) Так точно также, в параметрах передавая тот же самый ключ (только это должна быть ссылка).
|
|||
19
Wobland
28.02.15
✎
11:42
|
(13) Объект.Код1С=Объект.Код1С; то же самое, но короче
|
|||
20
polkin
28.02.15
✎
11:46
|
(16) Не работает Возврат Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код",КодПоиска); Неверно указан реквизит
&НаКлиенте Процедура Записать(Команда) Строка =Элементы.ТаблицаНоменклатурыСайта; Для Каждого Строка Из Объект.ТаблицаНоменклатурыСайта Цикл КодПоиска = Строка.Код; НайтиФормуНоменклатурыСайта(КодПоиска); Номер = Объект.Код; ПараметрыФормы = Новый Структура("Ключ", Номер); Форма=ПолучитьФорму("Справочник.ИМНоменклатура.ФормаОбъекта", ПараметрыФормы); Форма.Открыть(); КонецЦикла; КонецПроцедуры &НаСервереБезКонтекста Функция НайтиФормуНоменклатурыСайта(КодПоиска) Возврат Справочники.ИМНоменклатура.НайтиПоРеквизиту("Код",КодПоиска); КонецФункции |
|||
21
Wobland
28.02.15
✎
11:47
|
(20) может, реквизит указан неверно?
|
|||
22
ДенисЧ
28.02.15
✎
11:53
|
Код - это не реквизит...
|
|||
23
polkin
28.02.15
✎
11:55
|
(21) Исправил, но открывает пустую форму.
В ТаблицаНоменклатурыСайта выведены Коды Номенклатуры Нужно по этому коду найти Номенклатуру и открыть ее форму. Код нашли (и я его вижу), но все равно открывает пустую форму. Номер = Объект.Код; ПараметрыФормы = Новый Структура("Ключ", Номер); Форма=ПолучитьФорму("Справочник.ИМНоменклатура.ФормаОбъекта", ПараметрыФормы); Форма.Открыть(); |
|||
24
Wobland
28.02.15
✎
11:57
|
(23) так и не хочешь на клиента отдать ссылку?
|
|||
25
polkin
28.02.15
✎
11:59
|
(24) Тоже открывает пустой бланк...
|
|||
26
Torquader
28.02.15
✎
12:01
|
(25) Сначала научись на клиенте открывать форму нужного элемента по ссылке, потом можешь идти дальше.
|
|||
27
polkin
28.02.15
✎
12:28
|
(26) Поделись примером.
|
|||
28
Cyberhawk
28.02.15
✎
12:50
|
(27) пример в первых шести сообщениях
|
|||
29
Torquader
28.02.15
✎
13:27
|
// как бы из СП:
стк = Новый Структура("Ключ", ПоставщикСсылка); Форма = ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта", стк); |
|||
30
Torquader
28.02.15
✎
13:28
|
Попытка запихать в ключ номер не очень хороша, так как система может не знать, что с ним делать.
|
|||
31
polkin
28.02.15
✎
15:20
|
Не могу в ключ запихать Ссылку, только строку...
|
|||
32
Wobland
28.02.15
✎
15:20
|
(31) это не обязательно
|
|||
33
polkin
28.02.15
✎
15:36
|
(32) почему в (23) не выводит по коду нужную номенклатуру а открывает пустую форму?
|
|||
34
Wobland
28.02.15
✎
15:37
|
(33) -> (30)
|
|||
35
polkin
28.02.15
✎
18:16
|
(34) Выход какой?
|
|||
36
Wobland
28.02.15
✎
18:19
|
(35) открой значение и уже прекрати любить мозх
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |