Имя: Пароль:
1C
1С v8
УРБД. Оптимизация. Фильтр при выгрузке Как?
,
0 kyrgyz
 
21.08.12
10:43
Увидел такой код от предыдущего кодера. Понимаю что он сначал все грузит и только потом удаляет по реквизиту. Да еще все это в цикле.
задался целю В корне переделать. Необходимо при выгрузке уже отфильтровать. Как это делать? Направьте на путь истинный.

Процедура УдалитьНеНужныеДокументы()
 Если СокрЛП(ПланыОбмена.ПоОрганизации.ЭтотУзел()) = "Выгрузка" Тогда
   СЗ_ТипыДокументов = Новый СписокЗначений;
   СЗ_ТипыДокументов.Добавить("РеализацияТоваровУслуг");
   ....
    Для Каждого СтрокаСЗ Из СЗ_ТипыДокументов Цикл
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
      |Док.Ссылка
      |ИЗ
      |Документ." + СтрокаСЗ.Значение + " КАК Док
      |ГДЕ
      |Док.Флаг = ИСТИНА
      |И Док.ПометкаУдаления = ЛОЖЬ";    
      Выборка = Запрос.Выполнить().Выбрать();
      Пока Выборка.Следующий() Цикл
        ОбДок = Выборка.Ссылка.ПолучитьОбъект();
        ОбДок.Удалить();
   
      КонецЦикла;
     КонецЦикла;
  КонецЕсли;
КонецПроцедуры
//
Процедура ПриЗаписи(Отказ)
   УдалитьНеНужныеДокументы();
...
1 wirg
 
21.08.12
10:52
поищи УРБД в kb.mista.ru процедурка ПриОтправке вроде
2 DrShad
 
21.08.12
10:53
[Необходимо при выгрузке уже отфильтровать. ] нужно фильтровать еще при регистрации изменений
3 DrShad
 
21.08.12
10:53
(1) древняя и устаревшая как этот мир
4 Maxus43
 
21.08.12
10:55
(2) +1
Не надо даже регистрировать для обмена не нужное, делается подписками на события
5 DrShad
 
21.08.12
10:56
(4) трудно выбить из голов всякие атавизмы :))
6 kyrgyz
 
21.08.12
10:57
(2) Согласен с этой мыслю. Но пока решил хотябы при отправке.
(1) ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)
(4) Понимаю тоже вещь. Вот ведь фенечки снеговика! Выбирай что хочешь.
А в 1с77 я блин парился изобретал приблуды.
7 DrShad
 
21.08.12
10:58
(6) если что то (2) и (4) это одно и то же :)))
8 kyrgyz
 
21.08.12
10:58
:)  Прям слюнки потекли...
9 kyrgyz
 
21.08.12
11:00
Что за событие ловить?
И еще вотесли уже база живет полноценной жизьню с обменом то при переходе на пописку то как быть с уже сидящими в регистрации объектами. придется почистить и заново их записать?
10 Maxus43
 
21.08.12
11:01
(8) всё описано в библии 1с, найли главу про обмены, там на паре страниц расписаны все возможности по работе с регистрацией изменений. "Практическое пособие разработчика" ЕМНИП
11 Maxus43
 
21.08.12
11:02
(9) ничего не надо чистить, зарегистрированы только не отправленные
12 DrShad
 
21.08.12
11:04
(11) ну у него же там не по фильтру
13 Maxus43
 
21.08.12
11:09
(12) после обмена 1 раз запустит свой чудо код (0) :)
14 kyrgyz
 
21.08.12
11:14
(13) По ходу уже догадался :)
Про УдалитьРегистрациюизменений() при выгрузке допер. ДАже не стал делать для проверки вот ищу как там с пописками замутить. Вроде пишут что в типовых это есть. Но пока не нашел. Ищу...
15 Maxus43
 
21.08.12
11:15
(14) в типовой УТ есть, смысл не в УдалитьРегистрациюизменений() , а в заполнении получателей только нужными, факт регистрации не нужных не должен проходить вобще
16 kyrgyz
 
21.08.12
11:19
(15) Понимаю мысль. Как раз это ищу. Какое нибудь ключевое слово хоть скажите чтоб поиск ускорить.
А не это - "Объект.Обменданными.Получатели.Автозаполнение =ложь"  ?
17 Maxus43
 
21.08.12
11:20
(16) типа это, и список получателей заполнить программно
18 Maxus43
 
21.08.12
11:20
лучше почитай статьи какие-нить, а вот потом уж вопросы задавай если не получается, теорию узнай сначала
19 kyrgyz
 
21.08.12
11:22
(18) Верно подмечено. Сенкс за наводки! Буду тренироваться на зайчиках.
20 kyrgyz
 
21.08.12
11:26
Засада. Просвяытил но в другой ветке
v8: Управление регистрацией в планах обмена

Чтоб работать с подпиской придется авторегистрацию выключить. Не хотелось бы.
Будем думать..
21 Maxus43
 
21.08.12
11:27
(20) не обязательно
22 Maxus43
 
21.08.12
11:28
авторегистрация - ничего не значит, если есть код который этим рулит. код (16) грубо говоря снимает этот признак для конкретного объекта
23 kyrgyz
 
21.08.12
11:34
Когда писал (16) я тоже так думал. Но та ветка меня в сосмнения привел. ОК. Сенкс!