|
ДС, ошибка при установке отбора на параметры виртуальной таблицы. |
☑ |
0
Бот9000
13.08.19
✎
03:19
|
При папытке установить атбор на параметры виртуальной таблицы в диманическом списке выдает ашибку: невозможно применить элемент отбора в наборе данных "Параметры.Начало периода..." и т.д. Вопрос, оно так и должно быть или это у меня все такое кривое?
Можно ли как сделать динамический список на форме с таблицей остатки и обороты, и у него менять период по запросу пользователя? Пробовал через ЭлементОтбораКомпоновкиДанных - выдает ошибку, пробовал напрямую в запрос прописать параметр - не реагирует на его переустановку.
|
|
1
Chameleon1980
13.08.19
✎
08:47
|
Криво конечно.с написанием.
как отбор устанавливаешь? Запрос дс покажешь?
|
|
2
Бот9000
13.08.19
✎
14:25
|
такой вариант:
Процедура УстОтб(эл, поле, срав, зн)
Если ЗначениеЗаполнено(зн) Тогда
с = эл.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
с.ЛевоеЗначение = новый ПолеКомпоновкиДанных(поле);
с.ВидСравнения = срав;
с.ПравоеЗначение = зн;
с.Использование = Истина;
КонецЕсли;
КонецПроцедуры
...
эл = дсОстатки.Отбор.Элементы;
эл.Очистить();
УстОтб(эл, "ПараметрыДанных.НачалоПериода", ВидСравненияКомпоновкиДанных.Равно, дд1);
сообщение об ошибке при этом точно такое же, как если устанавливать через Настроить список в пользовательском режиме "Невозможно применить элемент отбора в наборе данных "Параметры.Начало периода Равно ...""
При этом, если ошибиться с написанием имени, поля то там другое сообщение, типа поле не найдено.
Для примера, для
УстОтб(эл, "Параметры.НачалоПериода", ВидСравненияКомпоновкиДанных.Равно, дд1);
выдает ошибку: "Поле не найдено "Параметры.НачалоПериода""
Использование Равно или БольшеИлиРавно разницы не делает.
|
|
3
Бот9000
13.08.19
✎
14:31
|
(это при дефаултном запросе к таблице ОстаткиИОбороты)
|
|
4
hhhh
13.08.19
✎
16:05
|
(3) а где у вас тут стандартный период? Начало месяца, начало года или произвольная дата? указываете?
|
|
5
Бот9000
13.08.19
✎
17:18
|
(4) дд1 - произвольная дата, заданная пользователем.
Если это приделать к простому запросу, "из РегистрНакопления.МойРегистр.ОстаткиИОбороты(&дд1, &дд2)", то все замечательно выполняется. А то же в ДС не хочет. Может только при первом выполнении будет, не пробовал, мне нужна именно переустановка.
|
|
6
hhhh
13.08.19
✎
17:25
|
(5) ну в дд1 точно указано, что это типа Произвольная дата? и так далее? какую структуру имеет дд1?
|
|
7
Бот9000
13.08.19
✎
18:15
|
(6) дд1 = НачалоДня(РеквизитНаФормеНачальнойДаты);
так же пробовал Граница, то же самое. Вопрос в том, как обойти это ограничение системы.
|
|
8
Бот9000
13.08.19
✎
19:43
|
Решилось через использование временных таблиц - запрос ОстаткиИОбороты предварительно во временную таблицу, и тогда на эти остатки можно накладывать программные отборы через дсТаблица.Параметры.УстановитьЗначениеПараметра("дд1", дд1);
Всем спасибо за участие.
|
|