8.х ОБМЕН Таблицы Перерасчета при обмене РИБ

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

  1. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте!Есть УПП8.1. Делаю правила обмена для РИБ, в подчиненную базу выгружаются только данные(документы-регистры) по той организации. Все прописываю в процедуре ПриОтправкеДанныхПодчиненному() Сделал начальный образ подчиненной базы и запустил в ней тестирование и исправление. У меня выскочила куча таких ошибок:

    Проверка логической целостности. РегистрРасчета.РасчетСреднегоЗаработка.Перерасчет.ПерерасчетСреднегоЗаработка <Объект не найден> (358:851b001517465d4511dd682229ede3ea):Основной заработок: индексируемый:Иванов Иван Иванович:Корпорация Ромашка ОАО
    Неверная ссылка на регистратор.

    То же по регистру основных-дополнительных начислений. Я так понимаю что это связано с тем, что в таблице перерасчета прописывается ссылка на перерасчитываемый документ, а документ в базу не выгрузился... вот... собсно вопрос: как в таких случаях ограничивать выгрузку записей таблиц перерасчета чтобы в подчиненную базу попадали записи по документам той организации????Спасибо!
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Так вам надо фильтровать и записи в регистрах.
    Посмотрите мой код (я выкладывал пример, как фильтровать в УПП выгрузку по организациям на типовым способом) и вам станет все понятно.
  3. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    фигня в том, что я делал отбор и по всем регистрам, и, к примеру "Основные Начисления" после фильтрации по организации в подчиненной базе пустые... т.е. ни одной записи по их организации нет. А между тем Перерасчет этого регистра ругается на отсутсвующие документы!
    Т.е. он видимо тупо переносится со всеми записями и отсутствие записей регистра-документов его не волнует... оч. прошу объяснить как с ним быть... ибо имею весьма условное представление об этом объекте:unsure:
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Как делали отбор? Внятнее!
  5. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    BabySG для регистров расчета вот так:
    Код:
    Если Метаданные.РегистрыРасчета.Содержит(ЭлементДанных.Метаданные()) тогда
    Если  ЭлементДанных.Отбор.Регистратор.Значение.Метаданные().Реквизиты.Найти("Организация")<> неопределено тогда
    Если ЭлементДанных.Отбор.Регистратор.Значение.Организация<>Справочники.Организации.НайтиПоКоду("80000000 ") тогда
    ОтправкаЭлемента=ОтправкаЭлементаДанных.Удалить;
    КонецЕсли;
    Иначе  ОтправкаЭлемента=ОтправкаЭлементаДанных.Удалить;
    
    КонецЕсли;
    КонецЕсли;
    
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А управленческие документы как фильтруете?
  7. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    все доки пока тупо по реквизиту организации..это тестовый вариант.... в данном случае доки отфильтровывались так:
    Код:
    Если Метаданные.Документы.Содержит(ЭлементДанных.Метаданные() ) Тогда 
    Если ЭлементДанных.Метаданные()=Метаданные.Документы.КорректировкаЗаписейРегистров Тогда
    ОтправкаЭлемента=ОтправкаЭлементаДанных.Удалить;
    КонецЕсли;
    Если ЭлементДанных.Метаданные().Реквизиты.Найти("Организация")<>неопределено тогда
    Если ЭлементДанных.Организация <> Справочники.Организации.НайтиПоКоду("80000000 ") тогда
    ОтправкаЭлемента=ОтправкаЭлементаДанных.Удалить;
    ИначеЕсли  ЭлементДанных.Организация=Справочники.Организации.ПустаяСсылка() тогда
    ОтправкаЭлемента=ОтправкаЭлементаДанных.Удалить;
    КонецЕсли;
    КонецЕсли;		
    КонецЕсли;
    
    
    вроде бы без криминала?!:)
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Управленческая ЗП считается без организации, например...
  9. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    у нас тока регламентированная рассчитывается:)...в любом случае это все будет настраиваться-неренастраиваться, самое главное это понять почему при очищенном регистре не очищается его перерасчет... может это глюк какой-нибудь... просто начальный образ нашей базы создается чуть меньше суток и метод тыка здесь не особо удобен :unsure:
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А как вы регистр очистили? Еще раз повторю - посмотрите мой код для обмена по организациям - там никаких проблем нет, в том числе и при создании образа.
  11. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    BabySG Регистр очистился при отборе по организации... по организации, для которой это предназначается, начислений не было(они сейчас сами все рассчитывают) поэтому в регистре не осталось ни одной записи...
    мдя там решается какая-о специфическая задача, а по регистрам расчета там тока:
    Код:
    ИначеЕсли ИмяБазовогоТипа = "РегистрыРасчета" Тогда
    // }} ИмяБазовогоТипа = "РегистрыРасчета"
    КонецЕсли;	
    КонецПроцедуры
    
    :unsure:
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А сделать по аналогии с другими регистрами самому никак? :)
    С РР вообще все просто.
  13. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    BabySG Большое спасибо за помощь, будем стараться :unsure:
  14. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    На всякий случай сообщу что проблема решилась при помощи все того же отбора записей в таблицах перерасчета по организации:
    Код:
    Если Метаданные.РегистрыРасчета.ДополнительныеНачисленияРаботниковОрганизаций.Перерасчеты.Содержит(ЭлементДанных.Метаданные()) или
    Метаданные.РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.Перерасчеты.Содержит(ЭлементДанных.Метаданные()) или
    Метаданные.РегистрыРасчета.РасчетСреднегоЗаработка.Перерасчеты.Содержит(ЭлементДанных.Метаданные())тогда 
    Для каждого зап из ЭлементДанных Цикл
    если зап.Организация<> Справочники.Организации.НайтиПоКоду("80000000 ") тогда
    ОтправкаЭлемента=ОтправкаЭлементаДанных.Удалить;	
    конецесли;
    конеццикла;
    конецесли;
    
    
    Почему только у меня возникла такая проблема - не знаю... :unsure:

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