|
Запрос по машинам контрагента | ☑ | ||
---|---|---|---|---|
0
Dmitrii_VVV
06.06.23
✎
17:48
|
Всем доброго!
Помогите начинающему с запросом, делаю первый раз Учебная конфигурацию Необходимо выбрать Контрагента в поле и при нажатии на кнопку Получить машину в поле машина выводится информация (из регистра сведений Машины) https://wampi.ru/image/RXRXEnE &НаКлиенте Процедура ПолучитьМашину(Команда) ПолучитьМашинуНаСервере(); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладная.Машина КАК Машина, | РасходнаяНакладная.Дата КАК Дата, | МашиныСрезПоследних.Период КАК Период, | МашиныСрезПоследних.Контрагент КАК Контрагент, | МашиныСрезПоследних.Машины КАК Машины |ИЗ | Документ.РасходнаяНакладная КАК РасходнаяНакладная, | РегистрСведений.Машины.СрезПоследних(&ДатаДокумента, ) КАК МашиныСрезПоследних |ГДЕ | РасходнаяНакладная.СписокНоменклатуры.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("ДатаДокумента", ДатаДокумента); Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА КонецПроцедуры |
|||
1
lubitelxml
06.06.23
✎
18:31
|
Нужно использовать левое соединение в запросе. Основная таблица - РасходнаяНакладная , далее левое соединение с РегистрСведений.Машины по контрагенту
|
|||
2
azernot
06.06.23
✎
19:12
|
(0) Если предположить, что в РегистрСведений.Машины "Контрагент" - измерение, а "машины" - ресурс, причём имеет тот же тип, что и реквизит "Машина" документа "РасходнаяНакладная", и для одного контрагент не предполагается множество машин в один момент времени, то код будет такой:
&НаКлиенте Процедура ПолучитьМашину(Команда) ПолучитьМашинуНаСервере(); КонецПроцедуры &НаСервере Процедура ПолучитьМашинуНаСервере(); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МашиныСрезПоследних.Машины КАК Машины |ИЗ | РегистрСведений.Машины.СрезПоследних(&ДатаДокумента, Контрагент = &Контрагент) КАК МашиныСрезПоследних"; Запрос.УстановитьПараметр("ДатаДокумента", Объект.Дата); Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Объект.Машина = ВыборкаДетальныеЗаписи.Машины; КонецЕсли; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА КонецПроцедуры Если для одного контргента предполагается несколько машин в один момент времени, то надо как-то уточнять задачу. |
|||
3
Dmitrii_VVV
07.06.23
✎
11:27
|
Всем спасибо, разбираюсь!
|
|||
4
Dmitrii_VVV
09.06.23
✎
09:34
|
Коллеги, хелп!
Не разобрался Вероятно некорректно связь настроил ... https://wampi.ru/image/RX1N2A0 &НаКлиенте Процедура ПолучитьМашину(Команда) ПолучитьМашинуНаСервере(); КонецПроцедуры &НаСервере Процедура ПолучитьМашинуНаСервере(); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МашиныСрезПоследних.Контрагент КАК Контрагент, | РасходнаяНакладная.Контрагенты КАК Контрагенты |ИЗ | Документ.РасходнаяНакладная КАК РасходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Машины.СрезПоследних КАК МашиныСрезПоследних | ПО РасходнаяНакладная.Контрагенты = МашиныСрезПоследних.Контрагент"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА КонецПроцедуры Ошибка: {Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(174,11)}: Процедура или функция с указанным именем уже определена (ПолучитьМашинуНаСервере) Процедура <<?>>ПолучитьМашинуНаСервере(); (Проверка: Сервер) {Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(121,17)}: Тип не определен (Запрос) Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент) {Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(169,11)}: Процедура или функция с указанным именем уже определена (ПолучитьМашину) Процедура <<?>>ПолучитьМашину(Команда) (Проверка: Тонкий клиент) |
|||
5
Волшебник
09.06.23
✎
09:35
|
объект Запрос доступен на сервере,
в тонком клиенте недоступен |
|||
6
Bigbro
09.06.23
✎
09:38
|
Процедура или функция с указанным именем уже определена
где то задублировали код |
|||
7
Dmitrii_VVV
09.06.23
✎
10:47
|
Дубль кода нашёл, ошибок больше не выдаёт, но код всё равно не отрабатывает (
|
|||
8
Мультук
гуру
09.06.23
✎
10:54
|
(7)
Почему не отрабатывает? Он занят очень важным делом, а именно - ничем (см свой же комментарий) Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; |
|||
9
Dmitrii_VVV
09.06.23
✎
14:24
|
(8) Есть такое! Поправил, но всё равно не отрабатывает
Опишу подробнее... Машина это реквизит документа Расходная накладная Контрагенты это так же реквизит данного документа Есть РС с измерением Контрагент и ресурсом Машины И непосредственно кнопка, Получить машины Необходимо, при нажатии на кнопку Получить машину, чтобы в поле машина выводится информация Форма https://wampi.ru/image/RX4pwpr |
|||
10
azernot
09.06.23
✎
14:39
|
(9) >Есть такое! Поправил, но всё равно не отрабатывает
А что поправили-то? Код в студию! |
|||
11
Dmitrii_VVV
09.06.23
✎
14:49
|
&НаКлиенте
Процедура ПолучитьМашину(Команда) ПолучитьМашинуНаСервере(); КонецПроцедуры &НаСервере Процедура ПолучитьМашинуНаСервере(); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); Запрос.Текст = "ВЫБРАТЬ | МашиныСрезПоследних.Контрагент КАК Контрагент, | РасходнаяНакладная.Контрагенты КАК Контрагенты |ИЗ | Документ.РасходнаяНакладная КАК РасходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Машины.СрезПоследних КАК МашиныСрезПоследних | ПО РасходнаяНакладная.Контрагенты = МашиныСрезПоследних.Контрагент |ГДЕ | РасходнаяНакладная.Ссылка = &Ссылка"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); КонецПроцедуры |
|||
12
АгентБезопасной Нацио
09.06.23
✎
15:24
|
попытка очередного доказательства "теоремы о бесконечных обезьянах"?
|
|||
13
azernot
09.06.23
✎
15:42
|
(11) Ну так сравните с тем, что написано в (2) после РезультатЗапроса.Выбрать(); и до КонецПроцедуры
|
|||
14
Sneer
11.06.23
✎
13:41
|
(11)
1. Задача 1 - Получить машину, где в запросе получение машины? 2. Задача 2 - Вывести машину в поле машина, где, опять же это действие? |
|||
15
Гена
гуру
11.06.23
✎
16:12
|
(5) Упс! Спасибо )
|
|||
16
Dmitrii_VVV
13.06.23
✎
16:17
|
(14) Если подскажете, будет просто великолепно!
|
|||
17
yurikmellon2
13.06.23
✎
16:40
|
(16) дык что тут подсказывать то?
Ты нафига в запросе строчками | МашиныСрезПоследних.Контрагент КАК Контрагент, | РасходнаяНакладная.Контрагенты КАК Контрагенты контрагентов то выбираешь? Контрагент тебе нужен только для связи и ты через левое соединение это делаешь. В запросе должно быть | МашиныСрезПоследних.Автомобиль КАК Автомобиль или как там у тебя этот реквизит называется Ну и раз начал в (4) делать конструктором, так и делай. По выборке пройди и получи свой Автомобиль Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(ыборкаДетальныеЗаписи.Автомобиль); КонецЦикла; |
|||
18
yurikmellon2
13.06.23
✎
16:40
|
+ (17) Сообщить(ВыборкаДетальныеЗаписи.Автомобиль);
|
|||
19
Dmitrii_VVV
13.06.23
✎
17:37
|
Спасибо, добрый человек, заработало!
А как вывести результат в поле Машина? сейчас всплывает наименование внизу, при нажатии на кнопку https://wampi.ru/image/RXaALRt |
|||
20
azernot
13.06.23
✎
17:39
|
Ещё всего пара недель переписки, и снова будет выведен код из (2)
:) |
|||
21
VismuT
13.06.23
✎
17:53
|
(19) Тебе же написали -
Если ВыборкаДетальныеЗаписи.Следующий() Тогда Объект.Машина = ВыборкаДетальныеЗаписи.Машины; КонецЕсли; (2) |
|||
22
Dmitrii_VVV
13.06.23
✎
18:00
|
(21) Есть такое, невнимательно посмотрел!
Заработало как надо Всем спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |