В связи с проблемами нумерации документов в 8.1 при решении проблемы наткнулся на ОбновитьНумерациюОбъектов();
В помошнике сказано
Выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но не записанные номера, становятся невалидными, т.к. не гарантируется их уникальность. Данный метод разрешено вызывать только администратору системы.
В течении дня переодически запускал эту команду, пока проблем не выявленно. Может кто подскажет какие могут быть проблеммы, при использовании данного метода, и попутно второй вопрос если не возникает противопоказаний, то каким образом заставить ее выполняться в фоновом режиме предположим по таймеру


========================================


То есть ситуация может быть такая 1 юзер открыл новый документ, далее идет команда, второму при создании документа выдаст тот же номер что и у первого который еще не записал, так понимаю


============================================

Есть такой вариант:
В глобальнике в процедуре при установке нового номера выдавать номер без преффикса. Затем перехватывать событие передЗаписью и в нем нумеровать уже с преффиксом.
Может это и не самый удачный вариант. Но пока только этот

==============================================

Выдавать номер?
если правильно понимаю искать последний +1 а два человека открыли документ, и у обоих один и тот же номер. Не вариант, или я неправильно понял реализацию

==============================


Все доки юзают Функцию
УстановитьНомерДокумента(ДокументОбъект) Экспорт
из глобального модуля.
Вот в ней выдавать номер дока без преффикса. После этого перед записью проверять

Код 1c:
Если этоНовый() Тогда
  ДокументОбъект.УстановитьНовыйНомер(Объект.Организация.Префикс);
КонецЕсли;

В этом случае номер будет и так уникальным. При таком способе можно использовать и ОбновитьНумерациюОбъектов();

==================================================

Так же все и вот эту (УПП 1.2)
Код 1c:
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    ДобавитьПрефиксУзла(Префикс);
КонецПроцедуры
 
В глобальнике
////////////////////////////////////////////////////////////////////////////////
 
// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА РИБ
 
Процедура ДобавитьПрефиксУзла(Префикс) Экспорт
    Если ПараметрыСеанса.ИспользованиеРИБ Тогда
        ПрефиксУзла = ПланыОбмена.Полный.ЭтотУзел().ПрефиксУзла;
        Префикс = ПрефиксУзла + Префикс;
    КонецЕсли;
КонецПроцедуры

В принципе можно и здесь вставить, но как будет правильно, после выдачи номера делать сброс?

=======================================

В общем получилось следующее:
Перехватываем событие ПередЗаписью.
Код 1c:
Процедура ПередЗаписьюНовогоДокумента(ДокументОбъект, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    стрОрг="";
    МетаданныеДокумента = ДокументОбъект.Метаданные();
 
    Если ЕстьРеквизитДокумента("Организация", МетаданныеДокумента)
             И ЗначениеЗаполнено(ДокументОбъект.Организация.Префикс) Тогда                
        стрОрг="Организация";
    ИначеЕсли ЕстьРеквизитДокумента("Грузоотправитель", МетаданныеДокумента)
                И ТипЗнч(ДокументОбъект.Грузоотправитель)=Тип("СправочникСсылка.Организации")
              И ЗначениеЗаполнено(ДокументОбъект.Грузоотправитель.Префикс) Тогда
        стрОрг="Грузоотправитель";
    КонецЕсли;
 
    Если НЕ ДокументОбъект.ЭтоНовый() Тогда
        Если ЛЕВ(ДокументОбъект.Номер,3)=ДокументОбъект[стрОрг].Префикс
            И ДокументОбъект.Ссылка[стрОрг]=ДокументОбъект[стрОрг] Тогда
            ДокументОбъект.Номер=ДокументОбъект.Ссылка.Номер;
            Возврат;
        КонецЕсли; 
    КонецЕсли;    
 
    Если НЕ ПустаяСтрока(стрОрг) Тогда
    ДокументОбъект.УстановитьНовыйНомер(ДокументОбъект[стрОрг].Префикс);
    Иначе
    ДокументОбъект.УстановитьНовыйНомер("00");        
    КонецЕсли;
КонецПроцедуры

Работать будет только с докуами у которых есть префикс

============================================================

Пардон, не учли кое-что. Вот такая функция: (Грузоотправитель в типовой не нужен)
Код 1c:
Процедура ПередЗаписьюНовогоДокумента(ДокументОбъект, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    стрОрг="";
    МетаданныеДокумента = ДокументОбъект.Метаданные();
 
    Если ЕстьРеквизитДокумента("Организация", МетаданныеДокумента)
             И ЗначениеЗаполнено(ДокументОбъект.Организация.Префикс) Тогда                
        стрОрг="Организация";
    ИначеЕсли ЕстьРеквизитДокумента("Грузоотправитель", МетаданныеДокумента)
                И ТипЗнч(ДокументОбъект.Грузоотправитель)=Тип("СправочникСсылка.Организации")
              И ЗначениеЗаполнено(ДокументОбъект.Грузоотправитель.Префикс) Тогда
        стрОрг="Грузоотправитель";
    КонецЕсли;
 
    Если НЕ ДокументОбъект.ЭтоНовый() Тогда
        Если НЕ ПустаяСтрока(стрОрг) И ДокументОбъект.Ссылка[стрОрг]=ДокументОбъект[стрОрг] Тогда
            Если ЛЕВ(ДокументОбъект.Номер,3)<>ДокументОбъект[стрОрг].Префикс Тогда
                ДокументОбъект.Номер=ДокументОбъект.Ссылка.Номер;
            КонецЕсли;
            Возврат;
        КонецЕсли; 
    КонецЕсли;    
 
    Если НЕ ПустаяСтрока(стрОрг) Тогда
    ДокументОбъект.УстановитьНовыйНомер(ДокументОбъект[стрОрг].Префикс);
    Иначе
    ДокументОбъект.УстановитьНовыйНомер("00");        
    КонецЕсли;
КонецПроцедуры