Позволю себе провокационный вопрос: а если дин.блок вставлен внутрь другого блока - опубликованный код вернет это вхождение или нет?
Отвечу на этот провокационный вопрос: этот способ поиска всех вхождений работает только если динамический блок не вставлен в другой блок или если и вставлен, но этот блок в единственном экземпляре, если копий блока много, то ничего не получится.
После того, как на это напоролся, попробовал посмотреть что там MgdDbg показывает и вот пример:
Если 4 одинаковых дин. боков (на картинке красные треугольники - блок с именем "АМ_Номер_пола") объединить в один и потом этот один скопировать, то и GetBlockReferenceIds(true,true) вернет вот такое:
т.е. только 4 вхождения
а при GetBlockReferenceIds(false,true) вернется вхождений... 4 вхождений блока и еще два - вхождения внутри которого этот блок находится, на картинке это блоки с номерами 48E1 и 48E2, вместо ожидаемых 8
а если и эти два блока засунуть в еще один, но будет вот так:
Вот как-то так... т.е. при GetBlockReferenceIds(false,true) нужно еще и проверять, ссылки на нужные ли тебе блоки вернули =(