![]() |
|
НайтиПоСсылкам - как отобрать только по документам? | ☑ | ||
---|---|---|---|---|
0
Механик
14.05.23
✎
15:21
|
Делаю такую процедуру, чтобы посмотреть, где естьссылки на справочник "Контрагенты", и если в ссылках нет документов - то помечаю контрагента на удаление. В МассивДокументов запихиваю все виды документов из конфигурации, потом вызываю метод "НайтиПоСсылкам(МассивКонтрагентов, ,МассивДокументов)", подставляя туда массив с метаданными-документами, чтобы ограничить найденные ссылки только документами. Однако в возвращаемой таблице значений есть строки не только с документами, но и с другими типами данных. Что я делаю не так?
&НаСервере Процедура ПометитьНаУдалениеНаСервере() МассивДокументов = Новый Массив; Для каждого Документ Из Метаданные.Документы Цикл МассивДокументов.Добавить(Документ); КонецЦикла; Контрагент = Справочники.Контрагенты.Выбрать(); Пока Контрагент.Следующий() Цикл Если Не Контрагент.ЭтоГруппа Тогда МассивКонтрагентов = Новый Массив; МассивКонтрагентов.Добавить(Контрагент.Ссылка); СсылкиНаДокиТЗ = НайтиПоСсылкам(МассивКонтрагентов, ,МассивДокументов); Если СсылкиНаДокиТЗ.Количество() = 0 Тогда КонтрагентОбъект = Контрагент.ПолучитьОбъект(); КонтрагентОбъект.ПометкаУдаления = Истина; КонтрагентОбъект.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
Aleksey
14.05.23
✎
15:18
|
а посмотри как в типовой сделано. Там запрет на редактирование реквизитов, если есть документы (например нельзя менять валюту)
|
|||
2
Волшебник
14.05.23
✎
15:19
|
У Вас в МассивКонтрагентов всегда 1 контрагент. Это жесть, а не код. На рабочей базе всё будет тормозить.
|
|||
3
Механик
14.05.23
✎
15:46
|
(2) Так мне надо их по одному проверять и пометку по одному ставить. Тем более это одноразовая обработка, скорость тут некритична.
|
|||
4
Волшебник
14.05.23
✎
16:13
|
у Вас лишняя запятая в строчке
СсылкиНаДокиТЗ = НайтиПоСсылкам(МассивКонтрагентов, ,МассивДокументов); в синтакс-помощнике вот так: НайтиПоСсылкам(<СписокСсылок>, <ОбластьПоиска>, <ВключитьОбъекты>, <ИсключитьОбъекты>) |
|||
5
Механик
14.05.23
✎
16:24
|
(4) Думаю, что не лишняя. Так как третьим параметром ("ВключитьОбъекты") я как раз передаю массив с метаданными (документами).
А что касается второго параметра "ОбластьПоиска" - то не совсем понял, о чем идет речь в синтакс-помощнике. Там говорится, что "область устанавливается комбинацией разделителей..". |
|||
6
Волшебник
14.05.23
✎
17:43
|
(5) Может всё-таки попробовать?
Кстати, платформа не мобильная? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |