Имя: Пароль:
1C
 
V8: свёртка базы таким образом, чтобы исключить удаленные элементы номенклатуры
,
0 andrewrocker
 
10.07.17
10:02
Коллеги, после свёртки базы не могу зачистить базу от помеченных объектов.

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

Как можно исправить ситуацию?
1 Beduin
 
10.07.17
10:06
(0) Измерение, где номенклатура имеет свойство "Ведущее"?
2 assasu
 
10.07.17
10:08
(0) пробежать по документу свертки цен. удалить отмеченные .
3 lodger
 
10.07.17
10:10
либо конфу модифицировать, либо чистить регистр вручную.
там в общем-то ничего сложного.
4 andrewrocker
 
10.07.17
10:11
А можно почистить регистр сведений без изменить в документах?
5 Beduin
 
10.07.17
10:13
(4) У тебя проблема в чем?
Что номенклатура помеченная на удаление, попадает в документ "Установка цен номенклатуры"?
6 lodger
 
10.07.17
10:14
можно.
7 andrewrocker
 
10.07.17
10:21
(5) видимо вы свертку не делали ни разу, номенклатура попадает в документ корректировка регистров
8 SadrArt
 
10.07.17
10:53
(7) А в чем трудность программно удалить записи с помеченной номенклатурой из регистра?
9 andrewrocker
 
10.07.17
11:05
А если документы перепроведут, тогда записи вернуться, это раз.

Б. В документах, где содержится удаляемая номенклатура нужно тоже вычистить упоминания о ней
10 Beduin
 
10.07.17
11:07
(7) Я тебе открою секрет, у документа корректировка записей регистра нет табличных частей своих по хранению наборов записей. Поэтому, когда ты удалишь номенклатуру, то из документов она тоже удалится.
11 Beduin
 
10.07.17
11:08
(10) И именно поэтому я тебя спросил про свойство ведущее в первом посте.
12 SadrArt
 
10.07.17
11:09
(9) А. Какие документы? Вы же сами сказали эта номенклатура в Корректировке. А корректировка не содержит ссылки на номенклатуру. Она является только "окном" в регистр. То есть при удалении из регистра записи удалятся и из дока.

Б. см. А.
13 andrewrocker
 
10.07.17
15:07
Я не знал, что корректоровка регистров не является документом
14 Вафель
 
10.07.17
15:08
при свертке не пиши помеченные.
Обработку нужно будет доработать конечно
15 andrewrocker
 
12.07.17
18:14
После свертки базы необходимо создать внешнюю обработку с единственным реквизитом "корректировка записи реквизитов".

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    СписокДляУдаления = Новый Массив;
    
    НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.КорректировкаРегистров);
    НаборЗаписей.Прочитать();
    Для Каждого Позиция Из НаборЗаписей Цикл
        Если Позиция.Номенклатура.ПометкаУдаления = Истина Тогда
            СписокДляУдаления.Добавить(Позиция);
        КонецЕсли;
    КонецЦикла;
    
    Для каждого УдаляемыйОбъект Из СписокДляУдаления Цикл
        НаборЗаписей.Удалить(УдаляемыйОбъект);
        Сообщить(УдаляемыйОбъект.Номенклатура);
    КонецЦикла;
    
    НаборЗаписей.Записать();
    
КонецПроцедуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс