Имя: Пароль:
1C
1С v8
Значение поля "Номер" не уникально
, , ,
0 Besometr
 
12.12.13
16:38
Здравствуйте!

Опять прошу у вас помощи. При создании нового документа программно, не могу его ни записать, ни провести: Номер не уникален.
Вот код:

нКорректировкаРеализации = Документы.КорректировкаРеализации.СоздатьДокумент();
                                    
        //ЗаполнитьЗначенияСвойств(нКорректировкаРеализации, Реализация);
        
        нКорректировкаРеализации.ДокументРеализации     = Реализация;
        нКорректировкаРеализации.Ответственный             = глЗначениеПеременной("глТекущийПользователь");
        нКорректировкаРеализации.КорректироватьБУиНУ    = Истина;
        
        нКорректировкаРеализации.Дата                     = ТекущаяДата();
        //
                
        //Определим вид операции
        нКорректировкаРеализации.ВидОперации             = мВидОперации;
        //
                                    
        //                          
        нКорректировкаРеализации.ЗаполнитьПоДокументу();
        нКорректировкаРеализации.УстановитьНовыйНомер();

В отладчике номер присваивается нормальный "00000000001", отрабатывают все процедуры при записи, но в итоге валится в исключение.

Как видно по номеру, документов этого типа вообще нет в базе, я создаю первый.

ЧЯДНТ?)
1 Wobland
 
12.12.13
16:44
что такое не уникален?
2 Besometr
 
12.12.13
16:46
Имхается мне, что это значит - что такой уже используется
3 Wobland
 
12.12.13
16:47
(2) бинго!
4 КонецЕсли
 
12.12.13
16:47
"номер присваивается нормальный" - нормальный<>уникальный
5 Сисой
 
12.12.13
16:47
>> Как видно по номеру, документов этого типа вообще нет в базе, я создаю первый.
Неправильный довод.
>> отрабатывают все процедуры при записи
Значит, есть еще подписки.
6 kvikster
 
12.12.13
16:47
попробуй сначала дату установить
7 Wobland
 
12.12.13
16:48
когда пойдёшь запросом в консоль проверять, обрати внимание на нумератор
8 Сисой
 
12.12.13
16:49
Действительно, а не используется ли нумератор?
9 Besometr
 
12.12.13
16:51
(7) (8) Нумератор не используется.

Запросом проверять, это как то так?

ВЫБРАТЬ
    КорректировкаРеализации.Номер
ИЗ
    Документ.КорректировкаРеализации КАК КорректировкаРеализации

Кол. строк результата: 0
10 Besometr
 
12.12.13
16:51
(6) Дата устанавливается
11 Besometr
 
12.12.13
16:54
(5) Документов точно нет, проверено запросом выше.
По подпискам тоже проходил, в исключении код:
Сообщить(нКорректировкаРеализации.Номер);
        Сообщить(ОписаниеОшибки());
        Ответ = Неопределено;

Выдает результат:
00000000001
{ОбщийМодуль.АвтоматизацияРабочихМест.Модуль(1957)}: Ошибка при вызове метода контекста (Записать): Значение поля "Номер" не уникально
Документ Корректировка Реализации не создан!

Т.е. там номер, присвоенный в   нКорректировкаРеализации.УстановитьНовыйНомер();
12 Wobland
 
12.12.13
16:55
а номер документа ли имеется в виду?
13 Wobland
 
12.12.13
16:56
(12) ну того самого документа. ну ты поняд
14 Besometr
 
12.12.13
16:58
(12) Честно говоря не совсем понял:)
Но, если я делаю документ вручную, указываю какой нибудь номер, то при автоматическом создании
нКорректировкаРеализации.УстановитьНовыйНомер();
Вернет верный, т.е. +1
15 Besometr
 
12.12.13
16:58
(14) и в итоге все равно говорит что номер не уникален
16 Wobland
 
12.12.13
16:58
(14) что в 1957й строке?
17 Besometr
 
12.12.13
16:59
(16) нКорректировкаРеализации.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
18 Wobland
 
12.12.13
17:01
замер на эту строку и искать все "номер=" ?
19 1sik
 
12.12.13
17:03
Такое может быть когда объект пытается сохранится как два объекта с одинаковыми данными, но в том коде что показан не видно такого места.
20 Besometr
 
12.12.13
17:03
(18) Дык в исключении даже номер тот же остается. 100%
21 Wobland
 
12.12.13
17:05
(20) имею подозрение, что неуникален совсем не номер 00001
22 Wobland
 
12.12.13
17:07
(19) у него хотя б один да остался. но запрос с нулевым результатом он уже делал после своих попыток записи
23 hhhh
 
12.12.13
17:09
(20) есть подозрение, что эта ваша КорректировкаРеализации новую счет-фактуру фигачит. И с левым номером.
24 Besometr
 
12.12.13
17:50
Убрал строку
нКорректировкаРеализации.УстановитьНовыйНомер();
и заработало, что-то я не понимаю...(
25 kvikster
 
12.12.13
17:53
(24) 1с сама присваивает номер
2 + 2 = 3.9999999999999999999999999999999...