Отладка КД 3

1. spaceLama 27.07.23 12:38 Сейчас в теме
Всем доброго дня! Сначала опишу задачу, а потом свои попытки решения:
Настроена типовая синхронизация УНФ -> БП. По определенным причинам "Отчет о розничных продажах" в УНФ может содержать продажи номенклатуры с нулевыми суммами. Конфигурация БП полностью типовая и не допускает наличия таких строк, поэтому при переносе документа он не проводится. Т.к. снимать с замка ради такой мелочи не хочется, было написано расширение, которое в "Обработка проверки заполнения" исключает реквизит "Товары.Сумма" из обязательных реквизитов. Теперь, при ручном проведении документа он успешно проводится, но при синхронизации все равно срабатывает какая-то проверка и документ не проводится.
Собственно, не понимаю, как мне принудительно проводить ОРП при переносе. С КД 3 не работал, обрывками почитал про модули и принципы и было принято решение в отладчике попытаться добраться до момента, где срабатывает проверка. Синхронизация настроена через COM-соединение, я подключил отладку по вот этой статье https://odines.blogspot.com/2020/11/com.html . Далее, захожу в в УНФ, прожимаю синхронизацию, идет сначала "Получение" данных из БП - точки останова в БП срабатывают, затем идет, непосредственно, "Выгрузка" и вот тут точки останова не работают. Конкретно пробовал их ставить в процедуре "ПКО_Документ_ОтчетОРозничныхПродажах_ПередЗаписьюПолученных­Данных" и "ПКО_Документ_ОтчетОРозничныхПродажах_ПриКонвертацииДанныхXD­TO"
По теме из базы знаний
Найденные решения
8. spaceLama 30.07.23 17:20 Сейчас в теме
Удалось обойти следующим образом: изначально регламентное задание по синхронизации было настроено на стороне УНФ. Т.к. при прямом подключении отладчиком не получалось поймать нужные функции на стороне БП, то для тестирования перевел обмен на режим "через файл". В итоге выяснилось, что через файл всё работает корректно - мы нажимаем "Синхронизировать" на стороне УНФ, формируется файл выгрузки. Затем, мы жмем "Синхронизировать" на стороне БП, в базу записывается непроведенный ОРП. После чего срабатывает процедура ОбменДаннымиСервер.ВыполнитьОтложенноеПроведениеДокументов() и мы имеем проведенный документ. Это натолкнуло на мысль, что при прямом обмене мы можем регламентное задание настроить на стороне БП, что и решило поставленную задачу.
Видимо, если запускать регламентное задание на стороне отправителя, то физиология обмена несколько меняется, и такое отложенное проведение документов не запускается.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 27.07.23 14:57 Сейчас в теме
(1)
Прикрепленные файлы:
Borisych; +1 Ответить
4. spaceLama 27.07.23 16:58 Сейчас в теме
(2) Эту вещь я понимаю. Вопрос, как это программно обойти. Документ же физически переносится и записывается, но не проводится. Разве нельзя где-то в какой-то момент встроится и все-таки провести документ?
6. RustamZz 27.07.23 17:08 Сейчас в теме
(4) Данные не соответствуют формату. Документ не должен переноситься. Тут до проведения еще не дошло.
7. spaceLama 30.07.23 16:09 Сейчас в теме
(6) Документы переносятся, это точная информация
Прикрепленные файлы:
3. Borisych 503 27.07.23 16:23 Сейчас в теме
(1) Проверка происходит в XDTO
5. spaceLama 27.07.23 17:00 Сейчас в теме
(3) Может все-таки есть какое-то событие, в котором в последствии можно провести документ? Ведь КД 3 - это вещь чисто на общих модулях?
8. spaceLama 30.07.23 17:20 Сейчас в теме
Удалось обойти следующим образом: изначально регламентное задание по синхронизации было настроено на стороне УНФ. Т.к. при прямом подключении отладчиком не получалось поймать нужные функции на стороне БП, то для тестирования перевел обмен на режим "через файл". В итоге выяснилось, что через файл всё работает корректно - мы нажимаем "Синхронизировать" на стороне УНФ, формируется файл выгрузки. Затем, мы жмем "Синхронизировать" на стороне БП, в базу записывается непроведенный ОРП. После чего срабатывает процедура ОбменДаннымиСервер.ВыполнитьОтложенноеПроведениеДокументов() и мы имеем проведенный документ. Это натолкнуло на мысль, что при прямом обмене мы можем регламентное задание настроить на стороне БП, что и решило поставленную задачу.
Видимо, если запускать регламентное задание на стороне отправителя, то физиология обмена несколько меняется, и такое отложенное проведение документов не запускается.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот