7.7 Поменять в отчете вместо реализации, счет фактуру

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

  1. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    Поменять в отчете вместо реализаций выходили счет фактуры. Ткните пожалуйста пальцем, где и на что поменять. В принципе вроде должно быть не очень трудно. Спасибо! 1с 7.7 торговля+склад редакция 9.2

    Вложения:

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

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Но ведь движения по регистру (а основании которого и строится отчет) вызывает именно реализация, а не с/ф. И как быть в том случае если ее нет вообще или она не связана по основанию???

    В любом случае вым надо смотреть процедуру
    ПечатьСтрокиДокумента

    А правильнее было бы написать отдельный отчет именно по с/ф...
  3. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    понятно. а готового рения нет ни у кого? в коде не силен.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если нужно - в личку. Отчет элементарен
  5. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    надо. пожалуйста

    или если можно в этом отчете, выводились только те реализации у которого номер документа начинается с буквы И типа И0001545?
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Просто добавить условие
    Код:
    Если Лев(Док.НомерДок,1)<>"И" Тогда
    Продолжить;
    КонецЕсли;
    
    
  7. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    спасибо. а после чего добавить?
  8. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    Код:
     //******************************************************************************
    // ПечатьСтрокиДокумента(Запрос,Ном,НазваниеСекции,ПечТекстСтроки,ТекРасшифровка, ТекОст,ТекОстВ)
    //
    // Параметры:
    //  Запрос - объект "Запрос", на основании которого строится отчет
    //	Ном - Номер группировки запроса (Число)
    //	НазваниеСекции - название секции, которую следует использовать (Строка)
    //	ПечТекстСтроки - текстовое представление текущей строки
    //	ТекРасшифровка - расшифровка текущей строки
    //	ТекОст - 
    //	ТекОстВ - 
    //
    // Возвращаемое значение:
    //  Нет
    //
    // Вызывается из формул элементов диалога:
    //
    // Описание:
    //  Производит вывод в печатную форму одной строки запроса по группировке "Документ".
    //                                           
    Процедура ПечатьСтрокиДокумента(Запрос,Ном,НазваниеСекции,ПечТекстСтроки,ТекРасшифровка, ТекОст,ТекОстВ)   
    
    Если (Ном >= НомерГруппировкиПоДоговору) Тогда
    ПечВал	= Запрос.Договор.ВалютаВзаиморасчетов;
    Иначе     
    ПечВал 	= "";
    КонецЕсли; 
    СтрДолги = Долги.ПолучитьЗначение(Долги.ТекущаяСтрока());
    ПечТип = ВалютаОтчета;      
    
    ТекДок = Запрос.ПолучитьАтрибут("Документ");
    
    //начальный остаток
    Таб.ВывестиСекцию(НазваниеСекции+"|Начало");
    
    // приходы (по операциям)
    Приход		= Запрос.Приход;
    ПриходВ		= Запрос.ПриходВ;
    
    ВсегоСтрок 	= СписокОперДебет.РазмерСписка();
    Для СчЦикла =1 по ВсегоСтрок Цикл
    НазвОперации 	= СписокОперДебет.ПолучитьЗначение(ВсегоСтрок - СчЦикла + 1).Идентификатор();
    ТекПриход 		= Запрос.ПолучитьАтрибут(НазвОперации+"Приход");
    ТекПриходВ 		= Запрос.ПолучитьАтрибут(НазвОперации+"ПриходВ");
    Приход			= Приход 	- ТекПриход;
    ПриходВ			= ПриходВ 	- ТекПриходВ;
    ПечПриход 		= глФРМ(ТекПриход);
    ПечПриходВ 		= глФРМ(ТекПриходВ);
    ТекОст          = ТекОст + ТекПриход;
    ТекОстВ         = ТекОстВ+ ТекПриходВ;
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|Приход");
    КонецЦикла;                
    Если ПоОперациям = 0  Тогда
    Приход = Приход - Запрос.ВозвратОтПокупателя-Запрос.ВозвратПоставщику;
    ПриходВ = ПриходВ - Запрос.ВозвратОтПокупателяВ-Запрос.ВозвратПоставщикуВ;  
    КонецЕсли;       
    Если (НомерГруппировкиПоВидуДолга <> 9999) или (НомерГруппировкиПоКредДокументу <> 9999) Тогда
    Если (Ном < НомерГруппировкиПоВидуДолга) и (Ном < НомерГруппировкиПоКредДокументу) Тогда
    Приход = Приход - Запрос.ДельтаПриход;
    ПриходВ = ПриходВ - Запрос.ДельтаПриходВ;
    КонецЕсли;
    КонецЕсли;
    ТекОст 		= ТекОст 	+ Приход;
    ТекОстВ 	= ТекОстВ 	+ ПриходВ;               
    
    ПечПриход 	= глФРМ(Приход);
    ПечПриходВ 	= глФРМ(ПриходВ);
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|Приход");
    
    // расходы (по операциям)   
    Расход		= Запрос.Расход;
    РасходВ 	= Запрос.РасходВ; 
    
    ВсегоСтрок 	= СписокОперКредит.РазмерСписка();
    Для СчЦикла =1 по ВсегоСтрок Цикл
    НазвОперации 	= СписокОперКредит.ПолучитьЗначение(ВсегоСтрок - СчЦикла + 1).Идентификатор();
    ТекРасход 		= Запрос.ПолучитьАтрибут(НазвОперации+"Расход");
    ТекРасходВ		= Запрос.ПолучитьАтрибут(НазвОперации+"РасходВ");
    Расход			= Расход 	- ТекРасход; 
    РасходВ			= РасходВ 	- ТекРасходВ; 
    ПечРасход 		= глФРМ(ТекРасход);
    ПечРасходВ 		= глФРМ(ТекРасходВ);
    ТекОст          = ТекОст - ТекРасход;
    ТекОстВ         = ТекОстВ- ТекРасходВ;
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|Расход");
    КонецЦикла;
    Если ПоОперациям = 0 Тогда  
    Расход = Расход - Запрос.ВозвратПоставщику-Запрос.ВозвратОтПокупателя;
    РасходВ = РасходВ - Запрос.ВозвратПоставщикуВ - Запрос.ВозвратОтПокупателяВ;
    КонецЕсли; 
    Если (НомерГруппировкиПоВидуДолга <> 9999) или (НомерГруппировкиПоКредДокументу <> 9999) Тогда
    Если (Ном < НомерГруппировкиПоВидуДолга) и (Ном < НомерГруппировкиПоКредДокументу) Тогда
    Расход = Расход - Запрос.ДельтаРасход;
    РасходВ = РасходВ - Запрос.ДельтаРасходВ;
    КонецЕсли;
    КонецЕсли;
    ТекОст 		= ТекОст 	- Расход;
    ТекОстВ 	= ТекОстВ 	- РасходВ;                   
    
    ПечРасход 	= глФРМ(Расход);
    ПечРасходВ 	= глФРМ(РасходВ);
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|Расход");
    
    // конечный остаток
    ПечКонДолгНаш 		= ?(ТекОст  <0, глФРМ(-ТекОст  ),"");
    ПечКонДолгНашВ 		= ?(ТекОстВ <0, глФРМ(-ТекОстВ ),"");
    ПечКонДолгКлиента 	= ?(ТекОст  >0, глФРМ( ТекОст  ),"");
    ПечКонДолгКлиентаВ 	= ?(ТекОстВ >0, глФРМ( ТекОстВ ),"");
    КонДолгКлиентаП = 0;
    КонДолгКлиентаПВ = 0;   
    
    Если СтрДолги = "все" Тогда
    Долг1 = ПечКонДолгНаш;
    Долг2 = ПечКонДолгКлиента;
    Долг1В = ПечКонДолгНашВ;
    Долг2В = ПечКонДолгКлиентаВ;
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|КонечныйОстаток");
    ИначеЕсли СтрДолги = "только контрагентов" Тогда
    Долг1 = ПечКонДолгКлиента;
    Долг1В = ПечКонДолгКлиентаВ;
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|Серая");
    ИначеЕсли СтрДолги = "только наши" Тогда
    Долг1 = ПечКонДолгНаш;
    Долг1В = ПечКонДолгНашВ;
    Таб.ПрисоединитьСекцию(НазваниеСекции+"|Серая");
    КонецЕсли;
    
    глОживить(1);  
    
    
    КонецПроцедуры   
    
    
    // ПечатьСтрокиДокумента()
    
    
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    ...
    ТекДок = Запрос.ПолучитьАтрибут("Документ");
    Если Лев(ТекДок.НомерДок,1)<>"И" Тогда
    Продолжить;
    КонецЕсли;
    ....
    
    
  10. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    Продолжить<<?>>;
    {D:\Обмен\ведомость по контрагентам.ert(485)}: Оператор Continue (Продолжить) может употр######ться только внутри цикла
    При проверке модуля обнаружены синтаксические ошибки!
  11. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Будь внимательнее.
    1) В твоем случае не Док, а ТекДок
    2) Вместо Продолжить используй Возврат
  12. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    так вроде я исправил.
    Продолжить<<?>>;
    {D:\Обмен\ведомость по контрагентам.ert(485)}: Оператор Continue (Продолжить) может употр######ться только внутри цикла
    При проверке модуля обнаружены синтаксические ошибки!

    отлично вроде работает. спасибо

    все хорошо, но теперь он банковские документы не выдает в отчете. а там номер документа просто набор цифр 0001212 типа этого. как сделать чтобы они выводились?

    а еще все таки лучше чтобы по счет фактуре отчет выдавался, и там же банковские документы!
  13. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    все хорошо, но теперь он банковские документы не выдает в отчете. как сделать чтобы они выводились?

    а еще все таки лучше чтобы по счет фактуре отчет выдавался, и там же банковские документы!
  14. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Добавьте условие по виду...
    Код:
    ТекДок = Запрос.ПолучитьАтрибут("Документ");
    Если (ТекДок.Вид()<>"СтрокаВыпискиПриход")И(ТекДок.Вид()<>"СтрокаВыпискиРасход") Тогда
    Если Лев(ТекДок.НомерДок,1)<>"И" Тогда
    Продолжить;
    КонецЕсли;
    КонецЕсли;
    
    
    
    
  15. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    надо что бы в отчет попадали все накладные с буквой И не зависимо от того проведена или нет + банковские. сейчас все почти отлично, только не проведенные накладные не попадают в отчет!
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вот мы и подошли к тому с чего начали)))))))
    Последняя "хочуха" относительно не проведенных документов не реализуема в данном случае, т.е. отчет строится на запросе к регистрам, а не проведенные документы движений по регистрам как известно не вызывают...

    Необходимо писать свой отчет с выборкной документов.....
  17. TopicStarter Overlay
    neo_rasul
    Offline

    neo_rasul Опытный в 1С

    Регистрация:
    29 янв 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    а Вы говорили что сможете скинуть похожий отчет по счет фактурам, вместо реализации выходили счет фактуры, там точно все документы проведены.
  18. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Я не говорил что могу скинуть. Могу помочь написать - это да.
    Задавайте вопросы что не понятно. Писать за вас никто БЕСПЛАТНО не будет.

    Обратите внимание на конструкцию:
    Код:
    Док=СоздатьОбъект("Документ");
    Док.ВыбратьДокументы(НачДата,КонДата)
    Пока Док.ПолучитьДокумент()=1 Цикл
    //здесь само тело отчета
    КонецЦикла;
    
    
    попробуйте продолжить

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