|
Удалить регистрацию изменений удаленных наборов записей регистра сведений | ☑ | ||
---|---|---|---|---|
0
Соратник
26.05.15
✎
09:25
|
День добрый. Вопрос следующий:
Необходимо почистить регистр сведений. Из-за того, что передается большой объем данных в обмены решил вычищать его поочередно в каждом из узлов РБД. Вот такой код: НаборЗаписей=РегистрыСведений.СпецификацияВнутреннихРеализаций.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ИДДокументаОтгрузки.Значение=Выборка.ИДДокументаОтгрузки; НаборЗаписей.Отбор.ИДДокументаОтгрузки.Использование=Истина; НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); ПланыОбмена.УдалитьРегистрациюИзменений(ГлавныйУзел, НаборЗаписей.ЭтотОбъект); Недопустимое значение параметра (параметр номер '2') Как правильно очистить изменения по удаленным наборам записей? Спасибо. |
|||
1
vicof
26.05.15
✎
09:33
|
Убери ЭтотОбъект
|
|||
2
Широкий
26.05.15
✎
09:34
|
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Это тоже не надо |
|||
3
Соратник
26.05.15
✎
09:53
|
(1)
ПланыОбмена.УдалитьРегистрациюИзменений(ГлавныйУзел, НаборЗаписей); по причине: Недопустимое значение параметра (параметр номер '2') |
|||
4
Соратник
26.05.15
✎
09:54
|
(2) Как же вычистятся записи? что-то не понял
|
|||
5
Defender aka LINN
26.05.15
✎
10:12
|
(4) Записать() оставь.
|
|||
6
Соратник
26.05.15
✎
10:19
|
(5) Допустим... хорошо.
Как изменения не регистрировать :) |
|||
7
Stim
26.05.15
✎
10:20
|
мде.
набор записей целиком не удаляется. удаляй каждую запись из него в цикле. Специалисты, тоже мне |
|||
8
Defender aka LINN
26.05.15
✎
10:28
|
(7) шта?!
(6) Выкинуть "УдалитьРегистрациюИзменений", у тебя этот реистр в состав плана обмена не входит |
|||
9
Соратник
26.05.15
✎
10:30
|
(7) Удаляется... метод Очистить() :)
Как изменения не регистрировать? :) |
|||
10
Соратник
26.05.15
✎
10:31
|
(8) Входит и включена авторегистрация
|
|||
11
Basilio
26.05.15
✎
10:31
|
(7) Стаж: 6 лет 3 месяца 12 дней
И откуда вы такие беретесь? |
|||
12
Соратник
26.05.15
✎
10:34
|
(11) Может как я из "семерки" ? :)
|
|||
13
Stim
26.05.15
✎
10:34
|
+ не точно сказал - набор записей удалится только в том случае, если он построен по всем измерениям с установленным признаком "ведущий отбор".
Если как у ТС - то не удалится, надо перебирать записи |
|||
14
Stim
26.05.15
✎
10:35
|
||||
15
Соратник
26.05.15
✎
10:36
|
(13) Повторю... записи удаляются!!!!!!!
Как не регистрировать изменения? :))))) |
|||
16
Defender aka LINN
26.05.15
✎
10:36
|
(13) ШТА?!
|
|||
17
Defender aka LINN
26.05.15
✎
10:37
|
(15) Еще раз: Регистр. Не. Входит. В. Состав. Плана. Обмена.
|
|||
18
Stim
26.05.15
✎
10:37
|
(15) блин. ну удалится с таблицы регистрации, мы про это.
про то, что записи удалятся из регистра никто не сомневается |
|||
19
Stim
26.05.15
✎
10:38
|
(16) то, что видишь
|
|||
20
Соратник
26.05.15
✎
10:39
|
Думаю если бы я записывал в регистр, то все отрабатывало бы корректно. А поскольку удаляю, то вот такая проблема...
|
|||
21
Defender aka LINN
26.05.15
✎
10:40
|
(18) "Если как у ТС - то не удалится"
"про то, что записи удалятся из регистра никто не сомневается" Как ты живешь-то так вообще? |
|||
22
Stim
26.05.15
✎
10:40
|
+ регистрация изменений или удаление зарегистрированных изменений регистров сведений происходит наборами записей, отобранных по всем измерениям с основным отбором
|
|||
23
hhhh
26.05.15
✎
10:41
|
(20) так вам наоборот надо зарегистрировать, зачем удалять регистрацию?
|
|||
24
Stim
26.05.15
✎
10:41
|
(21) см 22
|
|||
25
Соратник
26.05.15
✎
10:43
|
||||
26
Defender aka LINN
26.05.15
✎
10:43
|
(22) Так тогда и говори про регистрацию. А то "набор записей удалится". Набор и без отбора прекрасно удалится.
|
|||
27
Соратник
26.05.15
✎
10:44
|
(23) Хочу удалить только в одном узле, чтоб не ушло в обмены... большой объем обмены стопорятся. Я хочу в каждом узле отдельно почистить.
|
|||
28
Defender aka LINN
26.05.15
✎
10:45
|
(24) Полностью рабочий код:
|
|||
29
Stim
26.05.15
✎
10:45
|
(26) блин, ну я говорю про удаление регистрации изменений.
думаю, это понятно, раз мы об этом говорим |
|||
30
Defender aka LINN
26.05.15
✎
10:45
|
(27) А ты тугой...
|
|||
31
Соратник
26.05.15
✎
10:47
|
(22) так речь про регистрацию изменений построчно.... вот оно как, возможно в этом и проблема
|
|||
32
Defender aka LINN
26.05.15
✎
10:49
|
У автора налицо тяжелое поражение зрительных нервов - он не умеет читать.
|
|||
33
Соратник
26.05.15
✎
10:53
|
Может и не вижу то, что перед носом... первый раз взялся за подобное (регистрация изменений вручную), чего хамить то? Проще надо быть!!!
|
|||
34
Stim
26.05.15
✎
10:53
|
(28) это полностью не рабочий код. ты его даже не проверял, а я сейчас проверил.
Отбор нужно строить по всем измерениям с основным отбором, только тогда удалится. отбор должен быть кроме Объекта еще по Типу и по Виду |
|||
35
Stim
26.05.15
✎
10:54
|
(32) зачем ему читать неправду. учи матчасть
|
|||
36
Stim
26.05.15
✎
10:55
|
+
только тогда удалится регистрация изменений. а то опять не прочитаешь |
|||
37
Соратник
26.05.15
✎
10:55
|
(34) Сейчас попробую по всем измерениям отбор. Отпишусь.
|
|||
38
hhhh
26.05.15
✎
10:56
|
(33) ну просто тупо бзик у вас. Зачем лазить построчно трахаться удалять эту регистрацию? Если можно тупо одной строчкой удалить регистрацию всего регистра.
|
|||
39
Defender aka LINN
26.05.15
✎
10:56
|
(34) Ащета проверил. ЧТО он регистрирует - это другой вопрос.
(32) Иногда лучше жевать... У долбоклюя из (0) возникает долбаное ИСКЛЮЧЕНИЕ. |
|||
40
Stim
26.05.15
✎
10:58
|
(39) и что? у тебя удалился набор записей, отобранный всего по объекту?
|
|||
41
Stim
26.05.15
✎
10:59
|
+ проверь, к примеру, на БП 1.6, или поставь там, где проверяешь свойство измерения Основной отбор в Истина.
и поймешь всю суть (22) |
|||
42
Соратник
26.05.15
✎
11:00
|
(39) Сгинь хам
|
|||
43
Stim
26.05.15
✎
11:01
|
(37) не по всем, а по тем, которые в основном отборе РС
|
|||
44
Defender aka LINN
26.05.15
✎
11:01
|
(40) У меня не удалился набор записей, потому что я его не удалял. У меня удалилась регистрация набора записей, у которого измерение с основным отбором (Объект) = Неопределено. И при этом не произошло ни единой исключительной ситуации, смекаешь?
|
|||
45
Stim
26.05.15
✎
11:04
|
(44) я смекаю. что ты не знаешь матчасть и ведешь себя по-хамски.
|
|||
46
Соратник
26.05.15
✎
11:06
|
(38) // Если можно тупо одной строчкой удалить регистрацию всего регистра.
Будьте добры подробнее |
|||
47
Stim
26.05.15
✎
11:08
|
(46) указывай метаданные регистра в данных
|
|||
48
Defender aka LINN
26.05.15
✎
11:08
|
(45) Зашибись. Бред несете вы, а матчасть не знаю я.
Еще раз: у автора возникает ИСКЛЮЧЕНИЕ. Если бы регистр входил в состав плана обмена, то хоть какие отборы ставь или не ставь - этого бы не было. А ты продолжаешь гнуть про отборы. |
|||
49
Stim
26.05.15
✎
11:10
|
(48) как ты определил, что регистр не входит в состав плана обмена?
|
|||
50
hhhh
26.05.15
✎
11:11
|
да. ГлавныйУзел в студию.
|
|||
51
Stim
26.05.15
✎
11:11
|
+ из-за того, что автор сказал, что по этому регистру передается по РИБ большой объем данных?
|
|||
52
Defender aka LINN
26.05.15
✎
11:12
|
(49) бьется головой в истерике
В (0) русским по белому написано: "Недопустимое значение параметра (параметр номер '2') ". НОМЕР ДВА. К примеру, в БП для узла полного плана обмена вот этот код выдаст РОВНО ТУ ЖЕ ошибку:
|
|||
53
Stim
26.05.15
✎
11:15
|
(52) Недопустимое значение параметра бывает не только когда данные не в составе узла. В случае наборов записей РС это бывает, когда отбор построен не по всем измерениям основного отбора.
|
|||
54
Соратник
26.05.15
✎
11:20
|
в посте 25 я скрин состава плана обмена размещал
|
|||
55
Соратник
26.05.15
✎
11:21
|
(47) хорошая мысль, сейчас попробую
|
|||
56
Defender aka LINN
26.05.15
✎
11:26
|
(53) Расскажи тогда, почему в (28) исключения не возникает. (54) Какие ваши доказательства, что "ГлавныйУзел" - узел этого плана обмена?
|
|||
57
Stim
26.05.15
✎
11:39
|
(56) потому что основной отбор указан только у одного измерения - Объект. Вид и Тип - не указан. Это в БП 2.0 я смотрел
В БП 1.6, Вид и Тип - в основном отборе РС, и код в (28) вызовет исключение. |
|||
58
Serg_1960
26.05.15
✎
11:44
|
Я только одну фразу скажу а вы продолжайте дальше спорить:
Для удаление регистрации по регистру надо передавать во втором параметре набор записей с установленным отборам по всем(!) измерениям, у которых стоит признак "основной отбор". |
|||
59
Соратник
26.05.15
✎
11:44
|
||||
60
Stim
26.05.15
✎
11:46
|
(58) я это уже давно сказал
|
|||
61
hhhh
26.05.15
✎
11:50
|
(59) обычные формы или управляемые?
|
|||
62
Соратник
26.05.15
✎
11:53
|
(61) Обычные
|
|||
63
Serg_1960
26.05.15
✎
11:57
|
(59) Если я правильно разобрался в картинке, то нижеследующая строка должна вернуть истину:
Метаданные.ПланыОбмена.НормативноСправочнаяИнформация.Состав.Содержит(Метаданные.РегистрыСведений.СпецификацияВнутреннихРеализаций) |
|||
64
Соратник
26.05.15
✎
11:58
|
(47) Вот такой код не выдаёт ошибок, но изменения остаются.
Пока Выборка.Следующий() Цикл Сообщить("Удаляется " + Выборка.Получатель + " " + Выборка.ДатаДокумента + " №" + Выборка.НомерДокумента); НаборЗаписей=РегистрыСведений.СпецификацияВнутреннихРеализаций.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ИДДокументаОтгрузки.Значение=Выборка.ИДДокументаОтгрузки; НаборЗаписей.Отбор.ИДДокументаОтгрузки.Использование=Истина; НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); ОбработкаПрерыванияПользователя(); КонецЦикла; ПланыОбмена.УдалитьРегистрациюИзменений(ГлавныйУзел, Метаданные.РегистрыСведений.СпецификацияВнутреннихРеализаций); |
|||
65
Соратник
26.05.15
✎
11:59
|
(63) В табло возвращает Истину
|
|||
66
Serg_1960
26.05.15
✎
12:04
|
ТС, проверь отбор на предмет соответствия (58)... и второй части фразы (53) :) (Stim я тебе услышал, но услышали ли тебя другие?)
|
|||
67
Соратник
26.05.15
✎
12:07
|
(66) отбор не соответствует этому условию, мне как и говорил Stim, придется видимо построчно удалять, так как каждое измерение с признаком "основной отбор"
|
|||
68
Serg_1960
26.05.15
✎
12:10
|
Построчно удалять? Чай не в каменном веке живём :) Запрос на записи с "неполным" отбором с выводом всех различных измерений записей. Потом в цикле обход; построение отбора по всем измерениям, удаление записей и регистрации. Как-то типа так.
|
|||
69
Соратник
26.05.15
✎
12:13
|
(68) ну так и делаю уже :)
|
|||
70
Serg_1960
26.05.15
✎
12:17
|
Удачи (вышел).
|
|||
71
Соратник
26.05.15
✎
12:45
|
Спасибо Stim и Serg_1960 - именно они были целиком и полностью правы.
Defender aka LINN - сам оказался хамом и долбоклюем. Итак результат. Вот работоспособный код, привожу целиком вместе с запросом: ТекстЗапросаСтарыхСпецификаций = "ВЫБРАТЬ |СпецификацияВнутреннихРеализаций.ИДДокументаОтгрузки, |СпецификацияВнутреннихРеализаций.Номенклатура, |СпецификацияВнутреннихРеализаций.ЕдиницаИзмерения, |СпецификацияВнутреннихРеализаций.ХарактеристикаНоменклатуры, |СпецификацияВнутреннихРеализаций.ДатаДокумента, |СпецификацияВнутреннихРеализаций.НомерДокумента, |СпецификацияВнутреннихРеализаций.Отправитель, |СпецификацияВнутреннихРеализаций.Получатель, |СпецификацияВнутреннихРеализаций.НомерСтрокиОтправителя |ИЗ |РегистрСведений.СпецификацияВнутреннихРеализаций КАК СпецификацияВнутреннихРеализаций |ГДЕ |СпецификацияВнутреннихРеализаций.ДатаДокумента < &ДатаКонца | |УПОРЯДОЧИТЬ ПО |СпецификацияВнутреннихРеализаций.ДатаДокумента"; ЗапросСтарыхСпецификаций = Новый Запрос(ТекстЗапросаСтарыхСпецификаций); ЗапросСтарыхСпецификаций.УстановитьПараметр("ДатаКонца",ТекущаяДата()-(ОставитьКоличествоДней*24*60*60)); Выборка = ЗапросСтарыхСпецификаций.Выполнить().Выбрать(); Счетчик = 0; БылДокумент = ""; Пока Выборка.Следующий() Цикл Счетчик = Счетчик + 1; Если Выборка.ИДДокументаОтгрузки <> БылДокумент Тогда Сообщить("Удаляется " + Выборка.Получатель + " " + Выборка.ДатаДокумента + " №" + Выборка.НомерДокумента); БылДокумент = Выборка.ИДДокументаОтгрузки; КонецЕсли; НаборЗаписей=РегистрыСведений.СпецификацияВнутреннихРеализаций.СоздатьНаборЗаписей(); Для каждого Отбор из НаборЗаписей.Отбор Цикл Отбор.Использование = Истина; Отбор.Значение = Выборка[Отбор.Имя] КонецЦикла; НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); ПланыОбмена.УдалитьРегистрациюИзменений(ГлавныйУзел,НаборЗаписей); ОбработкаПрерыванияПользователя(); КонецЦикла; Сообщить("Обработка очистки старых спецификаций завершена"); Сообщить("Всего удалено " + Счетчик + " спецификаций"); |
|||
72
SUA
26.05.15
✎
13:05
|
для двухуровневой РИБ есть вариант проще - например так
НаборЗаписей.ОбменДанными.Загрузка = Истина НаборЗаписей.ОбменДанными.Отправитель = ГлавныйУзел НаборЗаписей.Записать() если там подписок нет левых |
|||
73
Stim213
26.05.15
✎
15:21
|
(71) и отключи автоматическую регистрацию у регистра не забудь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |