![]() |
|
Набор записей регистра вытащить запросом | ☑ | ||
---|---|---|---|---|
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) и покажи замер
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |