Имя: Пароль:
1C
1C 7.7
v7: Префикс Нумерация UCDocRen
0 volody
 
30.06.12
11:57
Всем хелло!
В документе НомерДок текстовый сделал обработку которая добавила префиксы к номерам документов. Воспользовался стандартной обработкой UCDocRen чтобы изменить нумерацию на правильную А0001 Б0001 В0001 но не вышло обработка нумерует А0001 Б0002 В0003

Это код для числового не где для текстового.
ну даладно подскажите как изменить код чтобы добиться нумерации с превиксами такой -  А0001 Б0001 В0001.

       Если ТипНомера = "Числовой" Тогда
           Если ФлНеИзменятьНумерацию = 0 Тогда
               Объект.НомерДок = ЧисловаяЧастьНомера;
               Попытка
                   Объект.Записать();
               Исключение
                   Объект.НомерДок = 99999-Сч;
                   Объект.Записать();
                   сзНеУникальныхНомеров.ДобавитьЗначение(Сч, ЧисловаяЧастьНомера);
               КонецПопытки;        
               ЧисловаяЧастьНомера = ЧисловаяЧастьНомера + 1;
           КонецЕсли;
           Продолжить;
       КонецЕсли;
1 Amra
 
30.06.12
11:59
Жесть. Код то посмотри и подумай. Как написал, так и нумерует
2 1Сергей
 
30.06.12
12:00
не понял. Префиксы к чему привязаны?
3 volody
 
30.06.12
12:17
группам номенклатуры привязан префикс
4 Amra
 
30.06.12
12:39
(3) Тогда и храни порядковый номер для каждой группы. Сейчас у тебя счетчик один на все группы
5 volody
 
30.06.12
12:41
Это код из UCDocRen который мне не понятен он для числовых кодов мне нужен для Текстовыйх только я не могу онять где он в UCDocRen. Как поменять код для Текстовых номеров чтоб нумеровал с префиксами и А0001 Б0001 В0001
6 volody
 
30.06.12
12:43
нумерация стоит В пределах месяца сейчас идет нормально но хочу выровнять нумерацию с начала года
7 Amra
 
30.06.12
12:46
(5) За тебя написать чтоли? Говорю - храни последний номер для каждого префикса. А как - это уже как тебе хочется
8 volody
 
30.06.12
13:08
Спасибо конечно не нужно мнеб хватило подставь водсюда и все получиться ... хранить не надо ни чего так как сейчас все оке мне нудно изменить нумерацию С НАЧЛА ГОДА где идет А0001 Б0002 В0003 так отработала UCDocRen значит нужно ее кодо изменить и она будет нумеровать так как мне надо А0001 Б0001 В0001 С НАЧАЛА ГОДА я не могу найти в коде UCDocRen где она отрабатывает префиксы и по какому присваивает номер
Исключение
                   Объект.НомерДок = 99999-Сч;
                   Объект.Записать();
                   сзНеУникальныхНомеров.ДобавитьЗначение(Сч, ЧисловаяЧастьНомера);
               КонецПопытки;    
как мне кажется нужно для каждого префикса вводит свою переменную для присваивания верного номера или список/таблицу с нумерацией както так
9 Amra
 
30.06.12
13:19
(8) Я тебе про "как мне кажется нужно для каждого префикса вводит свою переменную для присваивания верного номера или список/таблицу с нумерацией както так" и говорю
10 volody
 
30.06.12
13:22
Извеняй не понял :)
11 volody
 
30.06.12
13:47
Как понимать вот эту строку

Объект.НомерДок = 99999-Сч;

Почему 99999 не понимаю как он номер новый присваивает
НомерДок  = 99998
12 1Сергей
 
30.06.12
13:48
(11) при Сч=1, например
13 volody
 
30.06.12
14:36
ТабНомерПоПорядку = СоздатьОбъект("ТаблизаЗначений");
   ТабНомерПоПорядку.НоваяКолонка("Префик");
   ТабНомерПоПорядку.НоваяКолонка("НомерДок","Число");

Для А=1 По ТабНомерПоПорядку.КоличествоСтрок() Цикл
           
   Если СокрЛП(Строка(ТабНомерПоПорядку.ПолучитьЗначение(А,"Префикс"))) = СокрЛП(Строка(СтроковаяЧастьНомера)) Тогда
               ЧисловаяЧастьНомера  = 1+ Число(ТабНомерПоПорядку.ПолучитьЗначение(А,"НомерДок"));
               ТабНомерПоПорядку.УстановитьЗначение(А,"НомерДок",ЧисловаяЧастьНомера);
           Иначе      
               ТабНомерПоПорядку.НоваяСтрока();
               ТабНомерПоПорядку.НомерДок=1;
               ТабНомерПоПорядку.Префикс = СокрЛП(СтроковаяЧастьНомера);
               
           КонецЕсли;
       КонецЦикла;
Покатит ???
14 volody
 
30.06.12
14:37
Префикс порпавил