Имя: Пароль:
1C
1С v8
Правила обмена КД не учитывают двойные кавычки в тексте параметра?
0 vdeemer
 
01.10.21
13:40
Добрый день!
Предыстория такова: настраиваю обмен между УТ11 и Розницей 2.3, используется маркировка. Правила обмена загружал как типовые из конфигурации, так и из файла в каталоге шаблона обновления.
На этапе выгрузки из УТ (Обмен данными.ОбменУправлениеТорговлейРозница.Отправка данных) возникает ошибка
_________________
Ошибка в базе-корреспонденте: {<Неизвестный модуль>(1,61)}: Ожидается символ ')'
{ОбщийМодуль.ОбщегоНазначения.Модуль(5402)}:    Возврат Вычислить(Выражение);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(7499)}:            Значение  = ОбщегоНазначения.ВычислитьВБезопасномРежиме(Выражение);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(9572)}:            Значение = ПрочитатьСвойство(ТипСвойства, ЭтоПустойНабор, СвойствоНеНайденоПоСсылке, ИмяПКО);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(16519)}:            ПоследнийОбъектЗагрузки = ПрочитатьНаборЗаписейРегистра();
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2710)}:        ПроизвестиЧтениеДанныхВРежимеВнешнегоСоединения(ЧтениеСообщения);

по причине:
{<Неизвестный модуль>(1,61)}: Ожидается символ ')'
ПодключаемоеОборудованиеРТ.ТипШтрихкода("010290001161054121"<<?>>A9rQtZ%OE7Wa91EE0692xgDfTWQlMIsHKuMUOfkxM42tKaKfyPQgfjlt/ynsAWo=                                                                                                                     ")

_________________

Неизвестный модуль является, очевидно, загружаемыми правилами обмена (файл ExchangeRules.xml), встречается в двух местах (первое - искомое, определение типа ШК при загрузке, второе относится к подарочным сертификатам):

_________________

                <Приемник>РегистрСведенийЗапись.Штрихкоды</Приемник>
                <Свойства>
                    <Свойство>
                        <Код>1</Код>
                        <Наименование>--&gt; ТипШтрихкода</Наименование>
                        <Порядок>50</Порядок>
                        <Источник Имя="" Вид=""/>
                        <Приемник Имя="ТипШтрихкода" Вид="Измерение" Тип="ПланВидовХарактеристикСсылка.ТипыШтрихкодов"/>
                        <ПередВыгрузкой>Выражение = "ПодключаемоеОборудованиеРТ.ТипШтрихкода("""+Источник.Штрихкод+""")";</ПередВыгрузкой>
                    </Свойство>

_________________

Ну и сама причина - опять же, это мои рассуждения:

<ПередВыгрузкой>Выражение = "ПодключаемоеОборудованиеРТ.ТипШтрихкода("""+Источник.Штрихкод+""")";</ПередВыгрузкой>

на штрихкоде маркировки с двойными кавычками внутри, вот он сам: (01)02900011610541(21)"A9rQtZ%OE7Wa
Собственно, вопросов два:
1. Это вообще я правильно причину нашел?
2. Если да, то как можно экранировать кавычки в ШК?
Ну и если никак, то что можно вообще сделать в этой ситуации?
Спасибо.
1 vdeemer
 
01.10.21
13:54
Собственного говоря, для переноса ШтрихкодыУпаковокТоваров (там тоже есть реквизит ТипШтрихкода) в правиле переноса нет определения типа ШК, он берется напрямую из перечисления:

<Свойство Поиск="true">
<Код>12</Код>
    <Наименование>ТипШтрихкода --&gt; ТипШтрихкода</Наименование>
    <Порядок>150</Порядок>
    <Источник Имя="ТипШтрихкода" Вид="Реквизит" Тип="ПеречислениеСсылка.ТипыШтрихкодов"/>
    <Приемник Имя="ТипШтрихкода" Вид="Реквизит" Тип="ПеречислениеСсылка.ТипыШтрихкодов"/>
    <КодПравилаКонвертации>ТипыШтрихкодов                                    </КодПравилаКонвертации>
</Свойство>

Может просто скопировать это туда? Не очень понятна логика разработчика - зачем определять тип ШК, если в обеих базах одинаковые типы в перечислении...
2 vdeemer
 
01.10.21
13:59
(1) не выйдет, там тип другой - ПланВидовХарактеристик.ТипыШтрихкода.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой