Имя: Пароль:
1C
 
Документы с одинаковыми номерами
0 gun200
 
05.11.10
08:56
Ни у кого нет обработки что бы выявить документы с одинаковыми нумерами ? И справочники, то же нужно проверить. А то в центральной базе беспредел получился два одинаковых номеров документов, а строки разные, наверное с Бэкапа востановили базу :(
1 ДенисЧ
 
05.11.10
08:57
select docno, count(*) from _1sjourn
group by docno
having count(*) > 1
2 andrewks
 
05.11.10
08:58
при чем здесь бэкап?
3 andrewks
 
05.11.10
08:59
+(2) прежде, чем номера проверять, нужно понять, как получилось. префиксы, настройки обмена и т.д.
4 gun200
 
05.11.10
09:00
Бэкап при том, что создали документ Асс-000001 потом выгрузились в центр, затем возтановились с бэкапа и снова создали документ Асс-000001 вот и получилась проблема
5 gun200
 
05.11.10
09:00
Теперь два документа Асс-000001
6 gun200
 
05.11.10
09:01
на (1) а без c++ реально ?
7 ДенисЧ
 
05.11.10
09:01
(6) А там по с++ ни одного слова :-)
8 andrewks
 
05.11.10
09:01
(6) это эскюэль
9 1Сергей
 
05.11.10
09:03
(4) Префиксы уникальные для каждой иб?
10 gun200
 
05.11.10
09:11
Да конечно уникальны
11 gun200
 
05.11.10
09:12
А точно SQL а у меня DBF :)
12 andrewks
 
05.11.10
09:15
знатоки, поправьте меня, если я не прав:
а разве обмен идет не по внутр.представлению?
13 1Сергей
 
05.11.10
09:19
(12) внутренне представление всегда уникально. А если префиксы и в ЦБ "Асс-", и в ПБ "Асс-", то документы будут прекрасно создаваться с одинаковыми номерами
14 andrewks
 
05.11.10
09:21
(13) я понимаю, что уникально. но это-же не гуид. при восстановлении из бэкапа внутр. представления начнут повторяться с теми, которые были в лок.базе до восстановления. или я не прав?
15 gun200
 
05.11.10
09:30
на (13) не прав
16 gun200
 
05.11.10
09:34
Так ни укого нет обработки для поиска дублей номеров документов ?
17 forforumandspam
 
05.11.10
09:35
(0) Со справочниками аналогично

   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Номер");
   ТЗ.НоваяКолонка("Вид");
   ТЗ.НоваяКолонка("Дата");
   ТЗ.НоваяКолонка("Кол");
   
   Док = СоздатьОбъект("Документ");
   Док.Выбрать();
   Пока Док.ПолучитьДокумент() = 1 Цикл
       ТЗ.НоваяСтрока();
       ТЗ.Номер = Док.НомерДок;
       ТЗ.Дата  = НачГода(Док.ДатаДок);
       ТЗ.Вид   = Док.Вид();
       ТЗ.Кол   = 1;
   КонецЦикла;
   
   ТЗ.Свернуть("Номер,Дата,Вид", "Кол");
   ТЗ.Сортировать("Вид,Дата,Номер");
   
   ТЗ.ВыбратьСтроки();
   Пока ТЗ.ПолучитьСтроку() = 1 Цикл
       Если ТЗ.Кол > 1 Тогда
           Сообщить("Док:"+Док);
       КонецЕсли;
   КонецЦикла;
18 gun200
 
05.11.10
09:36
Спасибо друг !
19 forforumandspam
 
05.11.10
09:38
(18) Уже проверил?
20 andrewks
 
05.11.10
09:38
(17) может у него нумерация на каждый месяц?
21 ДенисЧ
 
05.11.10
09:38
запрос даже на 1с рисуется за 2 минуты...
22 andrewks
 
05.11.10
09:39
(21) т-с-с-с...
23 andrewks
 
05.11.10
09:40
+(22) мы еще не разобрались в ситуации. лично мне интересно больше: то, что в (4) реально? или я все-таки прав?
24 gun200
 
05.11.10
09:41
ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Номер");
   ТЗ.НоваяКолонка("Вид");
   ТЗ.НоваяКолонка("Дата");
   ТЗ.НоваяКолонка("Кол");
   
   Док = СоздатьОбъект("Документ");
   док.выбратьдокументы(,); //заменил док.выбрать();
   Пока Док.ПолучитьДокумент() = 1 Цикл
       ТЗ.НоваяСтрока();
       ТЗ.Номер = Док.НомерДок;
       ТЗ.Дата  = НачГода(Док.ДатаДок);
       ТЗ.Вид   = Док.Вид();
       ТЗ.Кол   = 1;
   КонецЦикла;
   
   ТЗ.Свернуть("Номер,Дата,Вид", "Кол");
   ТЗ.Сортировать("Вид,Дата,Номер");
   
   ТЗ.ВыбратьСтроки();
   Пока ТЗ.ПолучитьСтроку() = 1 Цикл
       Если ТЗ.Кол > 1 Тогда
           Сообщить("Док:"+Док);
       КонецЕсли;
   КонецЦикла;
25 gun200
 
05.11.10
09:42
Запрос через счётчик что ли ?
26 forforumandspam
 
05.11.10
09:42
(20) Начинается... Я дал минимально необходимый вариант, чтобы работал. А остальное уже рюшечки - можно потом докрутить. главное показать принцып.

(24) Писал наживую, без программы ;-)
27 andrewks
 
05.11.10
09:43
(25) угумц
28 andrewks
 
05.11.10
09:44
только не забудь, что разным видам доков м.б. назначен один нумератор
29 gun200
 
05.11.10
09:49
Сообщить("Док:"+Док);
Нужно Сообщить("Док:"+ТЗ.Док);
:)
А так всё получилось ещё раз спасибо, просто в пятницу мозг уже отключился, вообще думать не охота :)
30 forforumandspam
 
05.11.10
09:53
(29) В базе используется нумератор? Есть документы с уникальностью номера в пределах месяца?
31 gun200
 
05.11.10
09:55
Нет в пределах года только
32 1Сергей
 
05.11.10
09:59
(24) могут быть 2 документа с одинаковым номером, но в разных датах. Эта обработка такое не найдет
33 andrewks
 
05.11.10
10:01
(32) ты лучше скажи что-нибудь по поводу (14)
34 gun200
 
05.11.10
10:06
на (24) Могут быть 2 документа с одинаковым номером, но в разных датах. Если в одном году, то найдёт.
35 forforumandspam
 
05.11.10
10:07
(32) Найдёт
36 1Сергей
 
05.11.10
10:07
(33) к (14) по идее, не должно. Бекап же восстанавливается полностью в пустую базу. Другое дело, что если понабъют в другой базе документы с такими же номерами, то после обмена получим картину (0)
37 1Сергей
 
05.11.10
10:08
(35) в ТЗ будет что-то типа:
Асс-0001 01.11.2010 Расходная 1
Асс-0001 02.11.2010 Расходная 1
38 andrewks
 
05.11.10
10:09
(37) он же НачГода пишет
39 forforumandspam
 
05.11.10
10:09
(37) Будет
Асс-0001 01.01.2010 Расходная 1
Асс-0001 01.01.2010 Расходная 1
40 1Сергей
 
05.11.10
10:13
(38) (39) а..... всё, сорри, ступил :)
не пинайте больно
41 andrewks
 
05.11.10
10:16
(36) ладно, выложу, к чему я клоню. тока чур ногами не бить, с УРБД не работаю лет пять, с тех пор как посадил всех на уд.доступ к терм.серв. благо связь щас хорошая. Итак:
имеем центр. базу СК0 и лок.базу СК1
СК1 сохранили в архив.
в СК1 набили расх.накл 001, 002, сделали выгрузку, они появились в СК0.
потом восстановили СК1 из архива, набили расх.накл. 001, 002 (уже другие, например).
правильно ли я представляю:
1. у этих накл. (до и после восст.) буду одинаковые внутр.предст.
2. после еще одной выгрузки в СК0 там накл. не задвоятся, а заменяться на последние.
? или не правильно?
42 gun200
 
05.11.10
10:20
на (36) Нет не правильно внутрений индификатор будет различным
43 1Сергей
 
05.11.10
10:20
(41) прав
44 andrewks
 
05.11.10
10:21
(42) проверял?
45 1Сергей
 
05.11.10
10:21
(43)+ полчится каша
46 1Сергей
 
05.11.10
10:21
(44) был такой случай, пришлось убирать лишние доки
47 gun200
 
05.11.10
10:23
на (42) только что проверил.
48 gun200
 
05.11.10
10:24
Ну короче 1 док всего косяный, скорее всего не из-за бэкапа, хотя сейчас уже и не проверищь док за январь 2009
49 1Сергей
 
05.11.10
10:24
(47) см (40)