Имя: Пароль:
1C
1С v8
ДС, ошибка при установке отбора на параметры виртуальной таблицы.
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);

Всем спасибо за участие.