Имя: Пароль:
1C
1С v8
Не уникальный номер документа, глюк или нехватка опыта?
,
0 SherifSP
 
25.06.13
16:21
В документе НалоговаяНакладная с периодичностью в месяц, оператор поменял номер с ЧК-000003987 на 397. Наваял обработку, которая подставляет нужный номер и перезаписывает документ, но при записи возникает ошибочная ситуация, "номер документа не уникален", пробовал в ручную менять, тоже самое, отбором в списке и запросом в консоле проверял, пусто. Дата в документе стоит правильная, в чем подвох?
1 mikecool
 
25.06.13
16:22
запусти перенумерацию и не будет проблем
2 Волесвет
 
25.06.13
16:22
оператор может менять номера документов??! О_О
3 ssh2012
 
25.06.13
16:22
По теме - "нехватка опыта"
4 SherifSP
 
25.06.13
16:22
(1) С начала месяца? оО
5 SherifSP
 
25.06.13
16:23
+(4) 4 к документов будут до завтра проводится
6 SherifSP
 
25.06.13
16:24
(2) Да )
7 mikecool
 
25.06.13
16:24
(5) а зачем их проводить? только запись
8 SherifSP
 
25.06.13
16:25
А как отследить почему система ругается на уникальность?
9 mikecool
 
25.06.13
16:25
без ренумерации секвенцию не восстановишь, будет постоянно посылать
10 samozvanec
 
25.06.13
16:25
поставь номер повыше ручками и все
11 samozvanec
 
25.06.13
16:26
+(10) автонумерацию юзай
12 SherifSP
 
25.06.13
16:27
(10) Поставил на 1000 больше, записал нормально, но думал мб как то порядок восстановить
13 samozvanec
 
25.06.13
16:28
(12) будет тебе порядок через неделю
14 SherifSP
 
25.06.13
16:29
(11) Попробовать автонумерацию включить и перезаполнить, мб получится?
15 Serg_1960
 
25.06.13
16:30
(0) "Наваял обработку" - а вот отсюда и далее поподробнее :)

Есть ни ИТС обработка типовая для перенумерации документов. Так там это делается в два этапа: сначала номера меняются на заведомо отсутствующие в базе, а потом - на нужные. Именно для того, чтобы не нарваться на неуникальность.
16 SherifSP
 
25.06.13
16:32
(15) в 8.1 такой обработки не наблюдал
17 ssh2012
 
25.06.13
16:33
(16) Универсальный подбор и обработка объектов
18 SherifSP
 
25.06.13
16:33
(15)  

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   ТЗ = ПолучитьНалоговыеДокументы();
   НС = 3987;
    //НС = 4981;
    Для Каждого СтрокаТЗ Из ТЗ Цикл
        Объект = СтрокаТЗ.Ссылка.ПолучитьОбъект();
        Номер = СтрЗаменить("ЧК-00000" + НС,Символы.НПП,"");
        Объект.Номер = Номер;
        НС = НС + 1;
        Объект.Записать(РежимЗаписиДокумента.Запись);
    КонецЦикла;
   
КонецПроцедуры

Функция ПолучитьНалоговыеДокументы()
   
   ТекстЗапроса =  "ВЫБРАТЬ
                   |    НалоговаяНакладная.Ссылка
                   |ИЗ
                   |    Документ.НалоговаяНакладная КАК НалоговаяНакладная
                   |ГДЕ
                   |    НалоговаяНакладная.Дата МЕЖДУ &Начало И &Конец";
   Запрос = Новый Запрос;
   Запрос.Текст = ТекстЗапроса;
   Запрос.УстановитьПараметр("Начало", НачалоПериода);
   Запрос.УстановитьПараметр("Конец", КонецПериода);
   Возврат Запрос.Выполнить().Выгрузить();
   
КонецФункции
19 SherifSP
 
25.06.13
16:34
(17) Не вижу такой
20 SherifSP
 
25.06.13
16:34
+(19) мб где скачать подскажите)
21 salvator
 
25.06.13
16:35
(18) По номеру отсортировать пробовал в выборке?
22 SherifSP
 
25.06.13
16:35
(21) Да
23 salvator
 
25.06.13
16:36
(22) Не вижу этого в запросе.
24 ssh2012
 
25.06.13
16:36
25 SherifSP
 
25.06.13
16:39
(23) Я перед циклом ТЗ.Сортировать("Номер Возр"); но предварительно в запрос добавил поле "Номер"
26 salvator
 
25.06.13
16:46
Вообще лучше перенумеровывать в 2 этапа.
На первом нумеруешь к примеру 999999001, 999999002, ...
На втором уже присваиваешь нужные номера.
27 Serg_1960
 
25.06.13
16:49
(18) Перед записью объекта поставь "Объект.ОбменДанными.Загрузка = Истина;" - тогда будет игнорироваться неуникальность. Вероятно алгоритм твой генерит очередной номер, который уже есть в базе (и документ сидит в ТЗ и ждёт очереди на перенумерацию)...
28 Serg_1960
 
25.06.13
16:54
(25) Вообще-то нужно сортировать по датам документов. Если уж менять нумерацию - то последовательность номеров надо восстанавливать по времени документов.
29 SherifSP
 
25.06.13
19:24
(28) В документе налоговая идет сквозная нумерация с документом Приложение2 к налоговой, поэтому и ругалось на не уникальность
30 vs1c
 
25.06.13
19:59
(9)"без ренумерации секвенцию не восстановишь, будет постоянно посылать" - внушает. Можно это на плакат запилить(в конторе у себя повесим)? Куда слать авторские? :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс