Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ДС, ошибка при установке отбора на параметры виртуальной таблицы.

ДС, ошибка при установке отбора на параметры виртуальной таблицы.
Я
   Бот9000
 
13.08.19 - 03:19
При папытке установить атбор на параметры виртуальной таблицы в диманическом списке выдает ашибку: невозможно применить элемент отбора в наборе данных "Параметры.Начало периода..." и т.д. Вопрос, оно так и должно быть или это у меня все такое кривое?

Можно ли как сделать динамический список на форме с таблицей остатки и обороты, и у него менять период по запросу пользователя? Пробовал через ЭлементОтбораКомпоновкиДанных - выдает ошибку, пробовал напрямую в запрос прописать параметр - не реагирует на его переустановку.
 
 
   Chameleon1980
 
1 - 13.08.19 - 08:47
Криво конечно.с написанием.
как отбор устанавливаешь? Запрос дс покажешь?
   Бот9000
 
2 - 13.08.19 - 14:25
такой вариант:

Процедура УстОтб(эл, поле, срав, зн)
    Если ЗначениеЗаполнено(зн) Тогда
        с = эл.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        с.ЛевоеЗначение = новый ПолеКомпоновкиДанных(поле);
        с.ВидСравнения = срав;
        с.ПравоеЗначение = зн;
        с.Использование = Истина;
    КонецЕсли;
КонецПроцедуры

...
    эл = дсОстатки.Отбор.Элементы;
    эл.Очистить();
    УстОтб(эл, "ПараметрыДанных.НачалоПериода", ВидСравненияКомпоновкиДанных.Равно, дд1);

сообщение об ошибке при этом точно такое же, как если устанавливать через Настроить список в пользовательском режиме "Невозможно применить элемент отбора в наборе данных "Параметры.Начало периода Равно ...""

При этом, если ошибиться с написанием имени, поля то там другое сообщение, типа поле не найдено.

Для примера, для 
УстОтб(эл, "Параметры.НачалоПериода", ВидСравненияКомпоновкиДанных.Равно, дд1);
выдает ошибку: "Поле не найдено "Параметры.НачалоПериода""

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.