8.х ОБМЕН ПриЧтенииОтПодчиненного

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем DJONI, 26 апр 2013.

  1. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    Здраствуйте уважаеммые программисты будьте так добры помогите мне облегчеть головную боль)) Проблемма такая обмен РИБ 1С 8,2, если пользователь у себя удалил документ или еще чтонить то при чтении на серваке этот элемент не удаляеться остаеться там на вечную памить))) Помогите в чем может быть проблема и завтное слово пожалуйсто!!!!!!!!
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    значит где-то в обработчиках обмена стоит подавление передачи удалений объектов.

    и это правильно в большинстве случаев, если не хотите однажды лишиться половины базы :)
  3. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    Хороший добрый совет, но тогда же будет разница в цифрах на клиенте и на серваке а у нас 250 узлов. Чистить сервер ето не реал, может дадите совет какойнибудь
  4. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    Помогите кто нибудь люди!!!! :mog:
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    смотрите обработчики ПриОтправке, ПриЧтении - в каком из них стоит проверка на удаление, очень внимательно смотрите, какие удаления он подавляет и какие пропускает.
    составьте схему движения документов между базами, какие куда и при каких условиях должны попадать.
    и уже после этого перепиливайте обработчики.

    если что-то в обработчиках не понятно - давайте текст, подскажу
  6. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    хорошо посмотрю отпишусь большое спасибо что овечаете.
  7. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    Посмотрел при отправке при получении я так понил здесь про удаление ниче не сказано как можно лучше подправить я новичек и сразу на меня свалился обмен
    Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)//1

    ТипОбъекта = ТипЗнч(ЭлементДанных);

    Если ТипОбъекта = мТипУдалениеДанных Тогда
    Возврат;
    КонецЕсли;

    КонецПроцедуры //



    Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)

    ТипОбъекта = ТипЗнч(ЭлементДанных);

    Если ТипОбъекта = мТипУдалениеДанных Тогда
    Попытка
    Если ЭлементДанных.Ссылка <> Неопределено Тогда
    Ссылки =ЭлементДанных.Ссылка;
    МассивСсылок=новый массив();
    МассивСсылок.Добавить(Ссылки);
    ТабСсылок = НайтиПоСсылкам(МассивСсылок);
    Если ТабСсылок.Количество()>0 тогда
    ПолучениеЭлемента=ПолучениеЭлементаДанных.Игнорировать;
    ОтправкаНазад=ОтправкаЭлементаДанных.Авто;
    КонецЕсли;
    КонецЕсли;
    Исключение
    ПолучениеЭлемента=ПолучениеЭлементаДанных.Игнорировать;
    КонецПопытки;
    Возврат;
    КонецЕсли;

    ЭлементДанных.ОбменДанными.Загрузка=Истина;

    ЭлементДанных.ДополнительныеСвойства.Вставить("Отправитель", ЭтотОбъект.Ссылка);
    ЭлементДанных.ОбменДанными.Получатели.АвтоЗаполнение=Ложь;

    КонецПроцедуры
  8. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    вот это при отправке
    Код:
    Если ТипОбъекта = мТипУдалениеДанных Тогда
    Возврат;
    КонецЕсли;
    подавляет отправку удалений


    вот это
    Код:
    Если ТипОбъекта = мТипУдалениеДанных Тогда
    Попытка
    Если ЭлементДанных.Ссылка <> Неопределено Тогда
    Ссылки =ЭлементДанных.Ссылка;
    МассивСсылок=новый массив();
    МассивСсылок.Добавить(Ссылки);
    ТабСсылок = НайтиПоСсылкам(МассивСсылок);
    Если ТабСсылок.Количество()>0 тогда
    ПолучениеЭлемента=ПолучениеЭлементаДанных.Игнорировать;
    ОтправкаНазад=ОтправкаЭлементаДанных.Авто;
    КонецЕсли;
    КонецЕсли;
    Исключение
    ПолучениеЭлемента=ПолучениеЭлементаДанных.Игнорировать;
    КонецПопытки;
    Возврат;
    КонецЕсли;
    при получении давит удаление, если на удаляемый объект есть ссылки из других объектов
  9. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    Спасибо большое, с Большим уважением!!!!!!Более понятно что происходит с этим модулем. Но как все таки написать более правильно чтоб документы, элементы удплялись чтоб на сервере не накапливался мусор, например умудряться они удалить один документ у себя на клиенте, а на сервере он останиться будит же рассхождение в цифрах. Получаеться лучший метод я так понил в ручную потом удалять этот документ?? и можно еще один последний вопрос у нас много узлов и фильтрация узлов мне так кажется как то не правильно построенна именно при получении от подчиненного регистрируеться все в один узел и скаждым обменном в каждом узле регистрация увеличиваеться. например 01-узел туда слеваеться регистрация 02,03,04,01 -узлов, и также 02-узел и туда тоже сливаються все узлы и т.д. все облазин ничего не нашел, нашел только при отпраке подчиненому про фильтрацию узлов, а при получение от подчиненного ничего не ужели так должно быть, уже сбрасываю регистрацию 3-е сутки неизвестно еще сколько пройдет времени.
  10. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    если нужно, чтобы удаления отправлялись наверх - закомментируйте первый кусок кода и все.

    фильтрация узлов при отправке - ограничивает передачу данных, чтобы чужие не отправились. посмотрите на то, куда регистрируются объекты при получении от подчиненного. скорее всего нужно будет уже там вставлять ограничение, чтобы не регистрировать пришедшие данные во все подчиненные узлы, регистрация во все подчиненные узлы нужна только если вам нужно держать полную синхронизацию данных между всеми узлами.
  11. TopicStarter Overlay
    DJONI
    Offline

    DJONI

    Регистрация:
    17 янв 2013
    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    1
    Спасибо вам е многое объеснили))) Теперь буду думать как зделать чтобы не регистрировались пришедшие данные не во все подчиненные узлы. Только как написать пока не представляю, найти бы образец примерного кода)) Еще раз спасибо большое ВАМ!!!!!

Поделиться этой страницей