Добрый день, коллеги!

Необходимо получить список всех помеченных на удаление элементах, в ОПРЕДЕЛЁННЫХ объектах конфигурации. Использую:

```1c
    ОСнОбластьПоиска = Новый Массив;
    ОбластьПоиска2 = Новый Массив;
    ОбластьПоиска2.Добавить("Справочник.Номенклатура");
    Помеченные = НайтиПомеченныеНаУдаление(ОСнОбластьПоиска,ОбластьПоиска2);
```

Возвращаются ВСЕ помеченные объекты, во всех справочниках, документах и т.п.

Ни каких ошибок, просто игнорирует параметры отбора и всё. Пытался передать массив со списком справочников первым параметром - ошибка несоответствия типов. Где-то вычитал, что в первый параметр надо пустой массив, а во второй уже список - результата нет. Оставлял первый параметр пустым - тот же эффект. СП читал долго и нудно. Версия платформы 8.3.15, совместимости нет.

Заранее спасибо за отклик!
---
Это лишнее в шаблоне.
Вообщем вот рабочий вариант:

```1c
    ИсключитьОбъекты = Новый Массив;
    Для каждого стр из Метаданные.Документы Цикл
    Если стр = Метаданные.Документы.ОтчетПроизводстваЗаСмену Тогда
    Продолжить;
    КонецЕсли;
    ИсключитьОбъекты.Добавить(стр);
    КонецЦикла;

    Для каждого стр из Метаданные.Справочники Цикл
    ИсключитьОбъекты.Добавить(стр);
    КонецЦикла;
    НайденныеОбъекты = НайтиПомеченныеНаУдаление(, ,ИсключитьОбъекты);

    Для Каждого ПомеченныйЭлемент Из НайденныеОбъекты Цикл
    Сообщить("Помечен на удаление: " + ПомеченныйЭлемент);
    КонецЦикла;
```

Поиск по конкретным объектам метаданным не работает, но можно исключить остальные объекты метаданных.
---
Всем большое спасибо за участие в столь горячем обсуждении! Пошёл путем заполнения третьего параметра т.е. указания объектов которые НЕ надо искать. Работает! С точки зрения архитектуры - криво, с точки зрения реального продакшена - самый адекватный вариант. Обращаться в 1с ни какого смысла не вижу, они об этой проблеме явно знают. Почему воз и ныне там - вопрос риторический. Заинтересовал, однако, другой вопрос: что должно быть в первом параметре? Общие реквизиты-разделители? В СП как-то так написано, что примерно понятно, но по факту понятно слабо. Есть у кого-нибудь примеры, использовал кто-нибудь?
---
НайтиПомеченныеНаУдаление
Ну судя по платформе и отсутствию режима совместимости, то должно работать.
Кроме номенклатуры находит и другие объекты?
Тогда ставьте последнюю платформу тестируйте, если воспроизводится пишите в 1С.
---
Так и я думаю, что должно работать, а не работает) В 1с можно писать годами, а решение нужно сейчас. С платформой, чисто ради интереса, поиграюсь. Но во-первых, не думаю что это что-то даст. Во-вторых, продакшен будет всё равно на этой платформе.
---
не правда, грамотный вопрос и ответ в течении пары дней. А на форуме платформу не пишут, а только дают советы как кто-то наступал на такие же грабли и возможно нашел решение!
---
получить список всех помеченных на удаление элементах - может быстрее будет запросом? программно сформировать текст запроса по требуемым объектам метаданных...
---
Попробуйте так:

```1c
    ОбластьПоиска = Новый Массив;

    ВключитьОбъекты = Новый Массив;
    ВключитьОбъекты.Добавить("Документ.ПоступлениеНаРасчетныйСчет");
    ВключитьОбъекты.Добавить("Документ.СписаниеСРасчетногоСчета");

    ИсключитьОбъекты = Новый Массив;
    ИсключитьОбъекты.Добавить("Документ.СписаниеСРасчетногоСчета");

    НайденныеОбъекты = НайтиПомеченныеНаУдаление(ОбластьПоиска, ВключитьОбъекты);

    Для Каждого ПомеченныйЭлемент Из НайденныеОбъекты Цикл
    Сообщить("Помечен на удаление: " + ПомеченныйЭлемент);
    КонецЦикла;
```
---
Вот мой последний вариант, здесь приведенный, он как раз по этому шаблону. Единственное, поясните (не могу понять):

```1c
    ИсключитьОбъекты = Новый Массив;
    ИсключитьОбъекты.Добавить("Документ.СписаниеСРасчетногоСчета");
```

Какой смысл несет? Этот массив нигде не используется ведь?
---
Примечание:
На мобильной платформе параметры <ОбластьПоиска>, <ВключитьОбъекты> и <ВключитьОбъекты> игнорируются.
---
Не мобильная, обычная платформа. Код исполняется в серверном привилегированном модуле, проблем с правами тоже не должно быть.
---
Тут с вами не согласен. Просто, если проблему ни кто не встречал, то на её решение требуется время, а иногда у людей его не много и приходится ждать.
Хотя в 1С можно написать параллельно, они может что то официально ответят про особенности.
---
Это лишнее в шаблоне.
Вообщем вот рабочий вариант:

```1c
    ИсключитьОбъекты = Новый Массив;
    Для каждого стр из Метаданные.Документы Цикл
    Если стр = Метаданные.Документы.ОтчетПроизводстваЗаСмену Тогда
    Продолжить;
    КонецЕсли;
    ИсключитьОбъекты.Добавить(стр);
    КонецЦикла;

    Для каждого стр из Метаданные.Справочники Цикл
    ИсключитьОбъекты.Добавить(стр);
    КонецЦикла;
    НайденныеОбъекты = НайтиПомеченныеНаУдаление(, ,ИсключитьОбъекты);

    Для Каждого ПомеченныйЭлемент Из НайденныеОбъекты Цикл
    Сообщить("Помечен на удаление: " + ПомеченныйЭлемент);
    КонецЦикла;
```

Поиск по конкретным объектам метаданным не работает, но можно исключить остальные объекты метаданных.
---
На одном форуме нашел описание опытов человека, он пишет что:
1) Если первый параметр указать, то будет работать второй параметр.
2) Если не указать, то будет искать везде, если не указаны исключения.
Видимо поэтому в примерах указывается первый параметр как пустой массив. Но видимо так не работает и надо что бы массив был не пустым. Но у меня нет базы для проверки этой теории, так как ни общие реквизиты, ни разделение данных не используется. А городить тестовую базу нет возможности.
---
ранее на форуме писали, что нужно пошаманить, в справке в принципе все расписано, нужно только тестировать.
---
В справке описан поиск всех объектов и что можно добавить или исключить объекты поиска, но о том что это как то по особому работает, ничего не написано. Пока не проверен вариант с разделением данных (первый параметр), то предполагаю, что поиск работает везде, если не указано исключение.
---
на 8.3.18 все подробно расписано.
---
Вот что говорит справка в 8.3.15, а что пишет в 8.3.18?
---
НайтиПомеченныеНаУдаление
1С:Предприятие 8.3 (8.3.18.1128)
---
как-то занимался таким поиском, обнаружил следующую зависимость, поиск по областям работал только в режиме Управляемого приложения, в обычном режиме - возвращает как раз все.
---
Проверял на УФ 8.3.15.1830, второй параметр игнорируется всегда, если:
1) 1 параметр не указан.
2) 1 параметр Неопределено
3) 1 параметр пустой массив
Остается проверить, если первый параметр будет указан, но такой возможности у меня нет.

Так же нашел, что изменили поведение в версии 8.3.15, но как не понял. Пойзже проверю на платформе 8.3.12, может там будет работать.
---
такой код код на ура отрабатывает

мТест = Новый Массив;
мОбъекты = Новый Массив;
мОбъекты.Добавить("Документ.РеализацияТоваровУслуг");
рез = НайтиПомеченныеНаУдаление(мТест,мОбъекты);
---
На какой версии платформы?
У меня такое не работает. Платформа 8.3.15.1830
---
В 10 сообщение привел рабочий пример кода этой функции.
Функцией проще, так как не надо писать громозкий запрос, если документа два, то просто, а если 10, то объединений получится.
---
еще раз,
режим запуска: Управляемое приложение
в управляемой форме
платформа 8,3,17, совместимость 8,3,12
на более ранней платформе тоже работало

а на этой же платформе, в обычном режиме, это же код, возвращает ВСЕ помеченные на удаление
---
Еще раз, платформа 8.3.15.1830 режим запуска управляемые приложения.
Интерфейс такси.
Режим совместимости 8.3.8 (но согласно справки все должно работать).
И не работает. Попробую завтра сменить режим совместимости и проверить еще раз, но согласно справке, все должно работать.
---
Всем большое спасибо за участие в столь горячем обсуждении! Пошёл путем заполнения третьего параметра т.е. указания объектов которые НЕ надо искать. Работает! С точки зрения архитектуры - криво, с точки зрения реального продакшена - самый адекватный вариант. Обращаться в 1с ни какого смысла не вижу, они об этой проблеме явно знают. Почему воз и ныне там - вопрос риторический. Заинтересовал, однако, другой вопрос: что должно быть в первом параметре? Общие реквизиты-разделители? В СП как-то так написано, что примерно понятно, но по факту понятно слабо. Есть у кого-нибудь примеры, использовал кто-нибудь?
---
Примеров нет, но это имеется ввиду когда используется разделение данных. Общий реквизит 1С не рекомендует использовать, так как добавлялось для облачных сервисов и в разработке конфигураций использовать официально не рекомендуют.
А подробнее по ссылке https://v8.1c.ru/platforma/razdelenie-dannyh/
---
Спасибо! А где написано, что общие реквизиты не рекомендуют использовать в конфигурации? Вроде как типовые конфы вполне их используют.
---
Да, но как разделение данных, что бы в облаке могли завести одну базу для нескольких организаций я полагаю.
Глянул в ERP там только разделение данных.
А вот глянул на всякий случай и БУХ 3, там добавились еще реквизиты комментарий и наименование. А это уже не для разделения данных, а видимо своего рода несколько языков в одной базе. Только зачем не понятно пока, так как забугром эту же конфигурацию использовать нельзя.
---
А так есть неплохая статья, давно читал, освежил в памяти
https://infostart.ru/1c/articles/1144154/
Ну + еще можно нагуглить, если будет интересно.
---
Вообще то, что в первом параметре должен быть массив в массиве написано вполне понятно. То есть массив с элементами типа массив. Не в одном примере такого не было. И то, что если первого параметра нет, то и второй работать не будет тоже написано.
Метод конечно интересный, но вопрос у меня больше практический. Он работает быстрее подобного запроса или нет?
Можно добавить кучу встроенных функций в конфигуратор (чем 1с и балуется). Но если они будут работать как Удаление помеченных объектов в УТ 10.3 (и выбрать, что удалить неудобно и если много удалять, то нажал контроль и привет - ни индексации, ни вывода в строку состояния), то смысла в них особого нет. Лучше пользоваться привычным запросом. Если у меня к примеру 200000 помеченных на удаление Реализаций (а при свертке и поболее бывает) и мне час ждать, пока эта функция выведет результат (и никакой ведь индикации), то с запросом можно много что придумать, а здесь нет.
---
Опробовал эту функцию. Действительно работает шустро. За 40 сек нашла у меня в базе все помеченные на удаление (порядка 50000). Действительно жалко, что разработчики не доделали функционал.