|
Как получить движения по типу табличной части документа Корректировка Записей Ре | ☑ | ||
---|---|---|---|---|
0
web_profiler
02.12.14
✎
11:51
|
Суть:
Для каждого Табличка Из Док.метаданные().ТабличныеЧасти Цикл //отсортируем не заполненные регистры Если Док[Табличка.Имя].Количество() <> 0 Тогда Для Каждого Стр Из Док[Табличка.Имя] Цикл //тут мне необходимо чтоб иолучилось так: НаборЗаписей = РегистрНакопления.Продажи.СоздатьНаборЗаписей(); КонецЦикла; КонецЕсли; КонецЦикла; Есть документ Корректировки, перебираю заполненные табл.части и по имени таб части мне необходимо получить все записи Хелп! |
|||
1
ДенисЧ
02.12.14
✎
11:53
|
в КЗР нет табчастей, кроме имён регистра...
|
|||
2
ДенисЧ
02.12.14
✎
11:54
|
Из движений получай
|
|||
3
web_profiler
02.12.14
✎
11:55
|
(1) знаю, есть имя таб части регистра в Док[Табличка.Имя]
|
|||
4
web_profiler
02.12.14
✎
11:55
|
я ж и пишу, как по имени регистра обратиться к набору записей?
|
|||
5
ДенисЧ
02.12.14
✎
11:56
|
Движения[ИмяРегистра]
|
|||
6
web_profiler
02.12.14
✎
12:00
|
(5) По ссылке на документ не вижу Движений
|
|||
7
web_profiler
02.12.14
✎
12:01
|
Почему я движений не вижу? они же есть!!!
|
|||
8
web_profiler
02.12.14
✎
12:02
|
Ааааа, нашел... Док.Метаданные().Движения
|
|||
9
Maxus43
02.12.14
✎
12:02
|
ещё раз. Движения не хранятся в документе КЗР. Там только имена регистров
|
|||
10
Maxus43
02.12.14
✎
12:03
|
(8) не там ищешь
|
|||
11
web_profiler
02.12.14
✎
12:03
|
Док.Метаданные().Движения[Док[Табличка.Имя]] получение по индексу..... :(
|
|||
12
web_profiler
02.12.14
✎
12:04
|
(8) ребята, запутался совсем
|
|||
13
pessok
02.12.14
✎
12:05
|
(11) зачем тебе метаданные документа?
ДокументСсылка.Движения[ИмяРегистра].Прочитать(); |
|||
14
Maxus43
02.12.14
✎
12:06
|
Для каждого Стр Из ТаблицаРегистровНакопления Цикл
НаборЗаписейРН = РегистрыНакопления[Стр.Имя].СоздатьНаборЗаписей(); НаборЗаписейРН.Отбор.Регистратор.Установить(СсылкаНаКЗР); наборЗаписейРН.Прочить(); //вот после этого КонецЦикла; Или через Движения. Смотря что надо сделать |
|||
15
pessok
02.12.14
✎
12:07
|
(13) это я погорячился. ДокументОбъект, есессно
|
|||
16
web_profiler
02.12.14
✎
12:07
|
(14) а если не РегистрНакопления?
|
|||
17
Maxus43
02.12.14
✎
12:08
|
(16) там для каждого вида регистра своя ТЧ в документе, погляди хоть в конфигураторе на документ КЗР
|
|||
18
pessok
02.12.14
✎
12:09
|
(16)
Для Каждого Таблица Из Док.Метаданные().ТабличныеЧасти Цикл Для каждого Стр Из Таблица Цикл НаборЗаписейРН = РегистрыНакопления[Стр.Имя].СоздатьНаборЗаписей(); НаборЗаписейРН.Отбор.Регистратор.Установить(СсылкаНаКЗР); наборЗаписейРН.Прочить(); //вот после этого КонецЦикла; КонецЦикла |
|||
19
Maxus43
02.12.14
✎
12:10
|
(16) не, там ТЧ с разными регистрами, не тока накопления
|
|||
20
pessok
02.12.14
✎
12:10
|
(18) так не работает, но смысл ясен
Для Каждого Стр Из Док[таблица.имя] |
|||
21
Maxus43
02.12.14
✎
12:10
|
(19)>(18)
|
|||
22
web_profiler
02.12.14
✎
12:11
|
(18) там не только РегистрНакопления - там еще могут быть и регистрСведений и еще РегистрБухгалтерии
|
|||
23
web_profiler
02.12.14
✎
12:11
|
во черт задачка. вроде все элементарно, ан нет...
|
|||
24
Maxus43
02.12.14
✎
12:12
|
Ещё повторю - смотря что надо делать с движениями. Если менять конкретный набор - то через набор записей, если менять все наборы - то через движения, если просто смотреть - то запросом
|
|||
25
web_profiler
02.12.14
✎
12:12
|
Стр.Имя у меня название регистра с типом строка
|
|||
26
web_profiler
02.12.14
✎
12:13
|
Мож както так Метаданные.НайтиПоТипу(Тип)
|
|||
27
web_profiler
02.12.14
✎
12:14
|
как из строки названия регистра получить его тип тогда?
|
|||
28
Maxus43
02.12.14
✎
12:17
|
(27) Там ТЧ называются по разному, сколько раз можно посторять.
Для РН это ТЧ - ТаблицаРегистровНакопления |
|||
29
web_profiler
02.12.14
✎
12:18
|
(28) да понял я
|
|||
30
web_profiler
02.12.14
✎
12:19
|
как мне из ТаблицаРегистровНакопления (ТаблицаРегистровСведений...)
получить РегистрНакопления РегистрСведений ... соответственно |
|||
31
Жан Пердежон
02.12.14
✎
12:19
|
(0) связи строк ТЧ с движениями в 1С нет
|
|||
32
pessok
02.12.14
✎
12:19
|
(28) ну я потому и написал ему, что сначала надо обходить по метаданным все тч, а потом уже внутри этих тч обходить названия регистров
|
|||
33
web_profiler
02.12.14
✎
12:19
|
(31) о боги...
|
|||
34
web_profiler
02.12.14
✎
12:20
|
(31) Ну и че делать?
|
|||
35
pessok
02.12.14
✎
12:23
|
(34) что не получается то?
|
|||
36
web_profiler
02.12.14
✎
12:24
|
Есть имя регистра, как получить его приналежность к конкретному регистру?
|
|||
37
web_profiler
02.12.14
✎
12:25
|
К примеру "Продажи"
Метаданные.НайтиПоПолномуНаименованию("Продажи") и получаю тип РегистрНакопления Но это так не работает |
|||
38
web_profiler
02.12.14
✎
12:25
|
:(
|
|||
39
pessok
02.12.14
✎
12:27
|
(37) РегистрыНакопления["Продажи"].СоздатьНаборЗаписей()
|
|||
40
web_profiler
02.12.14
✎
12:30
|
(39) необязательно "продажи" регистрнакопления!!!!
|
|||
41
web_profiler
02.12.14
✎
12:30
|
а если он регистрсведений?
|
|||
42
web_profiler
02.12.14
✎
12:30
|
мне как раз надо и узнать чей он
|
|||
43
ssh2QQ6
02.12.14
✎
12:32
|
(36) СП:
МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(ИмяРегистра); |
|||
44
web_profiler
02.12.14
✎
12:35
|
че так чтоли? МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(ИмяРегистра);
Если МетаданныеРегистра = неопределено тогда МетаданныеРегистра = Метаданные.РегистрыСведений.Найти(ИмяРегистра); конецесли; Если МетаданныеРегистра = неопределено тогда МетаданныеРегистра = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра); конецесли; Так чтоли? |
|||
45
web_profiler
02.12.14
✎
12:35
|
(44) гов...код какойто получается :(
|
|||
46
web_profiler
02.12.14
✎
12:36
|
(44) так-то конечно я его найду
|
|||
47
Maxus43
02.12.14
✎
12:42
|
Имя регистра у РН и РС могут быть одинаковые, поиском - не надёжно.
Делай нормально... Для каждой ТЧ отдельный цикл, там ты знаешь вид уже |
|||
48
web_profiler
02.12.14
✎
12:47
|
получился вот такой гов...код :( сам себе руки отбил бы
Для Каждого Стр Из Док[Табличка.Имя] Цикл Имя = Неопределено; МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(Стр.Имя); Если МетаданныеРегистра <> неопределено Тогда Имя = РегистрыНакопления; КонецЕсли; Если МетаданныеРегистра = неопределено тогда МетаданныеРегистра = Метаданные.РегистрыСведений.Найти(Стр.Имя); Если МетаданныеРегистра <> неопределено Тогда Имя = РегистрыСведений; КонецЕсли; КонецЕсли; Если МетаданныеРегистра = неопределено тогда МетаданныеРегистра = Метаданные.РегистрыБухгалтерии.Найти(Стр.Имя); Если МетаданныеРегистра <> неопределено Тогда Имя = РегистрыБухгалтерии; КонецЕсли; КонецЕсли; Если МетаданныеРегистра = неопределено тогда МетаданныеРегистра = Метаданные.РегистрыРасчета.Найти(Стр.Имя); Если МетаданныеРегистра <> неопределено Тогда Имя = РегистрыРасчета; КонецЕсли; КонецЕсли; |
|||
49
Maxus43
02.12.14
✎
12:48
|
(48) выкинь и напиши нормально |
|||
50
web_profiler
02.12.14
✎
12:48
|
(47) как правильнее?
|
|||
51
Maxus43
02.12.14
✎
12:49
|
(50) Для каждой ТЧ отдельный цикл, там ты знаешь вид уже.
|
|||
52
web_profiler
02.12.14
✎
12:50
|
обходить ТЧ и проверять
Если Табличка.Имя = "ТаблицаРегистровСведений" тогда иначеесли Табличка.Имя = "ТаблицаРегистровНакопления" тогда .... |
|||
53
Maxus43
02.12.14
✎
12:51
|
(52) можно и так |
|||
54
web_profiler
02.12.14
✎
12:54
|
(53) согласен так правильнее, но все-равно как-то криворуко получается :)
Чувствую, что есть правильнее вариант. GROOVY бы мне руки отбил бы точно |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |