Имя: Пароль:
1C
1С v8
Научите меня пересчитывать итоги.
,
0 ProxyInspector
 
31.05.17
13:59
Платформа 8.3.8.2197. Конфигурация УТ10. Учет ведется уже 4 года количество документов 2.5 млн.
  Помечаю на удаление документы за 2012 год.
  Удаляю документы стандартной процедурой
            УстановитьМонопольныйРежим(Истина);
            УдалитьОбъекты(МассивНаУдаление,Истина);
            УстановитьМонопольныйРежим(Ложь);
  Документы удаляются

  После этого делаю запрос к РегиструНакопления.ПартииТовров
ВЫБРАТЬ
    *
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента)
                                              
    Все ресурсы остатков с ссылками на удаляемые документы имеют значение <Объект не найден>. Остатки по регистру не корректные. Т.е. остатки не соответствуют движениям.

    После этого делаю полный пересчет регистра, и все становится на свои места.
1 ProxyInspector
 
31.05.17
14:02
На сколько я понимаю, в целях оптимизации,  1с чистит Таблицу Движений регистра остатки, но не чистит Таблицу Остатков регистра
2 ProxyInspector
 
31.05.17
14:09
При таком раскладе весь партионный учет в типовых конфигурациях, весь учет с помощью регистров Остатков, где измерение имеет Тип = ДокументСсылка не корректен.
3 Волшебник
 
модератор
31.05.17
14:10
(1) наоборот
4 ProxyInspector
 
31.05.17
14:11
Что наоборот?
5 ProxyInspector
 
31.05.17
14:12
Так что 8-ка не умеет пересчитывать итоги?
6 ProxyInspector
 
31.05.17
14:18
Я помечаю на удаление документРегистратор. Помечаю на удаление документ из Измерения ресурса. Эти документы не имеют ссылок на себя. Поэтому они легко удаляются стандартной обработкой. Движения регистра чистятся, а вот остатки за прошлые периоды (как минимум) остаются.
  И пропадают только после полного пересчета итогов
  Что то не ладно в консерватории.
7 HEKPOH
 
31.05.17
14:20
но ведь быстро же!
8 ProxyInspector
 
31.05.17
14:24
Я считаю, что это чистый БАГ 1с8, а не неумение пересчитывать итоги.
Для корректной работы 1с8 требуется постоянно чистить кеш, пересчитывать итоги. И тогда 1с8 можно будет назвать системой уровня 7x24x365
9 ProxyInspector
 
31.05.17
14:25
Ничего там не быстро. На больших базах это долго
10 ProxyInspector
 
31.05.17
14:27
Я думаю тему надо назвать "Научите 1с8 перессчитывать итоги"
11 Ёпрст
 
31.05.17
14:27
(4) Табличка движений никогда не очищается при пересчете
итогов. Только при удалении/распроведении документа удаляются записи оттуда.
12 Волшебник
 
модератор
31.05.17
14:27
(4) Нельзя чистить таблицу движений, потому что это первичная информация для расчёта итогов.
13 ProxyInspector
 
31.05.17
14:41
Я не знаю как 1С удается добиваться таких результатов, но все началось с того, что движения по регистру не соответствовали остаткам. Может  было УдалитьОбъекты(ОбъектНаУдаление,Истина) и ОбъектНаУдаление был не помечен на удаление?
  Я сейчас на тестовой базе это делаю, потом посмотрю на рабочей как это будет
14 HEKPOH
 
31.05.17
14:58
(13) "Я не знаю как 1С удается добиваться таких результатов, но все началось с того, что движения по регистру не соответствовали остаткам"
Ну, нет же!!! Это остатки не соответствуют движениям!!!
Движения первичны - остатки вторичны
15 ProxyInspector
 
31.05.17
15:28
Да остатки не соответствуют движениям.
Можно написать запрос и проверить на других базах
16 sapphire
 
31.05.17
15:41
(15) База, поди, распределенная, да?
17 sapphire
 
31.05.17
15:42
(15) Если бы, при УдалитьОбъекты(МассивНаУдаление,Истина);
имелись ссылки на элементы массива, то удаление не произошло бы.
18 kiruha
 
31.05.17
15:47
(0)
Это некорректная свертка
Нужно создать документ ввод остатков
Внести туда остатки по партиям на конец года
Отключить итоги
Провести документ

Потом отменить проведение документов
Потом их удалить

Включить итоги и пересчитать

Вы делаете же что то странное
19 rozer76
 
31.05.17
16:03
(18) Отключить итоги

РегистрНакопления.ПартииТоваровНаСкладах.Остатки

не будет такого
20 ProxyInspector
 
31.05.17
16:23
У меня не свертка, а удаление не работающих Фирм и Складов
21 ProxyInspector
 
31.05.17
16:25
Поэтому помечаются на удаление документы имеющие в реквизитах не работающие Фирмы, Склады. Потом документами инвентаризация, выравниваются остатки. Ну и перепроводятся все документы
22 Serg_1960
 
31.05.17
17:29
"Бойся желаний своих, ведь они могут исполниться"(цы)

Автор желает чтобы, после снятия с проведения партиобразующего документа, конфигурация заново пересчитывала/переопределяла партии в документах? Ведь если претензию автора разобрать, то всё упрётся к этому.
23 ProxyInspector
 
31.05.17
18:13
Ничего не к этому. Претензия в том, что после корректных действий в системе 1С8. Остаток по регистру "Остаток" не соответствует движениям по этому регистру.
   К примеру по движениям остаток = 5 а по виртуальной таблице Остатки - остаток = 7
   И это исправляется только полным пересчетом регистра
24 ProxyInspector
 
31.05.17
18:16
Это называется БАГ и баг КРИТИЧЕСКИЙ.
Просто на регистре ПартииТоваров - это проявляется особенно наглядно. На регистре ОстаткиТоваров - этого бага быть не может, как и на большинстве регистров Остатки
25 kiruha
 
31.05.17
18:58
УдалитьОбъекты(<СписокСсылок>, <Проверять>, <НайденныеДанные>, <ОбластьПоиска>, <ВключитьОбъекты>, <ИсключитьОбъекты>)
Параметры:

<СписокСсылок> (обязательный)

Тип: Массив.
Список ссылок на объекты, которые нужно удалить.
<Проверять> (необязательный)

Тип: Булево.
Определяет, выполнять ли контроль ссылочной целостности при выполнении процедуры. Истина - перед удалением проверяется, нет ли ссылок на удаляемый объект. Если есть, то объект не удаляется, а ссылки помещаются в таблицу значений <НайденныеДанные>. Ложь - проверка не выполняется.
Значение по умолчанию: Ложь. !!!!
26 kiruha
 
31.05.17
18:59
а Истина стоит, понятно
27 kiruha
 
31.05.17
19:01
ВключитьОбъекты> (необязательный)

Тип: Массив.
Позволяет явно указать объекты метаданных, которые должны присутствовать в области поиска ссылок на объекты.
Элементом массива могут быть:
Объект метаданных.
Строка – полное имя объекта метаданных.
Допустимые значения:
Неопределено,
Пустой массив,
Массив объектов метаданных.
28 piter3
 
31.05.17
19:02
Что-то не пойму,а как быть тогда с перемещениями
29 kiruha
 
01.06.17
10:17
(0)
Итого

При удалении ссылки - записи регистра не очищаются
Кроме одного! случая - признак Ведущее у измерения регистра сведений.
В остальных случаях очищать надо самостоятельно
Все логично и правильно
30 ProxyInspector
 
01.06.17
10:34
Что-то в этом роде. Движения удаляются,  но ВиртуальнаяТаблица Остаток не корректная становится. Я проверю на днях более внимаельно и запрос сделаю на сравнение Движения - Остатки
31 pavig
 
01.06.17
10:34
(0)
Какая-то каша.

У тебя изначально были некорректные остатки в регистре. По какой причине они там появились - из (0) не понятно. Скорее всего, если очищали записи регистра при выключенном использовании итогов (УстановитьИсопльзованиеИтогов(Ложь)).

После этого ты удалил некоторые документы без контроля целостности, вследствие чего в некорректных остатках у тебя еще и появились "битые ссылки".

Пересчитал итооги - вуаля, всё заколосилось.

И причем тут 1С?)
32 pavig
 
01.06.17
10:40
А ну да, контрлль целостности был. Только платформа эти ссылки искала не в остатках, а в движениях.
33 pavig
 
01.06.17
10:40
Но это ничего не меняет. У тебя изначально были некорректные остатки. Оттуда всё и пошло)
34 ptiz
 
01.06.17
10:41
(31) +100
35 Адинэснег
 
01.06.17
10:59
пздц
36 Вафель
 
01.06.17
11:04
Сначала нужно было у документов отменить проведение
37 Franchiser
 
гуру
01.06.17
11:22
Так что действительно не работает второй параметр в УлалитьОбъекты()?
38 ProxyInspector
 
01.06.17
13:21
1С8 не контролирует ссылки в ВиртуальнойТаблице Остатки регистров, хотя в Движениях регистра контролирует. Они  считают, что после пересчета регистра они сами пропадут, но до пересчета остатки получаются не корректные.
39 ProxyInspector
 
01.06.17
13:22
Второй параметр в УдалитьОбъекты() работает. В базе действительно нет ссылок на эти документы в объектах базы, нет ссылок в движениях, но остаются ссылки в ВиртуальнойТаблице Остатки.
40 pavig
 
01.06.17
13:52
(38) Остатки некорректные потому что кое-чьи руки некорректные. Не более того.
41 ProxyInspector
 
01.06.17
14:18
Да я согласен, у разработчиков 1С8 кривые руки