Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация данных из БП 3.0 в УТ 10.3

Конвертация данных из БП 3.0 в УТ 10.3
Я
   StarkNotDead
 
24.10.16 - 07:46
Такая ситуация, выгружаю данные из БП 3.0 (там в документе списание с расчетного счета в роли контрагента могут быть Справочники контрагент и физлицо) в УТ 10.3 (там в документе списание с расчетного счета только справочник контрагент). Правилами выгрузки предусмотрена выгрузка контрагента с типом справочник.контрагенты, а если среди документов списания с РС попадается контрагент физлицо выдает ошибку, т.к. физлицо он начинает выгружать по правилам контрагента. Нужно что бы при выгрузке если тип Источник.Контрагент = СправочникСсылка.физическиеЛица вышружал пустую ссылку на справочникКонтрагенты, потому что физлица в Платежном поручении не нужны, они просто пустыми остаются.
    <Свойство>
<Код>13</Код>
                        <Наименование>Контрагент --&gt; Контрагент</Наименование>
<Порядок>700</Порядок>
<Источник Имя="Контрагент" Вид="Реквизит" Тип="СправочникСсылка.Контрагенты"/>
<Приемник Имя="Контрагент" Вид="Реквизит" Тип="СправочникСсылка.Контрагенты"/>
<ПередВыгрузкой>
Если (ТипЗнч(Источник.Контрагент) = Тип("СправочникСсылка.ФизическиеЛица")) 
ИЛИ (НЕ ЗначениеЗаполнено(Источник.Контрагент)) Тогда
Значение = Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
</ПередВыгрузкой>
</Свойство>
 
 
   mehfk
 
1 - 24.10.16 - 08:01
Обработчики "Правила конвертации свойств"
Перед выгрузкой

Пусто - Булево - Ложь. Если установить Истина, то в приемник будет записано пустое значение свойства, соответствующего типа и дальнейшая обработка правила конвертации свойств будет прекращена
   StarkNotDead
 
2 - 24.10.16 - 08:16
(1) Можно, пожалуйста, пример того, как это должно выглядеть?
   azt-yur
 
3 - 24.10.16 - 08:37
А что собственно в (0) не работает? Вроде должно отрабатывать.
Можно использовать Пусто как в (1), для этого замени
Значение = Справочники.Контрагенты.ПустаяСсылка();
на
Пусто = Истина;
   StarkNotDead
 
4 - 24.10.16 - 08:54
(3) Судя по всему, программе не удается считать сам тип значения Источник.Контрагент, так как через условия проскакивают физлица, не могли бы подсказать, где можно найти информацию, о том какие параметры передаются между функциями "ПередВыгрузкой" да и вообще правилами
   StarkNotDead
 
5 - 24.10.16 - 09:00
(3) Физические лица в документе указываются в контрагенте только в тех случаях, когда ВидОперации = ПеречислениеПодотчетномуЛицу, но этот код тоже не работает:

Если Источник.ВидОперации = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеПодотчетномуЛицу
                        Тогда
                        Пусто = Истина;
                        КонецЕсли;
   azt-yur
 
6 - 24.10.16 - 09:05
(5) А где код вставляете? Должно быть перед выгрузкой свойства.
И как обмен запускаете? Может правила не те отрабатывают?
   StarkNotDead
 
7 - 24.10.16 - 09:14
(6) Код вставляю как в (0) обмен запускаю через внешнюю обработку, сохраняю и после сохранения заново запускаю, 2-ой день уже бьюсь..
   novichok79
 
8 - 24.10.16 - 09:18
обновляли метаданные конфигураций? иногда помогает в случае возникновения таких ошибок.
   azt-yur
 
9 - 24.10.16 - 09:22
(7) Добавь вывод сообщения в условии - проверишь отрабатывает ли оно у тебя
   StarkNotDead
 
10 - 24.10.16 - 09:23
(8) Обработка предназначена для версий БП 3.0.30.38 - УТ 10.3.31.3, а стоят БП 3.0.43.260 и УТ 10.3.37.2, Свежее в интеренете нет, поэтому и правлю вручную, осталось вот 2 документа, один из них Списание с РС
 
 Рекламное место пустует
   StarkNotDead
 
11 - 24.10.16 - 09:29
Ни при 

Если Источник.ВидОперации = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеПодотчетномуЛицу 
                        Тогда
                        Ссобщить("Срабатывает");
                        Пусто = Истина;
                        КонецЕсли;

ни при 

Если (ТипЗнч(Источник.Контрагент) = Тип("СправочникСсылка.ФизическиеЛица")) 
                        Тогда
                        Ссобщить("Срабатывает");
                        Пусто = Истина;
                        КонецЕсли;

сообщение не выводится
   azt-yur
 
12 - 24.10.16 - 09:35
(11) уверен, что правила нужные подхватываются? Какой обработкой пользуешься? В составе БП же есть обработка Универсальный обмен данными в формате XML
   StarkNotDead
 
13 - 24.10.16 - 09:46
(12) Правила подхватываются, 

    <Свойство>
                        <Код>13</Код>
                        <Наименование>Контрагент --&gt; Контрагент</Наименование>
                        <Порядок>700</Порядок>
                        <Источник Имя="Контрагент" Вид="Реквизит" Тип="СправочникСсылка.Контрагенты"/>
                        <Приемник Имя="Контрагент" Вид="Реквизит" Тип="СправочникСсылка.Контрагенты"/>
                        <ПередВыгрузкой>
                        Сообщить(Источник.Контрагент);
                                                </ПередВыгрузкой>
                    </Свойство>


выводит наименования контрагентов
   StarkNotDead
 
14 - 24.10.16 - 10:30
(12) Нашел Условие, которое 100% срабатывает, осталось понять, что в него впихнуть)
Если Источник.ВидОперации = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеПодотчетномуЛицу Тогда

....

КонецЕсли;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует