Имя: Пароль:
1C
1C 7.7
v7: ТиС ошибка Код не уникальный! Документ не проводится!
,
0 I_learn_1c
 
11.09.18
16:35
Доброго вечера,

Делаем закрытие смены, первое в этом году, создается ОтчетККМ с кодом 000000001,других отчетов нет. Но вылетает ошибка Код не уникальный!
Документ не проводится!

В конфигураторе стоит периодичность в пределах года, Нумератор не назначен. Автоматическая нумерация, Контроль уникальности.

Вручную в предприятии - создается нормально. Что может быть такое?
1 HawkEye
 
11.09.18
16:36
(0) дата
2 Смотрящий
 
11.09.18
16:37
000000001 это не код а номер документа.
Код не уникальный - сообщение при записи справочника

Где то у вас косяк. Надо найти где собака порылась...
3 Пуля
 
11.09.18
16:38
Вручную в предприятии - создается нормально. - Ну вот и решение!
4 I_learn_1c
 
11.09.18
16:39
(2) да да, номер. оговорилась. пробовали в закрытии принудительно присвоить номер "0000055555" например, с таким номером вообще никаких доков нет, но все равно - не уникальный
5 I_learn_1c
 
11.09.18
16:40
(3) ну да, а заполнять ТЧ тоже вручную? нужно чтоб при закрытии смены создавался
6 Пуля
 
11.09.18
16:40
Выложите как создовали
7 s03
 
11.09.18
16:41
(4) а какой номер присвоился при создании "Вручную в предприятии"?
8 I_learn_1c
 
11.09.18
16:42
(7) 0000000001, как и должно бы быть
9 I_learn_1c
 
11.09.18
16:42
если есть отчет 0000000001, то тогда 00000000002 не уникальным становится
10 I_learn_1c
 
11.09.18
16:43
количество нулей сейчас не точно вводила, вообще длина кода 10
11 s03
 
11.09.18
16:44
(8) тогда проверяйте остальные реквизиты документа, возможно в зависимости от них номер как-то определяется (может что-то недозаполнили)
12 I_learn_1c
 
11.09.18
16:48
номер присваивается в закрытии смены методом УстановитьНовыйНомер. После этого ОтчетККМ записывается без ошибок, и затем его пытаются провести и тут вот ошибка вылетает. на ДокОКС.Провести();

Вот этот кусок из обработки Закрытие смены


    Попытка
                ДокОКС.Записать();
            Исключение
                ОтменитьТранзакцию();
                Предупреждение(ОписаниеОшибки());
                Возврат;
            КонецПопытки;
            
            // В режиме OffLine проведем после фиксирования транзакции
            Если ВыбКасса.РежимККМ <> Перечисление.РежимыККМ.OffLine Тогда
                ДокОКС.Провести();
                Если ДокОКС.Проведен() = 0 Тогда
                    ОтменитьТранзакцию();
                    Предупреждение(ОписаниеОшибки());
                    Возврат;
                КонецЕсли;        
            КонецЕсли;

            Если (ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР)
             или (ПустоеЗначение(ВыбКасса.РежимККМ) = 1)
13 I_learn_1c
 
11.09.18
16:50
(11) и закрытие смены стандартное же.. какие то настройки с нумерацией не так видимо.. но какие
14 Смотрящий
 
11.09.18
16:51
"и тут вот ошибка вылетает. на ДокОКС.Провести()"

Бггг
В модуле проведения пишутся справочники ? оО
15 HawkEye
 
11.09.18
16:55
(12) так если он записывается нормально то тогда тебе не нравиться?!
чем ты руководствовался, когда показывал именно этот кусок кода, за всю остальную свою поделку ручаешься, а этот вызывает вопросы?
16 Diman_Kr
 
11.09.18
17:12
Код не уникален, это к документу никак не относится! Здесь справочник пытаетесь записать. Если есть УРБД, то скорее всего здесь собака порылась.
17 HawkEye
 
11.09.18
17:50
(14) (16) см (4)
18 Diman_Kr
 
11.09.18
17:58
(17) см (16)
19 Diman_Kr
 
11.09.18
18:00
+(18) Код не уникальный <> Номер не уникальный.
20 HawkEye
 
11.09.18
18:07
(18) для тех кто в танке, в (4) написано: "да да, НОМЕР. оговорилась" на какой язык перевести?
21 hhhh
 
11.09.18
18:48
(20) не факт, что это правда. Правильно сомневаются.
22 Birmingem
 
11.09.18
20:33
Косяка однако ...
Открываете отладчик, модуль проведения и пошагово в каждой строчке смотрим чему равно НомерДок и ДатаДок.

И не создается ли там еще документ?
Может там второй документ пытается записать...
23 Kigo_Kigo
 
11.09.18
20:37
что каркнет вот это?
делайте на копии, эт я так на всякий случай, а то есть у нас индивидумы
ДокОКС = СоздатьОбъект("Документ.ОтчетККМ");
ДокОКС.ВыбратьДокументы();
Пока ДокОкс.ПолучитьДокумент() = 1 Цикл
Сообщить("Грохнули " + СокрЛП(ДокОКС.ДатаДок) + " "+СокрЛПДокОКС.НомерДок) );
ДокОСК.Удалить(0);
КоенцЦикла
24 Tatitutu
 
11.09.18
20:41
(0) вы создаете в коде несколько документов
один заполняете, а другой пытаетесь провести

"номер присваивается в закрытии смены методом УстановитьНовыйНомер"

вот это уберите - у вас автонумерация установлена