7.7 Отчет в разных разрезах

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Dem0lisher, 4 авг 2009.

  1. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    Здравствуйте!
    Я тут новичек, пытаюсь освоить конфигурирование 1с v7.7
    При решении задачи возникла проблема. В задаче создается документ "ПоставкаМяса", (ТипМяса,поставщик,областьПотребитель,кол-во,цена,сумма).Тут все Ок.
    Далее требуется создать отчет, в отчете не получается реализовать ситуацию, например,когда не выбран тип мяса, в отчете надо вывести все поставки мяса, или например не выбрана область-потребитель, тут надо вывести отчет о поставках по всем областям.
    Отчет создаю с помощью такой оказии:
    --------------------------------------------
    Процедура сформировать()
    Док.ВыбратьДокументы();
    Пока Док.ПолучитьДокумент=1 Цикл
    Док.ВыбратьСтроки()
    Пока Док.ПолучитьСтроку()=1 Цикл
    ТабЗн.НоваяСтрока();
    ТабЗн.ТипМяса=Док.ТипМяса;
    ТабЗн.Область=Док.Область;
    ТабЗн.Поставщик=Док.Поставщик;
    ТабЗн.Кво=Док.Кво;
    ТабЗн.Цена=Док.Цена;
    ТабЗн.Сумма=Док.Сумма;
    КонецЦикла;
    КонецЦикла;
    ТабЗн.Свернуть("ТипМяса","Поставщик,Область,Кво,Цена,Сумма");

    ТабЗн.Сортировать("1+");
    ТабЗн.ВыбратьСтроки();
    Пока ТабЗн.ПолучитьСтроку()=1 Цикл
    ТипМяса=ТабЗн.ТипМяса;
    Область=ТабЗн.Область;
    Поставщик=ТабЗн.Поставщик;
    Кво=ТабЗн.Кво;
    Цена=ТабЗн.Цена;
    Сумма=ТабЗн.Сумма;
    Таб.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб.ВывестиСекцию("Итог");
    Таб.Опции(0,0,0,0);
    Таб.Показать();

    КонецПроцедуры

    --------------------------------------------
    И еще ткните носом в хороший мануал по созданию отчетов с помощью запросов
    По книге получается с большим трудом.. 3 дня об монитор головой бился :unsure: оказалось, что даже в прилагаемом к книге диске ОШИБКИ!
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуй воспользоваться КОНСТРУКТОРОМ запросов.
  3. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    блин, конструктором-не смогу, в книге был один пример на эту тему и то очень скудный.. так что конструктор запросов-для меня лес дремучий
  4. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    может немножко кривовато, написал первое что пришло в голову

    Код:
            
    ТабЗн.ВыбратьСтроки();
    Пока ТабЗн.ПолучитьСтроку()=1 Цикл
    // вот тут не хватает условия, на форме отчета, очевидно, должны быть поля с определением параметров отбора
    If  ((EmptyValue(fТипМяса) = 0) And (ТабЗн.ТипМяса = fТипМяса)) Or EmptyValue(fТипМяса) = 1 Then //поле выбора на форме из справочника ТипыМяса (предполагаю)
    If (EmptyValue(fПоставщик) = 0) And (ТабЗн.Поставщик = fПоставщик)) Or EmptyValue(fПоставщик) = 1 Then
    ТипМяса=ТабЗн.ТипМяса;
    Область=ТабЗн.Область;
    Поставщик=ТабЗн.Поставщик;
    Кво=ТабЗн.Кво;
    Цена=ТабЗн.Цена;
    Сумма=ТабЗн.Сумма;
    Таб.ВывестиСекцию("Строка");
    EndIf;
    EndIf;    
    КонецЦикла;
    
    
    
    
    сорри за транслит, при желании несложно будет перевести на рус
  5. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    А что значит префикс 'f' fПоставщик, fТипМяса??
    Сейчас смажу вазелином боевую клавиатуру и буду пробовать! :unsure:
  6. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    для меня это обозначение элемента формы (идентификатор).. а так ничего не значит просто f
  7. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ты не клаву мажь, а мозг и глаза :smile:
    Сначала обложись литературой и изучай теорию (по началу кажется вообще бредятина :) ), а уж потом практика.....
  8. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    Да тут нельзя не согласиться! Глаза скоро высохнут.. А Теорией обложился.. "Азбука программирования 1с ", Справочник по языку и еще один электронныйучебник, с сайта mista.ru частично мне помогают, но этого недостаточно.Я бы и рад в теорию удариться, может подскажете, где найти с примерами желательно..
  9. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    ну тут синтакис-помошник, наверное, больше пользы принесет, и сама конфигурация, откройте модули документов или отчетов, посмотрите что к чему, хорошие примеры иногда попадаются... ну и гугль вам в помощь.. а книжки - зло, читайте советский спорт лучше :unsure:
  10. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    Иногда-попадаются..Иногда-это может и через день и через месяц,а пока я буду искать-не сдвинусь с места в изучении..
    В синтакс-помошнике примеры-не фонтан, я вам скажу..
    А какие открыть модули документов и отчетов? я с нуля пишу базу..пока там по задаче 1 документ, 3 справочника, пара проводок, 1 отчет смотреть в принципе-то не на что.
    Есть конечно вариант тиснуть у какой-нибудь фирмы конфигурацию! Как вам такой путь познания? :unsure:
  11. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    нагуглил для примера
    http://www.firststeps.ru/1c/1cbuh1.html
    http://www.i2r.ru/static/530/out_16045.shtml
    - видно, люди старались когда эти труды создавали, все простым языком написано...
  12. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    Спасибо огромное! Сначала думал, что по первой ссылке-просто учет, а там и кода оказалось предостаточно! Повторение-мать учения-буду ботанить!!
    Но у меня есть еще целый задачник, :unsure: так что ждите нового нытья и стенаний с моей стороны!
    А по второй ссылке-это избитый пример кадрового учета, я постоянно на него натыкаюсь! Это из учебника mista.ru
    Еще раз спасибо за ссылки! А вот пробовал ваше решение подогнать в свой отчет.. странная ситуация, без этих условий
    ___________________________________________________
    Если ((ПустоеЗначение(ТипМяса) = 0) И (ТабЗн.ТипМяса = ТипМяса)) ИЛИ ПустоеЗначение(ТипМяса) = 1
    Если (ПустоеЗначение(Поставщик) = 0) И (ТабЗн.Поставщик = Поставщик)) ИЛИ ПустоеЗначение(Поставщик) = 1 Тогда
    ___________________________________________________
    У меня при любой комбинации параметров отбора получается абсолютно идентичный отчет..
    С ними- отчет выводится корректно, только в том случае, если по всем параметрам отбора попадаешь точно так, как было в проведенном документе, т.е если один из параметров отбора пустой не выводится абсолютно ничего, вместо того, чтобы "свернуть" например по мясу или по областям..
    Даже и не знаю, что тут делать, запутался в логических операция наверное..
    (ткнуть чтоли тот смайлик с веревкой на шее..)
  13. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    ___________________________________________________
    Если ((ПустоеЗначение(ТипМяса) = 0) И (ТабЗн.ТипМяса = ТипМяса)) ИЛИ ПустоеЗначение(ТипМяса) = 1
    Если (ПустоеЗначение(Поставщик) = 0) И (ТабЗн.Поставщик = Поставщик)) ИЛИ ПустоеЗначение(Поставщик) = 1 Тогда
    ___________________________________________________
    У меня при любой комбинации параметров отбора получается абсолютно идентичный отчет..
    С ними- отчет выводится корректно, только в том случае, если по всем параметрам отбора попадаешь точно так, как было в проведенном документе, т.е если один из параметров отбора пустой не выводится абсолютно ничего, вместо того, чтобы "свернуть" например по мясу или по областям..
    Даже и не знаю, что тут делать, запутался в логических операция наверное..
    (ткнуть чтоли тот смайлик с веревкой на шее..)
    [/quote]

    без условий в отчет попадают данные из всех документов.

    да, я уже заметил ошибку в условии, следует писать примерно так:

    Код:
    ТабЗн.ВыбратьСтроки();
    Пока ТабЗн.ПолучитьСтроку()=1 Цикл
    nFlag = 1;
    If  ((EmptyValue(fТипМяса) = 0) Then
    If ТабЗн.ТипМяса <> fТипМяса Then    
    nFlag = 0;
    EndIf;
    EndIf;    
    If  ((EmptyValue(fПоставщик) = 0) Then
    If ТабЗн.Поставщик <> fПоставщик Then    
    nFlag = 0;
    EndIf;
    EndIf;    
    If nFlag = 1 Then
    ТипМяса=ТабЗн.ТипМяса;
    Область=ТабЗн.Область;
    Поставщик=ТабЗн.Поставщик;
    Кво=ТабЗн.Кво;
    Цена=ТабЗн.Цена;
    Сумма=ТабЗн.Сумма;
    Таб.ВывестиСекцию("Строка");
    EndIf;
    КонецЦикла;
    
    
    
  14. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    Прекрасно! Все работает именно так как надо! только сначала думал почему на область внимание не обращает, оказывается флаги менялись только для мяса и поставщика, дописал еще для области!
    Огромное спасибо! :unsure:

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