|
Язык запросов "1С:Предприятие 8" | ☑ | ||
---|---|---|---|---|
0
Пионер1С
05.11.22
✎
23:04
|
Здравствуйте, Коллеги.
Новичок в 1С. Начал изучать Язык запросов по книге «Язык запросов "1С:Предприятие 8"», Е.Ю. Хрусталева, 2021 г. И уже ошибка в книге на стр. 27, листинг 1.6 - вывод наименований всех товаров в окно сообщений. Данный листинг не работает. Выдает ошибку: {Обработка.КонсольЗапросов.МодульОбъекта(543)}: Ошибка при вызове метода контекста (НайтиПараметры) ПарЗап = Запрос.НайтиПараметры(); по причине: {(1, 1)}: Ожидается выражение "ВЫБРАТЬ" <<?>>Запрос = Новый Запрос; Вот сам текст запроса: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Наименование ИЗ Справочник.Товары"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапроса = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапроса.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ВыборкаЗапроса.Наименование; Сообщение.Сообщить(); КонецЦикла; Что делать? Не понимаю. В чем ошибка? Если кто-то учился по этой книге, подскажите, пожалуйста, в чем проблема. Спасибо за помощь. Уделенное мне время. |
|||
1
PR
05.11.22
✎
23:09
|
А почему у тебя текст запроса
а не
|
|||
2
Пионер1С
05.11.22
✎
23:13
|
Этот пример указан на страницах книги.
В листинге ничего не менял. Сейчас убрал лишние знаки. Не работает. |
|||
3
Garykom
гуру
05.11.22
✎
23:14
|
Расшифровываю (1):
Если ты используешь консоль запросов туда надо только сам текст запроса вставлять. Все эти "Запрос = Новый Запрос; Запрос.Текст = ..." они для использования в коде на ЯП 1С, без консоли запросов готовой |
|||
4
Пионер1С
05.11.22
✎
23:14
|
Спасибо за ответ!
|
|||
5
Пионер1С
05.11.22
✎
23:21
|
Да. Верно. Использую Консоль. Еле разобрался как с ней работать.
В итоге получилось. Но почему в книге неправильно пишут? Вопрос. Исправил. Или что-то не понял опять? Вот Листинг: Запрос = Новый Запрос; Запрос.Текст = ВЫБРАТЬ Наименование ИЗ Справочник.Товары РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапроса = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапроса.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ВыборкаЗапроса.Наименование; Сообщение.Сообщить(); КонецЦикла; Выдает ошибку. |
|||
6
PR
05.11.22
✎
23:25
|
(5) Дружище, ты что-то совсем плох
Текст запроса в консоли пишется без " и |, потому что это язык запросов Текст запроса в коде пишется с " и |, потому что это программный код Тебе бы сначала синтаксис понять что ли и базовые принципы программирования |
|||
7
ДНН
05.11.22
✎
23:33
|
(0) ты бы лучше SQL учил
|
|||
8
Garykom
гуру
05.11.22
✎
23:33
|
(5) Советую пойти на курсы 1С
Или хотя бы начать с просмотра видео для полных новичков на ютубе или те же видеокурсы Пока у тебя знаний к сожалению 0, все непонятно и на форуме устанешь спрашивать |
|||
9
Garykom
гуру
05.11.22
✎
23:34
|
(7) В курсе что современные тру кодеры не знают SQL?
Они использую ORM по типу того же LINQ |
|||
10
ДНН
05.11.22
✎
23:35
|
(9) базовые конструкции знают. Срез последних написать вряд ли смогут.
|
|||
11
Пионер1С
05.11.22
✎
23:39
|
Пошел искать уроки для чайников.
Интернет надеюсь поможет для начала. |
|||
12
PR
05.11.22
✎
23:47
|
(11) Поставь себе типовую конфигурацию какую-нибудь, это тебе просто очень поможет
|
|||
13
Пионер1С
05.11.22
✎
23:50
|
Уже поставил.
Подготовка к процессу сделана. Только литература подводит. Увы. Хотя. Как обычно. |
|||
14
alarm2020
06.11.22
✎
11:48
|
(12) ... научиться плохому
|
|||
15
NorthWind
06.11.22
✎
11:59
|
(13) некоторые очевидные вещи в литературе могут быть не описаны. Консоль запросов используется для отладки запросов, поэтому там пишется только сам текст запроса без какой-либо обвязки. Все остальное - создание объекта, привязку параметров, выполнение - консоль делает сама внутри себя и вам об этом беспокоиться не надо. А вот программный код, который использует запрос - это другое. Там вы должны сами создать, инициализировать и запустить на выполнение все, что связано с объектом запроса. Пример, приведенный в книге - это пример программного кода. Если вы хотите попробовать запрос оттуда в консоли, то из примера нужно взять только то, что находится в кавычках внутри Запрос.Текст = " ... " и еще убрать оттуда служебные символы |, если они есть.
|
|||
16
Пионер1С
06.11.22
✎
15:16
|
NorthWind. Здравствуйте.
Спасибо за подсказку. Сам понимаю, что, что-то не так. Программный код, который использует запрос где его надо вносить? Подскажите пожалуйста. Если мне нужна выборка по товарам, то я должен открыть типовую конфигурацию в конфигураторе - открыть > справочник товары (т.к. мне нужен запрос по товарам) > прочее > модуль объекта - и в справочнике товары модуль объекта записать данный листинг. Это правильный ход мысли? Спасибо. |
|||
17
Web00001
06.11.22
✎
18:01
|
(11) чекни здесь https://курсы-по-1с.рф/free/programming-in-1c-in-21-days/final-all-in-one/ у них вроде для начала хорошо написано
|
|||
19
Web00001
06.11.22
✎
18:18
|
(18)Да там еще же ОФ вроде или нет? Триста лет в обед ей.
|
|||
20
Chai Nic
06.11.22
✎
18:19
|
(16) "Если мне нужна выборка по товарам, то я должен открыть типовую конфигурацию в конфигураторе - открыть > справочник товары (т.к. мне нужен запрос по товарам) > прочее > модуль объекта - и в справочнике товары модуль объекта записать данный листинг."
Неа. Ты можешь писать запрос где угодно, в любом серверном модуле. Обращаться при этом к любым объектам базы. |
|||
21
rphosts
06.11.22
✎
18:19
|
lexushka п3 правил касается всех!
|
|||
22
lexushka
06.11.22
✎
18:36
|
(21) покраснели уши
припал к правилам ничего в пунктах 3 не рассмотрел хотел сказать что либо книга по 1с и здравый смысл и получится разобраться либо не надо с этим связываться — там дальше не проще… |
|||
23
NorthWind
06.11.22
✎
18:37
|
(16) > Программный код, который использует запрос где его надо вносить? Подскажите пожалуйста.
Самый простой вариант - в конфигураторе создать новую внешнюю обработку и поместить его туда. В случае, если вы делаете обработку с управляемыми формами, нужно еще определиться, что будет выполняться на сервере, а что на клиенте, потому что запрос на клиенте в приложении на УФ выполняться не может. Далее в режиме предприятия обработку можно открыть и поиграться с выполнением. |
|||
24
NorthWind
06.11.22
✎
18:55
|
> Если мне нужна выборка по товарам, то я должен открыть типовую конфигурацию в конфигураторе - открыть > справочник товары (т.к. мне нужен запрос по товарам) > прочее > модуль объекта - и в справочнике товары модуль объекта записать данный листинг.
Это правильный ход мысли? Спасибо. Нет, не правильный. В модуле объекта справочника товаров написан код, который обслуживает внутренние потребности данного справочника, и если вы не хотите каким-то образом менять поведение этого справочника, то дописывать туда ничего не нужно. Выборка вам нужна, скорее всего, для написания своей обработки или отчета, которых _пока нет_ в конфигурации. Соответственно, вот и ответ на вопрос. Вы создаете _новую_ обработку или _новый_ отчет. Не меняете существующую. Можете создать новые объекты в составе конфигурации. Можете создать внешние обработки или отчеты. Внешние, как по мне, для экспериментов более удобны, потому что вам не надо будет каждый раз сохранять конфигурацию - на медленном компе это может быть довольно заметная экономия времени, но это непринципиально, если больше нравятся в составе конфигурации, можно и в составе конфигурации. |
|||
25
Пионер1С
07.11.22
✎
19:58
|
Здравствуйте, Коллеги.
Спасибо за ответы. Очень познавательно. Есть к чему стремиться. Пробую. Разбираюсь. Думаю, что все хорошо будет. Не я первый. Не я последний. Всем отличного настроения и позитива! Спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |