Имя: Пароль:
1C
1С v8
ERP 2: нумерация списаний безналичных денежных средств при загрузке банка
0 dchumak
 
15.02.19
09:18
Добрый день.

При загрузке банка в 1С (именно списаний безналичных ДС) если номер только числовой, то программа в номер документа списания подставляет номер по банку, сбивая тем самым нумерацию.

В обработке "КлиентБанк" в модуле менеджера есть такая любопытная процедура

Процедура ЗаполнитьРеквизитыСписания(ДокументыКЗагрузке, СтрокаДокумента, ДокументОбъект, СоздаватьКонтрагентов, ПроводитьДокументы, Префикс)
    
    ...
    
    // Номер документа
    Если ДокументОбъект.ТипПлатежногоДокумента = Перечисления.ТипыПлатежныхДокументов.ПлатежноеПоручение Тогда
        
        ДокументОбъект.УстановитьНовыйНомер();
        УстанавливаемыйНомер = "";
        Если СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СтрокаДокумента.Номер) Тогда
            
            ОкончаниеНомера = Формат(Число(СокрЛП(СтрокаДокумента.Номер)), "ЧН=; ЧГ=0");
            ДлинаНомера     = СтрДлина(СокрЛП(ДокументОбъект.Номер));
            
            НомерПозиции = СтрНайти(ДокументОбъект.Номер, "-");
            
            Если НомерПозиции > 0 Тогда
                ДлинаОкончанияНомера = ДлинаНомера - (НомерПозиции + 1);
            Иначе
                ДлинаОкончанияНомера = ДлинаНомера - СтрДлина(Префикс);
            КонецЕсли;
            
            Если СтрДлина(ОкончаниеНомера) < ДлинаОкончанияНомера Тогда
                Если НомерПозиции > 0 Тогда
                    УстанавливаемыйНомер = Лев(ДокументОбъект.Номер, НомерПозиции + 1)
                        + Формат(Число(ОкончаниеНомера), "ЧЦ="
                        + Строка(ДлинаОкончанияНомера) + "; ЧВН=; ЧГ=0");
                Иначе
                    УстанавливаемыйНомер = Префикс + Формат(Число(ОкончаниеНомера), "ЧЦ="
                    + Строка(ДлинаОкончанияНомера) + "; ЧВН=; ЧГ=0");
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
        
        Если ЗначениеЗаполнено(УстанавливаемыйНомер) Тогда
            
            ЗапросПоискаДокумента = Новый Запрос;
            ЗапросПоискаДокумента.Текст =
            "ВЫБРАТЬ ПЕРВЫЕ 1
            |    1
            |ИЗ
            |    Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
            |ГДЕ
            |    НАЧАЛОПЕРИОДА(СписаниеБезналичныхДенежныхСредств.Дата, ГОД) = &ДатаДок
            |    И СписаниеБезналичныхДенежныхСредств.Номер = &Номер
            |    И СписаниеБезналичныхДенежныхСредств.Организация = &Организация
            |";
        
            ЗапросПоискаДокумента.УстановитьПараметр("Номер", УстанавливаемыйНомер);
            ЗапросПоискаДокумента.УстановитьПараметр("ДатаДок", НачалоГода(ДокументОбъект.Дата));
            ЗапросПоискаДокумента.УстановитьПараметр("Организация", ДокументОбъект.Организация);
            
            Результат = ЗапросПоискаДокумента.Выполнить();
            Если Результат.Пустой() Тогда
                ДокументОбъект.Номер = УстанавливаемыйНомер;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

если номер только числовой (банковский номер), то при загрузке такого документа собъется нумерация платежных поручений, например, у нас сейчас номер 150, а  подставится 9000 и последующие документы будут уже с номерами 9001 и т.д.

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

Если этот кусок кода с присвоением номера закомментировать, то все загружается прекрасно, не сбивая нумерацию.

Чем это чревато, если этот кусок кода закомментировать?

1С:ERP Управление предприятием 2 (2.4.6.207).
1 dchumak
 
15.02.19
09:21
Такая ситуация происходит с теми платежками, которые не создаем в программе сами, а загружаем (например, выплату зарплаты) - сначала выгрузили ведомость по банку, потом банк уже сам формирует платежку на сумму перечисленной зарплаты. Соответственно, у нее числовой номер по банку. Если ее загрузить, нумерация сбивается.
2 K1RSAN
 
26.06.19
08:01
Похожая ситуация со списаниями в КА 2.4. При создании даже пустой платежки дает префикс и нумерация начинается с 1, хотя в году есть платежки. В организации префикса нет. Сейчас ищу решение, но может у кого ситуация уже была?
Основная теорема систематики: Новые системы плодят новые проблемы.