Имя: Пароль:
1C
1С v8
Своя нумерация кассовых документов для каждой кассы (УТ 10.3)
0 John83
 
31.10.14
11:05
Префикс задается через код кассы, когда в коде присутствует цифра, префикса не должно быть и нумерация стандартная.
Проблема в том, что стандартной нумерации не получается - ставится тот префикс, который шел последним. Как тут лучше поступить?
в процедуре ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера такой код

ОбщегоНазначения.ДобавитьПрефиксОрганизации(Источник, Префикс);
ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс);

Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер") ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
    КодКассы = СокрЛП(Источник.Касса.Код);
    ЕстьЦифра = Ложь;
    Для Положение = 1 По СтрДлина(КодКассы) Цикл
        Если Найти("0123456789", Сред(КодКассы, Положение, 1)) Тогда
            ЕстьЦифра = Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если НЕ ЕстьЦифра Тогда
        Префикс = Префикс + КодКассы;
    КонецЕсли;
КонецЕсли;
1 John83
 
31.10.14
11:12
придумал! т.к. тут только одна касса "без префикса", то просто код кассы сделать "0"
всем спасибо за внимание

Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер") ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
    КодКассы = СокрЛП(Источник.Касса.Код);
    Если КодКассы = "0" Тогда
        Префикс = Префикс + КодКассы;
    Иначе
        ЕстьЦифра = Ложь;
        Для Положение = 1 По СтрДлина(КодКассы) Цикл
            Если Найти("0123456789", Сред(КодКассы, Положение, 1)) Тогда
                ЕстьЦифра = Истина;
                Прервать;
            КонецЕсли;
        КонецЦикла;
        Если НЕ ЕстьЦифра Тогда
            Префикс = Префикс + КодКассы;
        КонецЕсли;
    КонецЕсли;
КонецЕсли;
Независимо от того, куда вы едете — это в гору и против ветра!