7.7 Отчет по НДС

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Mitay_D, 8 июн 2011.

  1. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте уважаемые программисты. Нужно создать отчет по НДС. вопрос: Как проще и оптимальнее получить данные и вывести в печатную форму. 1С 7.7 ПуБ, затруднения возникли при выводе данных по 2-м документам (столбец Входящий документ и Входящий НДС (сумма). Спасибо.
    [​IMG]
  2. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    + группировка по документам должна быть, чтобы видеть какие документы учавствуют
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Запрос может быть общим. Затем разделяем по видам на две ТЗ и ориентируясть на ТекущаяСтрока и КоличествоСтрок в ТЗ1 и ТЗ2 выводим секции
  4. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Спасибо, пока сейчас так и делаю, посмотрю как получиться
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А по другому и не получится)
  6. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Получилось заполнить ТЗ1 и ТЗ2, данными, а как теперь вывести на печать? В цикле пробегаюсь по ТЗ, получаю строки - вывожу на печать, пробегаю по ТЗ2 получаю строки и тут для меня загвозка, а как их присоединить ровненько?
    Код:
    Пока Запрос.Группировка(1) = 1 Цикл
    Если ГруппировкаПоДокументам = 1 Тогда 
    Пока Запрос.Группировка("ТекущийДокумент") = 1 Цикл 
    Док =  Запрос.ТекущийДокумент.Вид();
    Если Док = "РеализацияПродукции" Тогда  
    Если Запрос.НДССумма = 0 Тогда  
    Иначе  
    ТЗ.НоваяСтрока();
    ТЗ.ДокументИсходящийНДС = Запрос.ТекущийДокумент;  
    ТЗ.СуммаИсходящегоНДС = Запрос.НДССумма; 
    КонецЕсли;
    ИначеЕсли (Док = "ПоступлениеТоваров") или (Док = "ПоступлениеУслугПрочее") Тогда 
    ТУЗ.НоваяСтрока();
    ТУЗ.ДокументВходящийНДС = Запрос.ТекущийДокумент;  
    ТУЗ.СуммаВходящегоНДС = Запрос.НДССумма; 
    КонецЕсли;
    КонецЦикла;	      
    КонецЕсли;  
    КонецЦикла;    
    
    

    Вложения:

  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Все просто как 2*2

    Код:
    ОбщееКоличество=Макс(ТЗ1.КоличествоСтрок(),ТЗ2.КоличествоСтрок());
    
    Для к=1 По ОбщееКоличество Цикл
    Если  ОбщееКоличество<=ТЗ1.КоличествоСтрок() Тогда
    ТЗ1.ПолучитьСтрокуПоНомеру(к);
    Док1=ТЗ1.Док;
    НДС1=ТЗ1.НДС;
    Иначе
    Док1="";
    НДС1=0;
    КонецЕсли;
    
    Если  ОбщееКоличество<=ТЗ2.КоличествоСтрок() Тогда
    ТЗ2.ПолучитьСтрокуПоНомеру(к);
    Док2=ТЗ2.Док;
    НДС2=ТЗ2.НДС;
    Иначе
    Док2="";
    НДС2=0;
    КонецЕсли;
    Таб.ВывестиСекцию("Стр");
    КонецЦикла;
    
    
  8. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Код:
     
    Пока Запрос.Группировка(1) = 1 Цикл
    Если ГруппировкаПоДокументам = 1 Тогда 
    Пока Запрос.Группировка("ТекущийДокумент") = 1 Цикл 
    Док =  Запрос.ТекущийДокумент.Вид();
    Если Док = "РеализацияПродукции" Тогда  
    Если Запрос.НДССумма = 0 Тогда  
    Иначе  
    ТЗ.НоваяСтрока();
    ТЗ.ДокументИсходящийНДС = Запрос.ТекущийДокумент;  
    ТЗ.СуммаИсходящегоНДС = Запрос.НДССумма; 
    КонецЕсли;
    ИначеЕсли (Док = "ПоступлениеТоваров") или (Док = "ПоступлениеУслугПрочее") Тогда 
    ТУЗ.НоваяСтрока();
    ТУЗ.ДокументВходящийНДС = Запрос.ТекущийДокумент;  
    ТУЗ.СуммаВходящегоНДС = Запрос.НДССумма; 
    КонецЕсли;
    КонецЦикла;          
    КонецЕсли;  
    КонецЦикла;      
    
    ОбщееКоличество=Макс(ТЗ.КоличествоСтрок(),ТУЗ.КоличествоСтрок());      
    Для к=1 По ОбщееКоличество Цикл
    Если  ОбщееКоличество<=ТЗ.КоличествоСтрок() Тогда
    ТЗ.ПолучитьСтрокуПоНомеру(к);
    Док1=ТЗ.ДокументИсходящийНДС;
    НДС1=ТЗ.СуммаИсходящегоНДС;
    Иначе
    Док1="";
    НДС1=0;
    КонецЕсли;
    
    Если  ОбщееКоличество <= ТУЗ.КоличествоСтрок() Тогда
    ТУЗ.ПолучитьСтрокуПоНомеру(к);
    Док2=ТУЗ.ДокументВходящийНДС;
    НДС2=ТУЗ.СуммаВходящегоНДС;
    Иначе    
    Док2="";
    НДС2=0;   
    КонецЕсли;
    Таб.ВывестиСекцию("ТекущийДокумент");
    КонецЦикла;
    
    
    Исходящим НДС все заполняет, а вот по входящему не показывает ни один документ и не одну сумму
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А вторая ТЗ вообще что-то содержит?
  10. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Да

    [​IMG]
    может из-за того, что количество документов разное в обеих ТЗ
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да ведь так и должно быть!
    В целом у вас все правильно... Только я бы добавил условие при заполнении НДС=0. Зачем вам "пустые" документы?
    см. скрин....
  12. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Странное условие
    Если ОбщееКоличество<=ТЗ1.КоличествоСтрок() Тогда

    наверное должно быть
    Если к<=ТЗ1.КоличествоСтрок() Тогда
  13. TopicStarter Overlay
    Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Это ТЗ и ТУЗ, а вот, что печатная форма выдает:
    [​IMG]
    Код:
    Если  ОбщееКоличество <= ТУЗ.КоличествоСтрок() Тогда
    ТУЗ.ПолучитьСтрокуПоНомеру(к);
    Док2=ТУЗ.ДокументВходящийНДС;
    НДС2=ТУЗ.СуммаВходящегоНДС; 
    Иначе    
    Док2="";
    НДС2=0;  
    КонецЕсли;
    
    
    вот здесь условие на иначе сразу срабатывает

    так и есть, спасибо
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Блин... Работал над другим проектом - не внимательно написал.... Извините

Поделиться этой страницей