Имя: Пароль:
1C
1С v8
Программный документ операция
0 Shmidt
 
24.05.17
09:23
Странная ситуация. Создаю программно документ операция. Вот так:
        Если НЕ ПустаяСтрока(СтрПлатежа.ГУИД) Тогда
            GUID = Новый УникальныйИдентификатор(СтрПлатежа.ГУИД);
            рСсылкаНаДокумент = Документы.ОперацияБух.ПолучитьСсылку(GUID);
            Если рСсылкаНаДокумент.Пустая() Тогда
                Документ = Документы.ОперацияБух.СоздатьДокумент();
            Иначе
                Документ = рСсылкаНаДокумент.ПолучитьОбъект();
                Если Документ = Неопределено Тогда
                    Документ = Документы.ОперацияБух.СоздатьДокумент();
                Иначе    
                    Документ.Движения.Хозрасчетный.Очистить();
                КонецЕсли;
            КонецЕсли;    
        Иначе
            Документ = Документы.ОперацияБух.СоздатьДокумент();
        КонецЕсли;
        
        Документ.Организация = СтрПлатежа.Организация;
        Документ.Дата          = Дата;
        Документ.Комментарий = "Возврат"+" "+ВидОплаты.Наименование;
        Документ.Содержание     = Документ.Комментарий;
        Документ.Движения.Хозрасчетный.Записывать = Истина;
        Документ.Записать();
        ДокСсылка = Документ.Ссылка;
        
        ОбщаяСумма = 0;
        
        НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(ДокСсылка);
        НаборЗаписей.Прочитать();
        
        Для Каждого Строка из ТаблицаПлатежей Цикл
            Проводка = НаборЗаписей.Добавить();
            Проводка.Регистратор = ДокСсылка;
            Проводка.Активность = Истина;
            Проводка.Период     = Строка.Период;
            Проводка.Сумма         = -Строка.Сумма;
            Проводка.Содержание = "Возврат";
            Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); //62.01
            Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Строка.Контрагент;
            Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = Строка.Договор;
            Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.03");
            Если Строка.СпособОплаты = Справочники.ВидыОплатОрганизаций.НайтиПоКоду("000000009") Тогда    
                Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Справочники.Контрагенты.НайтиПоКоду("0000000149");
                Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000005868");
            Иначе
                Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Справочники.Контрагенты.НайтиПоКоду("0000000018");
                Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000005293");
            КонецЕсли;    
            ОбщаяСумма = ОбщаяСумма + Проводка.Сумма;
        КонецЦикла;
        
        НаборЗаписей.Записать();    
        
        Документ.СуммаОперации = ОбщаяСумма;
        Документ.Записать();
Документ записывается и все вроде бы хорошо. И в Хозрасчетном его движения есть, но. Когда бухгалтер строит Анализ счета по 57, то сумма из этой операции не попадает в отчет. Появляется только после ручной перезаписи этой операции. Что я упускаю? И материалов перечитал, у всех такой алгоритм работает, и пробовал по всякому.
1 Дмитрий
 
24.05.17
09:45
(0) какой-то реквизит не заполняешь, возможно - Организация,

а при интерактивной перезаписи он подставляется автоматом
2 1dvd
 
24.05.17
09:48
Отладчиком смотри что у тебя в Проводка не заполнено
3 Shmidt
 
24.05.17
10:10
(1) Да спасибо так и оказалось )))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.