Имя: Пароль:
1C
1С v8
Подскажите, где ошибка в коде
0 Vladius27
 
10.07.12
13:20
В печатной форме Акт на списание материалов, не встает сумма... в чем может быть причина?
Вот код:

Перем мВалютаРегламентированногоУчета Экспорт;
Перем мПечатьИзМодуля Экспорт;
Перем мНеОткрыватьФормуПечати Экспорт;

Функция ПечатьДокумента()
   НомерСФ = "-";
   ДатаСФ = '00010101';
   Попытка
       Если СсылкаНаОбъект.Материалы.Количество() > 0 Тогда
           Основание = СсылкаНаОбъект.Материалы[0].ДокументОприходования;
           Если НЕ Основание.Пустая() Тогда
               НайтиСФ = УчетНДС.НайтиПодчиненныйСчетФактуру(Основание, "СчетФактураПолученный");
               Если НайтиСФ <> Неопределено Тогда
                   НомерСФ = ?(СокрЛП(НайтиСФ.НомерВходящегоДокумента)<>"",НайтиСФ.НомерВходящегоДокумента,НайтиСФ.Номер);
                   ДатаСФ = ?(СокрЛП(НайтиСФ.ДатаВходящегоДокумента)<>"",НайтиСФ.ДатаВходящегоДокумента,НайтиСФ.Дата);
               ИначеЕсли Основание.ПредъявленСчетФактура Тогда
                   НомерСФ = Основание.НомерВходящегоСчетаФактуры;
                   ДатаСФ = Основание.ДатаВходящегоСчетаФактуры;
               КонецЕсли;
           КонецЕсли
       КонецЕсли;
   Исключение
   КонецПопытки;
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ТребованиеНакладнаяМатериалы.Номенклатура,
                  |    СУММА(ТребованиеНакладнаяМатериалы.Количество) КАК Количество,
                  |    ВЫБОР
                  |        КОГДА ТребованиеНакладнаяМатериалы.Ссылка.СчетаУчетаЗатратВТаблице
                  |            ТОГДА ТребованиеНакладнаяМатериалы.ПодразделениеЗатрат
                  |        ИНАЧЕ ТребованиеНакладнаяМатериалы.Ссылка.ПодразделениеЗатрат
                  |    КОНЕЦ КАК Подразделение,
                  |    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
                  |ИЗ
                  |    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &Ссылка, , ) КАК ХозрасчетныйДвиженияССубконто
                  |        ПО ТребованиеНакладнаяМатериалы.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
                  |            И (ВЫБОР
                  |                КОГДА ТребованиеНакладнаяМатериалы.Ссылка.СчетаУчетаЗатратВТаблице
                  |                    ТОГДА ТребованиеНакладнаяМатериалы.ПодразделениеЗатрат
                  |                ИНАЧЕ ТребованиеНакладнаяМатериалы.Ссылка.ПодразделениеЗатрат
                  |            КОНЕЦ = ХозрасчетныйДвиженияССубконто.ПодразделениеДт)
                  |ГДЕ
                  |    ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ТребованиеНакладнаяМатериалы.Номенклатура,
                  |    ВЫБОР
                  |        КОГДА ТребованиеНакладнаяМатериалы.Ссылка.СчетаУчетаЗатратВТаблице
                  |            ТОГДА ТребованиеНакладнаяМатериалы.ПодразделениеЗатрат
                  |        ИНАЧЕ ТребованиеНакладнаяМатериалы.Ссылка.ПодразделениеЗатрат
                  |    КОНЕЦ";
   Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);              
   ТабЧасть = Запрос.Выполнить().Выгрузить();
   СуммаДок = ТабЧасть.Итог("Сумма");
   ТабДок = Новый ТабличныйДокумент;
   ТабДок.ИмяПараметровПечати = "Параметры_Печати_Акта_Требование_Накладной";
   
   Макет = ПолучитьМакет("Акт");
   Область = Макет.ПолучитьОбласть("Шапка");
   Область.Параметры.ДатаАкта = Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yy");
   Попытка
       Область.Параметры.Поставщик = СсылкаНаОбъект.Материалы[0].ДокументОприходования.Контрагент;
   Исключение
       Область.Параметры.Поставщик = " ";
   КонецПопытки;
   Область.Параметры.НомерСФ = НомерСФ;
   Область.Параметры.ДатаСФ = Формат(ДатаСФ,"ДФ=dd.MM.yy; ДП=-");
   Область.Параметры.СуммаДокПрописью = Формат(СуммаДок,"ЧДЦ=2") + " руб. (" + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаДок, мВалютаРегламентированногоУчета)+")";
   
   ТабДок.Вывести(Область);
   
   Область = Макет.ПолучитьОбласть("Строка");
   НомПП = 1;
   Для Каждого Стр Из ТабЧасть Цикл
       Область.Параметры.Заполнить(Стр);
       Область.Параметры.НомПП = НомПП;
       ТабДок.Вывести(Область);
       НомПП = НомПП + 1;
   КонецЦикла;
   
   Область = Макет.ПолучитьОбласть("Подвал");
   Область.Параметры.ИтогКоличество = ТабЧасть.Итог("Количество");
   Область.Параметры.ИтогСумма = ТабЧасть.Итог("Сумма");
   Область.Параметры.Дата = СсылкаНаОбъект.Дата;
   
   ТабДок.Вывести(Область);
   
   Возврат ТабДок;
   
   
КонецФункции

Функция Печать() Экспорт
   Если мНеОткрыватьФормуПечати ИЛИ мПечатьИзМодуля Тогда
       
       //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       Возврат ПечатьДокумента();
       //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   Иначе
       Форма = ПолучитьФорму("Форма");
       мПечатьИзМодуля = Истина;
       Форма.Открыть();
   КонецЕсли;
КонецФункции

мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
мПечатьИзМодуля = Ложь;
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
мНеОткрыватьФормуПечати = Истина;
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1 vicof
 
10.07.12
13:21
А отладчик на что?
2 Spieluhr
 
10.07.12
13:43
А в проводках-то сумма есть? Может вы списываете то, чего нет
3 Vladius27
 
10.07.12
14:28
В отладчике просто сумма ноль! Причем когда затраты на счет 26, то тогда все ок! Не заполняется сумма в печатной форме когда списываем на 91.02!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн