PDA

Просмотр полной версии : Создание отчета и расчета в нем



derxander
02.08.2013, 13:22
Товарищи, всем привет. Я вообще начинающий сисадмин, но т.к. компашка небольшая, то меня тыркают и по вопросам 1С. До сих пор вопросы были чисто организационными и чтобы просто всё работало. Но вот теперь понадобилось замострячить отчет. Он хоть и простейший (как покажется многим), но всё же для меня пока что невыполнимый. И пока я его им не предоставлю - с меня никто не слезет.

Что же это за отчет такой сейчас расскажу..

нужен отчет типа
http://s019.radikal.ru/i635/1308/88/71d7fa27ea8b.jpg

1С 8.2, конфигурация УТ 10.3 почти типовая, приложение обычное.
есть в реализации товаров и услуг (далее "РТиУ") - два вида цен:
1. Витринная (при самовывозе)
2. Доставка (при доставке товара транспортом предприятия), естественно цена будет выше, чем в пункте 1.

что требуется:

Например: имеется два документа РТиУ. Первый - тип цены Витринная. Второй - Доставка..

Так вот при выборе некого интервала, в отчете отображаются все документы РТиУ созданные за этот интервал в отчете в поле "Накладная", слева в поле "Контрагент" отображаются, соответственно, контрагенты (или покупатели, грузополучатели - даже не знаю как правильно сказать). Справа от поля "Накладная" имеется поле "Сумма накладной", тут просто. А вот в поле "Разница" - вычислияется РАЗНИЦА = ДОСТАВКА - ВИТРИННАЯ.. Для тех накладных, где указан тип цены ДОСТАВКА.

Т.е. берется сумма этой накладной с типом цены ДОСТАВКА, потом тип цены меняется на витринная, сумма автоматом, соответственно тоже меняется, потом вычисляем их разность.. У накладных с типом цены Витринная в последнем поле будет либо «0», либо пусто.

чтоб понятнее было (это не код, а просто логически)

Для каждой строки отчета
Если (Накладная1.ТипЦены == Витринная) то Разность = 0
Иначе Разность = Накладная1.ТипЦены(Доставк� �).СуммаДокумента - Накладная1.ТипЦены(Витринн� �я).СуммаДокумента

Вот пока чего добился я своими кривыми руками. Запустил СКД. Выбрал соответствующие реквизиты
http://s006.radikal.ru/i215/1308/ac/57700272369f.jpg

Вот такой получился ЗАПРОС
http://s018.radikal.ru/i524/1308/d4/0256ceab7ca9.jpg

Вот такой формируется отчет, пока без кнопки выбора временного интервала, с этим я наверное сам смогу разобраться.
http://s017.radikal.ru/i430/1308/6d/188385e321d0.jpg

не пойму как реализовать последнее поле, где будет производиться расчет разницы. И как его вообще реализовать. Как ж это сделать? может есть какие-то похожие отчеты, где б я поковырялся, подсмотрел чтонибудь..
Повторюсь, что в 1С я полнейший дуб. Всем заранее спасибо, кто откликнется, и тем, кто уделил внимание моей проблеме )

Bolzen
02.08.2013, 17:53
Не понял откуда берется цена Доставка, она в том же документе? Если да то все просто, и делается в запросе, добавить вручную поле к Наименование и т.п.:

ISNULL (РеализацияТоваровУслуг. ЦенаДоставки-РеализацияТоваровУслуг. ЦенаВитрины, 0) КАК Разность

ISNULL - вернет "0" если первое выражение вернет Null (т.е. поля нет в документе).
Соответственно РеализацияТоваровУслуг.Це� �аДоставки - это реквизит документа, если табличная часть то будет выглядеть по другому.

Можешь сделать скрин самого документа, чтобы было видно что там.

derxander
03.08.2013, 16:21
Bolzen, ну хоть ты ответил )

Не понял откуда берется цена Доставка, она в том же документе?
ну, как тебе объяснить..
покажу на примере как это считают операторы, пока у них нету этого отчета, при помощи кликов мыши и калькулятора вручную:

------------------------------

сначала они создают документ РТиУ с некими товарами и т.д. с типом цены "Витринная" на скрине - будет "Закупочная", т.к. схватил первую базу, что под руки попалась..
Получают сумму, что под цифером 1.. записывают в excel ручками..
http://s019.radikal.ru/i604/1308/07/04b4814e20ea.jpg

потом меняют цену на некоторых накладных на "Доставка" - на скрине будет "витринная".. ну понятно почему вообщем.. окно закрывают..
http://s42.radikal.ru/i096/1308/c2/ae7465a3a8fc.jpg


тут сумма, конечно ж меняется, и новое число записывают в excel.. и уж потом высчитывают разницу между бОльшим числом и мЕньшим..
http://s60.radikal.ru/i169/1308/a6/acff300878ec.jpg


и потоооооом пишут всё ручками в excel в таблицу..
http://s019.radikal.ru/i635/1308/88/71d7fa27ea8b.jpg

Bolzen
04.08.2013, 16:05
Как я понял, цена меняется прямо в этом же документе, и нигде больше не хранится.
Если это так то отчетом ничего не посчитать, т.к. данных для анализа нету, цена просто меняется одна на другую.

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

derxander
04.08.2013, 20:23
Кароче, я попал тогда. Сам я никаких регистров не напишу. И истории документа тоже не хранится т.к. не версионник.

Bolzen
05.08.2013, 11:37
Тут работа для программиста, нужно разбираться, это время, а, как известно, время деньги.
В общем так и говори руководству, надо дорабатывать сам документ Реализации, отчет на несуществующих данных не создать, и версионность тут не прокатит, нужна история изменения цены по конкретному документу, ещё и с типом этой цены.
Хотя в конфигурации может это все и есть, а может и нет.