8.х ОБМЕН Одностронний обмен УТ-БП

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

  1. TopicStarter Overlay
    Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Ситуация следующая. Требуется правильно сделать правила обмена для одностороннего обмена из УТ 10.3.13 в БП 2.0.22 через Универсальный обмен XML.
    Мои действия были такие.
    В КД загрузил MD-шники УТ и БП, сформировал правила, подкорректировал.
    Из типовых правил УТ прописал обработчики Перед загрузкой, После загрузки и пр.
    Все вроде бы неплохо грузится, за исключением одной маленькой неприятности. В БП в документах Отчет о розничных продажах, Реализация, Возврат покупателю и поставщику в табличной части непроставляются счета при загрузке. Приходиться пока делать лишние телодвижения через групповую обработку документов. Хотелось бы от этого избавиться.
    Может кто-чего посоветует - у меня, то ли мозг высох, то ли глаз замылился - не пойму где еще рыть.

    Через Обмен данными XML тоже пробовал, но там другие ошибки дает и из-за их устранения в еще более глубокие дебри залезаю.
  2. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    Счета учета заполняются в обработчике "После загрузки". Используются типовые методы объектов. Насколько я понимаю, те самые, которые вы используете в своей групповой обработке.
    Ниже пример из типовых правил обмена УТ->БП. Содержимое обработчика "После загрузки" для документа "Реализация...".
    Код:
    Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
    Объект.Организация = Параметры.ОсновнаяОрганизация;
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(Объект.Склад) Тогда
    Объект.Склад = Параметры.СкладДляОбменаДаннымиСУТ;
    КонецЕсли;
    
    Если ПараметрыОбъекта <> Неопределено тогда
    
    ТаблицаПараметровТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"];
    
    НомерСтроки = 0;
    Для Каждого СтрокаПараметров Из ТаблицаПараметровТовары Цикл
    
    ЗначениеПараметра = СтрокаПараметров.Комиссия;
    
    СтрокаТЧ = Объект.Товары.Получить(НомерСтроки);
    СчетаУчета = БухгалтерскийУчет.ПолучитьСчетаУчетаНоменклатуры(Объект.Организация, СтрокаТЧ.Номенклатура, Объект.Склад);
    
    Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(СтрокаТЧ, "Товары", Истина, Объект.ОтражатьВНалоговомУчете);
    Если ЗначениеПараметра = Истина Тогда
    СтрокаТЧ.ПереданныеСчетУчетаБУ = ПланыСчетов.Хозрасчетный.ТоварыПереданныеНаКомиссию;
    СтрокаТЧ.ПереданныеСчетУчетаНУ = ПланыСчетов.Налоговый.ТоварыПереданныеНаКомиссию;
    СтрокаТЧ.СчетУчетаБУ           = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;
    СтрокаТЧ.СчетУчетаНУ           = ПланыСчетов.Налоговый.ТоварыНаСкладе;
    КонецЕсли;
    
    НомерСтроки = НомерСтроки + 1;
    
    КонецЦикла;
    
    КонецЕсли;
    
    Объект.ЗаполнитьСчетаУчетаВТабЧасти(Объект.ВозвратнаяТара, "ВозвратнаяТара", Истина, Объект.ОтражатьВНалоговомУчете);
    СчетаУчета = БухгалтерскийУчетРасчетовСКонтрагентами.ПолучитьСчетаРасчетовСКонтрагентом(Объект.Организация, Объект.Контрагент, Объект.ДоговорКонтрагента);
    Если Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
    Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
    Объект.СчетУчетаРасчетовПоАвансам     = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
    Объект.СчетУчетаРасчетовПоТаре        = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
    Иначе
    Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
    Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
    Объект.СчетУчетаРасчетовПоТаре        = СчетаУчета.СчетУчетаТарыПокупателя;
    КонецЕсли;
    Объект.СчетУчетаРасчетовПоТаре        = СчетаУчета.СчетУчетаТарыПокупателя;
    Объект.СчетУчетаРасходовПоТареБУ      = СчетаУчета.СчетУчетаРасходовПоТареБУ;
    Объект.СчетУчетаДоходовПоТареБУ       = СчетаУчета.СчетУчетаДоходовПоТареБУ;
    
    // обработка счетов НУ и УСН
    Если НалоговыйУчетУСН.ПрименениеУСН(Объект.Организация, Объект.Дата) Тогда // УСН
    
    Объект.СчетУчетаРасходовПоТареНУ = ПланыСчетов.Налоговый.ПустаяСсылка();
    Объект.СчетУчетаДоходовПоТареНУ  = ПланыСчетов.Налоговый.ПустаяСсылка();
    
    Иначе										// общий режим
    
    Если Объект.ОтражатьВНалоговомУчете Тогда 
    Объект.СчетУчетаРасходовПоТареНУ = СчетаУчета.СчетУчетаРасходовПоТареНУ;
    Объект.СчетУчетаДоходовПоТареНУ  = СчетаУчета.СчетУчетаДоходовПоТареНУ;
    Иначе
    Объект.СчетУчетаРасходовПоТареНУ = ПланыСчетов.Налоговый.ПустаяСсылка();
    Объект.СчетУчетаДоходовПоТареНУ  = ПланыСчетов.Налоговый.ПустаяСсылка();
    КонецЕсли;
    
    КонецЕсли;
    
    Объект.ЗаполнитьСчетаУчетаВТабЧастиУслуги(Истина, Объект.ОтражатьВНалоговомУчете);
    
    
    Полагаю далее сами разберетесь...
  3. TopicStarter Overlay
    Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Так в том-то и дело, что это у меня заполнено. Причем копипастил из типовых правил. Проверю, конечно, еще раз, но может еще где-то засада есть?
  4. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    Есть. Если счета учета номенклатуры, долгов контрагентов и т.д в базе-приемнике не заполнены.
  5. Pomestnik
    Offline

    Pomestnik Опытный в 1С

    Регистрация:
    10 июл 2009
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    У меня дилема возникла. Есть переписаная ут. надо выгружать в бп. У меня задача - если в документе оприходование стоит галочка определенная, то этот документ из торговли в бухгалтерию должен выгружиться не как оприходование, а должны вместо него создавтаься несколько документов на основе данных оприходования. Подскажите каким примерно путем это в кд сделать.
  6. TopicStarter Overlay
    Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    И это заполнено... :angry:

    По всей видимости для документа Оприходования надо создать несколько ПКО и в них в обработчиках прописать условия.
  7. Pomestnik
    Offline

    Pomestnik Опытный в 1С

    Регистрация:
    10 июл 2009
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    Дробавляю к стандартным правилам еще одно Требование накладная на Перемещение чтоб создавалось. Но при обработке Требование-Накладная обрабатывается лишь один раз, а мое правило не цепляется, если приоритет поменять то мое цепляется а стандартное нет
  8. Pomestnik
    Offline

    Pomestnik Опытный в 1С

    Регистрация:
    10 июл 2009
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    Таак, это решил путем создания ПКО и вызова этого правила из стандартного ПВД с помощью процедуры ВыгрузитьПоПравилу.
    Теперь обнаружил что в стандартных правилах ут-бп , нет документа в метаданных отчетпроизводстваЗасмену... как бы его туда засунуть...аккуратно
  9. Pomestnik
    Offline

    Pomestnik Опытный в 1С

    Регистрация:
    10 июл 2009
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    Аккуратно засовывается путем, выгрузки метаданных из нужной конфигурации и затем загрузку их в кд в существующие матеданные с галочкой добавлять только новые.
    p.s пардон за монолог ... .

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