![]() |
![]() |
![]() |
|
ЗарегистрироватьИзменения для всех записей РС с отборами | ☑ | ||
---|---|---|---|---|
0
Stim
14.03.12
✎
17:23
|
почему нельзя зарегистрировать изменения для плана обмена всех записей РС? Обязательно нужно по полям отбора устанавливать отбор и отобранные записи регистрировать??
В СП написано: ПланыОбменаМенеджер (ExchangePlansManager) ЗарегистрироватьИзменения (RecordChanges) Синтаксис: ЗарегистрироватьИзменения(<Узлы>, <Данные>) бла-бла.. Для набора записей регистра сведений, в случае, если регистратор не определен, в качестве ключа используется совокупность измерений, входящих в основной отбор. А если регистр сведений является периодическим и включен основной отбор по периоду, то в ключ входит еще и период. Мне нужно зарегистрировать все записи РС с отбором по организации. Но - не регистрируется, нужно устанавливать отборы на остальные измерения. Значит, нужно их получать отдельно и устанавливать отбор по каждому, делая столько вложенных циклов, сколько измерений с отборами есть? почему так глупо сделано? |
|||
1
Maxus43
14.03.12
✎
17:30
|
(0) для всего РС в <Данные> - метаданные подсунь.
в СП же написано что целый набор записей можно зарегистрировать... ошибку даёт чтоль? |
|||
2
Maxus43
14.03.12
✎
17:31
|
(1) + да, всё правильно, только с регистратором - целым набором пишет, иначе есть риск потереть остальное, если не детализировать отбор
|
|||
3
ptiz
14.03.12
✎
17:32
|
(0) Вопрос не к Мисте, а к 1С.
|
|||
4
Kashemir
14.03.12
✎
17:35
|
(0) Требования для независимых регистров сведений абсолютно логичные и для понимания откуда они взялись - следует разобраться каким образом реализован обмен для независимых регистров сведений.
|
|||
5
Stim
14.03.12
✎
17:37
|
(2)каким образом потереть?) при чтении?
|
|||
6
Maxus43
14.03.12
✎
17:37
|
(5) при загрузке в базу-приёмник
|
|||
7
Stim
14.03.12
✎
17:38
|
(1)метаданные мне не нужны. весь регистр не нужен, нужны только записи по организации.
|
|||
8
Maxus43
14.03.12
✎
17:39
|
(7) зарегь всё, удалиш из другой базы потом. удалить то легче) раз уверен что не надо другую организацию - набор записей пустой запишеш
|
|||
9
Stim
14.03.12
✎
17:39
|
(6) ну логично. но все равно как-то криво. неужели нельзя было сделать автоматическое определение отборов по набору записей?
|
|||
10
Maxus43
14.03.12
✎
17:39
|
(8) + удалить регистрацию изменений не забыть ещё
|
|||
11
Maxus43
14.03.12
✎
17:39
|
(9) а вот это вроде можно было сделать... но не судьба)
|
|||
12
Stim
14.03.12
✎
17:40
|
(4) ага, ага. логично, но не доделано
|
|||
13
Kashemir
14.03.12
✎
17:43
|
(9) Не вижу здесь кривизны. С учетом всех нюансов наиболее логичное решение, никаких действительно "лишних" действий не требующее.
|
|||
14
Kashemir
14.03.12
✎
17:45
|
(11) Если речь идет о функции, которая сама разобьет произвольный отбор до нужной детализации основного отбора - то кто ж мешает написать ?
|
|||
15
Stim
14.03.12
✎
17:45
|
+ простой пример - РС счетаУчетаНоменклатуры.
основной отбор у него по всем 4 измерениям: организация Номенклатура Склад ТипСклада чтобы зарегистрировать записи по нужной мне организации - мне нужно устанавливать отборы на организацию, на каждую номенклатуру, на каждый склад и тип склада. нужно строить вложенные циклы 4 порядка вложенности и регистрировать наборы записей для КАЖДОЙ номенклатуры. Это вместо того, чтобы вырузить разом все записи по организации и подсунуть "умному" приемнику, который их сам раскидает по отборам. Один набор записи по организации вместе 10 000 по номенклатурам, складам и видам складов |
|||
16
Stim
14.03.12
✎
17:47
|
вместе = вместо
|
|||
17
Kashemir
14.03.12
✎
17:56
|
(15)Попробуй продумай собственную безотказную схему обмена для независимых регистров сведений - думаю с учетом всех нюансов пересмотришь свою позицию. Я эту стадию уже прошел пару лет назад, задаваясь подобными вопросами :)
|
|||
18
hhhh
14.03.12
✎
18:01
|
(16) ты лучше предложи, чтобы группу справочника целиком регистрировало, вот это бы было нужнее. Или документы за месяц одной командой. С регистрами - это ты мелко.
|
|||
19
Stim
14.03.12
✎
18:04
|
(18) аха. жаль, что нельзя списокЗначений отправлять для регистрации
|
|||
20
Stim
14.03.12
✎
18:11
|
ну вобщем как-то так(пока не тестил):
Процедура ЗарегистриватьЗаписиСчетаУчетаОрганизации(Организация) МассивНоменклатуры = ПолучитьМассивЗначенийСчетаУчета("номенклатура",Организация); МассивСкладов = ПолучитьМассивЗначенийСчетаУчета("Склад",Организация); МассивТиповСкладов = ПолучитьМассивЗначенийСчетаУчета("ТипСклада",Организация); Для каждого типСклада ИЗ МассивТиповСкладов Цикл Для каждого Склад ИЗ МассивСкладов Цикл Для каждого Номенклатура ИЗ МассивНоменклатуры Цикл НаборЗаписей = регистрысведений.СчетаУчетаНоменклатуры.создатьНаборзаписей(); НаборЗаписей.Отбор.типСклада.установить(Организация.типСклада); НаборЗаписей.Отбор.Склад.установить(Организация.Склад); НаборЗаписей.Отбор.номенклатура.установить(Организация.номенклатура); НаборЗаписей.Прочитать(); планыОбмена.ЗарегистрироватьИзменения(ссылка,НаборЗаписей); конеццикла; конеццикла; конеццикла; КонецПроцедуры Функция ПолучитьМассивЗначенийСчетаУчета(имяМд,Организация) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | СчетаУчетаНоменклатуры."+имяМд+" КАК Ссылка |ИЗ | РегистрСведений.СчетаУчетаНоменклатуры КАК СчетаУчетаНоменклатуры |ГДЕ | СчетаУчетаНоменклатуры.Организация = &Организация"; Запрос.УстановитьПараметр("Организация",Организация); возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); КонецФункции |
|||
21
Stim
14.03.12
✎
18:11
|
тьфу.
НаборЗаписей.Отбор.типСклада.установить(типСклада); и тд) |
|||
22
Kashemir
14.03.12
✎
18:12
|
(20) Мда, использовать все комбинации всех значений это конечно очень впечатляет. Может все проще использовать только существующие комбинации ? Или очень хочется еще и что-нибудь удалить в базе приемнике ?
|
|||
23
Kashemir
14.03.12
✎
18:14
|
(20) Кстати, а зачем набор то читать ?
|
|||
24
Kashemir
14.03.12
✎
18:19
|
(20) Еще ошибки:
- не указан отбор по Организации - нет никакой надобности создавать набор в цикле, достаточно создать 1 раз и просто менять отбор. Считай набор записей с заполненными значениями основного отбора - это по сути логический аналог понятия "ссылки" для "односложных" объектов ... справочников документов и т.д. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |