Фильтр выборки в отборе изменений плана обмена #728100


#0 by Anselm
Согласно документации 1С в методе ВыбратьИзменения глобального контекста ПланыОбмена есть параметр "ФильтрВыборки". Общий синтаксис: ВыбратьИзменения(<Узел>, <НомерСообщения>, <ФильтрВыборки>). При использовании третьего параметра возникло затруднение. Фильтр накладывается на ряд записей регистра сведений, подчиненного регистратору. Запросом выбираются регистраторы, создаются наборы записей регистра с отбором по регистраторам и помещаются в массив. Этот массив далее используется как третий параметр. Но при этом в выборку, которая возвращается методом ВыбратьИзменения, попадают требуемые отобранные записи регистра (остальные не попадают) и ВСЕ изменения всех остальных регистров. Кто-нибудь использовал фильтр выборки? Это штатное поведение системы?
#1 by Maxus43
в этот массив добавь ещё Метаданные регистра
#2 by Cube
Если не ошибаюсь, то в ФильтрВыборки надо ложить не ссылки на объекты данных, а названия метаданных...
#3 by Anselm
Ошибка при вызове метода контекста (ВыбратьИзменения): Фильтр изменений содержит значение неверного типа - Регистр сведений набор записей
#4 by Лефмихалыч
какая религия мешает прочитать справку целиком? Все же написано <ФильтрВыборки> (необязательный) Тип: Неопределено; Объекты метаданных; СсылкаНаОбъект, НаборЗаписей, Массив. Неопределено - фильтр пуст, выбираются все изменения по узлу; Объекты метаданных - выбираются изменения в основной таблице, связанной с данным объектом метаданных; СсылкаНаОбъект - фактически, может быть выбрана только одна запись об изменении данного объекта, либо ни одной, если объект не менялся; НаборЗаписей - набор записей регистра, может быть не выбран, для фильтрации изменений используется лишь отбор набора записей; Массив - все элементы массива имеют один из перечисленных выше типов, кроме Неопределено. Условия фильтрации соединяются по ИЛИ.
#5 by Anselm
согласно СП можно использовать и ссылки на конкретные объекты, и наборы записей регистров и метаданные
#6 by Лефмихалыч
там же написано, что когда используешь наборы записей, от них реально используются только ОТБОРЫ
#7 by Maxus43
и? у автора отбор по регисратору, всё правильно. Вопрос был - с какого бодуна там записи других регистров
#8 by Anselm
я так и написал. На набор записей накладывается отбор и все. Набор при этом даже не читается. И по этому конкретному регистру все ОК. Но попадают и ВСЕ записи ВСЕХ остальных регистров.
#9 by Anselm
Меня смущает в СП фраза "Условия фильтрации соединяются по ИЛИ"...
#10 by Maxus43
меня не смущает, всё правильно. Если б было И - ничего бы не выбиралось вобще, когда в массиве больше одной записи
#11 by Лефмихалыч
полагаю дело в том, что в фильтре выборки есть еще что-то, кроме набора записей
#12 by Anselm
там есть только переданный массив. Он правильно показывается в отладчике
#13 by Maxus43
может в платформе косяк? на другой проверить бы, на 8.2 какойнить
#14 by Лефмихалыч
а в массиве-то только набор записей или что-то еще? А платформа у тебя какая?
#15 by Anselm
платформа 8.2.19.83
#16 by Anselm
в массиве несколько элементов типа "РегистрСведенийНаборЗаписей". И все
#17 by Лефмихалыч
попробуй один элемент передать, изменения остальных регистров будут в выборке? Или может там в других наборах отбора где-то нет?
#18 by Anselm
пробовал. То же самое. Одна запись нужного регистра и все остальные регистры целиком
#19 by Anselm
Всем спасибо. В массив фильтра выборки нужно добавлять пустые наборы записей без отборов остальных регистров, участвующих в плане обмена. Тогда работает. Фраза "Условия фильтрации соединяются по ИЛИ" стала понятной :-)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С