Имя: Пароль:
1C
1С v8
Префикс
,
0 Начинающий_13
 
19.06.14
13:15
Здравствуйте
Не типовая. Сказали сделать префиксы.
Префиксы хранятся в Периодическом регистре сведеий.
Дата  Префикс
2012  ТМ
2014  УФ
Если Даты документа с 2012 года, то все работает отлично.
Если ставлю допустим ДО 2012, то записывает префикс последний УФ. Как написать исключение, что бы ставил просто номер документа без префикса.Вроде все попробовал не получается

Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)

    СведенияОбОрганизации  = ПериодическиеРеквизиты.СведенияОбОрганизации(Дата);
    Префикс = СведенияОбОрганизации.Префикс;
    
    Если ПустаяСтрока(Префикс) Тогда
        Префикс = "";
        Префикс = Префикс;
        Сообщить("Префикс пуст");
    КонецЕсли;
    
    Если СведенияОбОрганизации.Префикс <> Неопределено Тогда
        Префикс = Префикс;
    КонецЕсли;
    
    ОбновитьНумерациюОбъектов(Метаданные.Документы.АвансовыйОтчет);


КонецПроцедуры
1 Wobland
 
19.06.14
13:17
копать здесь: ПериодическиеРеквизиты.СведенияОбОрганизации(Дата);
2 Cube
 
19.06.14
13:18
(0) Ошибка в ПериодическиеРеквизиты.СведенияОбОрганизации(Дата);

А не в том, что ты привел...
3 Wobland
 
19.06.14
13:18
>Префикс = Префикс;
а это, конечно, прекрасно
4 Начинающий_13
 
19.06.14
13:18
Хорошо сейчас поколдую
5 Cube
 
19.06.14
13:19
(3) Ага, мне тоже понравилось))
6 Начинающий_13
 
19.06.14
13:20
(3) Назову потом по другому
7 Wobland
 
19.06.14
13:21
Префикс=ПериодическиеРеквизиты.СведенияОбОрганизации(Дата).Префикс;
предлагать? одна строчка
8 РенеДекарт
 
19.06.14
13:27
(7) не надо.
У человека еще исключение на
Префикс = Префикс;
не написано ))
9 РенеДекарт
 
19.06.14
13:28
Вот это тоже шедевр:

Если ПустаяСтрока(Префикс) Тогда
        Префикс = ""
...
10 РенеДекарт
 
19.06.14
13:29
+ ну и без этого тут тоже никуда:
...Префикс = Префикс;
11 Рэйв
 
19.06.14
13:30
(0)Судя по издевательству над переменной Префикс - у тебя проблемы с пониманием базовых принципов программирования:-)
Может это не твое?
12 Wobland
 
19.06.14
13:30
дарю:

Попытка
    Префикс = "";
Исключение
    Сообщить("Ошибка установки префикса: "+ОписаниеОшибки());
КонецПопытки;
Попытка
    Префикс = Префикс;
Исключение
    Сообщить("Ошибка установки префикса: "+ОписаниеОшибки());
КонецПопытки;
13 Fragster
 
гуру
19.06.14
13:30
(9) пустаяСтрока("          ") = истина, но непонятно почему не сокрлп, да
14 Wobland
 
19.06.14
13:31
(9) удаление незначащих символов
15 Fragster
 
гуру
19.06.14
13:31
Префикс = ?(Префикс = Префикс,Префикс,Префикс);
16 Рэйв
 
19.06.14
13:33
Префикс=ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнктр(Префикс))
:-)
17 kosts
 
19.06.14
13:35
(0) Всё не читал. В типовых префикс может устанавливаться в подписке, т.е. действие твоей процедуры может быть будет перебито в подписке.
18 РенеДекарт
 
19.06.14
13:36
(17)>> Всё не читал.
зря )
19 Wobland
 
19.06.14
13:36
ПрефиксПрефикс="";
Для й=1 По СтрДлина(Префикс) Цикл
    ПрефиксПрефикс=ПрефиксПрефикс+Сред(Префикс, й, 1);
КонецЦикла;
Префикс=ПрефиксПрефикс;
20 kosts
 
19.06.14
13:37
(19) Угадай песню по коду...
21 РенеДекарт
 
19.06.14
13:37
(11)>>Судя по издевательству над переменной Префикс
не, ну может ему сказали, что у 1С а ж с 6-ой версии проблемы с присвоением перменных бывают.... вот и перестраховывается своим, оригинальным способом...
22 Cube
 
19.06.14
13:37
(15) Зачёт! XD
23 Fragster
 
гуру
19.06.14
13:39
Если СведенияОбОрганизации.Префикс = Неопределено Тогда
        Префикс = "00";
    Иначе
        Префикс = СведенияОбОрганизации.Префикс
    КонецЕсли;
24 Fragster
 
гуру
19.06.14
13:39
все остальное нафиг
25 Fragster
 
гуру
19.06.14
13:39
ну, или "000", смотря сколько там у автора длина
26 Fragster
 
гуру
19.06.14
13:46
вот у меня проблема так и идет. v8: Задолбало "Значение поля номер не уникально"

даже сделал сбор статистики глюков - глючит только в клиентсерверном варианте, может кто зависимость заметит:
http://wstaw.org/m/2014/06/19/1_1.png
27 Cube
 
19.06.14
13:51
(26) Тебе в 61 посте правильно сказали - у тебя проблема в префиксах. Отключи автонумерацию у документа, а не у формы и, я думаю, проблемы твои кончатся...
28 Fragster
 
гуру
19.06.14
13:54
(27) в (61) посте немного по другому
29 Fragster
 
гуру
19.06.14
13:56
но счас попробую, как раз сегодня обновление по плану будет
30 Cube
 
19.06.14
13:56
(28) В посте сказано, что проблема в префиксах - и это правда. Смысл в автонумерации, если ты номер присваиваешь сам? Отключи её (только не у формы, а у объекта) и платформа перестанет пытаться присвоить новый неправильный номер и ругаться на это. Я так считаю.
31 Fragster
 
гуру
19.06.14
13:58
(30) я таки правильно понимаю, что в таком случае "установитьНовыйНомер" надо вручную вызывать?
32 Fragster
 
гуру
19.06.14
13:59
или ты про то, чтобы искать самому запросом через Подобно "Префикс% Порядок Номер Убыв"?
33 Cube
 
19.06.14
14:00
(31) Хз, проверь))
34 Fragster
 
гуру
19.06.14
14:04
(33) ну, сам он не присваивается
35 Fragster
 
гуру
19.06.14
14:39
прикольно. если снять галку, то еще и при копировании номер также копируется.
36 РенеДекарт
 
19.06.14
14:42
(34) или вызови "установитьНовыйНомер" - и получишь то, что делает автонумерация, или пронумеруй сам.
37 Fragster
 
гуру
19.06.14
14:44
(36) ну так в чем тогда смысл (30)? что так вызовется, что так. ну, сейчас пока поместил вызов УстановитьНовыйНомер + очистку номера при копировании, посмотрим, что получится.
38 Fragster
 
гуру
19.06.14
14:44
вообще фигня какая-то
39 РенеДекарт
 
19.06.14
14:47
(37)>> сейчас пока поместил вызов УстановитьНовыйНомер + очистку номера при копировании
зачем, сразу свой писать.
А УстановитьНовыйНомер - это если свой док + обработка номера при создании.
40 РенеДекарт
 
19.06.14
14:48
(37)>> ну так в чем тогда смысл (30)
смысл в том, что платформа пытается присвоить автономер, который присвоить не может. В 1С такое (и не только такое) бывает на каждом шагу.