Имя: Пароль:
1C
1C 7.7
v7: Конверт бух 7.7 -> бух 8.3
0 Бархат
 
24.08.17
19:26
Всем привет.

подскажите, пожалуйста. пробую конвертить 7.7 дописанную в 8.3 тож дописанную. Собираю реквизит составной. Он платёжка,списание,расходник.

Перед выгрузкой нужного документа пишу:

ВходящиеДанные = СоздатьОбъект("СписокЗначений");
    
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьКорСубконто(ВидыСубконто.Договоры, Источник.Договор, 2);  
    
    Ит.ВыполнитьЗапрос( Источник.Договор.ДатаВозникновенияОбязательства, Дата('22.08.2017'), "50.1,51", ,3 , 3,"Операция" );
    Ит.ВыбратьКорСубконто();
    Пока Ит.ПолучитьКорСубконто() = 1 Цикл
        Если ПустоеЗначение(Ит.КорСчет )= 0 Тогда
            Док = Ит.Операция.Документ;
            Если ТипЗначения(Док) = 12 тогда
                Если Док.Вид() = "РасходныйОрдер" Тогда
                    Если Док.Операция.Кредит.Счет.Код = "50.1" Тогда
                        //НЕ РАБОТАЕТ
                        ВходящиеДанные.Установить("ДокументОснованиеВыдачиЗайма",Док );
                    КонецЕсли;                    
                ИначеЕсли Док.Вид() = "Выписка" Тогда
                    Док.ВыбратьСтроки();
                    Пока док.получитьСтроку()=1 ЦИкл
                        Если док.Субконто1 = Источник.Контрагент тогда
                            //РАБОТАЕТ
                            ВходящиеДанные.Установить("ДокументОснованиеВыдачиЗайма",Док.ПервичныйДокумент );
                        КонецЕсли;                        
                    КонецЦикла;
                КонецЕсли;                        
            КонецЕсли;            
        КонецЕсли;
        
        
    КонецЦикла;



а при выгрузке своего составного реквизита пишу:
    Если (Значение.Вид()="Выписка") или (Значение.Вид()="ПлатежноеПоручение") Тогда
        ИмяПКО = "ПлатежноеПоручение";
    ИначеЕсли  Значение.Вид()="РасходныйОрдер" Тогда
        ИмяПКО = "РасходныйОрдер";
    Иначе
        Сообщить("Не предусмотренный тип значения элемента для :" + Значение);
        Отказ = 1;
    КонецЕсли


Платёжка доходит и встаёт на место, а расходник никак не хочет. При выгрузке появляется только платежка, расходника нет. Всю голову сломал.

ПОдскажите идеи, если есть...
1 Базис
 
naïve
24.08.17
19:49
Ты расходный кассовый ордер с расходным товарным не путаешь?
2 Бархат
 
24.08.17
19:59
(1)  не не не, на место //НЕ РАБОТАЕТ подходит расходник. Правило для составного для него тоже указываю расходническое (только значение до него не доходит)

на место //работает подходит платёжка.

Как будто что-то есть между "перед выгрузкой объекта" и "при выгрузке" реквизита, где расходник затирается
3 Бархат
 
25.08.17
15:55
то ли лыжи не едут, то ли еще что.
Выяснил в отладчике, что после //не работает "входящиеДанные" нормально с РКО подходят к концу функции, а потом при выходе значение в списке значений "ВходящиеДанные" пустое. СРАЗУ ПОСЛЕ ВЫХОДА ИЗ ФУНКЦИИ!!! причем РКО пустое, а платёжка есть. Как это так может быть??? РКО вышибает из списка значений, а платёжку нет???

есть что-то, что из списка значений может улететь? Как это вообще может случаться.

там же, где //не работает, ввёл тестовую строку в этот список значений "ВходящиеДанные". После выхода из функции эта строка остаётся. Вышибает только РКО.

Как так?
4 Бархат
 
25.08.17
16:21
.текущийДокумент() решило задачу