А вот так я предварительно обновляю все документы,

А вот так я предварительно обновляю все документы, у которых еще нет сгенерированных превьюшек:

ini_set('max_execution_time', 0);
ignore_user_abort(true);

$modx->switchContext('web');
print '<pre>';

$TV_source = 2;    // Устанавливаете значения своих TV-шек
$TV_target = 17; 

$q = $modx->newQuery('modResource');
$q->innerJoin('modTemplateVarResource', 'tvimage', "tvimage.tmplvarid={$TV_source} and modResource.id = tvimage.contentid and tvimage.value != ''");
$q->leftJoin('modTemplateVarResource', 'tvprev', "tvprev.tmplvarid={$TV_target} and modResource.id = tvprev.contentid");
$q->where(array(
    'tvprev.id' => null,    
));

print "<br />Всего документов без превьюшек: ". $modx->getCount('modResource', $q);

$q->limit(100);

// Создаем самбнейл превьюшки
foreach($modx->getCollection('modResource', $q) as $resource){
    if($photo = $resource->getTVValue($TV_source) AND $thumb = $modx->runSnippet('phpthumbof', array(
        'input'     => $photo,
        'options'   => 'w=113&h=113&q=100&zc=1',
    ))
        AND $photo != $thumb
    ){
        $resource->setTVValue( $TV_target, $thumb);
        // print $thumb;
    }
    // print_r($resource->toArray());
}