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

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

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

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

(10) так она потом выделяет доки и они проводятся
12 Ivan_495
 
08.06.21
20:03
да. возможно. есть несколько вариантов
13 Ненавижу 1С
 
гуру
08.06.21
20:46
(8) это ты своим хейтерам ответил, когда они к тебе в гости пришли?
14 Гений 1С
 
гуру
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 тут нет поля проведен у документа реализации
Основная теорема систематики: Новые системы плодят новые проблемы.