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

БП3: Загрузка данных Enterpise Data - чтобы загруженные проводились.

БП3: Загрузка данных Enterpise Data - чтобы загруженные проводились.
Я
   Гений 1С
 
08.06.21 - 17:00
Скромная такая хотелка от бухгалтера - это возможно типовыми настройками?
Или надо писать расширение? В принципе у нее не Фреш, а бухня на 1АБ:Облаке, можно закинуть и расширением.
   Garykom
 
1 - 08.06.21 - 17:01
оно и есть типовыми если ошибок нет и все реквизиты заполнились
а вот если нет то упс
   acht
 
2 - 08.06.21 - 17:02
Опять у Гени проблемы какие-то, да что ж такое
   Biker
 
3 - 08.06.21 - 17:05
(2) Это у него бизнес-модель такая, проблемы клиента перекидывать на форум, а самому бабки стричь, пора его темы платными делать
   Вафель
 
4 - 08.06.21 - 17:13
(2) у него одна проблема: думать алом проще спросить
   Новый1сник2
 
5 - 08.06.21 - 17:16
(0) проверить на заполненность реквизитов если причина в этом. можно подписки на события создать
   ChMikle
 
6 - 08.06.21 - 17:44
Готовится на рост в карьере Генеральный директор (1С Франчайзи, в Краснодар) потихоньку учится задачи перекидывать и потенциальную команду консультантов :))
   Гений 1С
 
7 - 08.06.21 - 19:04
(1) так она потом вручную проводит
   Гений 1С
 
8 - 08.06.21 - 19:04
(4) за спрос не бьют в нос
   rphosts
 
9 - 08.06.21 - 19:05
(7) значит не всё переносится.
   hhhh
 
10 - 08.06.21 - 19:17
(7) всё проводится, это вы чего-то чудите. Или отрицательные остатки туда фигачите или действительно поля незаполненные.
   Гений 1С
 
11 - 08.06.21 - 19:21
(9) Ладно попробуем анализ кода.
Обработка ВыгрузкаЗагрузкаEnterpriseData, код в модуле.
Процедура: ЗагрузитьДанныеИзXML

Она вызывает ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанныхе на весь файл XML
и далее ОбменДаннымиXDTOСервер.ПрочитатьСообщениеОбмена

В этом модуле есть еще ВыполнитьОтложенноеПроведениеДокументов.

Ну да ладно, в следующий раз подключусь, когда она будет грузить, посмотрю что там в журнале регистрации

(10) так она потом выделяет доки и они проводятся
   Ivan_495
 
12 - 08.06.21 - 20:03
да. возможно. есть несколько вариантов
   Ненавижу 1С
 
13 - 08.06.21 - 20:46
(8) это ты своим хейтерам ответил, когда они к тебе в гости пришли?
   Гений 1С
 
14 - 25.06.21 - 16:13
Короче, пришлось решать эту задачу


КомпонентыОбмена.XMLСхема = http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6

Процедура ОбменДаннымиXDTOСервер::ЗаписатьОбъектВИБ - тут происходит запись по классике:

    Попытка
        
        // Записываем объект в транзакцию.

        Объект.Записать();
        
        ЗафиксироватьТранзакцию();
        
    Исключение
        ОтменитьТранзакцию();


ОбменДаннымиXDTOСервер::СтруктураОбъектаXDTOВДанныеИБ - тут происходит после записи объекта вызов:

ЗапомнитьОбъектДляОтложенногоЗаполнения(ДанныеДляЗаписиВИБ, ПравилоКонвертации, КомпонентыОбмена);

Вот эта процедура:


Процедура ЗапомнитьОбъектДляОтложенногоЗаполнения(ДанныеДляЗаписиВИБ, ПравилоКонвертации, КомпонентыОбмена)
    
    Если ПравилоКонвертации.ЕстьОбработчикПослеЗагрузкиВсехДанных Тогда
        
        // Занесем данные об объекте в таблицу отложенной обработки.

        НоваяСтрока = КомпонентыОбмена.ЗагруженныеОбъекты.Добавить();
        НоваяСтрока.ИмяОбработчика = ПравилоКонвертации.ПослеЗагрузкиВсехДанных;
        НоваяСтрока.Объект         = ДанныеДляЗаписиВИБ;
        НоваяСтрока.СсылкаНаОбъект = ДанныеДляЗаписиВИБ.Ссылка;
        
    КонецЕсли;
    
КонецПроцедуры

Правило называется ОтложеннаяОбработка_РТиУ:


В процедуре МенеджерОбменаЧерезУниверсальныйФормат13::ВыполнитьПроцедуруМодуляМенеджера
    ИначеЕсли ИмяПроцедуры = "ОтложеннаяОбработка_РТиУ" Тогда 
        ОтложеннаяОбработка_РТиУ(
            Параметры.Объект, Параметры.КомпонентыОбмена.ПараметрыКонвертации, Параметры.ОбъектМодифицирован);


И вот собственно этот код:

Процедура ОтложеннаяОбработка_РТиУ(Объект, ПараметрыКонвертации, ОбъектМодифицирован)
    Если НЕ ЗначениеЗаполнено(Объект.ДоговорКонтрагента) Тогда
        // Устанавливаем основной договор, если он не найден.

        Объект.ДоговорКонтрагента = ОсновнойДоговорКонтрагента(Объект, Объект.Организация, Объект.Контрагент, Объект.ВалютаДокумента);
    КонецЕсли;
    
    // Заполняем счета учета

    
    ЗаполнитьСчетаУчета(Объект);
    
    ЗаполнитьДеятельностьНаПатентеТорговомСборе(Объект);
    
    УчетНДСБП.ЗаполнитьКодТНВЭДОбъекта(Объект);
КонецПроцедуры


Сюда заходило.

И вот наконец, зашло в ОбменДаннымиXDTOСервер::ВыполнитьОтложенноеПроведениеДокументов
И тут же вышло:
    Если ДокументыДляОтложенногоПроведения.Количество() = 0 Тогда
        Возврат;// нет документов в очереди

    КонецЕсли;

Т.е. не заполнилось проведение документов.

Почему?

Поискал по конфигурации, оно заполняется тут: ОбменДаннымиXDTOСервер::СтруктураОбъектаXDTOВДанныеИБ
        Если ПравилоКонвертации.ЭтоДокумент Тогда
            
            Попытка
                
                Если ПравилоКонвертации.ДокументМожетПроводиться Тогда
                
                    Если ДанныеДляЗаписиВИБ.Проведен Тогда
                        


И вот тут имеем что ДанныеДляЗаписиВИБ.Проведен = ложь


Дальше я не понял, почему она не устанавливается.

Попробовал в файл добавить тег Проведен, не помогло.

https://v8.1c.ru/upload/static/enterprisedata_1_0.html#00000000054 тут нет поля проведен у документа реализации

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.