Имя: Пароль:
1C
1С v8
Мутабельная фигня при обмене из-за подписки на событие
0 ks-815
 
12.05.16
11:55
Добрый день всем!
Помогите пожалуйста!
Задача - при удалении элемента справочника проверять, есть ли он в кое-каких документах.
Сделала подписку на событие перед записью. Всё классно работает в центральной базе.
Но при обмене в других базах выходит ошибка:
"Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода УдалениеЭлПередУдалением()"
Что мне сделать??????

Вот процедура в общем модуле этой подписки:
Процедура УдалениеЭлПередУдалением(Источник, Отказ) Экспорт
    Если Источник.ПометкаУдаления Тогда
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаявкаТовары.Ссылка КАК Заявка
        |ИЗ
        |    Документ.Заявка.Товары КАК ЗаявкаТовары
        |ГДЕ
        |    ЗаявкаТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
        |    И ЗаявкаТовары.Номенклатура = &Элемент
        |
        |СГРУППИРОВАТЬ ПО
        |    ЗаявкаТовары.Ссылка";
        
        Запрос.УстановитьПараметр("Элемент",Источник.Ссылка);
        РезультатЗапроса = Запрос.Выполнить();
        
        Если Не РезультатЗапроса.Пустой() Тогда
            Отказ = Истина;
        КонецЕсли;    
    КонецЕсли;
КонецПроцедуры
1 Рэйв
 
12.05.16
11:57
(0)Чему равен Источник и ТипЗнч(Источник)
?
2 Рэйв
 
12.05.16
11:57
поставь остановку по ошибке
3 ks-815
 
12.05.16
11:58
источник - это элемент справочника, у которого будут помечать на удаление элементы.
тип - объект справочника
4 ks-815
 
12.05.16
11:59
где остановку?? как при обмене то поставить??
5 Рэйв
 
12.05.16
11:59
(3)Это понятно.И никому не интересно.
Ты мне скажи чему оно равно когда спотыкается на ошибке
6 ks-815
 
12.05.16
12:01
там Ошибка при чтении изменений из файла обмена.
Ошибка при вызове метода контекста (ПрочитатьИзменения):
7 Fragster
 
гуру
12.05.16
12:05
у модуля поставь галку "клиент"
8 Fragster
 
гуру
12.05.16
12:05
в котором процедура подписки
9 sitex
 
naïve
12.05.16
12:05
может это  поможет http://catalog.mista.ru/public/123256/
10 Cyberhawk
 
12.05.16
12:07
У модуля галку "Внешнее соединение" поставить
11 ks-815
 
12.05.16
12:07
попробую галку поставить
12 ks-815
 
12.05.16
12:12
внешнее соединение - галка стояла. клиента попробую еще поставить.
13 aleks_default
 
12.05.16
12:13
"Но при обмене в других базах выходит ошибка"

Если ОбменДанными.Загрузка тогда
Возврат
КонецЕсли;
14 ks-815
 
12.05.16
12:16
да я вообще для проверки просто вначале процедуры возврат поставила. Оно всё равно заругалось.
15 Карупян
 
12.05.16
12:19
На модуле не стоит галка ВнешнееСоединение
16 aleks_default
 
12.05.16
12:35
(14) это все равно добавь, не забудь
17 ks-815
 
12.05.16
13:09
Вроде ошибка не выходит больше, но в центральной базе элемент справочника помечен, а в РИБ вышла ошибка при обмене, что не удалось записать этот элемент справочника.
Я гляжу - а он не пометился на удаление :(
18 ks-815
 
12.05.16
13:12
а блин.. это же моя подписка сработала!!
есть ссылки по этому элементу справочника.
вот и не удаляется.
видимо кто-то уже наудалял неправильно, пока у меня мутабельная фигня выходила.

вообщем, проблема была в галочке клиентской.
еще потестирую.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан