|   |   | 
| 
 | Набор записей регистра вытащить запросом | ☑ | ||
|---|---|---|---|---|
| 0
    
        Beduin 30.08.14✎ 12:43 | 
        Никак похоже? Или есть варианты.     | |||
| 1
    
        PR 30.08.14✎ 12:45 | 
        (0) Хрень какая-то.     | |||
| 2
    
        Beduin 30.08.14✎ 12:48 | 
        (1)
 ВЫБРАТЬ РегистрацияИзменений.Узел, РегистрацияИзменений.НомерСообщения, РегистрацияИзменений.Регистратор, РегистрацияИзменений.Регистратор.Дата КАК Дата ИЗ РегистрБухгалтерии.Хозрасчетный.Изменения КАК РегистрацияИзменений ГДЕ РегистрацияИзменений.Узел = &Узел Мне нужно здесь набор записей получить, ссылку на него, чтобы с планом обмена работать | |||
| 3
    
        PR 30.08.14✎ 12:52 | 
        (2) Что значит ссылка на набор записей?
 Набор записей — это просто тупо набор записей. | |||
| 4
    
        shuhard 30.08.14✎ 12:53 | 
        (2) ссылка у набора записей это сильнее Фауста (с)     | |||
| 5
    
        Beduin 30.08.14✎ 12:55 | 
        (4) В плане обмена регистрация идет набором записей. Не ссылкой, набор записей. Порция данных, неважно, есть ли в запросе таблицы уже готовые для этого.     | |||
| 6
    
        PR 30.08.14✎ 13:02 | 
        (5) Да. И че?
 Читай набор записей, а в нем по номерам строк меняй только нужные строки. | |||
| 7
    
        Beduin 30.08.14✎ 13:05 | 
        (6)
 Долго работает. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегистрацияИзменений.Узел, | РегистрацияИзменений.НомерСообщения, | РегистрацияИзменений.Регистратор, | РегистрацияИзменений.Регистратор.Дата КАК Дата |ИЗ | РегистрБухгалтерии.Хозрасчетный.Изменения КАК РегистрацияИзменений |ГДЕ | РегистрацияИзменений.Узел = &Узел"; Запрос.УстановитьПараметр("Узел",ПланыОбмена.Хозрасчетный.НайтиПоКоду("Основной")); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл к = к+1; вввв = 999; //Данные = Выборка.Получить(); //Если Данные.Отбор.Регистратор.Значение.Дата < '20130101' Тогда Если Выборка.Дата < '20130101' Тогда НаборЗаписей = Выборка.Регистратор.ПолучитьОбъект().Движения.Хозрасчетный; ПланыОбмена.УдалитьРегистрациюИзменений(ПланыОбмена.Хозрасчетный.НайтиПоКоду("Основной"),НаборЗаписей); //Прервать; КонецЕсли; Состояние(к); КонецЦикла; | |||
| 8
    
        RomanYS 30.08.14✎ 13:06 | 
        Выборка.Регистратор.ПолучитьОбъект() в цикле - быстро не должно быть ))     | |||
| 9
    
        Beduin 30.08.14✎ 13:07 | 
        (8) Нужно как то ускорить)
 Я же объект в запросе не могу получить. | |||
| 10
    
        КонецЦикла 30.08.14✎ 13:10 | 
        Недоработали в этом месте также... ждем 9-ку     | |||
| 11
    
        RomanYS 30.08.14✎ 13:12 | 
        (9) 
 создал набор, установил отбор, прочитал (не уверен, что здесь надо) наверное быстрее будет чем Док.Движения | |||
| 12
    
        RomanYS 30.08.14✎ 13:13 | 
        в типовых есть стандартная обработка - регистрация изменений для обмена     | |||
| 13
    
        Beduin 30.08.14✎ 13:24 | 
        (12) Вот из типовой
 // осталось теперь все измененные данные получить и их поместить в дерево ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, УзелОбмена.НомерОтправленного + 1, МетаданныеДляОграничения); Пока ВыборкаИзменений.Следующий() Цикл // имененный элемент Данные = ВыборкаИзменений.Получить(); // данные должны быть Получение изменений, работает так же долго. Проверял) | |||
| 14
    
        RomanYS 30.08.14✎ 13:29 | 
        Код из (7) работает (т.е. надо только ускорить)?     | |||
| 15
    
        Beduin 30.08.14✎ 13:33 | 
        (14) Да)
 У меня задача из кучи баз сливать только проводки. Я сделал план обмена с типом на регистром бухгалтерии. Данные нужны с 2013 года. Чтобы не регистрировать по отдельности каждый решил зарегистрировать все, а потом не нужное удалить. | |||
| 16
    
        RomanYS 30.08.14✎ 13:35 | 
        тогда 
 НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей .Отбор.Регистратор.Установить(Выборка.Регистратор); и убери поиск узла из цикла: ПланыОбмена.Хозрасчетный.НайтиПоКоду("Основной") найди 1 раз и используй | |||
| 17
    
        RomanYS 30.08.14✎ 13:36 | 
        (15) наверное быстрее было зарегистрировать только то, что нужно, чем потом чистить     | |||
| 18
    
        RomanYS 30.08.14✎ 13:38 | 
        условие на дату засунуть в запрос - мелочь, но немного ускорит     | |||
| 19
    
        Beduin 30.08.14✎ 13:43 | ||||
| 20
    
        RomanYS 30.08.14✎ 13:47 | 
        (19) сначала замени 
 НаборЗаписей = Выборка.Регистратор.ПолучитьОбъект().Движения.Хозрасчетный; на (16) | |||
| 21
    
        RomanYS 30.08.14✎ 13:53 | 
        +(20) и покажи замер     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |