|
v7: Не удаляются движения документа | ☑ | ||
---|---|---|---|---|
0
LisaAlisa
07.09.20
✎
18:09
|
Привет!
При установке пометки на удаление или при отмене проведения документа движения в регистре не очищаются. При этом флаг "Автоматическое удаление движений" стоит. Из-за чего так может быть? |
|||
1
Ёпрст
07.09.20
✎
18:14
|
(0) в 7.7 такого быть не может. И галка на этот процесс никак не влияет.
Поэтому, одна из черепашек врёт |
|||
2
LisaAlisa
07.09.20
✎
18:19
|
к сожалению, может
|
|||
3
Ёпрст
07.09.20
✎
18:23
|
(2) ну показывай, как и чем ты это видишь
|
|||
4
LisaAlisa
07.09.20
✎
18:24
|
||||
5
LisaAlisa
07.09.20
✎
18:24
|
||||
6
Ёпрст
07.09.20
✎
18:26
|
(4,5) очень крупно, можно поменьше картинку ?
|
|||
7
Ёпрст
07.09.20
✎
18:27
|
И.. че это за самодельный просмоторщик движений ?
|
|||
8
LisaAlisa
07.09.20
✎
18:27
|
не получается что-то с картинкой...
Главное Меню Действия/Движения документа |
|||
9
LisaAlisa
07.09.20
✎
18:27
|
||||
10
Ёпрст
07.09.20
✎
18:28
|
ты ПКМ на документе в журнале то нажми и выведи что там в Движения документа ?
|
|||
11
Ёпрст
07.09.20
✎
18:29
|
||||
12
LisaAlisa
07.09.20
✎
18:29
|
по ПКМ Движения недоступны, а через главное меню их можно просмотреть. И в SQL их видно
|
|||
13
LisaAlisa
07.09.20
✎
18:30
|
||||
14
LisaAlisa
07.09.20
✎
18:30
|
вот здесь видно, что документ НЕ проведен, но движения ЕСТЬ
|
|||
15
Ёпрст
07.09.20
✎
18:31
|
(12) Гы.. значит кто-то шаловливыми ручками поправил поле closed в табличке _1sjourn
|
|||
16
LisaAlisa
07.09.20
✎
18:31
|
из-за этого при попытке провести этот документ, база отваливается с ошибкой SQL, что запись в таблице регистра неуникальна
|
|||
17
Ёпрст
07.09.20
✎
18:31
|
Проведи и распроведи до
|
|||
18
Ёпрст
07.09.20
✎
18:31
|
(16) ;)))))))))))))))))))))))))))))))))))))
|
|||
19
LisaAlisa
07.09.20
✎
18:32
|
что ДО?
|
|||
20
LisaAlisa
07.09.20
✎
18:33
|
Эта фигня возникает на некоторых документах, при проведении программа спрашивает "Провести задним числом или изменить время документа?". И при любом ответе возникает *опа
|
|||
21
LisaAlisa
07.09.20
✎
18:34
|
не, не при любом, а при "Изменить время документа"
|
|||
22
Ёпрст
07.09.20
✎
18:42
|
Короче, или через QA, или обработкой очисти записи во всех Ra*, там, где closed у документа = 0, потом, обработкой пересчитай итоги.
Профит |
|||
23
Ёпрст
07.09.20
✎
18:44
|
Запрос тип того будет :
Для ном = 1 по Метаданные.Регистр() Цикл Рег = Метаданные.Регистр(ном); Состояние("движуха регистра "+Рег.Идентификатор); Сообщить("движуха регистра "+Рег.Идентификатор,"i"); ТекстЗапроса =" |DELETE |FROM $Регистр."+Рег.Идентификатор+" |WHERE iddoc in (select Жур.iddoc from _1sjourn Жур where closed=0)"; Запрос.ВыполнитьСкалярный(ТекстЗапроса); КонецЦикла Если есть еще бух операции и проводки, то и там грохнуть |
|||
24
Ёпрст
07.09.20
✎
18:46
|
+23 для скуля так
Closed & 1 <> 1 |
|||
25
Ёпрст
07.09.20
✎
18:48
|
+и если че,
ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Запрос = СоздатьОбъект("ODBCRecordset"); |
|||
26
Ёпрст
07.09.20
✎
18:48
|
Занимайся
|
|||
27
LisaAlisa
08.09.20
✎
09:22
|
Очистить движения в SQL получается. Но не могу понять, ПОЧЕМУ так происходит и как этого избежать.
Перенесла ТА на месяц вперед, документы стали нормально проводиться и распроводиться, движения удаляются. Если же снова дата документа = ТА, то при оперативном проведении движения записываются, но документ в журнале выглядит как непроведенный и система его распознает как непроведенный. |
|||
28
Ёпрст
08.09.20
✎
09:26
|
(27) Ошибки же есть при этом при проведении ?
Всё проведение дока идёт в одной транзакции. Не должно быть там зависших движений при невозможности апдейта _1sjourn |
|||
29
Ёпрст
08.09.20
✎
09:27
|
И.. случем проведение не переписано на прямые запросы ?
|
|||
30
Ёпрст
08.09.20
✎
09:27
|
Там можно что угодно написать
|
|||
31
LisaAlisa
08.09.20
✎
09:30
|
нет, при проведении прямые запросы не исползовали
|
|||
32
LisaAlisa
08.09.20
✎
09:33
|
Еще такая тема.
Если у документа вручную изменить дату и провести - ОК. Но если у этого же документа попытаться программно изменить дату, то выводится ошибка: Ошибка обновления записи При изменении прочих реквизитов документ сохраняется успешно |
|||
33
LisaAlisa
08.09.20
✎
09:33
|
ВыбДокумент.Записать();
{E:\...\...}: Ошибка обновления записи |
|||
34
Mikeware
08.09.20
✎
09:34
|
(33) а что вместо многоточий?
|
|||
35
LisaAlisa
08.09.20
✎
09:35
|
адрес обработки
|
|||
36
Ёпрст
08.09.20
✎
09:35
|
(32) каким образом ты программно дату меняешь ? В 7.7 штатно можно менять дату только у НЕ проведенного документа
|
|||
37
LisaAlisa
08.09.20
✎
09:36
|
(36)
ВыбДокумент.СнятьПометкуУдаления(); ВыбДокумент.Провести(); ВыбДокумент.СделатьНеПроведенным(); Попытка ВыбДокумент.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Здесь документ записывается успешно Далее ВыбДокумент.ДатаДок = ДатаКорр; ВыбДокумент.Записать(); Здесь валится |
|||
38
ДенисЧ
08.09.20
✎
09:38
|
(37) Медленно (по слогам не буду, извини). Проведённому документу менять дату нельзя. Его распровести надо. Поменять дату. Потом провести.
|
|||
39
LisaAlisa
08.09.20
✎
09:39
|
ВыбДокумент.СделатьНеПроведенным();
так вот же он распроводится |
|||
40
ДенисЧ
08.09.20
✎
09:40
|
Не раскрыта тема, что происходит тут
"Здесь документ записывается успешно Далее" |
|||
41
Ёпрст
08.09.20
✎
09:40
|
(39)
а вот это нахрена ? >>> ВыбДокумент.Провести(); ВыбДокумент.СделатьНеПроведенным(); |
|||
42
ДенисЧ
08.09.20
✎
09:43
|
(41) Ну как тебе сказать... Для стимуляции роста волос на ладонях )))
|
|||
43
LisaAlisa
08.09.20
✎
09:45
|
это я уже издеваюсь над документом, проверяю)
в кач эксперимента мне нужно убедиться, что он проводится. Можно этого и не делать |
|||
44
LisaAlisa
08.09.20
✎
09:45
|
суть от этого не меняется. Документ НЕ записывается даже непроведенный
|
|||
45
Ёпрст
08.09.20
✎
09:46
|
(44) чей-та ? Какую ошибку выдаёт при записи?
|
|||
46
LisaAlisa
08.09.20
✎
09:48
|
(45) ВыбДокумент.Записать();
{E:\...\...}: Ошибка обновления записи |
|||
47
Mikeware
08.09.20
✎
09:53
|
(46) перед строкой 45- Сообщить(""+ВыбДок.Проведен() )
|
|||
48
LisaAlisa
08.09.20
✎
10:19
|
(47) сделала
0 ВыбДокумент.Записать(); {E:\...}: Ошибка обновления записи |
|||
49
LisaAlisa
08.09.20
✎
10:19
|
НЕ проведен документ
|
|||
50
Ёпрст
08.09.20
✎
10:22
|
(49) В транзакции всё это лепишь ?
Покажи скриншот ошибки |
|||
51
Ёпрст
08.09.20
✎
10:23
|
ВыбДокумент... случаем, не переменная формы у тебя ?
|
|||
52
LisaAlisa
08.09.20
✎
11:13
|
(50) https://postimg.cc/FfDPpVkP
(51) ВЫбДокумент получаю через НайтиДокумент() ВыбДокумент.НайтиДокумент(тз.Ссылка); |
|||
53
LisaAlisa
08.09.20
✎
11:13
|
тз - таблица собирается прямым запросом
|
|||
54
Ёпрст
08.09.20
✎
11:22
|
(53) твой НайтиДокумент(...) что возвращает хоть ? 1 ?
|
|||
55
Ёпрст
08.09.20
✎
11:23
|
А так, проверь базу на ошибки.
Что iddoc в _1sjourn соответствует шапке дока и тч дока.. |
|||
56
Ёпрст
08.09.20
✎
11:24
|
и.. датуДок гришь меняешь, на пустую ? :)
|
|||
57
Ёпрст
08.09.20
✎
11:25
|
И проверь, нет ли пустых дат в _1sjourn. это те которые в скуле ..17530101 которая
|
|||
58
Ёпрст
08.09.20
✎
11:26
|
+ проверить мд на битость и соответствует ли он словарику и базе
|
|||
59
Ёпрст
08.09.20
✎
11:26
|
В пофигураторе, полный синтаксис контроль проходит хоть ?
|
|||
60
uno-group
08.09.20
✎
11:37
|
А где ты это делаешь. Это случаем не открытый в текущий момент документ выбдок?
|
|||
61
uno-group
08.09.20
✎
11:40
|
И ранее ты его не заблокировала случайно. В УРБД не помню, вроде был флаг на изменение документа только в в центре или месте создания.
|
|||
62
LisaAlisa
08.09.20
✎
11:42
|
(60) нет, не открытый, не заблокирован никем
|
|||
63
LisaAlisa
08.09.20
✎
11:43
|
(54) 1
(56) нет, проверяла в отладчике |
|||
64
LisaAlisa
08.09.20
✎
11:44
|
(56) ДатуДок меняю на значение реквизита этого же документа, реквизит с типом Дата, заполнен
|
|||
65
uno-group
08.09.20
✎
11:49
|
(62) Сообщить(ВыбДокумент.Блокировка()) Перед записать что сообщает. Запусти эту обработку в монопольном режиме.
|
|||
66
Mikeware
08.09.20
✎
11:51
|
(61) нет такого в урбд
(0) выложи куда-нибудь свою обработку на посмотреть |
|||
67
uno-group
08.09.20
✎
11:52
|
И что в процедуре ПриЗаписи() в документе есть, может там собака зарыта?
|
|||
68
Mikeware
08.09.20
✎
11:54
|
(67) в клюшках ПриЗаписи отрабатывает только при интерактивной записи.
ну, или в перехватчике |
|||
69
Ёпрст
08.09.20
✎
12:06
|
И еще, эти документы, хоть в журнае открываются ? Форма дока показывается ?
|
|||
70
uno-group
08.09.20
✎
12:16
|
На фотке 5 строками выше как по мне два удаленных документа с точно такими же номерами. контроль уникальность номеров отключена что ли или база глюкнула
|
|||
71
LisaAlisa
08.09.20
✎
12:36
|
(70) контроль уникальности отключен
|
|||
72
LisaAlisa
08.09.20
✎
12:36
|
(69) открываются и даже проводятся
|
|||
73
LisaAlisa
08.09.20
✎
12:36
|
(67) интерактивно документ записываться
|
|||
74
HawkEye
08.09.20
✎
12:36
|
чё тут? опять попытки угадать ошибку в не показаном коде? )))
(0) движения у не проведенного документа - очищаются, все остальное - это твоя интерпретация... |
|||
75
LisaAlisa
08.09.20
✎
12:39
|
||||
76
LisaAlisa
08.09.20
✎
12:40
|
(74) я уже делала скрин, где показала, что НЕТ. Очищаем движения в итоге только напрямую в SQL
|
|||
77
HawkEye
08.09.20
✎
12:42
|
(76) "по ПКМ Движения недоступны" )))
|
|||
78
LisaAlisa
08.09.20
✎
12:58
|
(77) а в главном меню через Действия/Движения документа?
|
|||
79
Mikeware
08.09.20
✎
13:06
|
Анахрена такие телодвижения:
ВыбДокумент.СделатьНеПроведенным(); Попытка ВыбДокумент.Записать(); и ВыбДокумент.Удалить(0); ВыбДокумент.Записать(); ? |
|||
80
Ёпрст
08.09.20
✎
13:09
|
(78) оно аналогично ПКМ-Движения документа.
Если только там не своя обработка для просмотра движений регистра И там тоже будет залочено, если документ не проведен |
|||
81
HawkEye
08.09.20
✎
13:10
|
(78) кто же тебя знает, на каком ты документе споцизионирована в этот момент...
в клюшках все до ужаса просто... есть ОбработкаПроведения, есть ОбработкаУдаленияПроведения пока нет текстов этих процедур, весь разговор - безсмысленен... |
|||
82
LisaAlisa
08.09.20
✎
13:16
|
(79) так я разными способами пыталась предварительно очистить движения. Это уже изврат, согласна, но это эксперименты. Что с ними, что без них не рабоатет
|
|||
83
Ёпрст
08.09.20
✎
13:17
|
на вот, тест на вшивость, а то тебе веры нет
В ТЗ, есть че ? |
|||
84
Mikeware
08.09.20
✎
13:54
|
(83) не было бы - в цикл бы не зашло
|
|||
85
Ёпрст
08.09.20
✎
14:29
|
(84) ... ээ..в какой цикл ? В ёё коде ?
|
|||
86
Ёпрст
08.09.20
✎
14:29
|
пусть картинку покажет сперва :)
|
|||
87
Mikeware
08.09.20
✎
14:40
|
(85) ага
|
|||
88
Ёпрст
08.09.20
✎
14:42
|
(87) ну..она нигде не написала что туда заходит и сообщает что есть движуха :)
|
|||
89
Mikeware
08.09.20
✎
14:45
|
(88) тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
ВыбДокумент = СоздатьОбъект("Документ"); тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл ВыбДокумент.НайтиДокумент(тз.Ссылка); ВыбДокумент.СнятьПометкуУдаления(); ВыбДокумент.Провести(); ВыбДокумент.СделатьНеПроведенным(); Попытка ВыбДокумент.Записать(); Исключение |
|||
90
trad
08.09.20
✎
14:48
|
(75) к сабжу не имеет отношения, но тут
Рег.ВыбратьДвиженияДокумента(ВыбДокумент); надо так Рег.ВыбратьДвиженияДокумента(ВыбДокумент.ТекущийДокумент()); ну или Рег.ВыбратьДвиженияДокумента(тз.Ссылка); |
|||
91
LisaAlisa
08.09.20
✎
14:51
|
Пока не могу предоставить пример, потому что вчера вычистили все такие движения:
(22) Короче, или через QA, или обработкой очисти записи во всех Ra*, там, где closed у документа = 0 новых косячных еще не сгенерировала, т.к. после переноса точки актуальности на более позднюю дату, косяков с движениями не стало |
|||
92
Злопчинский
08.09.20
✎
15:01
|
трэш и угар какой-то в обработке.
еще и прямой запрос прилепили непонятно зачем, чорным можно обойтись. . ну и для начала - ввиду того что мудрячат что-то с прямыми запрсоами - проверить есть ли у непроведенных доков движения. почитстить их для непроведенных. а потом делать все по порядку с ДатаКорр и ДатаДок. . главное - не митуситься... |
|||
93
trad
08.09.20
✎
15:06
|
(92) зачем писать чорный, если всегда можно прямой - это же проще
|
|||
94
Злопчинский
08.09.20
✎
15:10
|
(93) ну, мы уже видим что получилось при "проще".. видимо такими "проще" и покурочили базу вусмерть...
|
|||
95
trad
08.09.20
✎
15:12
|
(94) нет, не это причина проблемы
|
|||
96
trad
08.09.20
✎
15:13
|
(95) да, даже если бы и прямой запрос был причиной, то это повод разобраться, а не отказываться от прямых (из соображений кабы чего не вышло)
|
|||
97
Mikeware
08.09.20
✎
15:21
|
(94) ну, во-первых, сдуру можно и шарик от подшипника разбить...
во-вторых, если используешь нормальные запросы - пишешь сразу на них, не задумываясь об извращенных черных. И плевать, что это не освящено БГНом. в третьих, прямой запрос к проблемам никаким боком. |
|||
98
Злопчинский
08.09.20
✎
15:24
|
ВыбДокумент.Записать();
{E:\...\...}: Ошибка обновления записи - вот мне мутно это все. ни разу такого не встречал... |
|||
99
HawkEye
08.09.20
✎
15:26
|
(90) это 7.7, какая .Ссылка )))
|
|||
100
Mikeware
08.09.20
✎
15:27
|
(99) ну называет она ид дока ссылкой.
я вон и в клюшках писал "регистратор" и "ссылка" |
|||
101
trad
08.09.20
✎
15:27
|
(99) а что в 7.7 колонке ТЗ запрещено так называться?
|
|||
102
Mikeware
08.09.20
✎
15:29
|
(101) греховно так зваться в клюшках православных...
|
|||
103
trad
08.09.20
✎
15:29
|
(100) ну я тоже такие поля Ссылка называю, потому как это и есть ссылка
Даже унутре ее этот тип данных имеет в названии Ref |
|||
104
HawkEye
08.09.20
✎
15:35
|
(101) не запрещено, но не кошерно ))
|
|||
105
trad
08.09.20
✎
15:38
|
(102) (104) почему?
|
|||
106
Mikeware
08.09.20
✎
15:39
|
(105) /sarcasm
|
|||
107
trad
08.09.20
✎
15:49
|
(103) Мое утверждение по поводу Ref будем считать ложным, память в этом вопросе подверглась эррозии.
Попробовал вспомнить - фиг там |
|||
108
Ёпрст
08.09.20
✎
15:58
|
(91) та вперёд не надо толкать. Так вы работаете всегда задним числом, и если используете штатное проведение. это очень замедляет работу, ибо везде есть рассчет итогов на дату дока, в отличие от проведения в потоке, т.е тогда, когда док та сам толкает вперёд
|
|||
109
Злопчинский
08.09.20
✎
16:56
|
Короче. кто косячит - у того и косячит.
|
|||
110
LisaAlisa
10.09.20
✎
14:56
|
https://postimg.cc/sGS6yfCQ
вот результат выполнения кода Процедура Сформировать() рс = СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |select * |from $Регистр.Отгрузка (nolock) |where iddoc in (select Жур.iddoc from _1sjourn Жур where Жур.closed&1 <> 1 and (Cast(Left(Жур.DATE_TIME_IDDOC, 8) AS datetime) >= :Дата1) | AND (Cast(Left(Жур.DATE_TIME_IDDOC, 8) AS datetime) <= :Дата2)) |"; рс.УстановитьТекстовыйПараметр("Дата1", Дата1); рс.УстановитьТекстовыйПараметр("Дата2", Дата2); тз = рс.ВыполнитьИнструкцию(ТекстЗапроса); тз.ВыбратьСтроку(); КонецПроцедуры |
|||
111
Mikeware
10.09.20
✎
14:59
|
(110) документы проведены не по упручету?
|
|||
112
LisaAlisa
10.09.20
✎
15:00
|
сейчас документы вообще распроведены
|
|||
113
Mikeware
10.09.20
✎
15:02
|
select Жур.iddoc,
Жур.closed from _1sjourn Жур where Жур.closed&1 <> 1 and Жур.DATE_TIME_IDDOC>= :Дата1 AND Жур.DATE_TIME_IDDOC<= :Дата2 что даст? |
|||
114
Mikeware
10.09.20
✎
15:10
|
(112) вам вообще вашу проблему решить надо, или как?
|
|||
115
LisaAlisa
10.09.20
✎
15:12
|
(113) выдает 4 строки (4 документа)
|
|||
116
Mikeware
10.09.20
✎
15:14
|
(115) я ж справшивал не "сколько", а что?
что в поле проведения? что в поле "количество движений", стоит ли флаг наличия движений по вашему регистру "Отгрузка"? |
|||
117
LisaAlisa
10.09.20
✎
15:14
|
||||
118
Mikeware
10.09.20
✎
15:15
|
(117) докуметы проведены по бухучету
|
|||
119
Mikeware
10.09.20
✎
15:16
|
ACTCNT?
RF*** (соответсвующий регистру)? |
|||
120
LisaAlisa
10.09.20
✎
15:18
|
(119) там для всех строк стоит 0
|
|||
121
Mikeware
10.09.20
✎
15:22
|
(120) чем с проведения снимают? и почему стоят проведенными по бухучету?
|
|||
122
Ёпрст
10.09.20
✎
15:23
|
closed=4 - документ имеет операцию, если память не изменяет
|
|||
123
Ёпрст
10.09.20
✎
15:24
|
Кто -то видать балуется прямыми запросами в части апдейта _1sjourn
|
|||
124
Mikeware
10.09.20
✎
15:25
|
(122) 1-опер, 2-расчет,4-бух, 8-периодика, операция - или 16, или 32.
|
|||
125
LisaAlisa
10.09.20
✎
15:25
|
(121) просто пытаются провести документ. Программа вываливается с ошибкой, что не может сделать запись в регистр с неуникальным ключом. При повторном запуске документы в журнале выглядят как непроведенные, а по факту есть движения в регистре
|
|||
126
Ёпрст
10.09.20
✎
15:27
|
(124)5 - док имеет проводки
|
|||
127
Ёпрст
10.09.20
✎
15:28
|
(125) т.е аварийное завершение 1с при этом ?
|
|||
128
Ёпрст
10.09.20
✎
15:29
|
||||
129
Mikeware
10.09.20
✎
15:29
|
(126) 5 - это 4+1.
|
|||
130
trad
10.09.20
✎
15:29
|
(124) это про аппкод, а не про крозет
|
|||
131
trad
10.09.20
✎
15:30
|
(130) *клозед
|
|||
132
Mikeware
10.09.20
✎
15:30
|
(123) или пишут сразу в регистр, не устанавливая флаг. в этом случае при проведении она пытается инсертить, ну и подает
|
|||
133
Mikeware
10.09.20
✎
15:30
|
(131) так они вроде одинаковы
|
|||
134
trad
10.09.20
✎
15:31
|
(125) То что сейчас вываливается, это уже следствие нарушения согласованности данных.
С этим бороться не надо Нужно устранить рассогласование |
|||
135
trad
10.09.20
✎
15:33
|
(133) не уверен
|
|||
136
LisaAlisa
10.09.20
✎
15:36
|
(127) Да
https://postimg.cc/Fk0BQyMX |
|||
137
trad
10.09.20
✎
15:39
|
(136) либо closed установить, либо движения удалить. Все, ничего больше делать не надо
В начале вроде писали об этом |
|||
138
Mikeware
10.09.20
✎
15:40
|
(135) ну по крайней сере первые три. хотя могу и ошибаться - а под рукой нет клюшек чтоб проверить
|
|||
139
Ёпрст
10.09.20
✎
15:40
|
(136) ясно, ну.. инструмент для обнаружения в (128)
+ желательно проверить, 1. что мд соответствует словарю и и таблицам в скуле 2. что мд не битый |
|||
140
LisaAlisa
10.09.20
✎
15:40
|
(137) так и делаем. Очищаем движения в SQL
но как только документ создается датой = дате актуальности итогов, возникают вот такие ошибки снова |
|||
141
trad
10.09.20
✎
15:40
|
(137) то и другое можно сделать, имхо, только напрямую
|
|||
142
trad
10.09.20
✎
15:41
|
(140) ааа, вот этот артефакт я упустил
|
|||
143
Ёпрст
10.09.20
✎
15:42
|
(140) да ё..
скачай обработку еще для пересчета итогов прямым запросом, можешь и грохнуть все записи в rg регистра перед этим, тупо truncate table rg**** |
|||
144
Ёпрст
10.09.20
✎
15:43
|
их чтук 5 разных модификаций валяется
|
|||
145
Franchiser
гуру
10.09.20
✎
18:16
|
Может быть кроме удаления движения нужно еще что-то делать? Например, в таблице Журнала менять флаг RF?
|
|||
146
Ёпрст
10.09.20
✎
18:23
|
(145) он влияет только на показ галок в меню просмотра движений
|
|||
147
LisaAlisa
10.09.20
✎
18:27
|
Ошибка появилась после того, как в базе стали создавать документы обработкой.
Сделали копию базы, грузила документы этой же обработкой, но без использования функции, создающей гуиды. Может причина быть в этом? Функция глСоздатьИдентификатор() Экспорт Если ЗагрузитьВнешнююКомпоненту("V7Plus.dll") <> 1 Тогда Сообщить("Ошибка загрузки компоненты V7+"); Возврат ""; КонецЕсли; НТТРСистИнформ = СоздатьОбъект("AddIn.V7SysInfo"); Возврат СокрЛП(НТТРСистИнформ.СоздатьGUID()); КонецФункции // глСоздатьИдентификатор() |
|||
148
LisaAlisa
10.09.20
✎
18:27
|
(147) в копии базы не появляется ошибка с движениями.
|
|||
149
ДенисЧ
10.09.20
✎
18:29
|
(148) А теперь в копии используй эту функцию. Что будет?
|
|||
150
Ёпрст
10.09.20
✎
19:28
|
(149) ну выложи это изделие на поглядеть.
Зы и куда этот гуид пихаете хоть? |
|||
151
LisaAlisa
10.09.20
✎
20:30
|
(150) пишем в текстовый реквизит
обработку выложила https://yadi.sk/d/WQPwzSmYvgpJbw |
|||
152
Злопчинский
10.09.20
✎
23:08
|
поток мутного сознания...
|
|||
153
Злопчинский
10.09.20
✎
23:09
|
1. ПЕРЕСТАТЬ МИТУСИТЬСЯ.
2. ДЕЛАТЬ ВСЕ МЕДЛЕННО И ВДУМЧИВО. ШАГ ЗА ШАГОМ. всё!!!!! |
|||
154
Cthulhu
11.09.20
✎
03:07
|
1) 1с 77 не поддерживает вложенных транзакций
2) выполнена отмена проведения в транзакции - при этом возникла ошибка. |
|||
155
Mikeware
11.09.20
✎
08:32
|
(151) криминала не вижу.
Ну, если есть подозрение на генерацию гуида V7+ом - попробуйте генерить его 1с++ |
|||
156
tgu82
11.09.20
✎
08:53
|
(155) Сколько лет работаю с 1С - и ни разу не пользовался созданием гуидов. Хотя через 36-ричную что-то было но не гуид. Для чего собственно он нужен если за столько лет как-то не пригодилось
|
|||
157
trad
11.09.20
✎
09:01
|
(151) в ветке условия флСоздатьИСО = 1 иначе
при передаче в ЗаписатьОбъект(Флаг,ДокументСоздаваемый); в ДокументСоздаваемый нет нового документа наверно туда хотели передать Объект |
|||
158
LisaAlisa
11.09.20
✎
09:13
|
(157) Объект - это документ, на основании которого заполняется ДокументСоздаваемый
|
|||
159
trad
11.09.20
✎
09:28
|
(158) по коду явно видно, что это не так
я говорю про ветку флСоздатьИСО = 1 иначе |
|||
160
trad
11.09.20
✎
09:31
|
(147) Если проблема не повторяется в копии, то, возможно, дело в состоянии базы (или сервера), но маловероятно, что в создании гуида.
|
|||
161
ДенисЧ
11.09.20
✎
09:33
|
(156) А я пользовался. Когда рисовал свою РИБ ))) Тогда 1с++ ещё не было
|
|||
162
Ёпрст
11.09.20
✎
09:48
|
(159) дас ис так.. по-коду там Объект должен быть
И да, в коде ничего такого нет, что ломало бы базу в призаписи. И создание гуида тут не при чем |
|||
163
Ёпрст
11.09.20
✎
09:50
|
(158)
в пофигураторе, если выполнить полный синтаксис контроль, проходит хоть ? |
|||
164
tgu82
11.09.20
✎
09:50
|
(161) А я пользовался 26-ричным идентификатором для примерно тех же целей. У справочника он кажется длиннее а у документа короче по длине
|
|||
165
LisaAlisa
11.09.20
✎
10:00
|
(163) Синтаксических ошибок не обнаружено!
|
|||
166
Ёпрст
11.09.20
✎
10:05
|
(165) ну тогда см. (128)
+ на копии (надеюсь, е средствами скуля делаешь ?) пересоздай словарик, и сравни словарик с рабочей базой. Для этого в пофигураторе сделай конфигурация - загрузить измененную конфигурацию и укажи на мд из каталога базы. После сохранения сравни словарики |
|||
167
Mikeware
11.09.20
✎
10:05
|
(164) 26-ричный идентификатор?
|
|||
168
tgu82
11.09.20
✎
10:07
|
(167) 36-ричный
|
|||
169
LisaAlisa
11.09.20
✎
10:13
|
(166) копия и рабочая уже отличаются тем, что в рабочей введен новый реквизит типа Дата в РасходнуюНакладную. При отмене проведения это РН не удаляются движения в рабочей. В копии такой ошибки нет
|
|||
170
Ёпрст
11.09.20
✎
10:24
|
(169) да ё.. копия делается за 5 минут
|
|||
171
Ёпрст
11.09.20
✎
10:24
|
средствами скуля
|
|||
172
LisaAlisa
11.09.20
✎
10:26
|
(171) вот эта процедура выполняется часов 12:
Для этого в пофигураторе сделай конфигурация - загрузить измененную конфигурацию и укажи на мд из каталога базы. После сохранения сравни словарики |
|||
173
LisaAlisa
11.09.20
✎
10:26
|
конкретно - сохранение, т.к. запустится реструктуризация
|
|||
174
Mikeware
11.09.20
✎
10:34
|
(172) копию сделай. копию!
|
|||
175
LisaAlisa
11.09.20
✎
10:46
|
(128) Проверка: rf = 0 и есть 1 или > движений ra
Ошибки 3 = Для регистра = Отгрузка найдено ошибок = 3 Сформировать 3 Отгрузка cast( rf1159 as int ) Ном строки = 1 iddoc = '1GRZU8 ' rf = cast( rf1159 as int ) док = Отгрузка товаров, продукции 12163467 (30.09.20) Ном строки = 2 iddoc = '1GRZVK ' rf = cast( rf1159 as int ) док = Отгрузка товаров, продукции ШАТУ-00046 (30.09.20) Ном строки = 3 iddoc = '1GRZVM ' rf = cast( rf1159 as int ) док = Отгрузка товаров, продукции ШАТУ-00050 (30.09.20) |
|||
176
Ёпрст
11.09.20
✎
11:06
|
(172) не вопрос. Разверни пустую базу из мд, создай словарик и сравни
|
|||
177
Cthulhu
11.09.20
✎
11:37
|
(161): накуа??? без 1с++ вполне можно было штатно получать ID объектов данных (и получать объекты данных по их ID).
(164),(167): 24 вообще-то (с не свернутыми в 36-ричную строку id вида и id объекта): Тип (1 символ) + id Вида (10 цифр) + id Объекта (10 цифр) + КодИБ (3 символа). я вообще удивлялся - зачем в мод было огород с ключами городить - при том, что "все уже украли до нас"... и - да, свернутые в 36-ричные строки id вида и id объекта - прямо прописаны в ключевые поля таблиц базы данных... |
|||
178
ДенисЧ
11.09.20
✎
11:38
|
(177) Чтобы понять ответ на ТКВ -- это было в 2004м году. Тогда и интернета у меня практически не было (по модему, дома и на 19600). И информации такой в нём (интернете) тоже практически не было.
|
|||
179
Franchiser
гуру
11.09.20
✎
18:25
|
В скульной базе не работает изменение времени документа у непроведенных документов через контекстное меню, в то время как в файловой работает. Почему такое может быть?
|
|||
180
Franchiser
гуру
11.09.20
✎
23:26
|
(176) выявил несоотвествие поля Date_time_iddoc в _1SJourn полям таблиц: _System, _1SOper (но так вроде и раньше было), _1SCRDOC.
Что еще может мешать изменению времени? |
|||
181
Ёпрст
12.09.20
✎
00:15
|
(180) не надо массово записывать доки со временем 23:59:59, в журнале при этом будет одна позиция дока а в операциях и проводках другая
|
|||
182
Ёпрст
12.09.20
✎
00:30
|
(179) хз, не встречал такого, вроде норм время ставится и там и там у не проведенного дока
|
|||
183
Cthulhu
12.09.20
✎
02:29
|
(179): кстати - возможно именно из-за наличия движений, оставшихся при кривой отмене проведения. там вполне возможно в движок зашита молчаливая проверка (чтобы в результате не получилось гораздо большего искажения данных)...
|
|||
184
Franchiser
гуру
12.09.20
✎
09:52
|
(183) движения в регистрах ra адалили, в system попал также документ с кривыми движениями, там тоже поправил, 1srdoc откорректировал child_date_time. Где то ещё косяки есть а таблицах, либо в других периодах.
|
|||
185
Franchiser
гуру
12.09.20
✎
11:12
|
Нашел такую тему: "Данная обработка 1С 7.7 помогает, когда кто-то установил точку актуальности на конец текущего дня (провел документ концом дня) и документы перестали проводиться. Теперь, чтобы нормализовать ситуацию, время документов нужно изменить и документы перепровести, затем перенести точку актуальности на последний проведенный документ."
http://catalog.mista.ru/public/1132089/ Может у меня проблема из этой области? |
|||
186
Ёпрст
12.09.20
✎
16:33
|
(184) ну дык (128) проверяй...
|
|||
187
Franchiser
гуру
12.09.20
✎
16:40
|
(186) пробовал уже. Пересобрал мдшник через gcomp, подсунул его в тестовой базе.
Вообщем сейчас такая проблема : при изменении времени во всех таблицах время меняется время меняется кроме 1sjourn. Начал смотреть заполненность полей: у новых документов какое то новое заполнение поле dnprefix. Почему он могло измениться? |
|||
188
Franchiser
гуру
12.09.20
✎
16:41
|
Раньше поле dnprefix было 1302020, стало 1302021.
Обработка из 128 очень долго работает и там нет фильтра на период... |
|||
189
Ёпрст
12.09.20
✎
16:53
|
(188) :)
поправить её как 2 пальца жешь, под любой период |
|||
190
Franchiser
гуру
12.09.20
✎
16:53
|
Понял : в dnprefx год стоит
|
|||
191
Ёпрст
12.09.20
✎
16:54
|
(188)
DNPREFIX Префикс номера документа. Тип - Строка(18). Для документов, у которых код числовой, это поле равно десятичному ID вида документа. Если нумерация в пределах периода - то также хранится и период в виде ГГГГММДД (например 2006 для нумерации в пределах года). http://www.script-coding.com/v77tables.html#1.2.4. |
|||
192
Franchiser
гуру
12.09.20
✎
16:55
|
(189) я правлю по отдельным документам date_time затем пробую в 1с поменять время и снова время в 1sjourn остаётся без изменений, а в 1soper , _1scrdoc время меняется.
|
|||
193
Franchiser
гуру
12.09.20
✎
17:30
|
В профайлере нет также установки нового date_time_iddoс, хотя данные в журнале меняются:
exec sp_executesql N'Update _1SJOURN set IDJOURNAL=@P1, IDDOCDEF=@P2, APPCODE=@P3, DNPREFIX=@P4, DOCNO=@P5, CLOSED=@P6, ISMARK=@P7, ACTCNT=@P8, VERSTAMP=@P9, RF1159=@P10, RF1287=@P11, RF1296=@P12, SP697=@P13, SP696=@P14, SP425=@P15, SP1123=@P16 where IDDOC=@P17 and DATE_TIME_IDDOC=@P18 and SP652=@P19',N'@P1 int,@P2 int,@P3 smallint,@P4 varchar(18),@P5 varchar(20),@P6 tinyint,@P7 bit,@P8 int,@P9 int,@P10 bit,@P11 bit,@P12 bit,@P13 varchar(9),@P14 varchar(9),@P15 varchar(45),@P16 numeric(1,0),@P17 varchar(9),@P18 varchar(23),@P19 varchar(13)',174,130,21,' 1302021 ','00000000000000000004',4,0,0,3,0,0,0,' K ',' QI ',' ',0,'1FOVYH ','202112313M7I001FOVYH ',' 0 0 ' |
|||
194
Franchiser
гуру
12.09.20
✎
17:47
|
Вот так выглядит изменение времени в восстановленной копии:
exec sp_executesql N'Update _1SJOURN set IDJOURNAL=@P1, IDDOC=@P2, IDDOCDEF=@P3, APPCODE=@P4, DATE_TIME_IDDOC=@P5, DNPREFIX=@P6, DOCNO=@P7, CLOSED=@P8, ISMARK=@P9, ACTCNT=@P10, VERSTAMP=@P11, RF1159=@P12, RF1287=@P13, RF1296=@P14, SP697=@P15, SP696=@P16, SP652=@P17, SP425=@P18, SP1123=@P19 where ROW_ID=@P20',N'@P1 int,@P2 varchar(9),@P3 int,@P4 smallint,@P5 varchar(23),@P6 varchar(18),@P7 varchar(20),@P8 tinyint,@P9 bit,@P10 int,@P11 int,@P12 bit,@P13 bit,@P14 bit,@P15 varchar(9),@P16 varchar(9),@P17 varchar(13),@P18 varchar(45),@P19 numeric(1,0),@P20 int',174,'1GRZU7 ',130,21,'2020090776AWSW1GRZU7 ',' 1302020 ','УТ-157 ',4,0,0,5,0,0,0,' KC6M ',' 194 ',' 3M1BF2WJ ',' ',0,64228314 |
|||
195
Franchiser
гуру
12.09.20
✎
18:12
|
Отличие как видно в том что не устанавливается, IDDOC, Date_Time_IDDOC. И разная секция where: раньше при update было условие на rowid
|
|||
196
Ёпрст
12.09.20
✎
18:58
|
(193) Вроде время нормальное, 06:04:30
|
|||
197
Ёпрст
12.09.20
✎
18:59
|
Т.е ты для непроведенного дока выбираешь в меню установить новое время и оно не алё ?
|
|||
198
Ёпрст
12.09.20
✎
18:59
|
и "в восстановленной копии".. старая копия этой же базы ?
|
|||
199
Franchiser
гуру
12.09.20
✎
19:09
|
В восстановленной 3х дневной копии время устанавливается, а в текущей базе не устанавливается.
Скрипты из профайлера привел |
|||
200
Ёпрст
12.09.20
✎
19:23
|
(199) Для всех видов дока или конкретного ? покажи select * from _1sjourn where iddoc = ...для этого дока
|
|||
201
Ёпрст
12.09.20
✎
19:34
|
И.. если штатненько, через
Док = СоздатьОбъект.. Док.НайтиДокумент(выбДок) Док.АвтоВремяОтключить() Док.УстановитьВремя .. устанавливается ? |
|||
202
Franchiser
гуру
12.09.20
✎
19:40
|
(200) я могу скрин привести из разных таблиц, трэйс с утра делал потом у там уже может быть другое время
|
|||
203
Ёпрст
12.09.20
✎
19:40
|
И ты документ операция правишь ? судя по апкоде 21
|
|||
204
Franchiser
гуру
12.09.20
✎
19:40
|
(200) в базе только 1 вид документа
|
|||
205
Franchiser
гуру
12.09.20
✎
19:41
|
(23) документ отгрузка. Это самописка.
|
|||
206
Ёпрст
12.09.20
✎
19:47
|
(205) документ с какими галками ? бухня+упр ?
|
|||
207
Ёпрст
12.09.20
✎
19:48
|
в сервис-параметры ничего не менял ? там тоже есть галки для времени..для бух учета точно и для опер учета для новых доков
|
|||
208
Franchiser
гуру
12.09.20
✎
19:52
|
Не параметры одинаковые в обеих базах
|
|||
209
Franchiser
гуру
12.09.20
✎
19:54
|
Документ с галочками бух+упр
|
|||
210
Franchiser
гуру
12.09.20
✎
19:58
|
Штатно время тоже не устанавливается
|
|||
211
Franchiser
гуру
12.09.20
✎
20:00
|
В конце нужно записать()?
Если с Записать, то ошибка "ошибка обновления записи". |
|||
212
Franchiser
гуру
12.09.20
✎
20:07
|
В резервной копии время меняется, в текущей базе "ошибка обновления записи"
|
|||
213
Ёпрст
12.09.20
✎
20:37
|
(211) для любых доков ?
|
|||
214
Ёпрст
12.09.20
✎
20:37
|
в _1soper поменял время ?
|
|||
215
Ёпрст
12.09.20
✎
20:37
|
в свойствах дока стоит что.. создавать операуию вместе с доком ?
|
|||
216
Franchiser
гуру
12.09.20
✎
20:39
|
(214) я вообще беру очень старые документы (разные) и на них проверяю
|
|||
217
Franchiser
гуру
12.09.20
✎
20:41
|
(215) стоит создавать операцию = всегда
|
|||
218
Ёпрст
12.09.20
✎
20:43
|
||||
219
Ёпрст
12.09.20
✎
20:44
|
И это проапдейть табличку _1soper на предмент не совпадения date_time с 1s_journ
|
|||
220
Ёпрст
12.09.20
✎
20:45
|
Короче, нужно во всех табличках всё засинхрить с табличкой журнала в части date_time_iddoc, для начала
|
|||
221
Franchiser
гуру
12.09.20
✎
20:46
|
(220) там полмиллиона рассинхрон с 1Soper
|
|||
222
Ёпрст
12.09.20
✎
20:48
|
||||
223
Ёпрст
12.09.20
✎
20:48
|
(221) ну дык.. исправляй :)
|
|||
224
Ёпрст
12.09.20
✎
20:49
|
На копии, сперва..
|
|||
225
Ёпрст
12.09.20
✎
20:49
|
тренируйся
|
|||
226
Ёпрст
12.09.20
✎
20:51
|
Основной [:]||||||[:]
это кучка документов с временем 23:59:59.. где позиция дока в журнале и операций будет отличаться для каждого нового дока "в конец дня"..в операциях она "продолжается", а в журнале нет.. |
|||
227
Ёпрст
12.09.20
✎
20:52
|
вот и рассинхрон
|
|||
228
Franchiser
гуру
12.09.20
✎
20:53
|
Мне казалось что если в резервной копии такие же расхождения с 1soper то значит не в этом дело. Ещё кажется я видел, что date time отличается не только по времени но и по дате.
|
|||
229
Ёпрст
12.09.20
✎
20:55
|
(228) по дате.. был прикол, что 1с-ина казала, типа время 24 часа 01 минута..или че-то в этом роде
|
|||
230
Ёпрст
12.09.20
✎
20:55
|
хороче, какой-то явный мусор
|
|||
231
Ёпрст
12.09.20
✎
20:56
|
апдейти таблички, не забывая про _1scrdoc
|
|||
232
Ёпрст
12.09.20
✎
20:56
|
и про 1sentry
|
|||
233
Ёпрст
12.09.20
✎
20:57
|
ф табличках регистров такого нет, вся шняга, только в бухне.
|
|||
234
Ёпрст
12.09.20
✎
21:00
|
+ заодно проверить, нет ли пустых дат в журнале и в 1сопер, те которые 01.01.1753
|
|||
235
Franchiser
гуру
12.09.20
✎
21:14
|
1sentry пустая
|
|||
236
Ёпрст
12.09.20
✎
21:24
|
(235) как это ? проводок нету что ле ?
|
|||
237
Ёпрст
12.09.20
✎
21:25
|
если проводок нет, то отключи вообще бух учет у документа и прибей план счетов, если есть
|
|||
238
Franchiser
гуру
12.09.20
✎
22:24
|
(237) если убрать бу то что будет с actcnt в существующих записях журнала?
|
|||
239
Ёпрст
12.09.20
✎
22:40
|
(238) да на него вообще плевать с высокой колокольни :)
|
|||
240
Ёпрст
12.09.20
✎
22:41
|
и.. он же не учитывает движения по бу.
|
|||
241
Ёпрст
12.09.20
✎
22:41
|
так что, усё хорошо будет
|
|||
242
Ёпрст
12.09.20
✎
22:42
|
короче, это поле никак не изменится
|
|||
243
Ёпрст
12.09.20
✎
22:42
|
а вот апкоде можешь сам проапдейтить, и поставить 1 туда.
|
|||
244
Franchiser
гуру
12.09.20
✎
22:43
|
(220) исправил во всех таблицах date_time_iddoc. Проблема осталась.
|
|||
245
Franchiser
гуру
12.09.20
✎
22:49
|
(234) как искать пустые даты в журнале и 1soper? Дата же содержится в строке datetimeiddoc
|
|||
246
Ёпрст
12.09.20
✎
22:56
|
where date_time_iddoc like '17530101%'
|
|||
247
Ёпрст
12.09.20
✎
22:56
|
И грохни бух учет, если не используешь, не будет таблички 1сопер (план счетов еще удали)
|
|||
248
Ёпрст
12.09.20
✎
22:57
|
И..база большая ? выгрузка есть на посмотреть ?
|
|||
249
Ёпрст
12.09.20
✎
23:01
|
И..точная ошибка какая, на счет обновления записи ?
|
|||
250
Ёпрст
12.09.20
✎
23:02
|
Обновление какое было перед этим ?
|
|||
251
Ёпрст
12.09.20
✎
23:02
|
что в архиве работает ?
|
|||
252
Franchiser
гуру
12.09.20
✎
23:09
|
(248) база очень большая, выгрузку не могу дать
|
|||
253
Franchiser
гуру
12.09.20
✎
23:09
|
В архиве работает
|
|||
254
Franchiser
гуру
12.09.20
✎
23:12
|
(249) Док.Записать();
{E:\тЕСТ ВРЕМЯ.ERT(9)}: Ошибка обновления записи |
|||
255
Franchiser
гуру
12.09.20
✎
23:12
|
(250) в обновлении добавили реквизит типа дата в таблицу документов
|
|||
256
Franchiser
гуру
12.09.20
✎
23:14
|
То что читал по поводу этой ошибки, она обычно возникала у других при записи констант, но у меня константы нигде не пишутся.
|
|||
257
Franchiser
гуру
12.09.20
✎
23:21
|
Проверил : пустых дат нет
|
|||
258
Ёпрст
12.09.20
✎
23:24
|
(255) общий реквизит дока что ле ?
|
|||
259
Ёпрст
12.09.20
✎
23:25
|
И поди еще есть строковый реквизит неогр длины в общих реквизитах ?
|
|||
260
Franchiser
гуру
12.09.20
✎
23:25
|
(258) нет, не общий. Реквизит в таблицу DH
|
|||
261
Franchiser
гуру
12.09.20
✎
23:27
|
Нет общих реквизитов неогр длины
|
|||
262
Franchiser
гуру
12.09.20
✎
23:29
|
Ну и начали грузить документы на 30.09, при этом дату актуальности опер учёта тоже сместили на 30.09
|
|||
263
Ёпрст
12.09.20
✎
23:29
|
(260) и реструктуризация при этом нормально прошла ? Или добавлял поле сам руками и подсовывал словарик и мд ?
|
|||
264
Ёпрст
12.09.20
✎
23:30
|
И в доке, в шапке, есть строковые реквизиты неогр длины ?
|
|||
265
Franchiser
гуру
12.09.20
✎
23:30
|
Реструктуризация прошла штатно примерно за 8-10ч
|
|||
266
Franchiser
гуру
12.09.20
✎
23:33
|
(264) нет в шапке неогр длины
|
|||
267
Ёпрст
12.09.20
✎
23:35
|
(265) ой ё...
|
|||
268
Ёпрст
12.09.20
✎
23:37
|
проверь еще вот что :
select iddoc from _1sjourn group by iddoc having count(*)>1 |
|||
269
Ёпрст
12.09.20
✎
23:38
|
возможно, есть доки с разными row_id
|
|||
270
Ёпрст
12.09.20
✎
23:38
|
но с одним iddoc
|
|||
271
Franchiser
гуру
12.09.20
✎
23:45
|
(268) нет, пустой запрос
|
|||
272
Franchiser
гуру
12.09.20
✎
23:49
|
_1soper тоже проверил на дубли
|
|||
273
Franchiser
гуру
12.09.20
✎
23:52
|
Может быть кто то залезал в исходники? В каком случае по установки времени документа выполняется запрос с условием на на row_id, а на iddoc + date_time_iddoc + документ основание?
|
|||
274
Franchiser
гуру
12.09.20
✎
23:54
|
У нас есть как раз такой собственный некластерный индекс в таблице _1sjourn. Может в этом проблема?
|
|||
275
Ёпрст
12.09.20
✎
23:55
|
(272) а в 1crdoc?
|
|||
276
Ёпрст
12.09.20
✎
23:56
|
(274) ну отключи его.. Какой состав этого индекса ?
|
|||
277
Franchiser
гуру
12.09.20
✎
23:59
|
(276)iddoc + date_time_iddoc + документ основание
|
|||
278
Franchiser
гуру
12.09.20
✎
23:59
|
(275) там как проверять? Там графы отбора же могут быть разные и ещё подчинённые документы?
|
|||
279
Ёпрст
13.09.20
✎
00:10
|
(278) короче, надо сперва локализовать проблему, подыми копию скульной базы, то что есть.
В ней проапдейть 1sjourn , set appcode=1 + truncate table _1soper, это для начала, если не помогает, то truncate table _1scrdoc |
|||
280
Ёпрст
13.09.20
✎
00:11
|
+ можешь на пустышке создать новый мд и словарик, в котором выкинишь бух учет и удалишь план счетов.
Потом эти мд и ддс подсунешь в копию, можешь и таблички с операциями там прибить потом. И проверяешь |
|||
281
Ёпрст
13.09.20
✎
00:12
|
если работает, в рабочию кидаешь мд и словарик и апдейтишь журнальчик
|
|||
282
Ёпрст
13.09.20
✎
00:12
|
только _1scrdoc придётся пересоздать
|
|||
283
Ёпрст
13.09.20
✎
00:13
|
да, еще проверь, нет ли в 1sconst периодики, установленной документами (мало ли осталась от непроведенных доков)
|
|||
284
Franchiser
гуру
13.09.20
✎
00:16
|
1sconst проверял.
А как пересоздать _1scrdoc? |
|||
285
Ёпрст
13.09.20
✎
00:37
|
(284) штатно, тии с галкой одной, пересчет служ данных (вроде, точно не помню, помню, одну втыкать надо)
Или запрос поискать, где-то валялся |
|||
286
Franchiser
гуру
13.09.20
✎
09:41
|
(285) после удаления индекса в журнале проблема пропала
|
|||
287
Ёпрст
13.09.20
✎
09:51
|
(286) теперь заново его создай
|
|||
288
Ёпрст
13.09.20
✎
10:14
|
+ внеси в словарик, по-аналогии с системными индексами
|
|||
289
Franchiser
гуру
13.09.20
✎
12:22
|
Создал заново индекс, время пока изменяется.
|
|||
290
Franchiser
гуру
13.09.20
✎
12:38
|
Тему можно считать закрытой, всем спасибо!
|
|||
291
Ёпрст
13.09.20
✎
13:32
|
но всё же, прибей следы от бухни, если не используешь
|
|||
292
Franchiser
гуру
14.09.20
✎
18:46
|
(291) похоже имеет значение порядок индексов который указан в файле DDS.
Скрипт, который добавляется индексы через openconf после внесения изменений добавляет индексы перед блоком индексов в dds. Так вот не работает именно когда индекс идет вначале. |
|||
293
Franchiser
гуру
14.09.20
✎
18:53
|
Скрипт:
'------------------------------------------------------------------ 'Добавление строк в dd(dds) Sub ProcessDD() Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(IBDir & "1cv7.ddx") Then If FSO.FileExists(IBDir & "1cv7.dd") Then ext = "dd" Else ext = "dds" End If 'Резервное копирование исходного dd FSO.CopyFile IBDir & "1cv7." & ext, IBDir & "1cv7." & ext & ".bak", True 'Обработка расширенного словаря - ddx 'Строки на символ "X" состоят из двух частей: ' до символа "%" - имя сушествующей в dd таблицы(Т) к которой необходимо применить доп. описание ' после символа "%" - строка дополнительного описание которая вставляется после описания полей Т 'Все другие строки добавляются в конец dd 'Построение ассоциативного массива, где: Ключ - имя таблицы, Значение - строки доп. описания Set XDict = CreateObject("Scripting.Dictionary") Set TS = FSO.OpenTextFile(IBDir & "1cv7.ddx", 1) AppendStr = "" Do While TS.AtEndOfStream <> True Str = TS.ReadLine() Ch = Left(Str, 1) If Ch = "X" Then Arr = Split(Mid(Str,3), "%", 2) TableName = RTrim(Arr(0)) If XDict.Exists(TableName) Then XDict.Item(TableName) = XDict.Item(TableName) & vbNewLine & Arr(1) Else XDict.Add TableName, Arr(1) End If Else AppendStr = AppendStr & vbNewLine & Str End If Loop TS.Close() Set TS = FSO.OpenTextFile(IBDir & "1cv7." & ext & ".bak", 1) 'для чтения Set TS_Out = FSO.OpenTextFile(IBDir & "1cv7."& ext, 2) 'для перезаписи CurTable = "" Mode = "" Do While TS.AtEndOfStream <> True Str = TS.ReadLine() SubStr = Left(str, 2) Select Case SubStr Case "T=" Arr = Split(Str, "|", 3, 0) CurTable = RTrim(Mid(Arr(0),3)) Case "F=" Mode = "F" Case Else If Mode = "F" Then Mode = "" If XDict.Exists(CurTable) Then TS_Out.WriteLine(XDict.Item(CurTable)) 'Запись строк доп. описания End If End If End Select TS_Out.WriteLine(Str) 'Копирование строки Loop TS.Close() If AppendStr > "" Then TS_Out.Write("### ddExtension ###") TS_Out.Write(AppendStr) 'Добавление строк в конец End If TS_Out.Close() MsgBox "Внесены изменения в 1cv7." & ext End If 'FileExists(IBDir & "1cv7.ddx") End Sub '------------------------------------------------------------------ 'Удаление строк описания доп.таблиц из dd(dds) перед реорганизацией 'чтобы Конфигуратор не удалил таблицы из базы данных Sub UnProcessDD() Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(IBDir & "1cv7.ddx") Then If FSO.FileExists(IBDir & "1cv7.dd") Then ext = "dd" Else ext = "dds" End If 'Резервное копирование исходного dd FSO.CopyFile IBDir & "1cv7." & ext, IBDir & "1cv7." & ext & ".tmp", True Set TS = FSO.OpenTextFile(IBDir & "1cv7." & ext & ".tmp", 1) 'для чтения Set TS_Out = FSO.OpenTextFile(IBDir & "1cv7."& ext, 2) 'для перезаписи CurTable = "" Mode = "" Do While TS.AtEndOfStream <> True Str = TS.ReadLine() If Str = "### ddExtension ###" Then MsgBox "del ddExtension" Exit Do End If TS_Out.WriteLine(Str) 'Копирование строки Loop TS.Close() TS_Out.Close() FSO.DeleteFile(IBDir & "1cv7." & ext & ".tmp") End If 'FileExists(IBDir & "1cv7.ddx") End Sub '------------------------------------------------------------------ Sub Configurator_OnMsgBox(Text, Style, DefAnswer, Answer) If Left(Text,49) = "При сохранении метаданных будет произведен анализ" Then UnProcessDD() ElseIf Text = "Реорганизация информации закончена!" Then ProcessDD() End If End Sub |
|||
294
Ёпрст
14.09.20
✎
19:28
|
(292) в дбф так и есть, в скуле ,возможно, что свой индекс в ддс должен быть после кластерного
Типа кластерный первый в словарике |
|||
295
Ёпрст
14.09.20
✎
19:33
|
Хотя нет.. Проверил на демке, пофик, в какой место свой индекс пихать, главное, блок описания индексов от нужной таблички
|
|||
296
Ёпрст
14.09.20
✎
19:34
|
Вот например, запихал.. усё работает
и время меняется и движуха пишется и никаких "неудачное обновления записи нет" #----Indexes------ # Name |Descr |Unique|Indexed fields |Type I=MY |Id Doc+Type |0 |IDDOC,IDDOCDEF |0 I=PK__1SJOURN |ROW_ID |1 |ROW_ID |1 I=IDDOC |Id Doc |1 |IDDOC |0 I=ACDATETIME |Date+Time+ID |1 |DATE_TIME_IDDOC |0 I=DOCNO |Prefix+No |1 |DNPREFIX,DOCNO,ROW_ID |0 I=DOCTYPE |Type+Date+Time|1 |IDDOCDEF,DATE_TIME_IDDOC |0 I=JOURNAL |Journal+Date+T|1 |IDJOURNAL,DATE_TIME_IDDOC |0 |
|||
297
Franchiser
гуру
14.09.20
✎
19:47
|
Вот так у меня выглядит когда не работает:
#Доп. индекс Журналы I=K_IX1 | |0 |IDDOC,DATE_TIME_IDDOC,SP652 |0 #----Indexes------ # Name |Descr |Unique|Indexed fields |Type I=PK__1SJOURN |ROW_ID |1 |ROW_ID |1 I=IDDOC |Id Doc |1 |IDDOC |0 |
|||
298
Franchiser
гуру
14.09.20
✎
19:50
|
SP652 - документ-основание...
|
|||
299
Ёпрст
14.09.20
✎
19:58
|
(297) ну, надо его пихать после #----Indexes------
|
|||
300
Ёпрст
14.09.20
✎
19:58
|
тогда полетит
|
|||
301
Ёпрст
14.09.20
✎
19:59
|
Или, попробуй ему еще имя задать.. MyIndex в поле descr
|
|||
302
Franchiser
гуру
14.09.20
✎
20:00
|
(300) нужно скрипт тогда переписывать, нашел где-то его на форуме.
|
|||
303
Ёпрст
14.09.20
✎
20:00
|
И это, а чего он у тебя неуникальный то ?
|
|||
304
Ёпрст
14.09.20
✎
20:01
|
поставь ему уникальность еще
|
|||
305
Franchiser
гуру
14.09.20
✎
20:03
|
(301) имя задал произвольное, не помогло
|
|||
306
Franchiser
гуру
14.09.20
✎
20:05
|
(304) указал 1 для уникальности в DDS - не помогло
|
|||
307
Ёпрст
14.09.20
✎
20:41
|
(306) проверил на демке, пофик, где указан индекс, можно сразу за полями как у тебя.
В самом скуле он хоть создан и соответствует описанию в ддс ? |
|||
308
tgu82
14.09.20
✎
21:04
|
(0) Куда круче любых лент новостей. Столько полезного узнал для себя
|
|||
309
Franchiser
гуру
14.09.20
✎
23:01
|
(307) да в скуле он есть, я как раз теперь все сделал на рабочей базе, просто потом решил восстановить строку индекса в том месте где он был в словаре и вылез этот косяк. Переставка индекса в ддс приводит к такому результату: уже проверил на четырех базах (₽ копии и 1 рабочая).
|
|||
310
Franchiser
гуру
14.09.20
✎
23:02
|
Проверял на Sql 2008
|
|||
311
Franchiser
гуру
14.09.20
✎
23:05
|
(308) ага все-то 150 сообщений с того момента как я пришел в тему)
|
|||
312
Franchiser
гуру
14.09.20
✎
23:46
|
(296) в твоём индексе нет date_time_iddoc. 1с ищет по полям индекса и не изменяет поля которые в него входят. В частности при изменении времени, должно меняться поле date_time_iddoc.
|
|||
313
Franchiser
гуру
14.09.20
✎
23:47
|
(300) его нужно пихать после строки I=PK__1SJOURN
|
|||
314
Franchiser
гуру
14.09.20
✎
23:53
|
Как можно отлаживать скрипты для openconf или в принципе vbs скрипты?
|
|||
315
Ёпрст
15.09.20
✎
01:42
|
(312) может быть, проверю потом
(314) https://1c.alterplast.ru/faq/openconf.html |
|||
316
Ёпрст
15.09.20
✎
01:46
|
Ну и тут...
https://www.1cpp.ru/forum/YaBB.pl?board=openconf |
|||
317
Ёпрст
15.09.20
✎
01:46
|
Есть всё что нужно
|
|||
318
Franchiser
гуру
15.09.20
✎
12:19
|
Доработал скрипт:
'------------------------------------------------------------------ 'Добавление строк в dd(dds) Sub ProcessDD() Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(IBDir & "1cv7.ddx") Then If FSO.FileExists(IBDir & "1cv7.dd") Then ext = "dd" Else ext = "dds" End If 'Резервное копирование исходного dd FSO.CopyFile IBDir & "1cv7." & ext, IBDir & "1cv7." & ext & ".bak", True 'Обработка расширенного словаря - ddx 'Строки на символ "X" состоят из двух частей: ' до символа "%" - имя сушествующей в dd таблицы(Т) к которой необходимо применить доп. описание ' после символа "%" - строка дополнительного описание которая вставляется после описания полей Т 'Все другие строки добавляются в конец dd 'Построение ассоциативного массива, где: Ключ - имя таблицы, Значение - строки доп. описания Set XDict = CreateObject("Scripting.Dictionary") Set TS = FSO.OpenTextFile(IBDir & "1cv7.ddx", 1) AppendStr = "" Do While TS.AtEndOfStream <> True Str = TS.ReadLine() Ch = Left(Str, 1) If Ch = "X" Then Arr = Split(Mid(Str,3), "%", 2) TableName = RTrim(Arr(0)) If XDict.Exists(TableName) Then XDict.Item(TableName) = XDict.Item(TableName) & vbNewLine & Arr(1) Else XDict.Add TableName, Arr(1) End If Else AppendStr = AppendStr & vbNewLine & Str End If Loop TS.Close() Set TS = FSO.OpenTextFile(IBDir & "1cv7." & ext & ".bak", 1) 'для чтения Set TS_Out = FSO.OpenTextFile(IBDir & "1cv7."& ext, 2) 'для перезаписи CurTable = "" Mode = "" Do While TS.AtEndOfStream <> True Str = TS.ReadLine() SubStr = Left(str, 2) Select Case SubStr Case "T=" Arr = Split(Str, "|", 3, 0) CurTable = RTrim(Mid(Arr(0),3)) Case "F=" Mode = "F" Case "I=" Mode = "I" Case Else If Mode = "I" Then Mode = "" If XDict.Exists(CurTable) Then TS_Out.WriteLine(XDict.Item(CurTable)) 'Запись строк доп. описания End If End If End Select TS_Out.WriteLine(Str) 'Копирование строки Loop TS.Close() If AppendStr > "" Then TS_Out.Write("### ddExtension ###") TS_Out.Write(AppendStr) 'Добавление строк в конец End If TS_Out.Close() MsgBox "Внесены изменения в 1cv7." & ext End If 'FileExists(IBDir & "1cv7.ddx") End Sub '------------------------------------------------------------------ 'Удаление строк описания доп.таблиц из dd(dds) перед реорганизацией 'чтобы Конфигуратор не удалил таблицы из базы данных Sub UnProcessDD() Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(IBDir & "1cv7.ddx") Then If FSO.FileExists(IBDir & "1cv7.dd") Then ext = "dd" Else ext = "dds" End If 'Резервное копирование исходного dd FSO.CopyFile IBDir & "1cv7." & ext, IBDir & "1cv7." & ext & ".tmp", True Set TS = FSO.OpenTextFile(IBDir & "1cv7." & ext & ".tmp", 1) 'для чтения Set TS_Out = FSO.OpenTextFile(IBDir & "1cv7."& ext, 2) 'для перезаписи CurTable = "" Mode = "" Do While TS.AtEndOfStream <> True Str = TS.ReadLine() If Str = "### ddExtension ###" Then MsgBox "del ddExtension" Exit Do End If TS_Out.WriteLine(Str) 'Копирование строки Loop TS.Close() TS_Out.Close() FSO.DeleteFile(IBDir & "1cv7." & ext & ".tmp") End If 'FileExists(IBDir & "1cv7.ddx") End Sub '------------------------------------------------------------------ Sub Configurator_OnMsgBox(Text, Style, DefAnswer, Answer) If Left(Text,49) = "При сохранении метаданных будет произведен анализ" Then UnProcessDD() ElseIf Text = "Реорганизация информации закончена!" Then ProcessDD() End If End Sub |
|||
319
Ёпрст
15.09.20
✎
13:18
|
(318) еще немного и дорастешь до своих вьюх\триггеров\прямой записи...
|
|||
320
Ёпрст
15.09.20
✎
13:22
|
Хотя, всё потом в снеговике пригодится, там те же грабли вид сбоку.
Борьба за универсальность ограничивает возможности платформы. Хотя могли бы на селезнёвке выпускать релизы 1с-ины чисто под контретную бд - сскуль\постриги\..и т.д Где использовался весь функционал того же tsq в запросах + создание своих индексов, а не там где галочка "индексировать" ну и т.д |
|||
321
Franchiser
гуру
15.09.20
✎
13:30
|
(319) Я уже setattrs переделал на прямую запись в скуль...
|
|||
322
Mikeware
16.09.20
✎
13:06
|
(320) Скинь, плз, какую-нибудь свою обработку с разворачиванием 1с++ и формекса из этой обработки.
домашний архив пока недоступен, а знакомая попросила наваять ей отчетик... |
|||
323
Ёпрст
16.09.20
✎
13:40
|
(322) на вот, тока там не совсем актуальные версии
http://catalog.mista.ru/public/79515/ тут бесплатно, тока мыло надо ввести, на мыло придёт ссылка |
|||
324
Ёпрст
16.09.20
✎
13:41
|
в поделке есть описание, чем запакованы dll, или в коде не помню.
|
|||
325
Franchiser
гуру
16.09.20
✎
13:45
|
(324) попробовал отключить бух учет штатно, выдает сообщение "Бухгалтерский учет не может быть отключен. Есть проведенные документы..."
|
|||
326
Franchiser
гуру
16.09.20
✎
13:55
|
Как сейчас получается APPCODE 21 ?
Из описания: Число, отражающее принадлежность документа к компонентам. Возможные значения: 0 - не принадлежит никакому учету. (1) 000001 - опер учет. (2) 000010 - расчет. (4) 000100 - бух учет. (8) 001000 - движения периодических реквизитов. (16) 010000 - существует документ операция у документа (документ может быть не проведен, но тогда должно быть выбрано "Создавать операцию - Всегда" в окне свойств документа). (32) 100000 - Выполнен метод Операция.Записать(); в документе, принадлежащем бух. учету. (20) 010100 - Это документ "Операция". Возможна их комбинация, например 6 = 2+4 (бух. учет + расчет), 7 = все три компоненты. Тип - Число(2). |
|||
327
Mikeware
16.09.20
✎
13:56
|
(323) Спасибо!
|
|||
328
Mikeware
16.09.20
✎
13:57
|
(326) Существует операция+проведен по бухучету+проведне по оперучету
|
|||
329
Mikeware
16.09.20
✎
13:58
|
(325) апдейтом замени все CLOSED>0 на 1
|
|||
330
Franchiser
гуру
16.09.20
✎
13:59
|
(328) при отключении бух. учета (оставить только опер. уч) нужно проставить appcode = 1 и удалить таблицу _1Soper ?
|
|||
331
Franchiser
гуру
16.09.20
✎
13:59
|
(329) это зачем?
|
|||
332
Mikeware
16.09.20
✎
14:00
|
(330) я не помню, проверяет ли он аппкод. емнип, только проведение проверяет
(331) чтоб был проведен только по упручету |
|||
333
Franchiser
гуру
16.09.20
✎
14:00
|
Сейчас Closed = 4 это не проведен
Closed = 5 это проведен |
|||
334
Mikeware
16.09.20
✎
14:02
|
(333) 4 - проведен по бухучету
|
|||
335
Franchiser
гуру
16.09.20
✎
14:03
|
(332) так получится что все документы проведенные, а нужно непроведенные оставить непроведенными.
|
|||
336
trad
16.09.20
✎
14:03
|
(333) Closed = 4 - проведен, по бух
|
|||
337
trad
16.09.20
✎
14:04
|
(329) не корректно. Например так можно 20 превратить в 1, а это фигня.
|
|||
338
Mikeware
16.09.20
✎
14:04
|
(333) ну проверь на копии. вот чесслово, не помню - лет 20 назад делал
(335) значит, CLOSED&1=1 на 1 |
|||
339
Franchiser
гуру
16.09.20
✎
14:05
|
Мне нужны значения которые нужно поставить в поле closed при отключении бух. учета
|
|||
340
trad
16.09.20
✎
14:05
|
надо так
update _1sjourn set closed = closed&1 |
|||
341
Franchiser
гуру
16.09.20
✎
14:05
|
А CLOSED&1=0 заменить на 0 ?
|
|||
342
trad
16.09.20
✎
14:08
|
CLOSED&1=1 на 1, а CLOSED&1=0 на 0
записывается так (340) |
|||
343
Mikeware
16.09.20
✎
14:08
|
(341) - см (340)
|
|||
344
trad
16.09.20
✎
14:09
|
аппкод - аналогично
|
|||
345
Franchiser
гуру
16.09.20
✎
14:15
|
(344) Так?
update _1sjourn set appcode = 1 |
|||
346
Mikeware
16.09.20
✎
14:21
|
(345) update _1sjourn
set appcode = appcode&1 |
|||
347
Mikeware
16.09.20
✎
14:22
|
Хотя по идее, без принадлежности документов быть не должно
|
|||
348
Franchiser
гуру
16.09.20
✎
14:23
|
(346)
Select 21&1 Возвращает 1 |
|||
349
Ёпрст
16.09.20
✎
14:26
|
(348) через метаданные обойди доки и сделай условие, что если есть галка опер учет, то апкоде =1 иначе 0 и привет
в запросе условие на iddocdef и case воткнешь и всё |
|||
350
Ёпрст
16.09.20
✎
14:28
|
а можешь и еще тупее, 2 запроса и
update _1sjourn set appcode = 1 where iddocdef in ($ВидДокумента.Один,....$ВидДокумента.Y) |
|||
351
Ёпрст
16.09.20
✎
14:29
|
для тех кто в опер учете и 0 для всех остальных
|
|||
352
Ёпрст
16.09.20
✎
14:29
|
ну и truncate table _1soper и 1sentry
|
|||
353
Franchiser
гуру
16.09.20
✎
14:29
|
Уже поправил такими запросами:
update _1sjourn set closed = closed&1 where IDDOCDEF = 130 update _1sjourn set AppCode = 1 where IDDOCDEF = 130 Но сообщение осталось, truncate не делал |
|||
354
Ёпрст
16.09.20
✎
14:33
|
При желании, можешь и на пустышке нужный мд и словарик создать и хоть на ходу подсунуть в рабочую базу
|
|||
355
Ёпрст
16.09.20
✎
14:33
|
эт чтоб оно реструктуризацию потом не делало
|
|||
356
Franchiser
гуру
16.09.20
✎
14:47
|
(355) все удалил, заменил, и все равно ругается...
|
|||
357
Franchiser
гуру
16.09.20
✎
14:49
|
(254) подсунуть только мд? dd от пустышки не подойдет
|
|||
358
Ёпрст
16.09.20
✎
14:50
|
(357) чей та ? словари тоже нужен
|
|||
359
Ёпрст
16.09.20
✎
14:51
|
очисти еще таблицы итогов и итоги по субконто
|
|||
360
Ёпрст
16.09.20
✎
14:51
|
и табличку плана счетов до кучи
|
|||
361
Franchiser
гуру
16.09.20
✎
14:56
|
(358) у меня dds файл со своими добавленными индексами. Структура DD сильно отличается от DDS
|
|||
362
Ёпрст
16.09.20
✎
14:59
|
(361) дык пустышку вскуле создай, и добавь свои поля
|
|||
363
Franchiser
гуру
16.09.20
✎
15:02
|
а что меняется в словаре, если я отключаю бу в МД?
|
|||
364
Franchiser
гуру
16.09.20
✎
15:03
|
Не достаточно перетащить МД из скульной базы в файловую и там внести исправление?
|
|||
365
trad
16.09.20
✎
15:03
|
(363) на подобные вопросы лучше (полезнее) отвечать самому. Делаешь да смотришь
|
|||
366
Mikeware
16.09.20
✎
15:05
|
Да, блин, без опенконнфа - пофигуратор 7.7 действительно неприятен...
|
|||
367
Franchiser
гуру
16.09.20
✎
15:11
|
(365) Ну вроде сделал: все работает в моем варианте.
|
|||
368
Ёпрст
16.09.20
✎
15:13
|
(367) это в каком ? просто с мд ?
|
|||
369
Franchiser
гуру
16.09.20
✎
15:16
|
(368) да, создал файловую пустышку, там поменял признак, вернул мд на место в скуль
|
|||
370
Ёпрст
16.09.20
✎
15:17
|
(369) по-уму, еще надо в пустышке удалить план счетов, тогда вообще бух учет улетит
|
|||
371
Franchiser
гуру
16.09.20
✎
16:25
|
(370) да надо бы, но тогда может код править придется: когда новую базу делаешь он автоматически заполняется...
|
|||
372
Z1
16.09.20
✎
18:12
|
(0) НА инфостарте есть моя обработка "Поиск Ошибок в регистрах 7.7.
Обработка как раз для Вашей базы. Прогоните базу по всем кнопкам. Обработка писалась по поиску ошибок ( которые я смог представить ) |
|||
373
Z1
16.09.20
✎
18:17
|
(0 , 110 ) В 110 найдите ошибку, лучше найдите сами и это не потому что не хочу сказать,
а потому что пока свои шишки не набъешь не поймешь. Подсказка: ошибка не с точки зрения правильности выполнения запроса, а сточки зрения производительности. |
|||
374
Z1
16.09.20
✎
18:22
|
+ 372 в 128 ссылка дана на 372
|
|||
375
Z1
16.09.20
✎
18:53
|
(274) >>> У нас есть как раз такой собственный некластерный индекс в таблице _1sjourn. Может в этом проблема?
Если дополнительный индекс уникальный то скорее всего в нем проблема, уникальность не выполнима вот и получаешь ошибку обновления, если индекс неуникальный то он никак не может влиять на ситуацию. |
|||
376
Z1
16.09.20
✎
19:02
|
(297) назвать индекс IDDIC в таблице где и поля такие есть - это сильно.
Лучеше переименуйте как нибудь по другому. |
|||
377
Z1
16.09.20
✎
19:07
|
+ 375 так это его так 1с назвала. Вот уж не разу на это пристально не смотрел.
|
|||
378
Z1
16.09.20
✎
19:14
|
(330) да не трогай бы бы учет : там есть еще счета и оборотка по счетам.
Если к ним не обращаешься лишние таблицы не мешают а при удалении еще что нибудь поломаешь. |
|||
379
Franchiser
гуру
16.09.20
✎
23:28
|
(375) вроде разобрались: переставление строки индекса в файле dds решило проблему
|
|||
380
Franchiser
гуру
16.09.20
✎
23:30
|
(364) обработка из 128 только ищет ошибки и не исправояет. Я ее запускал. Мне не нужно устранять все ошибки , а решить конкретную проблему.
|
|||
381
Franchiser
гуру
16.09.20
✎
23:32
|
(376) индекс не называется iddic
|
|||
382
Franchiser
гуру
16.09.20
✎
23:34
|
(376) индекс K_IX1
|
|||
383
Z1
17.09.20
✎
08:07
|
(380) Ну это Ваша база, Ваша ответственность, Вам решать что нужно а что нет
|
|||
384
Z1
17.09.20
✎
08:12
|
(382)
индекс I=K_IX1 | |0 |IDDOC,DATE_TIME_IDDOC,SP652 |0 если это индекс на таблицу _1sjourn и описание индекса совпадает с тем что прописано в ms sql то этот индекс бесполезный - он только замедляет работу сервера ms sql |
|||
385
Franchiser
гуру
17.09.20
✎
11:41
|
(384) Почему он замедляет работу сервера, он делался для какого-то отчета для выполнения прямого запроса. Состав индекса не обсуждается.
|
|||
386
ДенисЧ
17.09.20
✎
11:50
|
(385) Отчёт у тебя выполняется раз в неделю, а индекс обновляется на каждую запись документа... Любого...
|
|||
387
Franchiser
гуру
17.09.20
✎
12:00
|
(386) я ХЗ, индекс не мой, я его не могу просто так удалить. Какие конкретно претензии к данному индексу?
|
|||
388
Franchiser
гуру
17.09.20
✎
12:02
|
Так можно про любой индекс сказать, что избыточные индексы замедляют проведение.
|
|||
389
trad
17.09.20
✎
12:02
|
(385) "Состав индекса не обсуждается."
А почему бы и нет? Вот я вижу наличие этих полей в порядке индекса (IDDOC,DATE_TIME_IDDOC), и в таком порядке совершенно бессмысленным. Значение IDDOC однозначно определяет значение DATE_TIME_IDDOC. Если в условии запроса не указываем IDDOC, то индекс не работает Если в условии запроса указываем IDDOC, то ему будет соответствовать одно и только одно DATE_TIME_IDDOC, при этом DATE_TIME_IDDOC нужно будет указывать обязательно, когда хотим чтобы и SP652 работало. |
|||
390
Franchiser
гуру
17.09.20
✎
12:05
|
(389) как понимаю Индексы работают если такой же состав полей указан в условии связи с другими таблицыми или секции where. Этот индекс был создан человеком, на основании анализа планов запроса.
|
|||
391
Franchiser
гуру
17.09.20
✎
12:06
|
Абсолютно пофиг что "Значение IDDOC однозначно определяет значение DATE_TIME_IDDOC".
Даже у 1С есть индексы которые включают IDDOC и DATE_TIME_IDDOC |
|||
392
ДенисЧ
17.09.20
✎
12:09
|
(391) А кто тебе сказал такую чушь, что у 1с нормальные индексы?
|
|||
393
trad
17.09.20
✎
12:09
|
Отсюда рассмотрим два варианта:
1. (IDDOC, SP652) При указании в запроса IDDOC = А и SP652 = В - индекс будет работать. 2. (DATE_TIME_IDDOC, SP652) При указании в запроса DATE_TIME_IDDOC = А и SP652 = В - индекс будет работать, но для этого достаточно п.1 Если рассматривать запрос на интервал DATE_TIME_IDDOC между А и Б, то в ключе SP652 - работать все равно не будет, а для интервала уже есть штатный индекс. Отсюда вывод. Имеет смысл только (IDDOC, SP652) |
|||
394
ДенисЧ
17.09.20
✎
12:10
|
(390) Знаешь, почему-то мне кажется, что trad разбирается в индексах на порядок лучше как тебя, так и того человека...
|
|||
395
Franchiser
гуру
17.09.20
✎
12:10
|
Если есть Join по IDDOC,DATE_TIME_IDDOC,SP652 то этот индекс будет использоваться
|
|||
396
Franchiser
гуру
17.09.20
✎
12:11
|
(394) Еще раз, я не могу удалить индекс, т.к. он был создан не мной. Это требует согласования и обоснования.
|
|||
397
trad
17.09.20
✎
12:14
|
(390) "Этот индекс был создан человеком, на основании анализа планов запроса."
Значит анализ был так себе. См. (393) - почему этот индекс не имеет смысла |
|||
398
trad
17.09.20
✎
12:14
|
(396) Индекс можешь и не удалять, но понять не помешает, что бы потом самому делать правильно
|
|||
399
Franchiser
гуру
17.09.20
✎
12:15
|
(393) Почему индекс будет работать "При указании в запроса DATE_TIME_IDDOC = А и SP652 = В" ?
|
|||
400
trad
17.09.20
✎
12:15
|
(395) правильно, будет.
Но он также отлично будет работать если будет таким (IDDOC,SP652) |
|||
401
trad
17.09.20
✎
12:16
|
(399) в предложенном, гипотетическом варианте (DATE_TIME_IDDOC, SP652) - будет
|
|||
402
Franchiser
гуру
17.09.20
✎
12:18
|
(401) но ты же предлагаешь индекс IDDOC, SP652. Он не будет использоваться если нет фильтра на IDDOC
|
|||
403
trad
17.09.20
✎
12:19
|
(391) "Даже у 1С есть индексы которые включают IDDOC и DATE_TIME_IDDOC"
Приведи пример. На _1sjourn нет таких индексов. Все штатные индексы на этой таблице нормальные и не лишены смыла |
|||
404
trad
17.09.20
✎
12:20
|
(402) при индексе (IDDOC, SP652) я не предлагаю писать условие DATE_TIME_IDDOC = А и SP652 = В
|
|||
405
Franchiser
гуру
17.09.20
✎
12:22
|
(403) ладно, в _1sJourn нет ни одного индекса на IDDOC
|
|||
406
trad
17.09.20
✎
12:24
|
(405) а где есть?
|
|||
407
trad
17.09.20
✎
12:25
|
Плюсом ко всему добавлю, что для отбора SP652 на интервале не лишен смысла индекс (SP652, DATE_TIME_IDDOC)
И для этого существует штатный индекс. |
|||
408
Franchiser
гуру
17.09.20
✎
12:27
|
IDDOC есть в таблицах документов
|
|||
409
Franchiser
гуру
17.09.20
✎
12:28
|
Вообщем индекс создавался для ускорения каких-то отчетов в базе 7.7, каких уже никто не помнит, и лучше этот индекс не трогать
|
|||
410
trad
17.09.20
✎
12:31
|
(408) индекс на IDDOC конечно есть. Есть он в 1sjourn.
Речь идет про совместное использование IDDOC,DATE_TIME_IDDOC в одном индексе, что лишено смысла |
|||
411
Z1
17.09.20
✎
12:50
|
(0, 409) Порядок полей в составном индексе имеет огромное значение.здесь не применимо от перемены мест слагаемых ...
Для понимания работы индексов решите самостоятельно (373) |
|||
412
trad
17.09.20
✎
13:10
|
(411) эта дурь в (110), на которую ты сделал замечание, кмк, из какого-то букваря распространяется
|
|||
413
Franchiser
гуру
17.09.20
✎
15:33
|
не знаю что там за ошибка в (110), я этот запрос н запускал
|
|||
414
trad
17.09.20
✎
15:38
|
(413) там скан всей таблицы журнала, т.к. через такое индексы не работают
Cast(Left(Жур.DATE_TIME_IDDOC, 8) AS datetime) >= :Дата1 |
|||
415
Franchiser
гуру
17.09.20
✎
15:44
|
(414) какая разница, если это разовый запрос. Понятно что конструкцию IN не желательно использовать.
|
|||
416
Franchiser
гуру
17.09.20
✎
15:48
|
(414) тогда уж и Left() не желательно использовать
|
|||
417
trad
17.09.20
✎
15:49
|
(415) "какая разница," да не вопрос
ps к IN вопросов нет |
|||
418
trad
17.09.20
✎
15:51
|
(416) ты не понял.
Проблема в применении условия не к X, а к f(X) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |