8.х Ведомость учета списания материалов

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

  1. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    (Предыстория в соседней теме.)
    Поставили задачу сделать отчет. С выборкой по периоду, складу/подразделению, комментарию, выписанному счету. Вроде начал набрасывать, но уперся в проблему - в требованиях-накладных ни в каком виде не фигурирует цена/сумма...
    Пните в нужном направлении, где и как ее раздобыть?
    Посмотреть вложение 4628
    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТребованиеНакладная.Ссылка КАК Ссылка,
    ТребованиеНакладная.Дата КАК Дата,
    ТребованиеНакладная.Номер КАК Номер,
    ТребованиеНакладная.Проведен КАК Проведен,
    ТребованиеНакладная.Склад КАК Склад,
    ТребованиеНакладная.Комментарий КАК Комментарий,
    ТребованиеНакладная.НДСвСтоимостиТоваров КАК НДСвСтоимостиТоваров,
    ТребованиеНакладная.Контрагент КАК Контрагент,
    ТребованиеНакладная.Представление КАК Представление,
    ТребованиеНакладнаяМатериалы.Ссылка КАК Ссылка1,
    ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
    ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
    ТребованиеНакладнаяМатериалы.КоличествоМест КАК КоличествоМест,
    ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ТребованиеНакладнаяМатериалы.Количество КАК Количество,
    ТребованиеНакладнаяМатериалы.Себестоимость КАК Себестоимость,
    ТребованиеНакладная.СчетЗатрат КАК СчетЗатрат,
    ТребованиеНакладная.СчетаУчетаЗатратВТаблице КАК СчетаУчетаЗатратВТаблице
    {ВЫБРАТЬ
    Ссылка.*,
    Дата,
    Номер,
    Проведен,
    Склад.*,
    Комментарий,
    НДСвСтоимостиТоваров.*,
    Контрагент.*,
    Представление,
    Ссылка1.*,
    НомерСтроки,
    Номенклатура.*,
    КоличествоМест,
    ЕдиницаИзмерения.*,
    Количество,
    Себестоимость,
    СчетЗатрат.*,
    СчетаУчетаЗатратВТаблице}
    ИЗ
    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
    ПО ТребованиеНакладнаяМатериалы.Ссылка = ТребованиеНакладная.Ссылка
    {ГДЕ
    ТребованиеНакладная.Дата,
    ТребованиеНакладная.Проведен,
    ТребованиеНакладная.Склад.*,
    ТребованиеНакладная.Комментарий,
    ТребованиеНакладная.Контрагент.*,
    ТребованиеНакладная.СчетЗатрат.*,
    ТребованиеНакладная.СчетаУчетаЗатратВТаблице}
    
    УПОРЯДОЧИТЬ ПО
    Дата,
    Номер,
    НомерСтроки
    
    
    (возможно в запросе много ненужного)
    Помогите, пожалуйста, начинающему.

    Вложения:

  2. djdos
    Offline

    djdos

    Регистрация:
    5 июн 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    нужно сделать запрос к регистру бухгалтерии по которому проводится ТН и взять цену оттуда

    // солдаткин +++++++++++++++++++++++++++++++++++++++++++++
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.Текст=
    "ВЫБРАТЬ
    | ТребованиеНакладная.Номер как номерДок,
    | ТребованиеНакладная.Дата как датаДок,
    | Хозрасчетный.Сумма как Сумма,
    | Хозрасчетный.Регистратор,
    | Хозрасчетный.КоличествоКт
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
    | ПО Хозрасчетный.Регистратор = ТребованиеНакладная.Ссылка
    |ГДЕ
    | ТребованиеНакладная.Ссылка = &ТекущийДокумент";
    рез = запрос.Выполнить().Выбрать();
    итого = 0;
    пока рез.Следующий() цикл
    с = рез.сумма;
    итого = итого + с;
    элементыформы.СуммаДокумента.Значение = итого;
    // элементыформы.СуммаДокумента.Заголовок = "Сумма документа: "+ Формат(итого, "ЧЦ=15; ЧДЦ=2")+" руб.";
    КонецЦикла;
  3. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    То-ли лыжи не едут, то-ли я... не въезжаю...
    Как приведенный кусок кода состыковать с моим запросом на СКД?
    Мне кажется, извините конечно, что он просто выдран бездумно из совершенно другого документа и к моей задаче его прикрутить... я по крайней мере пока не сумел.
    Да, я ночером уже накопал, что цены можно выдрать из РегистрБухгалтерии.Хозрасчетный, но как это применить, так и не понял. Вот не получается составить запрос, чтобы работал, и хоть убейся...

    Нашел/скачал Радченко - Практическое пособие разработчика по 8.1,
    почитал главу про отчеты, не все понял дальше второго примера (да и второй как-то туго доходит)... надо читать сначала. Что еще можно поискать почитать на тему запросов и на тему внутренней структуры данных в бухгалтерии (где откуда ноги растут)?
  4. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Вроде что-то получилось...
    Извините, если немного резко отозвался в предыдущем сообщении. Сам тормоз, не туда слегка копал...
    Но!
    Сумма появилась как-то интересно:
    Посмотреть вложение 4629
    она размножается...
    Причем, щас только доперло, она размножает строки документа именно на количество всего строк в документе. Т.е. если одна строка - все нормально, если две - будет по две каждой, а если одиннадцать...
    Где-то в запросе все-таки чё-то не так. Как сделать, что-бы всё стало правильно?
    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТребованиеНакладная.Ссылка КАК Ссылка,
    ТребованиеНакладная.Дата КАК Дата,
    ТребованиеНакладная.Номер КАК Номер,
    ТребованиеНакладная.Склад КАК Склад,
    ТребованиеНакладная.Комментарий КАК Комментарий,
    ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
    ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
    ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ТребованиеНакладнаяМатериалы.Количество КАК Количество,
    Хозрасчетный.Регистратор КАК Регистратор,
    Хозрасчетный.Сумма КАК Сумма,
    Хозрасчетный.КоличествоКт КАК КоличествоКт
    {ВЫБРАТЬ
    Ссылка.*,
    Дата,
    Номер,
    Склад.*,
    Комментарий,
    НомерСтроки,
    Номенклатура.*,
    ЕдиницаИзмерения.*,
    Количество,
    Регистратор.*,
    КоличествоКт,
    Сумма}
    ИЗ
    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
    ПО ТребованиеНакладнаяМатериалы.Ссылка = ТребованиеНакладная.Ссылка
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    ПО (ТребованиеНакладная.Ссылка = Хозрасчетный.Регистратор)
    {ГДЕ
    ТребованиеНакладная.Дата,
    ТребованиеНакладная.Склад.*,
    ТребованиеНакладная.Комментарий}
    
    УПОРЯДОЧИТЬ ПО
    Дата,
    Номер,
    НомерСтроки
    

    Вложения:

  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Так у Выс условие соединения только по ссылке. А нужно еще по номенклатуре, как минимум! Что ж Вы хотели получить-то :)
  6. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    А с кем номенклатуру связывать?
    С Хозрасчетный.Регистратор.Материалы.Номенклатура конструктор связывать не захотел, а при такой связи:
    Код:
    ИЗ
    Документ.ТребованиеНакладная.Материалы КАК ТНМатериалы
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    ПО ТНМатериалы.Ссылка = Хозрасчетный.Регистратор
    И ТНМатериалы.Номенклатура = Хозрасчетный.Регистратор
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
    ПО ТНМатериалы.Ссылка = ТребованиеНакладная.Ссылка,
    Документ.ТребованиеНакладная.Материалы КАК ХозрасчетныйТНМатериалы
    
    
    комп крепко задумался (завис) на полчаса, после чего V8 сказала, что ей мало памяти и вывалилась из программы совсем. Комп оживал еще минут 10.
    Предыдущий вариант отрабатывал за 3-30 секунд, в зависимости от ЛЕВОГО или ВНУТРЕННЕГО соединения. 1Cv8.1CD весит гиг. Памяти в компе 2 гига, как и на сервере. Правда у мну соре2дуо, а на сервере Хеон, но не думаю, что это что-то изменит...
    Пните, пожалуйста в нужном направлении. Я не думаю, что данный конкретный отчет - такая уж сложная задача, просто пока знаний и опыта в 1с сильно не хватает...
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    ТНМатериалы.Номенклатура = Хозрасчетный.Регистратор - это бредовое условие :)

    Вам надо делать соединение с виртуально таблицей ДвиженияССубконто.
  8. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Охотно соглашусь...

    А с этого места поподробнее.
    В ДвиженияССубконто тоже не вижу поля типа Номенклатура.
    Логика отказала уже напрочь. :unsure:
    Доперло сёдня наконец-то глянуть, как что сохраняется в самом документе.
    Как доперло, так и расперло... ничего нового для себя я там не нашел. Может не туда смотрел, но вообще не въехал, как сохранение куда-либо, а особенно в регистры, в этом 1с происходит...
    Хреново быть неграмотным. Пните еще разок, только посильнее, чтобы больше не приставал, с учетом того, что сам уже не справлюсь. Как конкретно в запросе нужно связку обрисовать? Или исправьте прилагаемый отчет.

    Вложения:

  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Изучите матчасть, в частности, что такое субконто.
  10. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    ChGL насколько я понимаю вам нужно будет соединение по Субконто1, получится что-то вроде:
    Код:
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТребованиеНакладнаяМатериалы.Ссылка КАК Ссылка,
    ТребованиеНакладнаяМатериалы.Ссылка.Дата КАК Дата,
    ТребованиеНакладнаяМатериалы.Ссылка.Номер КАК Номер,
    ТребованиеНакладнаяМатериалы.Ссылка.Склад КАК Склад,
    ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
    ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
    ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ТребованиеНакладнаяМатериалы.Количество КАК Количество,
    ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0) КАК Сумма,
    ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.КоличествоКт, 0) КАК КоличествоКт
    ИЗ
    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
    ПО ТребованиеНакладнаяМатериалы.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
    И ТребованиеНакладнаяМатериалы.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1"
    
    
    (набирал не в СКД, в общем как-то так).
    Единственно что - хреновый это запрос на мой взгляд, у вас ни один параметр не передается в запрос (период например, или конкретный документ). В том что я написал выше - неплохо бы наложить условия на виртуальную таблицу регистра бухгалтерии, поскольку сам по себе он огромный, запрос хрен знает сколько времени формироваться будет.
  11. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Учу. Приходится все изучать в процессе...
    Вроде чё-то получилось, правда снова методом научного тыка.
    Сделал почти сразу, но сайт сначала отключили, а потом совсем упал...
    Поэтому только щас пишу.
    Готовый отчет прикладываю, вдруг у кого аналогичная проблема встанет.

    Вложения:

  12. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Примерно так и сделал, только процитированный участок кода к чему?

    Еще пришлось связывать по номеру строки, потому как у бухгалтеров есть привычка набирать в одном документе несколько одинаковых позиций.

    Тоже про это думал, период надо бы задать, пока всё через условия. Но пока за 20 секунд формируется, не сильно напряжно. Со временем, доберусь, доделаю...

    Всем спасибо за помощь!
  13. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Проверка на пустое значение. Чисто теоретически, на мой взгляд, пустых значений в вашем случае быть не должно. Кроме того если вы сразу все выводите в отчет, то тоже особой необходимости никакой, больше для порядка. Вот например, когда-то обменялись мнениями по этому поводу: http://www.1c-pro.ru/index.php?s=&show...ost&p=93803
  14. TopicStarter Overlay
    ChGL
    Offline

    ChGL

    Регистрация:
    18 июн 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Оказывается еще не всё...
    Посмотреть вложение 4648
    Два документа оказались без сумм. Причем в документах все в порядке.
    Посмотреть вложение 4649

    Коль пошла такая пьянка, что всё (почти) есть в регистре, набросал отчет только по регистру. Формируется махом (с параметрами), суммы все присутствуют. Но теперь другая беда.
    Посмотреть вложение 4650
    Нет единиц измерения - фигня. Хитрая бухгалтер ее вписывает в каждое наименование :)
    Странно отрабатывается группировка - название документа пишется перед каждой строчкой этого документа.
    Как это выправить?

    Вложения:

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