![]() |
![]() |
![]() |
|
как изменить измерение в записи регистра сведений | ☑ | ||
---|---|---|---|---|
0
vde69
модератор
11.10.13
✎
16:21
|
суть проблеммы - выполняю замену значений, но если заменяемое значение в измерении, то вместо замены выполняется запись второй. Чего-то не пойму где туплю.
вот код ИначеЕсли Метаданные.РегистрыСведений.Содержит(СтрокаТаблицы.Метаданные) Тогда Поля = Новый Массив; Для Каждого Измерение Из СтрокаТаблицы.Метаданные.Измерения Цикл Поля.Добавить(Измерение.Имя); КонецЦикла; Для Каждого Ресурс Из СтрокаТаблицы.Метаданные.Ресурсы Цикл Поля.Добавить(Ресурс.Имя); КонецЦикла; Для Каждого Реквизит Из СтрокаТаблицы.Метаданные.Реквизиты Цикл Поля.Добавить(Реквизит.Имя); КонецЦикла; МенеджерЗаписи = РегистрыСведений[СтрокаТаблицы.Метаданные.Имя].СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтрокаТаблицы.Данные); МенеджерЗаписи.Прочитать(); Для Каждого Поле Из Поля Цикл Если МенеджерЗаписи[Поле] = ТекущееЗначение Тогда МенеджерЗаписи[Поле] = НовоеЗначение; КонецЕсли; КонецЦикла; МенеджерЗаписи.Записать(); КонецЕсли; |
|||
1
Naumov
11.10.13
✎
16:23
|
Прочитай набор, измени и запиши с замещением.
|
|||
2
Defender aka LINN
11.10.13
✎
16:48
|
(0) Запись - это комбинация измерений
|
|||
3
kiruha
11.10.13
✎
17:17
|
У менеджера отсутствует свойство Отбор
PS> Случайно никто не знает - как проиндексировать измерение регистра сведений (например идет вторым), если оно "ведущее" (индексировать тогда недоступно) |
|||
4
MrStomak
11.10.13
✎
17:20
|
(3) Оно и так индексируется.
|
|||
5
shuhard
11.10.13
✎
17:21
|
(1) +1
работать через набор записей и отбор |
|||
6
Enders
11.10.13
✎
17:27
|
(5) если работать через набор, то оно не даст заменить измерение, по которому был произведен отбор ;)
(1) Это возникает, скорее всего из-за того, что когда вы меняете измерение - это уже совершенно новая запись. Как вариант при изменении: 1. Читаем менеджер записи 2. Очищаем его 3. Записываем 4. Заполняем новыми значениями 5. Записываем |
|||
7
shuhard
11.10.13
✎
17:36
|
(6)[если работать через набор, то оно не даст заменить измерение, по которому был произведен отбор ;) ]
да лан это ж два разных набора с разными отборами один при записи затрётся другой запишется |
|||
8
kiruha
11.10.13
✎
18:11
|
(4)
Оно индексируются по измерениям Измерение1 + [Измерение2 +...] http://1cexpo.ru/informacziya/28-indeksy-tablicz-bazy-dannyx-1s-predpriyatie-82.html Мне известно только Измерение2 , Измерение1 неизвестно А в регистре несколько десятко тысяч записей. Очень долго запрос исполняется - хотел проиндексировать - а тут засада - поле недоступно |
|||
9
Enders
11.10.13
✎
18:20
|
(7) Пробовал?
А то у меня как-то не получалось, кричало что запись не соответствует отбору) |
|||
10
kiruha
11.10.13
✎
18:26
|
(9)
А менялись ли измерения со свойствами Основной отбор или без ? |
|||
11
Enders
11.10.13
✎
18:31
|
(10) Точно было со свойством Осн Отбор.
Про без не помню, может тоже было, но не уверен, надо проверить) |
|||
12
Defender aka LINN
11.10.13
✎
21:57
|
(10) Основной отбор - несколько более иначе другая вещь, есличо.
(9) Следи за руками: создаем набор,удаляем. Создаем набор, заполняем, записываем. |
|||
13
Enders
14.10.13
✎
10:27
|
(12) ну в таком варианте согласен :)
Только вот в данном случае, имхо, лучше через менеджер. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |