8.х Отчет поступление товаров

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

  1. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Всем доброго времени суток! Столкнулся с такой проблемой: у меня имеется документ,в нем 2 ТЧ(табличные части: ОтИздательства и ОтЧитателей).
    У меня имеется регистр накопления.(два движения от документа идут в него).
    Решил реализовать отчет на ПоступлениеТоваров.
    В конструкторе выбрал поля: ссылкаДок,НаименованиеКнигиРегистрНакопления,КоличествоПриходРегистрНакпоелния.
    Сделал условие по ВидПосутпления( ОтИздательства и ОтЧитателей).
    1)Теперь,когда выбираю вид операции и в нем соотв. пункт, мне отчет формирует документы(но дублирует документы).?
    Связал по виду поступления: регистрНакопленияВидПоступдения и реквизитДокВидПоступления(который не находиться в ТЧ)
    2)И еще странная вещь, регистрНакполения почемуто КоличествоСуммирует.?
    Извините, если что-то не так оформил, я новичок в этом.
  2. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    684
    Симпатии:
    7
    Баллы:
    29
    Текст запроса предъявите, и структуру регистра накопления
  3. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Структура я так понимаю, это какие измерения и ресурсы?
    -------------------------------------------
    РегистНакполения:

    Измерения:
    НаименованиеКниги(ссылка на справочник)
    ВидПосутпления(ссылка на справочник)

    Ресурсы:
    Количество
    Цена
    --------------------------------------
    Код:
    Запрос=НОВЫЙ ЗАПРОС;
    Запрос.Текст=
    "ВЫБРАТЬ
    |	ПоступлениеКниг.Ссылка КАК Ссылка,
    |	ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги,
    |	ПРЕДСТАВЛЕНИЕ(ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги),
    |	ПоступлениеРеализацияСписаниеКнигОбороты.КоличествоПриход
    |ИЗ
    |	РегистрНакопления.ПоступлениеРеализацияСписаниеКниг.Обороты КАК ПоступлениеРеализацияСписаниеКнигОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеКниг КАК ПоступлениеКниг
    |		ПО ПоступлениеРеализацияСписаниеКнигОбороты.ВидПоступления = ПоступлениеКниг.ВидОперации
    |ГДЕ
    |	ПоступлениеКниг.ВидОперации = &ВидОперации";
    
    -------------------------------
    ДокПоступления(Движения):
    //1 ТЧ
    Для Каждого ТекСтрокаТблПоступлОтиздат Из ТблПоступлОтиздат Цикл
    // регистр ПоступлениеРеализацияСписаниеКниг Приход
    Движение = Движения.ПоступлениеРеализацияСписаниеКниг.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.НаименованиеКниги = ТекСтрокаТблПоступлОтиздат.НаименованиеКниги;
    Движение.ВидПоступления = ВидОперации;
    Движение.Количество = ТекСтрокаТблПоступлОтиздат.Количество;
    Движение.Цена = ТекСтрокаТблПоступлОтиздат.Цена;
    КонецЦикла;
    //2 ТЧ
    Для Каждого ТекСтрокаТблПоступлДарЧитат Из ТблПоступлДарЧитат Цикл
    // регистр ПоступлениеРеализацияСписаниеКниг Приход
    Движение = Движения.ПоступлениеРеализацияСписаниеКниг.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.НаименованиеКниги = ТекСтрокаТблПоступлДарЧитат.НаименованиеКниги;
    Движение.ВидПоступления = ВидОперации;
    Движение.Количество = ТекСтрокаТблПоступлДарЧитат.Количество;
    Движение.Цена = 0;
    КонецЦикла;
    
  4. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    684
    Симпатии:
    7
    Баллы:
    29
    Во первых, запрос попробуй лучше такой:

    Код:
    Запрос=НОВЫЙ ЗАПРОС;
    Запрос.Текст=
    "ВЫБРАТЬ
    | ПоступлениеРеализацияСписаниеКнигОбороты.Регистратор КАК Ссылка,
    | ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги,
    | ПРЕДСТАВЛЕНИЕ(ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги),
    | ПоступлениеРеализацияСписаниеКнигОбороты.КоличествоПриход
    |ИЗ
    | РегистрНакопления.ПоступлениеРеализацияСписаниеКниг.Обороты(, , , ВидПосутпления = &ВидОперации) КАК ПоступлениеРеализацияСписаниеКнигОбороты
    </span>
    
    </FONT></FONT></pre>
  5. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    В общем попробовал ваш код, ошибки исправил, но не работает....
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код точно правильно переписали?
    сравните:
    и
  7. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Так изменил....пошло...
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    | ПоступлениеРеализацияСписаниеКнигОбороты.Регистратор КАК Ссылка,
    | ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги,
    | ПРЕДСТАВЛЕНИЕ(ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги),
    | ПоступлениеРеализацияСписаниеКнигОбороты.КоличествоПриход
    |ИЗ
    | РегистрНакопления.ПоступлениеРеализацияСписаниеКниг.Обороты(, , , ВидПоступления = &ВидОперации) КАК ПоступлениеРеализацияСписаниеКнигОбороты";
    Запрос.УстановитьПараметр("ВидОперации",ВидОперации);
    
    Результат = Запрос.Выполнить();
    
    
    
    
    Но теперь,пишет след. ошибку:
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Периодичность поставьте Регистратор или Авто (3-й параметр виртуальной таблицы).
  9. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    В параметры виртуальной таблицы надо добавить параметр Периодичность - "Регистратор" (это третий параметр):
    Код:
    "ИЗ
    | РегистрНакопления.ПоступлениеРеализацияСписаниеКниг.Обороты(, , Регистратор , ВидПоступления = &ВидОперации) КАК ПоступлениеРеализацияСписаниеКнигОбороты"
    
    
    
    Тьфу-ты, опять не успел :)
  10. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    :angry:
    ;)
  11. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Так)Теперь мне надо понять где это находиться)))
    Мне нужно открыть заново конструктор(и в нем уже поставить)?
    Нужно вручную дописать в запросе этот параметр?
    Или же зайти в регистрНакопления и найти его там?

    Извините,если что-то не так, просто 1С очень не давно начал изучать...
  12. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Вручную напишите.
    Я вам даже пример из вашего запроса привел. Можете просто скопировать :)

    :D
  13. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Все получилось, спасибо!)))) :angry:
    Только ссылку на документ не выводит
  14. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    А куда вы ее выводите? В табличный документ?
  15. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    При кнопке сформировать, у меня выводиться:
    НазваниеКниги КоличествоПРиход
    а, я бы хотел еще:
    Документ(ссылка) НазваниеКниги КоличествоПРиход ЦенаПРиход
    сделать
  16. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Как я понимаю, видимо, в табличный документ....
    Делаете точно так же, как с названием книги и количеством прихода. Т.е.
    Код:
    Область.Параметры.Ссылка = Выборка.Ссылка;
    
    Можете написать текст кода - то как вы выводите название и количество. Может, точнее подскажу.
  17. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Код:
    "ВЫБРАТЬ
    |	ПоступлениеРеализацияСписаниеКнигОбороты.Регистратор КАК Документ,
    |	ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги,
    |	ПРЕДСТАВЛЕНИЕ(ПоступлениеРеализацияСписаниеКнигОбороты.НаименованиеКниги),
    |	ПоступлениеРеализацияСписаниеКнигОбороты.КоличествоПриход КАК Количество,
    |	ПоступлениеРеализацияСписаниеКнигОбороты.ЦенаПриход КАК Цена
    |ИЗ
    |	РегистрНакопления.ПоступлениеРеализацияСписаниеКниг.Обороты(, , Регистратор, ВидПоступления = &ВидОперации) КАК ПоступлениеРеализацияСписаниеКнигОбороты";
    
    
    Я реализовал вот таким образом.
    Это правильно?
    Проверял в отладке - работает.
  18. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Запрос правильный. Данные этим запросом из базы вы собрали. Теперь надо их вывести в отчет. Чаще всего в табличный документ выводится.
    Макет создавали?
  19. TopicStarter Overlay
    warshadow
    Offline

    warshadow

    Регистрация:
    29 мар 2011
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Да создавал. Все выводиться! Спасибо еще раз вам огромное!
    Как то вы хитро сделали запрос))
    отображает все как и должно быть...а у меня количество и цену суммировал он....и выдывал по 2-3 экземпляра документов..
    А если в кратце не могли бы объяснить вот эту строчку:
    Код:
    |ИЗ
    |	РегистрНакопления.ПоступлениеРеализацияСписаниеКниг.Обороты(, , Регистратор, ВидПоступления = &ВидОперации) КАК ПоступлениеРеализацияСписаниеКнигОбороты"; 
    
  20. 1cUserAndrew
    Online

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Обороты - это виртуальная таблица вашего регистра "ПоступлениеРеализацияСписаниеКниг". В скобках указываются параметры этой виртуальной таблицы.
    В кратце не объяснишь. Я уже пару раз на форуме вот эту ссылку приводил. Там можно скачать видеолекции по запросом. Объясняется понятно на примерах. Посмотрите.

    Так что там с макетом. В нем есть параметр <Документ>?
    Вот его вы должны заполнить значениями из выборки из вашего запроса. Пишу еще раз:
    Код:
    Область.Параметры.Документ = Выборка.Документ;
    

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