Имя: Пароль:
1C
1С v8
Таблица значений как параметр запроса динамического списка
,
0 AXZ
 
25.07.22
09:51
Всем здрям, нужна помощь. Для двух полей динамического списка есть необходимость брать данные из заданной программно таблицы значений. Пытаюсь:
ВЫБРАТЬ
...
ТаблицаДляЗапроса.Значение1 КАК Значение1,
ТаблицаДляЗапроса.Значение2 КАК Значение2
ИЗ
...
   ЛЕВОЕ СОЕДИНЕНИЕ &ПараметрТаблицаЗначений КАК ТаблицаДляЗапроса
   ПО ОсновнаяТаблица.Поле = ТаблицаДляЗапроса.Поле


Ругается на ПараметрТаблицаЗначений:
Ошибка при выполнении запроса.
по причине:
{(84, 20)}: Ожидается имя таблицы
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>&ПараметрТаблицаЗначений КАК ТаблицаДляЗапроса

Как правильно передать в запрос таблицу? Сейчас передаю через
    ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,"ПараметрТаблицаЗначений",ТаблицаДляЗапроса//ТЗ которую в коде задал ранее//,Истина);

Заранее спасибо
1 RomanYS
 
25.07.22
10:06
(0) ТЗ-параметр нужно сначала поместить во временную таблицу
2 Жан Пердежон
 
25.07.22
10:07
(0) в 1С и без динамического списка такой запрос не прокатит, делай как в (1) написано
3 AXZ
 
25.07.22
10:08
(1) Там
ИЗ &Параметр КАК ТЗ
сработает нормально или тоже придется как-то по другому?
4 AXZ
 
25.07.22
10:09
Правильно понимаю:
Выбрать *
Поместить ВременнаяТЗ
ИЗ &МойПараметр как ТЗ
?
5 RomanYS
 
25.07.22
10:11
(4) Да. Для запросов только так. А вот поддерживает ли это ДС может зависеть от режима совместимости
6 AXZ
 
25.07.22
10:12
(5) Должен, у меня совместимость с 8.3.16
7 AXZ
 
25.07.22
10:14
Проверил, на ТЗ не ругается, но ругается на неоднозначность поля основной таблицы, но это так полагаю с вопросом никак не связано, поэтому всем спасибо за помощь
8 AXZ
 
25.07.22
10:24
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: v    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: SettingsComposer    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data-composition-system/settings}SettingsComposer
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: settings    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data-composition-system/settings}Settings
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: item    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data-composition-system/core}ParameterValue
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: value    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'

Только я расслабил булки, как 1С зашел с тыла
9 Тихий омут
 
25.07.22
10:43
(8) ТЗ, которые используешь в параметрах ДС, расположены на форме?
10 AXZ
 
25.07.22
10:58
(9) Неа, добавляются программно, но реквизит задан. Или нужно разместить на форме без видимости?
11 Тихий омут
 
25.07.22
11:12
(10) Это был наводящий вопрос:) КМК, в параметр запроса (в данном случае дин списка) можно передать только объект встроенного языка; ДанныеФормыКоллекция тут не подходят
12 AXZ
 
25.07.22
11:50
(11) В том и дело что передаваемый параметр ТаблицаЗначений, не ДанныеФормыКоллекция, проверил
13 Кура-Цеце
 
25.07.22
12:51
(8) У тебя таблица значений пытается приехать обратно на клиента внутри настроек компоновщика. С чего ты взял, что это вообще должно работать?
14 AXZ
 
25.07.22
12:53
(13) Я не взял, оно само берется. Как можно сделать по-умному? Сформировать таблицу на стороне клиента? Передать значением туда же? Я просто уже соображать перестаю
15 Михаил Козлов
 
25.07.22
15:54
Можно попробовать в РС таблицу запихнуть.
16 ptiz
 
25.07.22
16:12
(4) У меня такой текст даёт ошибку уже в конфигураторе при редактировании дин.списка.
Ругается на "Неверные параметры".
Как получилось хотя бы дин список сохранить с запросом вида: ВЫБРАТЬ ... ИЗ &ТЗ ... ?
17 6awkup_true
 
26.07.22
13:03
Как вариант можно обрабатывать данные ДС в процедуре "ПриПолученииДанныхНаСервере"
18 Кура-Цеце
 
26.07.22
14:14
Если строк в таблице-параметра мало, то программно слепить текст запроса типа:

ВЫБРАТЬ 1 КАК Поле1, ДАТАВРЕМЯ(1,1,1) КАК Поле2
ПОМЕСТИТЬ ВТ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 2, ДАТАВРЕМЯ(2000,1,1)
...
;
19 Мультук
 
гуру
26.07.22
14:18
(18)

&ссылкаНоменклатура_001
&ссылкаНоменклатура_002

ну такое...
хотя, конечно интересно, ограничено ли кол-во параметров.
20 СеменовСемен
 
26.07.22
15:58
(18) во времена 8.1 так и делали
Ошибка? Это не ошибка, это системная функция.