Вход | Регистрация
    1  2  3  4  5   
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Не удаляются движения документа

v7: Не удаляются движения документа
Я
   LisaAlisa
 
07.09.20 - 18:09
Привет!
При установке пометки на удаление или при отмене проведения документа движения в регистре не очищаются. При этом флаг "Автоматическое удаление движений" стоит.
Из-за чего так может быть?
   Ёпрст
 
201 - 12.09.20 - 19:34
И.. если штатненько, через 
Док = СоздатьОбъект..
Док.НайтиДокумент(выбДок)
Док.АвтоВремяОтключить()
Док.УстановитьВремя ..

устанавливается ?
   Franchiser
 
202 - 12.09.20 - 19:40
(200) я могу скрин привести из разных таблиц, трэйс с утра делал потом у там уже может быть другое время
   Ёпрст
 
203 - 12.09.20 - 19:40
И ты документ операция правишь ? судя по апкоде 21
   Franchiser
 
204 - 12.09.20 - 19:40
(200) в базе только 1 вид документа
   Franchiser
 
205 - 12.09.20 - 19:41
(23) документ отгрузка. Это самописка.
   Ёпрст
 
206 - 12.09.20 - 19:47
(205) документ с какими галками ? бухня+упр ?
   Ёпрст
 
207 - 12.09.20 - 19:48
в сервис-параметры ничего не менял ? там тоже есть галки для времени..для бух учета точно и для опер учета для новых доков
   Franchiser
 
208 - 12.09.20 - 19:52
Не параметры одинаковые в обеих базах
   Franchiser
 
209 - 12.09.20 - 19:54
Документ с галочками бух+упр
   Franchiser
 
210 - 12.09.20 - 19:58
Штатно время тоже не устанавливается
   Franchiser
 
211 - 12.09.20 - 20:00
В конце нужно записать()?
Если с Записать, то ошибка "ошибка обновления записи".
   Franchiser
 
212 - 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
в свойствах дока стоит что.. создавать операуию вместе с доком ?
   Franchiser
 
216 - 12.09.20 - 20:39
(214) я вообще беру очень старые документы (разные) и на них проверяю
   Franchiser
 
217 - 12.09.20 - 20:41
(215) стоит создавать операцию = всегда
   Ёпрст
 
218 - 12.09.20 - 20:43
(216)
вот еще, на ночь чтиво
https://www.1cpp.ru/forum/YaBB.pl?num=1281425103
   Ёпрст
 
219 - 12.09.20 - 20:44
И это проапдейть табличку _1soper на предмент не совпадения date_time с 1s_journ
   Ёпрст
 
220 - 12.09.20 - 20:45
Короче, нужно во всех табличках всё засинхрить с табличкой журнала в части date_time_iddoc, для начала
   Franchiser
 
221 - 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
вот и рассинхрон
   Franchiser
 
228 - 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
   Franchiser
 
235 - 12.09.20 - 21:14
1sentry пустая
   Ёпрст
 
236 - 12.09.20 - 21:24
(235) как это ? проводок нету что ле ?
   Ёпрст
 
237 - 12.09.20 - 21:25
если проводок нет, то отключи вообще бух учет у документа и прибей план счетов, если есть
   Franchiser
 
238 - 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 туда.
   Franchiser
 
244 - 12.09.20 - 22:43
(220) исправил во всех таблицах date_time_iddoc. Проблема осталась.
   Franchiser
 
245 - 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
что в архиве работает ?
   Franchiser
 
252 - 12.09.20 - 23:09
(248) база очень большая, выгрузку не могу дать
   Franchiser
 
253 - 12.09.20 - 23:09
В архиве работает
   Franchiser
 
254 - 12.09.20 - 23:12
(249) Док.Записать();
{E:\тЕСТ ВРЕМЯ.ERT(9)}: Ошибка обновления записи
   Franchiser
 
255 - 12.09.20 - 23:12
(250) в обновлении добавили реквизит типа дата в таблицу документов
   Franchiser
 
256 - 12.09.20 - 23:14
То что читал по поводу этой ошибки, она обычно возникала у других при записи констант, но у меня константы нигде не пишутся.
   Franchiser
 
257 - 12.09.20 - 23:21
Проверил : пустых дат нет
   Ёпрст
 
258 - 12.09.20 - 23:24
(255) общий реквизит дока что ле ?
   Ёпрст
 
259 - 12.09.20 - 23:25
И поди еще есть строковый реквизит неогр длины в общих реквизитах ?
   Franchiser
 
260 - 12.09.20 - 23:25
(258) нет, не общий. Реквизит в таблицу DH
 
 Рекламное место пустует
   Franchiser
 
261 - 12.09.20 - 23:27
Нет общих реквизитов неогр длины
   Franchiser
 
262 - 12.09.20 - 23:29
Ну и начали грузить документы на 30.09, при этом дату актуальности опер учёта тоже сместили на 30.09
   Ёпрст
 
263 - 12.09.20 - 23:29
(260) и реструктуризация при этом нормально прошла ? Или добавлял поле сам руками и подсовывал словарик и мд ?
   Ёпрст
 
264 - 12.09.20 - 23:30
И в доке, в шапке, есть строковые реквизиты неогр длины ?
   Franchiser
 
265 - 12.09.20 - 23:30
Реструктуризация прошла штатно примерно за 8-10ч
   Franchiser
 
266 - 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
   Franchiser
 
271 - 12.09.20 - 23:45
(268) нет, пустой запрос
   Franchiser
 
272 - 12.09.20 - 23:49
_1soper тоже проверил на дубли
   Franchiser
 
273 - 12.09.20 - 23:52
Может быть кто то залезал в исходники? В каком случае по установки времени документа выполняется запрос с условием на на row_id, а на iddoc + date_time_iddoc + документ основание?
   Franchiser
 
274 - 12.09.20 - 23:54
У нас есть как раз такой собственный некластерный индекс в таблице _1sjourn. Может в этом проблема?
   Ёпрст
 
275 - 12.09.20 - 23:55
(272) а в 1crdoc?
   Ёпрст
 
276 - 12.09.20 - 23:56
(274) ну отключи его.. Какой состав этого индекса ?
   Franchiser
 
277 - 12.09.20 - 23:59
(276)iddoc + date_time_iddoc + документ основание
   Franchiser
 
278 - 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 периодики, установленной документами (мало ли осталась от непроведенных доков)
   Franchiser
 
284 - 13.09.20 - 00:16
1sconst проверял.
А как пересоздать _1scrdoc?
   Ёпрст
 
285 - 13.09.20 - 00:37
(284) штатно, тии с галкой одной, пересчет служ данных (вроде, точно не помню, помню, одну втыкать надо)
Или запрос поискать, где-то валялся
   Franchiser
 
286 - 13.09.20 - 09:41
(285) после удаления индекса в журнале проблема пропала
   Ёпрст
 
287 - 13.09.20 - 09:51
(286) теперь заново его создай
   Ёпрст
 
288 - 13.09.20 - 10:14
+ внеси в словарик, по-аналогии с системными индексами
   Franchiser
 
289 - 13.09.20 - 12:22
Создал заново индекс, время пока изменяется.
   Franchiser
 
290 - 13.09.20 - 12:38
Тему можно считать закрытой, всем спасибо!
   Ёпрст
 
291 - 13.09.20 - 13:32
но всё же, прибей следы от бухни, если  не используешь
   Franchiser
 
292 - 14.09.20 - 18:46
(291)  похоже имеет значение порядок индексов который указан в файле DDS.
Скрипт, который добавляется индексы через openconf после внесения изменений добавляет индексы перед блоком индексов в dds. Так вот не работает именно когда индекс идет вначале.
   Franchiser
 
293 - 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
   Franchiser
 
297 - 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
   Franchiser
 
298 - 14.09.20 - 19:50
SP652 - документ-основание...
   Ёпрст
 
299 - 14.09.20 - 19:58
(297) ну, надо его пихать после #----Indexes------
   Ёпрст
 
300 - 14.09.20 - 19:58
тогда полетит
  1  2  3  4  5   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.