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

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

v7: Не удаляются движения документа
Я
   LisaAlisa
 
07.09.20 - 18:09
Привет!
При установке пометки на удаление или при отмене проведения документа движения в регистре не очищаются. При этом флаг "Автоматическое удаление движений" стоит.
Из-за чего так может быть?
   trad
 
101 - 08.09.20 - 15:27
(99) а что в 7.7 колонке ТЗ запрещено так называться?
   Mikeware
 
102 - 08.09.20 - 15:29
(101) греховно так зваться в клюшках православных...
   trad
 
103 - 08.09.20 - 15:29
(100) ну я тоже такие поля Ссылка называю, потому как это и есть ссылка
Даже унутре ее этот тип данных имеет в названии Ref
   HawkEye
 
104 - 08.09.20 - 15:35
(101) не запрещено, но не кошерно ))
   trad
 
105 - 08.09.20 - 15:38
(102) (104) почему?
   Mikeware
 
106 - 08.09.20 - 15:39
(105) /sarcasm
   trad
 
107 - 08.09.20 - 15:49
(103) Мое утверждение по поводу Ref будем считать ложным, память в этом вопросе подверглась эррозии.
Попробовал вспомнить - фиг там
   Ёпрст
 
108 - 08.09.20 - 15:58
(91) та вперёд не надо толкать. Так вы работаете всегда задним числом, и если используете штатное проведение. это очень замедляет работу, ибо везде есть рассчет итогов на дату дока, в отличие от проведения в потоке, т.е тогда, когда док та сам толкает вперёд
   Злопчинский
 
109 - 08.09.20 - 16:56
Короче. кто косячит - у того и косячит.
   LisaAlisa
 
110 - 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);

        тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
        тз.ВыбратьСтроку();
    КонецПроцедуры
   Mikeware
 
111 - 10.09.20 - 14:59
(110) документы проведены не по упручету?
   LisaAlisa
 
112 - 10.09.20 - 15:00
сейчас документы вообще распроведены
   Mikeware
 
113 - 10.09.20 - 15:02
select Жур.iddoc,
 Жур.closed 
from _1sjourn  Жур 
where Жур.closed&1 <> 1 
and Жур.DATE_TIME_IDDOC>= :Дата1
AND Жур.DATE_TIME_IDDOC<= :Дата2

что даст?
   Mikeware
 
114 - 10.09.20 - 15:10
(112) вам вообще вашу проблему решить надо, или как?
   LisaAlisa
 
115 - 10.09.20 - 15:12
(113) выдает 4 строки (4 документа)
   Mikeware
 
116 - 10.09.20 - 15:14
(115) я ж справшивал не "сколько", а что?
что в поле проведения? что в поле "количество движений", стоит ли флаг наличия движений по вашему регистру "Отгрузка"?
   LisaAlisa
 
117 - 10.09.20 - 15:14
   Mikeware
 
118 - 10.09.20 - 15:15
(117) докуметы проведены по бухучету
   Mikeware
 
119 - 10.09.20 - 15:16
ACTCNT?
RF*** (соответсвующий регистру)?
   LisaAlisa
 
120 - 10.09.20 - 15:18
(119) там для всех строк стоит 0
   Mikeware
 
121 - 10.09.20 - 15:22
(120) чем с проведения снимают? и почему стоят проведенными по бухучету?
   Ёпрст
 
122 - 10.09.20 - 15:23
closed=4 - документ имеет операцию, если память не изменяет
   Ёпрст
 
123 - 10.09.20 - 15:24
Кто -то видать балуется прямыми запросами в части апдейта _1sjourn
   Mikeware
 
124 - 10.09.20 - 15:25
(122) 1-опер, 2-расчет,4-бух, 8-периодика, операция - или 16, или 32.
   LisaAlisa
 
125 - 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
проверьте свои регистры этим:

https://www.1cpp.ru/forum/YaBB.pl?num=1228926967
   Mikeware
 
129 - 10.09.20 - 15:29
(126) 5 - это 4+1.
   trad
 
130 - 10.09.20 - 15:29
(124) это про аппкод, а не про крозет
 
 Рекламное место пустует
   trad
 
131 - 10.09.20 - 15:30
(130) *клозед
   Mikeware
 
132 - 10.09.20 - 15:30
(123) или пишут сразу в регистр, не устанавливая флаг. в этом случае при проведении она пытается инсертить, ну и подает
   Mikeware
 
133 - 10.09.20 - 15:30
(131) так они вроде одинаковы
   trad
 
134 - 10.09.20 - 15:31
(125) То что сейчас вываливается, это уже следствие нарушения согласованности данных.
С этим бороться не надо
Нужно устранить рассогласование
   trad
 
135 - 10.09.20 - 15:33
(133) не уверен
   LisaAlisa
 
136 - 10.09.20 - 15:36
   trad
 
137 - 10.09.20 - 15:39
(136) либо closed установить, либо движения удалить. Все, ничего больше делать не надо
В начале вроде писали об этом
   Mikeware
 
138 - 10.09.20 - 15:40
(135) ну по крайней сере первые три. хотя могу и ошибаться - а под рукой нет клюшек чтоб проверить
   Ёпрст
 
139 - 10.09.20 - 15:40
(136) ясно, ну.. инструмент для обнаружения в (128)
+ желательно проверить, 
1. что мд соответствует словарю и и таблицам в скуле
2. что мд не битый
   LisaAlisa
 
140 - 10.09.20 - 15:40
(137) так и делаем. Очищаем движения в SQL

но как только документ создается датой = дате актуальности итогов, возникают вот такие ошибки снова
   trad
 
141 - 10.09.20 - 15:40
(137) то и другое можно сделать, имхо, только напрямую
   trad
 
142 - 10.09.20 - 15:41
(140) ааа, вот этот артефакт я упустил
   Ёпрст
 
143 - 10.09.20 - 15:42
(140) да ё..
скачай обработку еще для пересчета итогов прямым запросом, можешь и грохнуть все записи в rg регистра перед этим, тупо truncate table rg****
   Ёпрст
 
144 - 10.09.20 - 15:43
их чтук 5 разных модификаций валяется
   Franchiser
 
145 - 10.09.20 - 18:16
Может быть кроме удаления движения нужно еще что-то делать? Например, в таблице Журнала менять флаг RF?
   Ёпрст
 
146 - 10.09.20 - 18:23
(145) он влияет только на показ галок в меню просмотра движений
   LisaAlisa
 
147 - 10.09.20 - 18:27
Ошибка появилась после того, как в базе стали создавать документы обработкой.
Сделали копию базы, грузила документы этой же обработкой, но без использования функции, создающей гуиды. Может причина быть в этом?
Функция глСоздатьИдентификатор() Экспорт
    
    Если ЗагрузитьВнешнююКомпоненту("V7Plus.dll") <> 1 Тогда
        Сообщить("Ошибка загрузки компоненты V7+");
        Возврат "";
    КонецЕсли;                                        
    
    НТТРСистИнформ = СоздатьОбъект("AddIn.V7SysInfo");
    
    Возврат СокрЛП(НТТРСистИнформ.СоздатьGUID());
    
КонецФункции  // глСоздатьИдентификатор()
   LisaAlisa
 
148 - 10.09.20 - 18:27
(147) в копии базы не появляется ошибка с движениями.
   ДенисЧ
 
149 - 10.09.20 - 18:29
(148) А теперь в копии используй эту функцию. Что будет?
   Ёпрст
 
150 - 10.09.20 - 19:28
(149) ну выложи это изделие на поглядеть.
Зы и куда этот гуид пихаете хоть?
   LisaAlisa
 
151 - 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. ДЕЛАТЬ ВСЕ МЕДЛЕННО И ВДУМЧИВО. ШАГ ЗА ШАГОМ.
всё!!!!!
   Cthulhu
 
154 - 11.09.20 - 03:07
1) 1с 77 не поддерживает вложенных транзакций
2) выполнена отмена проведения в транзакции - при этом возникла ошибка.
   Mikeware
 
155 - 11.09.20 - 08:32
(151) криминала не вижу.
Ну, если есть подозрение на генерацию гуида V7+ом - попробуйте генерить его 1с++
   tgu82
 
156 - 11.09.20 - 08:53
(155) Сколько лет работаю с 1С - и ни разу не пользовался созданием гуидов. Хотя через 36-ричную что-то было но не гуид. Для чего собственно он нужен если за столько лет как-то не пригодилось
   trad
 
157 - 11.09.20 - 09:01
(151) в ветке условия флСоздатьИСО = 1 иначе
при передаче в ЗаписатьОбъект(Флаг,ДокументСоздаваемый);
в ДокументСоздаваемый нет нового документа
наверно туда хотели передать Объект
   LisaAlisa
 
158 - 11.09.20 - 09:13
(157) Объект - это документ, на основании которого заполняется ДокументСоздаваемый
   trad
 
159 - 11.09.20 - 09:28
(158) по коду явно видно, что это не так
я говорю про ветку флСоздатьИСО = 1 иначе
   trad
 
160 - 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)

в пофигураторе, если выполнить полный синтаксис контроль, проходит хоть ?
   tgu82
 
164 - 11.09.20 - 09:50
(161) А я пользовался 26-ричным идентификатором для примерно тех же целей. У справочника он кажется длиннее а у документа короче по длине
   LisaAlisa
 
165 - 11.09.20 - 10:00
(163) Синтаксических ошибок не обнаружено!
   Ёпрст
 
166 - 11.09.20 - 10:05
(165) ну тогда см. (128)

+ на копии (надеюсь, е средствами скуля делаешь ?) пересоздай словарик, и сравни словарик с рабочей базой. Для этого в пофигураторе сделай конфигурация - загрузить измененную конфигурацию и укажи на мд из каталога базы. После сохранения сравни словарики
   Mikeware
 
167 - 11.09.20 - 10:05
(164) 26-ричный идентификатор?
   tgu82
 
168 - 11.09.20 - 10:07
(167) 36-ричный
   LisaAlisa
 
169 - 11.09.20 - 10:13
(166) копия и рабочая уже отличаются тем, что в рабочей введен новый реквизит типа Дата в РасходнуюНакладную. При отмене проведения это РН не удаляются движения в рабочей. В копии такой ошибки нет
   Ёпрст
 
170 - 11.09.20 - 10:24
(169) да ё.. копия делается за 5 минут
   Ёпрст
 
171 - 11.09.20 - 10:24
средствами скуля
   LisaAlisa
 
172 - 11.09.20 - 10:26
(171) вот эта процедура выполняется часов 12:
Для этого в пофигураторе сделай конфигурация - загрузить измененную конфигурацию и укажи на мд из каталога базы. После сохранения сравни словарики
   LisaAlisa
 
173 - 11.09.20 - 10:26
конкретно - сохранение, т.к. запустится реструктуризация
   Mikeware
 
174 - 11.09.20 - 10:34
(172) копию сделай. копию!
   LisaAlisa
 
175 - 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) не вопрос. Разверни пустую базу из мд, создай словарик и сравни
   Cthulhu
 
177 - 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). И информации такой в нём (интернете) тоже практически не было.
   Franchiser
 
179 - 11.09.20 - 18:25
В скульной базе не работает изменение времени документа у непроведенных документов через контекстное меню, в то время как в файловой работает. Почему такое может быть?
   Franchiser
 
180 - 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) хз, не встречал такого, вроде норм время ставится и там и там у не проведенного дока
   Cthulhu
 
183 - 12.09.20 - 02:29
(179): кстати - возможно именно из-за наличия движений, оставшихся при кривой отмене проведения. там вполне возможно в движок зашита молчаливая проверка (чтобы в результате не получилось гораздо большего искажения данных)...
   Franchiser
 
184 - 12.09.20 - 09:52
(183) движения в регистрах ra адалили, в system попал также документ с кривыми движениями, там тоже поправил, 1srdoc  откорректировал child_date_time. Где то ещё косяки есть а таблицах, либо в других периодах.
   Franchiser
 
185 - 12.09.20 - 11:12
Нашел такую тему: "Данная обработка 1С 7.7 помогает, когда кто-то установил точку актуальности на конец текущего дня (провел документ концом дня) и документы перестали проводиться. Теперь, чтобы нормализовать ситуацию, время документов нужно изменить и документы перепровести, затем перенести точку актуальности на последний проведенный документ."
http://catalog.mista.ru/public/1132089/
Может у меня проблема из этой области?
   Ёпрст
 
186 - 12.09.20 - 16:33
(184) ну дык (128) проверяй...
   Franchiser
 
187 - 12.09.20 - 16:40
(186) пробовал уже. Пересобрал мдшник через gcomp, подсунул его в тестовой базе.
Вообщем сейчас такая проблема : при изменении времени во всех таблицах время меняется время меняется кроме 1sjourn. Начал смотреть заполненность полей: у новых документов какое то новое заполнение поле dnprefix. Почему он могло измениться?
   Franchiser
 
188 - 12.09.20 - 16:41
Раньше поле dnprefix было 1302020, стало 1302021.
Обработка из 128 очень долго работает и там нет фильтра на период...
   Ёпрст
 
189 - 12.09.20 - 16:53
(188) :)

поправить её как 2 пальца жешь, под любой период
   Franchiser
 
190 - 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.
   Franchiser
 
192 - 12.09.20 - 16:55
(189) я правлю по отдельным документам date_time затем пробую в 1с поменять время и снова время в 1sjourn остаётся без изменений, а в 1soper , _1scrdoc время меняется.
   Franchiser
 
193 - 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   '
   Franchiser
 
194 - 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
   Franchiser
 
195 - 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
и "в восстановленной копии".. старая копия этой же базы ?
   Franchiser
 
199 - 12.09.20 - 19:09
В восстановленной 3х дневной копии время устанавливается, а в текущей базе не устанавливается.
Скрипты из профайлера привел
   Ёпрст
 
200 - 12.09.20 - 19:23
(199) Для всех видов дока или конкретного ? покажи select * from _1sjourn where iddoc = ...для этого дока
  1  2  3  4  5   

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