|   |   | 
| 
 | План обмена, связанные изменения | ☑ | ||
|---|---|---|---|---|
| 0
    
        OnePrg 07.10.22✎ 14:21 | 
        Настроен план обмена. Данные выгружаются в приёмник (база SQL) в виде таблиц. Но приёмник проверяет данные на связанность таблиц между собой.
 Таблицы: Номенклатура, Характеристики, Единицы измерения, цены. Проблема в том, что время от времени приёмник не принимает данные, потому-что определяет, например, что в таблице номенклатуры нет ссылки, на которую ссылается таблица характеристики. Думаю, что причина в том, что 1С регистрируют изменения в одном объекте, не регистрирую для выгрузки связанные объекты. Например, если записывается номенклатура, то характеристики и единицы измерения не записываются и наоборот. Я попробовал перед обменом перебирать таблицы изменений и записывать связанные данные, но время от времени обмен опять клинит. Думаю, что во время самой выгрузки может происходит запись несвязанных данных. Какое есть решение? Отключить авторегистрацию и выполнять её ПриЗаписи с учётом связанных объектов? | |||
| 1
    
        Serg_1960 07.10.22✎ 15:10 | 
        (0) "Настроен план обмена. Данные выгружаются в приёмник" - пропущено "НСИ - синхронизированы". Впрочем это необязательно, но тогда нужно корректно настроить выгрузку/загрузку объектов по ссылкам.     | |||
| 2
    
        Naumov 07.10.22✎ 15:11 | 
        1С считает, что все, на что ссылается выгружаемое ранее (или в текущем пакете) зарегистрировано и отправлено.
 если у вас этого не произошло, то вопросы к настройкам обмена | |||
| 3
    
        Serg_1960 07.10.22✎ 15:17 | 
        В конвертации данных нечто подобное происходит если у правила была установлена галочка "Не выгружать объекты свойств источника по ссылкам".     | |||
| 4
    
        OnePrg 07.10.22✎ 15:32 | 
        Каждый раз как клинит обмен, я вручную делаю резет обмена: очищаю служебную таблицу в SQL и запускаю процедуру обмена в 1С.
 Пока решил так: сделаю проверку, что если долгое время нет приёма от SQL, то 1С сама очищает служебную таблицу в SQL. Всем спасибо. | |||
| 5
    
        pavig 07.10.22✎ 17:33 | 
        (0) 
 Приемник - это не 1С? | |||
| 6
    
        pavig 07.10.22✎ 17:33 | 
        (4) 
 Что за служебная таблица SQL? | |||
| 7
    
        pavig 07.10.22✎ 17:37 | 
        (0) 
 Если приемник 1С, то такого быть не должно. Если всё-таки есть, то проблема в правилах обмена. По-хорошему, правила должны учитывать такие проблемы (или логикой преобразований, или ссылками). К примеру, если загружается характеристика по номенклатуре, которой нет в приемнике, то характеристика должна таки загрузиться, но в поле Владелей у неё будет что-то типа "объект не найден 384к52аг5ь2с48". Если обмен выбивает на ошибке, то бага в правилах. Или это фича. Тут надо понять логику конкретного обмена и конкретных правил. | |||
| 8
    
        Eiffil123 10.10.22✎ 13:53 | 
        (0) обратите внимание, что выборка из плана обмена не дает гарантии, что элементы выбираются в порядке, в котором они добавлялись регистрировались в плане обмена. Возможно в этом загвоздка     | |||
| 9
    
        Naumov 10.10.22✎ 14:19 | 
        (8) Обмену пофиг порядок, если зарегистрировано все, что нужно.     | |||
| 10
    
        Eiffil123 10.10.22✎ 14:33 | 
        (9) вот же автор пишет "время от времени приёмник не принимает данные, потому-что определяет, например, что в таблице номенклатуры нет ссылки". Т.е. характеристика пришла, а номенклатура еще нет. При этом у него на уровне sql стоит проверка возможности записи.     | |||
| 11
    
        Smallrat 10.10.22✎ 15:23 | 
        Типичная фигня в обменах, особенно если разбивать объекты по разным сообщениям - вполне реальны ситуации, например, при загрузке сотрудника, что физлицо от сотрудника приедет в следующем сообщении, потому что (8). Я выкручиваюсь так, как это сделано в универсальном обмене - создаю "битые ссылки" на объекты, которые должны когда-нибудь приехать.     | |||
| 12
    
        Naumov 10.10.22✎ 15:53 | 
        (10) Если приемник не принимает, то нет ответа о приеме пакета, данные должны отправляться повторпно.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |