|   |   | 
| 
 | Удаление записи в регистре сведений | ☑ | ||
|---|---|---|---|---|
| 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 | 
        =)))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |