7.7 В отчет вставить данные из платежного поручения

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

  1. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте!!!! Подскажите, как можно вставить в отчет данные из платежного поручения, например его номер, сумму НДС и назначение платежа. Я только начинаю осваивать конфигуратор. Заранее благодарю. 1 С Бухгалтерия редакция 4.5)
  2. Бухгалтерский угодник
    Offline

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

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

    Вложения:

    • отчет.ert
      Размер файла:
      46,5 КБ
      Просмотров:
      76
  3. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Большое спасибо!!!!!
  4. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Еще подскажите, плиз. Как обратиться к переменной НомерДок из запроса??? У меня формируется таблица с секцией "Строка", в таблице, в ячейке стоит <НомерДок>, но номер туда не попадет. Вот такой вопрос, очень надеюсь что понятно.
  5. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Обратись к переменной запроса....
    Код:
    Запрос.ТекущийДокумент.НомерДок
    
    
  6. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Делаю так запрос
    Код:
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с НачДата по КонДата;
    |Литера = Документ.ПлатежноеПоручение.Литера;
    |КодПроекта = Документ.ПлатежноеПоручение.КодПроекта;
    |НДС = Документ.ПлатежноеПоручение.НДС;
    |НомерДок = Документ.ПлатежноеПоручение.НомерДок;
    |Группировка Документ;
    |";//}}ЗАПРОС; 
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;	
    КонецЕсли; 
    
    
    
    Литера=Запрос.Документ.ПлатежноеПоручение.НомерДок;
    КодПроекта=Запрос.КодПроекта; 
    
    на выходе получаю " Поле агрегатного объекта не обнаружено (ПлатежноеПоручение)"
    почему такое может быть?
  7. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Надо так: Запрос.Документ.НомерДок

    Документ в запросе уже и есть платежное поручение....
  8. Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Или Просто:

    Запрос.НомерДок
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    точно - не обратил внимание на лишнюю переменную в запросе
  10. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Очень помогло! Спасибо! Буду учиться пользоваться запросами.
  11. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    По ходу составления отчета, появился еще вопрос, очень надеюсь на вашу помощь.
    Делаю отчет по движению денег на 51 счете, за основу взяла "Регистр по учету расходов ден.средств", добавила туда поступления денежных средств.

    Теперь мне нужно добавить к расходам еще и номер платежки и еще реквизиты из платежного поручения . Не могу правильно задать цикл.

    Вот что у меня полулось:
    Код:
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    БухИт.ИспользоватьПланСчетов(ОсновнойПланСчетов());
    БухИт.ВыполнитьЗапрос(НачДата, КонДата, "50,51,52,55",,, 1, "Проводка", "С");  
    
    
    
    БухИт.ВыбратьПериоды(, 0);
    Пока БухИт.ПолучитьПериод() = 1 Цикл
    
    Опер = БухИт.Операция;
    ДатаРасхода = Опер.ДатаОперации;  
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |ОбрабатыватьДокументы все;
    |Обрабатывать НеПомеченныеНаУдаление;
    |НомерДок=Документ.ПлатежноеПоручение.НомерДок;
    |Период с ДатаРасхода;
    |Литера = Документ.ПлатежноеПоручение.Литера;
    |КодПроекта = Документ.ПлатежноеПоручение.КодПроекта;
    |НДС = Документ.ПлатежноеПоручение.НДС;
    |Сумма =Документ.ПлатежноеПоручение.Сумма;   	
    |Группировка Документ; 
    |";//}}ЗАПРОС; 
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;	
    КонецЕсли;
    
    
    Номер.Док=Запрос.НомерДок;
    КодПроекта=Запрос.КодПроекта;
    Литера=Запрос.Литера;
    Сумма=Запрос.Сумма;
    
    
    У меня в таблицу втавляются данные по первой платежке на каждую дату, а нужно чтобы к каждому расходу(Кредит 51) цеплялись данные из соответствующего платежного поручения. Возможно ли это. И как можно связать БИ с платежными поручениями. Любые идеи будут в помощь.
  12. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    В этой теме еще не писал :smile:
    За выполнение запроса в цикле - расстрел на месте :unsure:
    Нужно от этих моментов избавляться. Это здорово сказывается на производительности.

    В данном конкретном случае запрос совсем не нужен. Делай простой перебор документов.
  13. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    WaRDeR прав. Запрос внутри цикла - смертоубийство.
    Попробуй применить подобную схему:
    Код:
    Док=СоздатьОбъект("Документ.ПлатежноеПоручение");
    Док.ВыбратьДокументы(НачДата,КонДата);
    Пока Док.ПолучитьДокумент()=1 Цикл
    Если Док.Проведен()=0 Тогда
    продолжить;
    КонецЕсли;
    Сообщить(Док.НомерДок);
    Сообщить(Док.КодПроекта);
    Сообщить(Док.Литера);
    Сообщить(Запрос.Сумма);
    КонецЦикла;
    
    
    
  14. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Спасибо!!!!!!
  15. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    Да еще вопрос, по сотавлению того же отчета. Как проверить что стоит в поле платежного поручения, (я создала доп. поля в плат.поручении) делаю так,
    Код:
    Если ЗаЧтоОплата="м" Тогда
    Переменная2="for materials";
    ИначеЕсли (ЗаЧтоОплата="р") и (АвансЛи=1) Тогда
    Переменная2="for execation of works";
    ИначеЕсли ЗаЧтоОплата="р" Тогда
    Переменная2="for execated works";
    Иначе Переменная2="ВСТАВИТЬ";
    КонецЕсли;
    УсловиеОплаты=Переменная1+" "+Переменная2;
    
    
    но программа игнорирует это и выводит в отчете пустое поле.
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1) Если ЗаЧтоОплата не является Строкой длиной в 1 символ нужно делать так:

    Код:
    ЗаЧтоОплата=СокрЛП(ЗаЧтоОплата)
    
    
    2) Где присвается значение Переменная1 - по тексту не видно..... Поэтому один АЛЛАХ ведает что у тебя там
  17. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    ЗаЧтоОплата как раз является строкой в один символ(((
  18. Бухгалтерский угодник
    Offline

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

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

    Так и не ясно что хранит Переменная1....
  19. TopicStarter Overlay
    luluandra
    Offline

    luluandra Опытный в 1С

    Регистрация:
    12 май 2009
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    26
    На процедуру не смогу изменить, не знаю как, а если я строку в 2 символа сделаю, это проще для меня. а Переменная1, примерно так же как и Переменная2, тоже присваивается в зависимости что стоит в поле (тож в один символ).
  20. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Сделай так
    Код:
    Сообщить("В данный момент ЗаЧтоОплата=!"+ЗаЧтоОплата+"!");
    Если ЗаЧтоОплата="м" Тогда
    Переменная2="for materials";
    ИначеЕсли (ЗаЧтоОплата="р") и (АвансЛи=1) Тогда
    Переменная2="for execation of works";
    ИначеЕсли ЗаЧтоОплата="р" Тогда
    Переменная2="for execated works";
    Иначе Переменная2="ВСТАВИТЬ";
    КонецЕсли;
    Сообщить("После условия Переменная2=!"+Переменная2+"!");
    Сообщить("При этом Переменная1=!"+Переменная1+"!");
    УсловиеОплаты=Переменная1+" "+Переменная2;
    Сообщить("После присвоения УсловиеОплаты=!"+УсловиеОплаты+"!");
    
    
    Конечно проще было бы посмотреть в отладчике, но судя по всему ты это делать не умеешь. Прочитай про отладчик и поэкспериментируй с ним - многие вопросы исчезнут сразу.

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