Имя: Пароль:
1C
1С v8
Странное поведение при физическом удалении
0 Гений 1С
 
гуру
24.07.13
14:31
На периферийной точке пытаюсь подчистить документы "Переоценка товаров в рознице" - физически удаляю через метод объекта Удалить.
но зараза-программа почему то удаляет еще и движения документа.
Как можно удалить документ, не затронув движений? Может это особенность УТ 10.3 (подвязаны какие-то обработчики)?
1 ale-sarin
 
24.07.13
14:32
А кто должен остаться регистратором у движений?
2 ДенисЧ
 
24.07.13
14:32
Ты хочешь движения без регистратора?
Это в твоём духе...
3 exwill
 
24.07.13
14:32
(0) Эээ... а что, по твоему, должно быть в этих неудаленных движениях в поле Регистратор?
4 H A D G E H O G s
 
24.07.13
14:33
Погодите, погодите..
СТОЙТЕ!

Гений, это ты штоле?
5 Гений 1С
 
гуру
24.07.13
14:33
(1) (2) да, движения без регистратора хочу.
Регистраторы сами по себе весят 1 Гб.
Для периферийной нужно по ценам знать только одно - есть цена на товар на точке или нет. т.е. это не очень ценная инфа.

Но я чищу информацию об удаления в одной транзакции с удалением, непонятно, зачем удаляются движения????
6 Гений 1С
 
гуру
24.07.13
14:33
(4) ты по сучеству вопроса давай.
7 dva1c
 
24.07.13
14:33
(2) ))))
(0) Никак нельзя оставить движения без регистратора (документ).
8 ДенисЧ
 
24.07.13
14:34
(5) ты тупой? (Хотя зачем спрашиваю...)
Сделай один служебный документ и вешай движения на него.
Не может быть движения в подчинённом регистре без регистратора.
9 skunk
 
24.07.13
14:35
(7)можно ... правильнее сказать их можно сделать без регистратора
10 dva1c
 
24.07.13
14:35
(6) Как правильно читать "по сУчеству" или "по существу"? ))
11 ale-sarin
 
24.07.13
14:35
(5) Обработкой записать нужные движения с регистратором "Корректировка записей регистров". Потом убить доки.
12 dva1c
 
24.07.13
14:36
(9) Согласен. Можно. Но не в данном случае.
13 drcrasher
 
24.07.13
14:37
(all) для гения - всё это слишком просто.
должно быть как в (0) - удалил док, движения оставил.
всё. никак иначе.

всем спасибо, все свободны.
14 Maxus43
 
24.07.13
14:39
Док.ОбменДанными.Загрузка = Истина;
Док.Удалить();
15 mehfk
 
24.07.13
14:40
(0) >> На периферийной точке подчистить документы "Переоценка товаров в рознице"
убрать галочку в плане обмена не предлагать?
16 skunk
 
24.07.13
14:42
(14)это не поможет ... это они в обмен не полетят ... но движения все-таки удаляться
17 palpetrovich
 
24.07.13
14:44
(7)(8) может! только утром удалял такие "безрегистраторные" движения :)
18 dva1c
 
24.07.13
14:46
(17) Как? :)
19 Maxus43
 
24.07.13
14:50
(16) ОбменДанными.Загрузка = Истина - не препятствует регистрации в обменах. По крайней мере в УПП
20 dva1c
 
24.07.13
14:55
(19) Да тут не стоит "бодаться". Из (0): "На периферийной точке пытаюсь подчистить документы...". Работа ведется на периферийный базе.
21 Гений 1С
 
гуру
24.07.13
14:57
(7) (8) да что вы мне байки рассказываете, подаваны. Полно движений без регистратора. РИБ никогда что ли не видели?
22 Гений 1С
 
гуру
24.07.13
14:57
(14) блин, я так и знал.... надо проверить.
23 Maxus43
 
24.07.13
14:59
(22) тока потом это в центр пойдёт, удаление  доков. очисти регистрацию
24 skunk
 
24.07.13
15:04
(18)с отбором поо удаленному регистратору ... ссылка же присутствует
25 Гений 1С
 
гуру
24.07.13
15:15
(17) вот и я о том же... ;-)

(23) чищу вот так, не знаю правильно или нет, на всякий случай перестраховываюсь, удаляю и ссылку и удаление объекта:


(17) вот и я о том же... ;-)

(23) чищу вот так, не знаю правильно или нет, на всякий случай перестраховываюсь, удаляю и ссылку и удаление объекта:


Функция УдалитьБезРегистрацииДокументы(ГУ, ИмяВида) Экспорт
   З = Новый Запрос(
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    Т.Ссылка
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг КАК Т
   |
   |УПОРЯДОЧИТЬ ПО
   |    Т.Дата");
   
   З.Текст = СтрЗаменить(З.Текст, "ПоступлениеТоваровУслуг", ИмяВида);
   
   Выборка = З.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       Попытка
           Сообщить("" + Выборка.Ссылка);
           Если Удалять Тогда
               НачатьТранзакцию();
               ДО = Выборка.Ссылка.ПолучитьОбъект();
               ДО.ОбменДанными.Загрузка = истина;
               ДО.Удалить();
               УО = Новый УдалениеОбъекта(Выборка.Ссылка);
               ПланыОбмена.УдалитьРегистрациюИзменений(ГУ,  УО);
               ПланыОбмена.УдалитьРегистрациюИзменений(ГУ,  Выборка.Ссылка);
               ЗафиксироватьТранзакцию();

           КонецЕсли;
           ОбработкаПрерыванияПользователя();
           Сообщить(Символы.Таб + "Удалено");
       Исключение
           ОписаниеОшибки = ОписаниеОшибки();
           Сообщить(Символы.Таб + ОписаниеОшибки, СтатусСообщения.Важное);
       КонецПопытки;
   КонецЦикла;
КонецФункции
26 Гений 1С
 
гуру
24.07.13
15:17
(19) да, не препятствует, поэтому я подчищаю за собой следы.
27 Maxus43
 
24.07.13
15:30
(26) ну всё получается?
обращайтесь (с)
28 Maxus43
 
24.07.13
15:31
Можно было в центре зарегистрировать удаление, без удаления самих доков. Вариантов много короче
29 Ненавижу 1С
 
гуру
24.07.13
15:31
(25) зачем в тексте запроса слово РАЗЛИЧНЫЕ?
30 Maxus43
 
24.07.13
15:38
Транзакция там тоже сомнительно... ну сути не меняет
31 Сергиус
 
24.07.13
15:39
(29) на всякий случай!) А вообще - тут скорее идет речь не про  движения без регистраторов, а про движения, у которых в качестве регистратора ненайденные ссылки на объект..
32 Ненавижу 1С
 
гуру
24.07.13
15:43
(31) почему?
33 Сергиус
 
24.07.13
15:48
(31) что почему?
34 Ненавижу 1С
 
гуру
24.07.13
15:50
(33) почему ты решил, что "скорее идет речь не про  движения без регистраторов, а про движения, у которых в качестве регистратора ненайденные ссылки на объект"
35 Сергиус
 
24.07.13
15:54
(34) Потому, что когда удаляешь сам объект, а его движения остаются, то что по твоему будет в поле регистратор? Идентификатор ненайденной ссылки.
36 Maxus43
 
24.07.13
15:55
(35) да как хочешь называй, ссылка один хрен битая)
37 Сергиус
 
24.07.13
15:58
(36) Просто уточнение..про "движения без регистратора".

Формально регистратор там всегда есть..его "всего лишь" найти нельзя)
38 Ненавижу 1С
 
гуру
24.07.13
16:02
(37) понятное дело есть, оно NULL не может быть, это часть первичного ключа
39 Mitriy
 
24.07.13
16:04
(0) звезда в шоке...
40 Mitriy
 
24.07.13
16:07
Если бы просто был вопрос о том, как оставить движения при удалении документов, я бы еще понял, но с таким якобы опытом удивляться тому, что при удалении документа удаляются движения, то бишь впервые с этим столкнуться - это воистину гениальный маразм...
41 Mitriy
 
24.07.13
16:09
(0) выгрузить движения документа в таблицы значений, удалить документ, потом записать наборы обратно...
42 Гений 1С
 
гуру
24.07.13
16:16
(36) битые ссылки в периферийке - это нормальное явление.
Пример - регистр "Продажи по дисконтным картам". Путешествует по всем точкам, а вот документы не путешествуют.... гыгыгы.

(29)  да с прошлого запроса осталось, откуда копировал, не суть. не буквоедь.

(41) любишь секс стоя в гамаке? Зачем, если проще удалить документы? там объемы огого.

Цель всего этого еще раз.
у меня в базе документы переоценки весят 1 ГБ, база весит 100 Гб (в центре), периферийку путем разных сжатий ужал до 40 Гб, хочу лишнее почикать, решил документы переоценки грохнуть, нафиг они в переферийке не нужны, вот и написал код... Но когда начал смотреть, увидел, что на девственно чистом плане обмена в центр несутся удаления регистров сведений... Остановил, очистил план обмена, задумался.

Поставлю обмен данными загрузка = истина, проверю. думаю, все будет норм.
43 Mitriy
 
24.07.13
16:21
(42) тогда удали напрямую в скуле...
44 braslavets
 
24.07.13
16:25
(42) Перед удалением выгрузи движения в ТЗ, грохни документ, загрузи ТЗ в движения и запиши с ОбменДанными.Загрузка = Истина
45 Гений 1С
 
гуру
24.07.13
16:27
(43) это файловая
(44) сложно и обьемы большие
46 Mitriy
 
24.07.13
16:30
(45) загони ради такого дела в скуль... все равно на порядки быстрее получится... а вообще 40 гигов в файле - это уже за гранью фола...
47 Лефмихалыч
 
модератор
24.07.13
16:30
(0) автоудаление движений отключи и не будут чиститься регисты
48 braslavets
 
24.07.13
16:35
(45) ВыгрузкаЗагрузкаВXML
Выгрузи регистр по удаляемым документам, грохни документы, загрузи обратно
49 Mitriy
 
24.07.13
16:35
(47) не факт... в типовых у многих документов автоудаление отключено, удаляются программно - надо код лопатить... а если у автора РИБ, то вообще гемор...
50 Гений 1С
 
гуру
24.07.13
16:46
да ладно, думаю обмен данными загрузка = истина решает все проблемы. спасибо за консультацию
51 katc
 
24.07.13
17:01
Гений, ну в чем проблема, удаляешь изменения в переферийной базу, затем в центральное базе регистрируешь только движения и они у тебя в переферийной с "Объект не найден...." в измерение регистратор. а затем вообще запрети этому документу ходить по обмену. а регистрам разреши. Будет не красиво, зато не будешь страдать фигней по удалению документов
52 Maxus43
 
24.07.13
17:02
(51) быстрей удалить документы, чем через обмен гнать все движения... ну разными путями можно сделать короче
53 Гений 1С
 
гуру
26.07.13
18:11
(51) нет, проще как я сделал. уже работает, сообщаю, спасибо за ОбменДаннными.Загрузка. ;-)

(52) вот и я про то что проще удалить.

Прочистил, все хоккей.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn