|   |   | 
| 
 | Пометка удаления для 2-х справочников. | ☑ | ||
|---|---|---|---|---|
| 0
    
        breezee 14.12.15✎ 18:16 | 
        У меня есть 2 справочника. Справ1 и Справ2. Они связаны следующим образом: Справ2 является реквизитом Справ1. Связь 1 к 1. Нужно чтобы когда ставил пометку удаления на элементе 1 справочника - на связанном элементе 2 справочника тоже ставилась пометка. В 1 справочнике на процедуру при записи поставил процедуру, которая смотрит изменилась ли пометка: (Если Не Ссылка.ПометкаУдаления = ПометкаУдаления Тогда) я получаю получаю элемент из справочника 2, в нём изменяю пометку и записываю. Беда в том, что во втором справочнике содержится процедура, которая когда изменяю пометку во 2 справочнике - изменяет пометку в 1. 
 Т.е. алгоритм работает так: в 1 справочнике изменяю пометку - она изменяется во втором. Изменяется во втором - начинается процедура изменения в 1. Она не срабатывает, т.к. ссылка.пометкаудаления<>пометкаудаления. По идеи всё, но платформа выдает сообщения что "данные базы изменились" и не могут быть сохранены. | |||
| 1
    
        Господин ПЖ 14.12.15✎ 18:17 | 
        у вас рукож.пие обыкновенное (с) Хаус     | |||
| 2
    
        Живой Ископаемый 14.12.15✎ 18:19 | 
        2(0) Окей, запомнили.     | |||
| 3
    
        breezee 14.12.15✎ 18:21 | 
        (1) Дак что мне делать?     | |||
| 4
    
        Живой Ископаемый 14.12.15✎ 18:22 | 
        (3) так а что нужно, вопроса-то нет.     | |||
| 5
    
        breezee 14.12.15✎ 18:22 | 
        (4) Чтобы все заработало)     | |||
| 6
    
        breezee 14.12.15✎ 18:23 | 
        Т.е. чтобы когда я выставлял пометку в  элементе первого справочнике - пометка во в связанном с ним элементе второго справочника изменялась на такую же     | |||
| 7
    
        Aceforg 14.12.15✎ 18:24 | 
        Групповая обработка тебе в помощь     | |||
| 8
    
        Живой Ископаемый 14.12.15✎ 18:25 | 
        ОбменДанными.Загрузка = истина.
 В одном справочнике выставляй для другого, в другом проверяй, если заполнено, то процедуру не исполняй. Это вот просто самое простое, чтобы не думать вообще | |||
| 9
    
        breezee 14.12.15✎ 18:25 | 
        (8) Это новый реквизит создавать?     | |||
| 10
    
        breezee 14.12.15✎ 18:26 | 
        Или ОбменДанными это общий модуль?     | |||
| 11
    
        Живой Ископаемый 14.12.15✎ 18:26 | 
        2(9) Ну... если очень нужно, то создавай конечно, ктож тебе запретит, но зачем?     | |||
| 12
    
        Михаил Козлов 14.12.15✎ 18:27 | 
        (9) "Он" уже есть, создавать не нужно.
 И, наверное, из ПриЗаписи перенести в ПередЗапись. | |||
| 13
    
        Живой Ископаемый 14.12.15✎ 18:27 | ||||
| 14
    
        Живой Ископаемый 14.12.15✎ 18:31 | 
        2(12)"И, наверное, из ПриЗаписи перенести в ПередЗапись." почему? 
 Ну, если допустить что мы рациональные существа, а не какие-то предрассудочные двуутробки? | |||
| 15
    
        breezee 14.12.15✎ 18:33 | 
        (12) А ведь наверное в этом и вся проблема. Получается я при записи изменяю реквизит. Тем самым вызывая процедуру из другого объекта. Она  в которой тоже изменяю этот же реквизит и записываю. В процедуру при записи дважды записываю. Тьфу. (13) Еще раз пересмотрю, чтобы понять что я делаю)     | |||
| 16
    
        Мимохожий Однако 14.12.15✎ 18:37 | 
        Не стесняйся. Код показывай.     | |||
| 17
    
        Живой Ископаемый 14.12.15✎ 18:38 | 
        ПриЗаписиПервогоСправочника()
 Если ЭтотОбъект.Обменданными.загрузка Тогда Возврат; КонецЕсли; ДругойСправочник = ЭтотОбъект.РеквизитСоСылкойНаДругойСправочник.ПолучитьОбъект(); ДругойСправочник.ОбменДанными.Загрузка = Истина; ДргоуйСправочник.ПометкаУдаления = ЭтотОбъект.ПометкаУдаления; КонецПроцедуры ПриЗаписиВторогоСправочника() Если ЭтотОбъект.Обменданными.загрузка Тогда Возврат; КонецЕсли; ПервыйСправочник = ЭтотОбъект.РеквизитСоСылкойНаПервыйСправочник.ПолучитьОбъект(); ПервыйСправочник .ОбменДанными.Загрузка = Истина; ПервыйСправочник .ПометкаУдаления = ЭтотОбъект.ПометкаУдаления; КонецПроцедуры | |||
| 18
    
        Живой Ископаемый 14.12.15✎ 18:38 | 
        Ну вот что тут трудного?     | |||
| 19
    
        breezee 14.12.15✎ 18:38 | 
        Точно. А в перед записью лучше. Я перед записью изменяю реквизит, вызывается из другого модуля обработка, которая пред его записью изменяет и записывает мой реквизит. Но тут срабатывает процедура перед запись первого реквизита. (16) Уже всю конфу бы скинул, но все на работе осталось(     | |||
| 20
    
        Живой Ископаемый 14.12.15✎ 18:39 | 
        .
 . . ДругойСправочник.записать(); КонецПроцедуры . . . ПервыйСправочник .записать(); КонецПроцедуры | |||
| 21
    
        breezee 14.12.15✎ 18:40 | 
        (20) Спасибо!     | |||
| 22
    
        breezee 14.12.15✎ 18:43 | 
        (20) А им потом нужно ложиь выставлять в .ОбменДанными.Загрузка?     | |||
| 23
    
        Живой Ископаемый 14.12.15✎ 18:46 | 
        Что?     | |||
| 24
    
        Живой Ископаемый 14.12.15✎ 18:48 | 
        Чувак... ОбменДанными - это не реквизит, которых хранится где-то в базе. Пока есть объект в памяти, у него есть определенное значение. Закрыл ты свою обработку или отработал твой код, и капец, они опять чистые... 
 Возьми лучше с полки букварь, не беси меня... | |||
| 25
    
        breezee 14.12.15✎ 18:48 | 
        Если ЭтотОбъект.Обменданными.загрузка Тогда
 Возврат; КонецЕсли; ДругойСправочник = ЭтотОбъект.РеквизитСоСылкойНаДругойСправочник.ПолучитьОбъект(); ДругойСправочник.ОбменДанными.Загрузка = Истина; ДргоуйСправочник.ПометкаУдаления = ЭтотОбъект.ПометкаУдаления; ДругойСправочник.ОбменДанными.Загрузка = Ложь; КонецПроцедуры Он же все время будет истинным и после 1 прохода, когда я в след. раз захочу изменить пометку - он ничего не сделает | |||
| 26
    
        breezee 14.12.15✎ 18:48 | 
        (24) Ок, спасибо!     | |||
| 27
    
        FIXXXL 15.12.15✎ 10:17 | 
        сделать Спр1 владельцем Спр2     | |||
| 28
    
        Живой Ископаемый 15.12.15✎ 10:49 | 
        2(27)хм... Ему обоюдно нужно... два справочника могут быть друг другу владельцами?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |