Имя: Пароль:
1C
1С v8
Перенумерация: добавить в конец номера постфикс
0 dft2014
 
18.11.15
18:02
Подскажите, почему не срабатывает перенумерация. Мне надо у всех док-тов Отпуск, у номеров вида 456, сделать номер 456-о. Т.е. добавить постфикс "-о". Вот код:


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

&НаКлиенте
Процедура ИзменитьНумерацию(Команда)
    ИзменитьНумерациюНаСервере();
КонецПроцедуры
1 zak555
 
18.11.15
18:03
Зачем добавлять в конец ?
2 Горогуля
 
18.11.15
18:06
очевидно, СтрЗаканчиваетсяНа(обНомер,"-o") возвращает истину
3 Горогуля
 
18.11.15
18:06
(1) отпуск же. иначе будет непонятно
4 igork1966
 
18.11.15
18:07
Потому что справа символов не хватает.
5 ВРедная
 
18.11.15
18:09
(0) дальше при создании документов будете нумеровать вручную или своим отдельным алгоритмом?
6 zak555
 
18.11.15
18:10
(3) а чего не в приставке выводить ?
7 Горогуля
 
18.11.15
18:14
(6) откуда ж я знаю? "-о" для тех, кто уходит, "о-" для тех, кто возвращается
8 qw12225
 
18.11.15
18:25
1с не поддерживает постфикс в конце - нумерация по человечески не будет идти. Сделать постфикс в конце можно, но придется полностью контролировать/переделывать алгоритм нумерации. Зачем?  Можно ведь обойтись 2 буквами тогда не нужно будет огород городить
9 dft2014
 
19.11.15
09:33
(2) Нет, возвращает Ложь.
(5), (8) Это разовая перенумерация некоторых док-тов. У остальных этот постфикс есть.
10 dft2014
 
19.11.15
09:34
(4)  Как это?
11 Локи-13
 
19.11.15
09:36
кто так пишет?
СтрЗаканчиваетсяНа(обНомер,"-o") <> Истина

правильно писать
НЕ СтрЗаканчиваетсяНа(обНомер,"-o")
12 Мэс33
 
19.11.15
09:36
(9) После разовой перенумерации - будущие номера полетят.
13 Локи-13
 
19.11.15
09:38
а по теме
посмотри длину обНомер, думается мне некуда -о добавляться.
Пробелы то не удалены.

<спойлер>
обНомер = СОКРЛП(обНомер) + "-о";
</спойлер>
14 Stim
 
19.11.15
09:39
за постфиксы в номерах нужно отрубать пальцы, имхо
15 mTema32
 
19.11.15
09:45
+(14)
Автор в (0), прежде чем такое делать попробуйте вручную присвоить такой номер и попробуйте создать новый документ. Какой вам номер назначит нумератор?
16 Stim
 
19.11.15
09:47
зы. если хочется своих особенных номеров - добавляешь реквизит, выводишь его на форму и в печ форму делаешь с ним что хочешь. а вот стандартный реквизит лучше не трогать
17 igork1966
 
19.11.15
09:55
(10) все до символа отличающегося от цифры для 1С это префикс номера. Остальное место для нумерации.
18 igork1966
 
19.11.15
09:58
(17) + по поводу твоего кода... ну номер строка фиксированной длинны...  соответственно дополнено пробелами до длины кода
19 Локи-13
 
19.11.15
10:09
(14) обоснуй
20 Stim
 
19.11.15
10:43
(19) автонумерация превратится в треш
21 hhhh
 
19.11.15
10:44
(20) вообще-то пора вводить постфиксы в платформу. Если не в 8.4, то хотя бы в 8.5.
22 Локи-13
 
19.11.15
10:44
(20) а кто сказал, что используется автонумерация?