|
Тип не определен (Запрос) | ☑ | ||
---|---|---|---|---|
0
GreenDay1986
07.11.12
✎
12:51
|
Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос(); (Проверка: Тонкий клиент) Всем здравствуйте. Создаю новую информационную базу, не из шаблона, для разработки. Создаю справочники, доки, регистры. Собственно вопрос. Если стоит параметр &НаКлиенте я так понимаю тип запрос на клиенте не определен, ставлю на сервере, ничего не происходит &НаКлиенте Процедура ПриОткрытии() Запрос = Новый Запрос(); Запрос.Текст="ВЫБРАТЬ |Рег.Цена КАК Цена, |Рег.Дата КАК Дата |ИЗ РегистрСведений.Цены КАК Рег |"; Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий() Цикл Сообщить(Рез.Цена); Сообщить(Рез.Дата); КонецЦикла; КонецПроцедуры Что пишу неправильно? |
|||
1
GreenDay1986
07.11.12
✎
12:52
|
&НаСервере
Процедура ПриОткрытии() Запрос = Новый Запрос(); Запрос.Текст="ВЫБРАТЬ |Рег.Цена КАК Цена, |Рег.Дата КАК Дата |ИЗ РегистрСведений.Цены КАК Рег |"; Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий() Цикл ЭтаФорма.Элементы.Цена = Рез.Цена; Сообщить(Рез.Цена); Сообщить(Рез.Дата); КонецЦикла; КонецПроцедуры или просто Процедура ПриОткрытии() Запрос = Новый Запрос(); Запрос.Текст="ВЫБРАТЬ |Рег.Цена КАК Цена, |Рег.Дата КАК Дата |ИЗ РегистрСведений.Цены КАК Рег |"; Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий() Цикл ЭтаФорма.Элементы.Цена = Рез.Цена; Сообщить(Рез.Цена); Сообщить(Рез.Дата); КонецЦикла; КонецПроцедуры ошибок не выдает но и запросы также не исполняются |
|||
2
mikecool
07.11.12
✎
12:53
|
с чего решил, что запросы не выполняются?
|
|||
3
GreenDay1986
07.11.12
✎
12:54
|
С того что никакие сообщения не выводятся, точнее может и исполняются, однако результата нет
|
|||
4
mikecool
07.11.12
✎
12:55
|
(3) сообщения выводятся, только на сервере
включай уже мосх ) |
|||
5
Magic Dick
07.11.12
✎
12:56
|
Новый Запрос;
|
|||
6
Песец
07.11.12
✎
12:56
|
Проверка: Тонкий клиент
|
|||
7
GreenDay1986
07.11.12
✎
12:57
|
Процедура ПриОткрытии()
Запрос = Новый Запрос(); Запрос.Текст="ВЫБРАТЬ |Рег.Цена КАК Цена, |Рег.Дата КАК Дата |ИЗ РегистрСведений.Цены КАК Рег |"; Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий() Цикл ЭтаФорма.Элементы.Цена = Рез.Цена; Сообщить(Рез.Цена); Сообщить(Рез.Дата); КонецЦикла; КонецПроцедуры Здесь куда выводятся? |
|||
8
vmv
07.11.12
✎
12:57
|
тс - глупый тролль, уничтожиить!
|
|||
9
Magic Dick
07.11.12
✎
12:58
|
(8) а может 86 год?
|
|||
10
GreenDay1986
07.11.12
✎
12:58
|
брррр, да нет, не тролль, учусь маленько
|
|||
11
Песец
07.11.12
✎
12:59
|
Запрос (Query)
... Доступность: Сервер, толстый клиент, внешнее соединение. (с) СП |
|||
12
GreenDay1986
07.11.12
✎
12:59
|
(11) То есть мне нужно создавать новую базу на сервере, так понимаю?
|
|||
13
vmv
07.11.12
✎
13:00
|
(10) открываем сп и в первой главе "директивы компиляции" изучаем, хотя может лучше порясят выращивать - ты подумай, что выгоднее
|
|||
14
Песец
07.11.12
✎
13:00
|
(12) Не, базу не надо.
|
|||
15
Песец
07.11.12
✎
13:01
|
(14+) Медитируй до просветления:
Тип не определен (Запрос) Запрос = Новый <<?>>Запрос(); (Проверка: Тонкий клиент) |
|||
16
GreenDay1986
07.11.12
✎
13:01
|
(14) То есть базу на локальном компьютере я правильно создал. Что дальше делать дабы в ней сожно было работать с запросами?
|
|||
17
Песец
07.11.12
✎
13:03
|
(16) В тонком клиенте тип "Запрос" не определен.
|
|||
18
Sammo
07.11.12
✎
13:03
|
Запрос это сущность или процедура?
|
|||
19
ptiz
07.11.12
✎
13:03
|
(16) На сервере выполняешь запрос. На клиента возвращаешь сообщения.
|
|||
20
Песец
07.11.12
✎
13:04
|
(17+) ...в нем толко интерфейс, что-либо делать с базой надо на стороне сервера.
|
|||
21
GreenDay1986
07.11.12
✎
13:04
|
(19) спасибо, счас попробую.
|
|||
22
GreenDay1986
07.11.12
✎
13:06
|
(19) Как это с точки зрения синтаксиса будет выглядеть? 2 процедуры?
|
|||
23
GreenDay1986
07.11.12
✎
13:12
|
Хм, можно пример как возвратить с сервера на клиент? Исполнение так понимаю
&НаСервере Процедура ПриОткрытии() Запрос = Новый Запрос(); Запрос.Текст="ВЫБРАТЬ |Рег.Цена КАК Цена, |Рег.Дата КАК Дата |ИЗ РегистрСведений.Цены КАК Рег |"; Рез = Запрос.Выполнить().Выбрать(); КонецПроцедуры |
|||
24
Шапокляк
07.11.12
✎
13:16
|
(23) Запрос = Новый Запрос;
Убери скобочки! И - нескромный вопрос - а что на сервере открывают-то? |
|||
25
Песец
07.11.12
✎
13:16
|
(23) На клиенте этой процедуры просто не будет.
Как вариант - создать общий модуль с галочками "сервер" и "вызов сервера", в нем расположить твою функцию которая вернет данные, ее и вызывать из ПриОткрытии. |
|||
26
GreenDay1986
07.11.12
✎
13:20
|
(25) В общем все мои запросы исполнять в общих модулях, При открытии прописывать уже непосредственно передаваемые с сервера параметры?
|
|||
27
GreenDay1986
07.11.12
✎
13:21
|
Мутновато пока укладывается, ну ладно, спасибо, будем разбираться :)
|
|||
28
le_
07.11.12
✎
13:25
|
(27) Поищи видеокурс Гилева по управляемым формам.
|
|||
29
Xapac_2
07.11.12
✎
13:27
|
на КЛИЕНТЕ же!!!
сделай на сервере |
|||
30
Wobland
07.11.12
✎
13:28
|
ТС как минимум уже год учится, никак не научится
|
|||
31
Aprobator
07.11.12
✎
13:28
|
(27) чего тут укладываться то? УФ - видимость методов и т.п. смотреть обязательно, только и всего.
|
|||
32
GreenDay1986
07.11.12
✎
13:35
|
Хм, как ИБ без управляемых форм сделать? Конфигурации подревнее поискать?
|
|||
33
Wobland
07.11.12
✎
13:35
|
(32) нужно как-то себя заставить
|
|||
34
GreenDay1986
07.11.12
✎
13:36
|
(33)Ога, я пока ток БП ковырял, без УФ.
|
|||
35
GreenDay1986
07.11.12
✎
14:33
|
Для примера родил следующее. :)
&НаСервере Функция ВыбратьДанные(Найм) Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ |Ном.Наименование КАК Наим |ИЗ Справочник.Номенклатура КАК Ном |ГДЕ Наим.Наименование=&Найм |"; Запрос.УстановитьПараметр("Найм",Найм); Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий()Цикл; Сообщить(Рез.Наим); КонецЦикла; КонецФункции &НаКлиенте Процедура ПриОткрытии() Сообщить(ВыбратьДанные(Этаформа.Элементы.Наименование)); КонецПроцедуры Возвращает ошибку {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(20)}: Ошибка при вызове метода контекста (ВыбратьДанные) Сообщить(ВыбратьДанные(Этаформа.Элементы.Наименование)); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ПолеФормы' |
|||
36
salvator
07.11.12
✎
14:36
|
Если Рез.Следующий() Тогда;
Возврат Рез.Наим; КонецЕсли; |
|||
37
GreenDay1986
07.11.12
✎
14:39
|
(36) таже самая ошибка возвращается.
|
|||
38
Romich1981
07.11.12
✎
14:44
|
Посмотри хоть какой тип у "Этаформа.Элементы.Наименование"
|
|||
39
GreenDay1986
07.11.12
✎
14:44
|
(38) Поле ввода
|
|||
40
Romich1981
07.11.12
✎
14:45
|
=) о чем и речь. Какие типы можно передавать?
|
|||
41
hhhh
07.11.12
✎
14:45
|
(37) а вот этот бред как объясните? Что это за слово?
ГДЕ Наим.Наименование |
|||
42
GreenDay1986
07.11.12
✎
14:47
|
Где Ном.Наименование, простите
|
|||
43
samozvanec
07.11.12
✎
14:48
|
все не читал. Что за прикол менять директиву компиляции у событий формы?
|
|||
44
GreenDay1986
07.11.12
✎
14:49
|
Не ругайтесь шибко, УФ первый раз юзаю :(
|
|||
45
GreenDay1986
07.11.12
✎
14:57
|
Уррра, нашел :) ЭтаФорма.Объект.Наименование. Передалось таки :)
|
|||
46
sidalexsandr
07.11.12
✎
14:58
|
Можно так:
&НаСервере Функция ВыбратьДанные(Найм) Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ |Ном.Наименование КАК Наим |ИЗ Справочник.Номенклатура КАК Ном |ГДЕ Наим.Наименование=&Найм |"; Запрос.УстановитьПараметр("Найм",Найм); РезультатЗапроса = Запрос.Выполнить(); СпособОбхода = ОбходРезультатаЗапроса.Прямой; ТабЗнач = РезультатЗапроса.Выгрузить(СпособОбхода); Возврат ТабЗнач; КонецФункции |
|||
47
GreenDay1986
07.11.12
✎
14:59
|
(46) Спасибо! :)
|
|||
48
sidalexsandr
07.11.12
✎
15:00
|
(46)+
Дальше &НаКлиенте Процедура ЗабратьССервера() ТаблЗначений = ВыбратьДанные(Найм); // Дальше получай на здоровье данные из Таблицы значений КонецПроцедуры |
|||
49
sidalexsandr
07.11.12
✎
15:00
|
(47) Вот теперь можеш спасибо
|
|||
50
sidalexsandr
07.11.12
✎
15:01
|
Напиши, что получилось.
|
|||
51
hhhh
07.11.12
✎
15:05
|
(49) ТаблицаЗначений
Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
52
GreenDay1986
07.11.12
✎
15:11
|
(50) Соединяю с регистромСведений цены.Сообщение выдалось
|
|||
53
GreenDay1986
07.11.12
✎
15:28
|
Получилось так
&НаСервере Функция ВыбратьДанные(Найм) Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ |Ном.Наименование КАК Наим, |ЕСТЬNULL(Рег.Цена,0) КАК Цена, |ЕСТЬNULL(Рег.Период,0) КАК Период |ИЗ Справочник.Номенклатура КАК Ном |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаСреза)КАК Рег |ПО Ном.Наименование = Рег.Наименование |ГДЕ Ном.Наименование=&Найм |"; Запрос.УстановитьПараметр("ДатаСреза", КонецДня(ТекущаяДата())); Запрос.УстановитьПараметр("Найм",Найм); Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий()Цикл Сообщить(Рез.Наим); Сообщить(Рез.Цена); Сообщить(Рез.Период); КонецЦикла; КонецФункции &НаКлиенте Процедура ПриОткрытии() ВыбратьДанные(ЭтаФорма.Объект.Наименование); КонецПроцедуры Наименование обьекта текущей формы возвращает. Цену и Период возвращает почему-то пустыми. Хотя в регистресведений Цены эти данные заполнены |
|||
54
Dionis Sergeevich
07.11.12
✎
15:34
|
(53) Отладчик в руки и смотри что у тебя в Рез после Рез.Следующий. Попробуй запрос с твоими параметрами в консоли запросов. Так на глаз не вижу почему возвращает пустые значения
|
|||
55
Шапокляк
07.11.12
✎
15:50
|
(53) Ну и кто там на сервере это читает
Пока Рез.Следующий()Цикл Сообщить(Рез.Наим); Сообщить(Рез.Цена); Сообщить(Рез.Период); КонецЦикла; Засовывай в структуру и возвращай клиенту |
|||
56
Dionis Sergeevich
07.11.12
✎
15:51
|
(55) суть то не в этом. суть то в другом
|
|||
57
GreenDay1986
07.11.12
✎
15:55
|
(55) Рез.Наим возвращает и сообщает. Цену с периодом берет пустые
|
|||
58
Aprobator
07.11.12
✎
15:56
|
(46) (48) не взлетит по той простой причине, что таблица значений не живет на клиенте.
|
|||
59
Aprobator
07.11.12
✎
15:58
|
(53) дык у тебя соединения нет. Кто же соединение по наименованию делает? Самописка что ли полная?
|
|||
60
Шапокляк
07.11.12
✎
15:58
|
(56) Суть... Интересно, какой кошмар у него затаился в регистре Цены? Неужто Измерение Наименование строкового типа?
|
|||
61
GreenDay1986
07.11.12
✎
16:01
|
(60) Измерение Наименование типа СправочникСсылка.Номенклатура
|
|||
62
hhhh
07.11.12
✎
16:02
|
(61) а измерение Номенклатура типа СправочникСсылка.Номенклатура значит безжалостно удалил?
|
|||
63
Шапокляк
07.11.12
✎
16:02
|
(61) Да ну? А это как понимать?
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаСреза)КАК Рег |ПО Ном.Наименование = Рег.Наименование |
|||
64
Serginio1
07.11.12
✎
16:02
|
Может ВыбратьДанные(ЭтаФорма.Объект.Наименование.ТекстРедактирования);
или что там еще |
|||
65
GreenDay1986
07.11.12
✎
16:03
|
(63) тут накосячил, Ном.Ссылка = Рег.Ссылка?
|
|||
66
salvator
07.11.12
✎
16:04
|
(65) продолжайте наблюдения
|
|||
67
Dionis Sergeevich
07.11.12
✎
16:07
|
(65) У записи регистра нет ссылки. Да открой ты консоль запросов
|
|||
68
GreenDay1986
07.11.12
✎
16:08
|
Извиняйте ребят, психологических отклонений нет,просто мудаг :))) Измерение Наименование сделал :( В общем переименовал заработало все.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |