Имя: Пароль:
1C
1C 7.7
v7: Не удаляются движения документа
,
0 LisaAlisa
 
07.09.20
18:09
Привет!
При установке пометки на удаление или при отмене проведения документа движения в регистре не очищаются. При этом флаг "Автоматическое удаление движений" стоит.
Из-за чего так может быть?
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)