|
Удаление записи в регистре сведений | ☑ | ||
---|---|---|---|---|
0
Dmitriy Dmitriy1
25.11.13
✎
10:02
|
Добрый день, конфа БП 2.0, не могу удалить запись из РегистраСведений, она уже коряво записана, нет значения в поле Объект, при редактировании или попытке удаления выдает ошибку:
Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПередЗаписью': {ОбщийМодуль.ПроцедурыОбменаТорговляБухгалтерия.Модуль(450)}: Значение не является значением объектного типа (Предопределенный) Помогите плз! |
|||
78
Dmitriy Dmitriy1
25.11.13
✎
12:14
|
(77) та же шляпа
|
|||
79
Maxus43
25.11.13
✎
12:15
|
(77) там хрень в том что регистрация в обменах работает и для старого объекта, т.е. для набора с незаполненным объектом
|
|||
80
Dmitriy Dmitriy1
25.11.13
✎
12:16
|
Может ее как то можно отключить чтобы с поддержики не снимать...
|
|||
81
zakidonoff
25.11.13
✎
12:17
|
(79) Надо как-нить у себя такую же хрень воссоздать -)
|
|||
82
Dmitriy Dmitriy1
25.11.13
✎
12:21
|
Так какие варианты есть?
|
|||
83
Maxus43
25.11.13
✎
12:21
|
(80) надо смотреть условия в подписке... ещё как вариант на прямую в скуле удалить (клиент-сервер же?)
|
|||
84
Dmitriy Dmitriy1
25.11.13
✎
12:23
|
"на прямую в скуле удалить" что это значит?)))
|
|||
85
Dmitriy Dmitriy1
25.11.13
✎
12:23
|
да, клиент сервер)
|
|||
86
Maxus43
25.11.13
✎
12:24
|
(84) пичаль
(80) код смотри, ищи подписку на событие, которая вызывает ошибку в (68) |
|||
87
Dmitriy Dmitriy1
25.11.13
✎
12:27
|
Процедура ДополнитьМассивУзловДляВыгрузкиСправочника(Элемент, МассивУзловДляПередачи,
ТипЭлемента = Неопределено, ВыгружатьДляВсехУзлов = Ложь, ВозвращатьМассивВсехУзлов = Истина, СоответствиеУзловИОрганизаций = Неопределено) Перем ЭтоГруппа, СсылкаНаЭлемент; // пердопределенные элементы выгружаем и загружаем послностью Если Элемент.Предопределенный Тогда //ВОТ ТУТ СПОТЫКАЕТСЯ ОбеспечитьВыгрузкуОбъектаДляВсехУзлов(ВыгружатьДляВсехУзлов, ВозвращатьМассивВсехУзлов, МассивУзловДляПередачи); Возврат; КонецЕсли; |
|||
88
m-serg74
25.11.13
✎
12:27
|
(82) ты бы все таки уже к 90 му посту то косолью запросов наверняка определил, что там записано в объект? а то все угадайки какие то
|
|||
89
Maxus43
25.11.13
✎
12:28
|
(88) неопределено там, потому и спотыкается, у Неопределено нет через точку нифига
|
|||
90
m-serg74
25.11.13
✎
12:29
|
(89) покажи где ТС это указал, надпись в форме списка не факт что там именно Неопределено
|
|||
91
Maxus43
25.11.13
✎
12:30
|
(87) в предыдущих процедурах ищи по каким условиям не выполняется регистрация... подписку саму найди и смотри что там изначально проверяется. Возможно будет достаточно изменить параметр сеанса, как в типовых обычно делается
(90) на скринах "буква Т" у объекта, выбор типа. У составного типа это значит Неопределено |
|||
92
m-serg74
25.11.13
✎
12:31
|
(91) так формы дофига чего могут понарисовать, что наверняка то в данных не глянуть?
|
|||
93
Maxus43
25.11.13
✎
12:33
|
(92) почитай чего автор пишет, отладчик для него это магия, как заставить то?)
Ну продолжайте без меня, я на обед |
|||
94
Dmitriy Dmitriy1
25.11.13
✎
12:33
|
Там неопределено, в консоле выдало!
|
|||
95
Dmitriy Dmitriy1
25.11.13
✎
12:34
|
Не, максус стой! =))0
|
|||
96
Wobland
25.11.13
✎
12:34
|
(92) мы верим, что там неопределено, и автор ничего с этим не может поделать
|
|||
97
zakidonoff
25.11.13
✎
12:34
|
(92) Я посмотрел в бухии что выставляется при попытке открыть регистр через операции - неопределено ставится.
Фильтр по неопределено выдаёт два объекта. __ У меня получилось создать битые ссылки в регистре. Пытаюсь теперь через тестирование базы подменить их на неопределено. Жуть. Этож как постараться-то надо было? XD |
|||
98
Dmitriy Dmitriy1
25.11.13
✎
12:35
|
Закидонов как это исправить вообще7)
|
|||
99
zakidonoff
25.11.13
✎
12:36
|
(98) Чтоб понять как это исправить мне нужно сначала так же испортить.
Вот испорчу - тогда и скажу как исправить -) |
|||
100
Wobland
25.11.13
✎
12:36
|
а СТО
|
|||
101
Dmitriy Dmitriy1
25.11.13
✎
12:36
|
Уже в процессе порчи??7)
|
|||
102
m-serg74
25.11.13
✎
12:37
|
(98) ВыгрузкаЗагрузкаХМЛ выгружаешь записи с отбором по тем параметрам какие можешь задать в ХМЛ ставишь правильную какую нить ссылку и обратно загрузить
|
|||
103
Dmitriy Dmitriy1
25.11.13
✎
12:37
|
(102) подробней можно?
|
|||
104
m-serg74
25.11.13
✎
12:37
|
куда уж подробнее? обработка для переносов между одинаковыми конфами знаешь?
|
|||
105
m-serg74
25.11.13
✎
12:39
|
(103) хотя нет, наверное (102) сторно, он тебе по другим измерениям после правки ХМЛ сделает еще одну запись
|
|||
106
m-serg74
25.11.13
✎
12:39
|
есть тим вьюер, пока обед
|
|||
107
Dmitriy Dmitriy1
25.11.13
✎
12:42
|
НЕ ТИм вивера нету... Мля пипец....
|
|||
108
m-serg74
25.11.13
✎
12:42
|
скачай)))
|
|||
109
Dmitriy Dmitriy1
25.11.13
✎
12:43
|
ВыгрузкаЗагрузкаХМЛ где взять эту обработку?
|
|||
110
zakidonoff
25.11.13
✎
12:43
|
(101) Не могу я так испортить. Отладчик вылетел с ошибкой у меня(!)
Ппц. -) |
|||
111
m-serg74
25.11.13
✎
12:43
|
(109) - (105) прочитай, думаю я ошибся
|
|||
112
zakidonoff
25.11.13
✎
12:44
|
(109) Она тебе вряд ли поможет.
Вылетет та же ошибка при записи (удалении старого) регистра. |
|||
113
Dmitriy Dmitriy1
25.11.13
✎
12:44
|
(110) во-во))) как так умудрились я хз)
|
|||
114
Dmitriy Dmitriy1
25.11.13
✎
12:45
|
Если снять с поддержики и закоментить то получится?)
|
|||
115
m-serg74
25.11.13
✎
12:45
|
(114) ты прочитать эту запись не можешь причем тут пока Запись?
|
|||
116
Dmitriy Dmitriy1
25.11.13
✎
12:47
|
Я прочитал, все ок, записать не получается
|
|||
117
zakidonoff
25.11.13
✎
12:47
|
(113) Как ты умудрился - вот в чём вопрос!
Даже для того чтобы сделать битую ссылку, мне пришлось создавать спец. обработку. При интерактивном удалении справочников регистры чистятся... Ну это ладно - не твоя вина. А вот как ты так тестирование и исправление делал, что у тебя битые ссылки на неопределено подменились - это я хз... |
|||
118
m-serg74
25.11.13
✎
12:47
|
(116) Я прочитал, все ок, записать не получается
на куа? Удалить() и все |
|||
119
m-serg74
25.11.13
✎
12:48
|
(117) при обновлении тип мог полететь, вот и неопределено
|
|||
120
Dmitriy Dmitriy1
25.11.13
✎
12:49
|
Удалить тоже не выходит, та же ошибка...
|
|||
121
m-serg74
25.11.13
✎
12:49
|
(116) и еще:
/http://s020.radikal.ru/i720/1311/dd/9a5a6e609348.jpg/ здесь вроде у тебя форма записи этой открывается, выбери любой доступный тип, потом значение и жми записать |
|||
122
Dmitriy Dmitriy1
25.11.13
✎
12:51
|
Так же ошибку кидает
|
|||
123
zakidonoff
25.11.13
✎
12:51
|
Пробуй
ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь; Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.ОбменДанными.Загрузка = Истина; Набор.Отбор.Объект.Установить(Неопределено); Набор.Прочитать(); Для каждого стрзапись Из Набор Цикл Набор.Объект = Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор()); КонецЦикла; набор.Записать(); |
|||
124
m-serg74
25.11.13
✎
12:52
|
(123) /Набор.Объект = Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор());/
а это зачем? пусть какого нить существующего контра тогда уж записывает |
|||
125
zakidonoff
25.11.13
✎
12:53
|
(124) Зачем она ему - пусть просто сотрёт да и всё.
|
|||
126
m-serg74
25.11.13
✎
12:54
|
(125) сотрет что?
|
|||
127
m-serg74
25.11.13
✎
12:56
|
ИМХО после (123) будет Объект не найден
|
|||
128
Dmitriy Dmitriy1
25.11.13
✎
12:56
|
{Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Записать)
набор.Записать(); по причине: Запись не верна! Значение поля не соответствует установленному отбору: КонтактнаяИнформация: <Объект не найден> (49:9ebb8448269dc66a4ae669faa821679e), Телефон, сот (Регистр сведений: Контактная информация; Номер строки: 1; Поле: Объект) |
|||
129
m-serg74
25.11.13
✎
12:57
|
(128) запиши в набор существующего любого контра, потом смени Отбор с неопределено на него, а только потом пробуй записать
|
|||
130
Dmitriy Dmitriy1
25.11.13
✎
13:01
|
стрзапись.Объект = Справочники.ФизическиеЛица.НайтиПоКоду( "Р00000042");
как потом по этому же коду сделать отбор? |
|||
131
m-serg74
25.11.13
✎
13:01
|
(130) Набор.Отбор.Объект.Установить(Справочники.ФизическиеЛица.НайтиПоКоду( "Р00000042"));
|
|||
132
m-serg74
25.11.13
✎
13:02
|
(130) но боюсь это все лажа и оно не удалит старые записи а запишет новый набор по другому измерению
|
|||
133
m-serg74
25.11.13
✎
13:03
|
(130) а так не пробовал:
ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь; Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.ОбменДанными.Загрузка = Истина; Набор.Отбор.Объект.Установить(Неопределено); набор.Записать(); |
|||
134
hhhh
25.11.13
✎
13:05
|
(28) ну и напишите отбор по этому объекту. Зачем вы по НЕопределено тогда делали отбор. Если у вас объект определен?
|
|||
135
zakidonoff
25.11.13
✎
13:06
|
(128) Да, я ступил -)
Но радует, что обмен данными таки обошли. Вот это будет рабочее. ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь; Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.ОбменДанными.Загрузка = Истина; Набор.Отбор.Объект.Установить(Неопределено); Набор.Прочитать(); Для каждого стрзапись Из Набор Цикл СтрЗапись.Объект = Справочники.ФизическиеЛица.НайтиПоКоду( "Р00000042"); КонецЦикла; набор.Записать(); |
|||
136
m-serg74
25.11.13
✎
13:06
|
(135) не прокати
|
|||
137
m-serg74
25.11.13
✎
13:06
|
(134) где он определен?
|
|||
138
Maxus43
25.11.13
✎
13:07
|
Спокойствие!
У меня в подписках есть такая хрень, у автора тоже есть наверняка Если Отказ ИЛИ НЕ ПараметрыСеанса.НаличиеОбменаУТУПП Тогда Возврат; КонецЕсли; Надо найти какой параметр сеанса отвечает за это и перед выполнением кода (133) делать параметрыСеанса.НужныйПараметр = Ложь; //запись грёбаного регистра - сиречь удаление записей параметрыСеанса.НужныйПараметр = Истина; |
|||
139
Dmitriy Dmitriy1
25.11.13
✎
13:07
|
(135) это сработало, БОЛЬШОЕ СПАСИБО ЗА ПОМОЩЬ!!!
|
|||
140
Maxus43
25.11.13
✎
13:09
|
пля, всё решили, я не прочитал даже))
|
|||
141
Dmitriy Dmitriy1
25.11.13
✎
13:09
|
ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь;
эта строчка все решила))) |
|||
142
Wobland
25.11.13
✎
13:10
|
какой долгий путь к (1)
|
|||
143
Dmitriy Dmitriy1
25.11.13
✎
13:10
|
Спасибо еще раз большое, я на ОБЕД! =)))
|
|||
144
zakidonoff
25.11.13
✎
13:13
|
(142) Он не мог - вылетала ошибка.
(139) Странно. У меня не работает... Ну да ладно xD |
|||
145
m-serg74
25.11.13
✎
13:42
|
(144) счас попробовал записать с контра на Неопределено, появилась копия набора записей только с Объектом Неопределено,
потом сделал:
созданный набор с косячным Объектом легко и непринужденно потерся... |
|||
146
zakidonoff
25.11.13
✎
13:49
|
(145) Видимо, у ТС были ещё какие-то скрытые дубли реестра в SQL, которые вызывали процедуру передзаписью при попытке записать набор, но на которые ОбменДанными.Загрузка не распространялось.
Спасла только установка параметров сеанса... |
|||
147
m-serg74
25.11.13
✎
13:51
|
ХЗ что его там спасло:-) и что он там делал...
|
|||
148
m-serg74
25.11.13
✎
13:51
|
но на 150 постов что то долго...
|
|||
149
Maxus43
25.11.13
✎
13:53
|
(147) мешал код (138) ему, загрузка = Истина в этом случае не помогает, ибо регистрировать изменения нужно и при загрузке данных с обмена
|
|||
150
m-serg74
25.11.13
✎
14:04
|
(149) без смены Отбора не даст записать набор, думаю, а после смены Отбора будет копия набора с другим измерением Объект, что то ТС не договаривает, пишет что (135) сработало, хотя у самого zakidonoff который и написал (135) не прокатило и я пробовал - не прокатывает
|
|||
151
zakidonoff
25.11.13
✎
14:06
|
(149) Не отрабатывает подписка при параметре загрузки.
m-serg74 же воссоздал - у него без параметров всё удалилось (150) Есть подозрение, что когда отбор = неопределено, он пропускает запись, так как не считает смену с неопределено изменениями. |
|||
152
Dmitriy Dmitriy1
25.11.13
✎
14:07
|
ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь;
Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.ОбменДанными.Загрузка = Истина; Набор.Отбор.Объект.Установить(Неопределено); Набор.Прочитать(); Для каждого стрзапись Из Набор Цикл СтрЗапись.Объект = Справочники.ФизическиеЛица.НайтиПоКоду( "Р00000042"); КонецЦикла; Набор.Отбор.Объект.Установить(Справочники.ФизическиеЛица.НайтиПоКоду( "Р00000042");); Набор.Прочитать(); набор.Записать(); Вот так заработало))) |
|||
153
m-serg74
25.11.13
✎
14:08
|
(152)
Набор.Отбор.Объект.Установить(Справочники.ФизическиеЛица.НайтиПоКоду( "Р00000042");); Набор.Прочитать(); набор.Записать(); чего??? |
|||
154
m-serg74
25.11.13
✎
14:09
|
ты этим просто очистил набор
|
|||
155
Dmitriy Dmitriy1
25.11.13
✎
14:09
|
Еще раз устанавливаю отбор по тому физлицу на которое переименовал запись регистра
|
|||
156
Dmitriy Dmitriy1
25.11.13
✎
14:09
|
набор.Удалить(Истина);
|
|||
157
m-serg74
25.11.13
✎
14:09
|
(155) /на которое переименовал запись регистра/
только не записал еще ничего, да? |
|||
158
m-serg74
25.11.13
✎
14:10
|
(156) /набор.Удалить(Истина);/
че это за ??? |
|||
159
Dmitriy Dmitriy1
25.11.13
✎
14:10
|
ща, может что то напутал))) Обновляется конфа, щас обновится скажу)
|
|||
160
Dmitriy Dmitriy1
25.11.13
✎
14:10
|
(158) ну сработало же)
|
|||
161
Dmitriy Dmitriy1
25.11.13
✎
14:10
|
Это 1с)
|
|||
162
m-serg74
25.11.13
✎
14:11
|
(161) не верю (С)
|
|||
163
Dmitriy Dmitriy1
25.11.13
✎
14:11
|
Ну реально все пусто)))
|
|||
164
m-serg74
25.11.13
✎
14:13
|
(160)
РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Удалить (InformationRegisterRecordSet.<Имя регистра сведений>.Delete) РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) Удалить (Delete) Синтаксис: Удалить(<Запись>) Параметры: <Запись> (обязательный) Тип: Число; РегистрСведенийЗапись.<Имя регистра сведений>. Индекс удаляемой записи либо сама запись. Описание: Удаляет запись из набора записей регистра сведений. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: НаборКурсов.Удалить(0); |
|||
165
zakidonoff
25.11.13
✎
14:15
|
(164) Кароч, допилил он мой код.
Тогда всё понятно -) |
|||
166
m-serg74
25.11.13
✎
14:16
|
(165) ты смотрел что он там написал?
|
|||
167
m-serg74
25.11.13
✎
14:18
|
(165) устанавливает отбор по Неопределено, читает набор, заполняет другим Объектом, потом устанавливает Отбор по этому другому Объекту, снова читает а таких записей может есть до него были может нету тогда набор будет пустой, и в конце что то записывает...
|
|||
168
Maxus43
25.11.13
✎
14:19
|
(167) ну рандомно человек код вставляет, авось прокатит :)
|
|||
169
m-serg74
25.11.13
✎
14:20
|
(168) так (156) должно материться
|
|||
170
zakidonoff
25.11.13
✎
14:20
|
(167) скорее всего у него взлетело так:
ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь; Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.Отбор.Объект.Установить(Неопределено); Набор.Прочитать(); Для каждого стрзапись Из Набор Цикл РегистрСведенийНаборЗаписей.КонтактнаяИнформация.Удалить(стрзапись); КонецЦикла; |
|||
171
Maxus43
25.11.13
✎
14:22
|
ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Ложь;
Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.Отбор.Объект.Установить(Неопределено); Набор.Записать(); араметрыСеанса.НаличиеОбменаТорговляБухгалтерия = Истина; Этого достаточно для удаления |
|||
172
m-serg74
25.11.13
✎
14:22
|
(170) тоже самое
Набор.Отбор.Объект.Установить(Неопределено); Набор.Записать(); тоже самое Набор.Отбор.Объект.Установить(Неопределено); Набор.Очистить(); Набор.Записать(); тоже самое Набор.Отбор.Объект.Установить(Неопределено); Набор.Прочитать(); Набор.Очистить(); Набор.Записать(); |
|||
173
m-serg74
25.11.13
✎
14:24
|
(171) я ему в (133) это писал - типа не подошло ему...
|
|||
174
Dmitriy Dmitriy1
25.11.13
✎
14:27
|
Ребята, спасибо большое, главное что все вышло)))
|
|||
175
zakidonoff
25.11.13
✎
14:29
|
(174) Да им уже пофиг, что у тебя получилось.
Тут, видишь ли, мистикой попахивает. xD |
|||
176
Maxus43
25.11.13
✎
14:31
|
я б сказал пованивает копрокодом :)
|
|||
177
Dmitriy Dmitriy1
25.11.13
✎
14:33
|
=)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |