Версия для печати темы (https://pro1c.org.ua/index.php?s=8c01b68ec23c00d67d3984994cdf681a&showtopic=45730)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Добавить колонку с контрагентом на котором стоит резерв данной номенклатуры

Автор: ЮлияЛебешева 15.05.18, 15:00

Добрый день! прошу помощи так как новичок) Я создала отчет Товары в Резерве и на Складе, ( Выглядит так: Номенклаткра, Цена, Общее кол-во на складе, Общее кол-во в резерве) руководству не хватает еще одной колонки где будет указан контрагент на котором резерв. Возможно ли это?

Автор: Vofka 15.05.18, 15:05

Возможно.

Автор: ЮлияЛебешева 15.05.18, 15:12

Vofka @ Сегодня, 16:05 * ,
Спасибо) Как это сделать?

Автор: a1987mar 15.05.18, 15:22

Залежить в якій базі 1С це робити. ( наприклад в 1С УПП це можна налаштувати штатними звітами, 1С УТП треба дивитися)

Автор: ЮлияЛебешева 15.05.18, 15:24

a1987mar @ Сегодня, 16:22 * ,
Это 1С ( Управление торговлей

Автор: Bernet 15.05.18, 15:28

ЮлияЛебешева @ Сегодня, 16:24 * ,
Нужно больше информации - отчет реализован через Универсальный отчет или СКД или самописный, желательно вообще его выложите чтобы Вам могли быстрее помочь. По логике все сводится к тому чтобы добавить контрагента в запрос и вытащить в макет отчета. Если это СКД или универсальный отчет то в принципе это делается просто и быстро.

Автор: ЮлияЛебешева 15.05.18, 15:34

Bernet @ Сегодня, 16:28 * ,
Отчет был сделан на основе универсального и сохранен как внешний.

Код

    ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    ТоварыНаСкладахОстатки.Склад,
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
                   |    ТоварыНаСкладахОстатки.СерияНоменклатуры,
                   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
                   |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ОстатокРезерв,
                   |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
                   |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
                   |    ЦеныНоменклатурыСрезПоследних.Цена * ТоварыНаСкладахОстатки.КоличествоОстаток КАК Сумма,
                   |    ЦеныНоменклатурыСрезПоследних.Цена * ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК СуммаРезерв,
                   |    ЗаказПокупателя.Контрагент КАК РезервНаОбьекте
                   |{ВЫБРАТЬ
                   |    Склад.*,
                   |    Номенклатура.*,
                   |    ХарактеристикаНоменклатуры.*,
                   |    СерияНоменклатуры.*,
                   |    Остаток,
                   |    ОстатокРезерв,
                   |    ТипЦен.*,
                   |    Цена,
                   |    Сумма,
                   |    СуммаРезерв,
                   |    РезервНаОбьекте.*}
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыВРезервеНаСкладахОстатки
                   |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                   |            ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = ЗаказПокупателя.Контрагент
                   |        ПО ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
                   |            И ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
                   |            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
                   |            И ТоварыНаСкладахОстатки.СерияНоменклатуры = ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
                   |{ГДЕ
                   |    ТоварыНаСкладахОстатки.Склад.*,
                   |    ТоварыНаСкладахОстатки.Номенклатура.*,
                   |    ЦеныНоменклатурыСрезПоследних.ТипЦен.*}
                   |{УПОРЯДОЧИТЬ ПО
                   |    Номенклатура.*}
                   |ИТОГИ
                   |    СУММА(Остаток),
                   |    СУММА(ОстатокРезерв),
                   |    МАКСИМУМ(Цена),
                   |    СУММА(Сумма),
                   |    СУММА(СуммаРезерв)
                   |ПО
                   |    ОБЩИЕ
                   |{ИТОГИ ПО
                   |    Склад.*,
                   |    Номенклатура.*}
                   |АВТОУПОРЯДОЧИВАНИЕ";

// УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>);
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Склад", "Склад");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Номенклатура", "Номенклатура");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "ХарактеристикаНоменклатуры", "Характеристика номенклатуры");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "СерияНоменклатуры", "Серия номенклатуры");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "ТипЦен", "Тип цен");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "РезервНаОбьекте", "Резерв на обьекте");
    // Добавление показателей
    // Необходимо вызывать для каждого добавляемого показателя.
    // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>);
    УниверсальныйОтчет.ДобавитьПоказатель("Цена", "Цена", Истина, "ЧЦ=15; ЧДЦ=2", "Цена", "Цена");
    УниверсальныйОтчет.ДобавитьПоказатель("Остаток", "Общее кол-во на складе", Истина, "ЧЦ=15; ЧДЦ=3", "Количество", "Количество");
    УниверсальныйОтчет.ДобавитьПоказатель("ОстатокРезерв", "Общее кол-во на обьекте", Истина, "ЧЦ=15; ЧДЦ=3", "Количество", "Количество");
    УниверсальныйОтчет.ДобавитьПоказатель("Сумма", "Сумма остаток", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма");
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаРезерв", "Сумма остаток в резерве", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма");
    УниверсальныйОтчет.ДобавитьПоказатель("РезервНаОбьекте", "Резерв на обьекте", Истина, "ЧЦ=15; ЧДЦ=3", "Резерв на обьекте", "Резерв на обьекте");
    
    
    // Добавление предопределенных группировок строк отчета.
    // Необходимо вызывать для каждой добавляемой группировки строки.
    // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Склад");
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");


ЮлияЛебешева @ Сегодня, 16:30 * ,
У нас обьект это и есть контрагент.... Я поле добавила Резерв на обьекте, как его настроить чтоб оно показало на ком стоит резерв номенклатуры

Автор: a1987mar 15.05.18, 15:36

а стандартний звіт АНАЛІЗ ЗАКАЗОВ ПОКУПАТЕЛЕЙ - не підходить

Автор: ЮлияЛебешева 15.05.18, 15:39

a1987mar @ Сегодня, 16:36 * ,
к сожалению нет( нужна одна общая таблица для отчетности

ЮлияЛебешева @ Сегодня, 16:38 * ,
Нужно чтоб человек глядя на отчет понимал сколько у него молотков вообще на складе сколько из низ в резерве и на ком они в резерве

Автор: Bernet 15.05.18, 15:40

ЮлияЛебешева @ Сегодня, 16:34 * ,
В вашем случае тогда должна быть группировка по Заказу покупателя, раз оттуда Контрагента тащите.
Добавьте:
1. ЗаказПокупателя в выбранные поля в запросе
2. ЗаказПокупателя в группировки

Цитата
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("ЗаказПокупателя");

3. Теперь можно вывести контрагента как дополнительное поле (пример):
// УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>);

Автор: a1987mar 15.05.18, 15:53

В вас в запросі не відображало Контрагента. Попробуйте цей запрос

Код

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстатки.СерияНоменклатуры,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ОстатокРезерв,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ЦеныНоменклатурыСрезПоследних.Цена * ТоварыНаСкладахОстатки.КоличествоОстаток КАК Сумма,
    ЦеныНоменклатурыСрезПоследних.Цена * ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК СуммаРезерв,
    ТоварыВРезервеНаСкладахОстатки.ДокументРезерва.Контрагент
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    Остаток,
    ОстатокРезерв,
    ТипЦен.*,
    Цена,
    Сумма,
    СуммаРезерв}
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
            И ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
            И ТоварыНаСкладахОстатки.СерияНоменклатуры = ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
{ГДЕ
    ТоварыНаСкладахОстатки.Склад.*,
    ТоварыНаСкладахОстатки.Номенклатура.*,
    ЦеныНоменклатурыСрезПоследних.ТипЦен.*}
{УПОРЯДОЧИТЬ ПО
    Номенклатура.*}
{ИТОГИ ПО
    Склад.*,
    Номенклатура.*}
АВТОУПОРЯДОЧИВАНИЕ


Можете ще зразу добавити колонку ВІЛЬНИЙ ЗАЛИШОК або НЕМАЄ НА ЗАЛИШКУ

Автор: ЮлияЛебешева 15.05.18, 16:04

a1987mar @ Сегодня, 16:53 * ,
Выбивает ощибку поле не найдено(

Автор: a1987mar 15.05.18, 16:06

ТоварыВРезервеНаСкладахОстатки.ДокументРезерва.Контрагент - попробуйте з запроса забрати дане поле. Чи буде видавати помилку

Код

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстатки.СерияНоменклатуры,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ОстатокРезерв,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ЦеныНоменклатурыСрезПоследних.Цена * ТоварыНаСкладахОстатки.КоличествоОстаток КАК Сумма,
    ЦеныНоменклатурыСрезПоследних.Цена * ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК СуммаРезерв,
    ЗаказПокупателя.Контрагент
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    Остаток,
    ОстатокРезерв,
    ТипЦен.*,
    Цена,
    Сумма,
    СуммаРезерв}
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыВРезервеНаСкладахОстатки
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
            ПО ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = ЗаказПокупателя.Ссылка
        ПО ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
            И ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
            И ТоварыНаСкладахОстатки.СерияНоменклатуры = ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
{ГДЕ
    ТоварыНаСкладахОстатки.Склад.*,
    ТоварыНаСкладахОстатки.Номенклатура.*,
    ЦеныНоменклатурыСрезПоследних.ТипЦен.*}
{УПОРЯДОЧИТЬ ПО
    Номенклатура.*}
{ИТОГИ ПО
    Склад.*,
    Номенклатура.*}
АВТОУПОРЯДОЧИВАНИЕ

Автор: ЮлияЛебешева 15.05.18, 16:07

ЮлияЛебешева @ Сегодня, 17:04 * ,
Еще может быть что одна и та же номенклатура в резерве у разных покупателей
тоесть:
2 молотка у Пети и 3 у Леши
у меня показывает только что всего нас складе 10 и 5 из них в резерве
а надо чтоб показывало еще 2 молотка у Пети и 3 у Леши

Автор: a1987mar 15.05.18, 16:09

запрос мав би правцювати. Він не правильно буде відображати залишок на складі

Автор: ЮлияЛебешева 15.05.18, 16:13

a1987mar @ Сегодня, 17:06 * ,
Уже выбивает синтатическая ошибка Из

Прошу прощения вынуждена покинуть своё рабочее место( Завтра бутру рада снова обсудить эту тему....Всем спасибо кто помогает friends.gif

Автор: Vofka 15.05.18, 16:32

ЮлияЛебешева, завтра с самого утра настоятельно советую ознакомиться с http://pro1c.org.ua/index.php?act=announce&f=36&id=2.

Автор: ЮлияЛебешева 16.05.18, 7:58

Vofka @ Вчера, 17:32 * ,
Доброе утро! Прошу прощения если что то нарушила, с правилами ознакомилась)

Автор: ЮлияЛебешева 22.05.18, 12:05

Добрый день! Получилось сделать чтоб отчет выводил контрагента на котором заказ, теперь беда в другом, колонку общее кол-во на сладе выдает к каждому контрагенту, а не одна общая колонка с кол-вом на складе. Что не так?

 "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    РегЗаказы.Склад КАК Склад,
                   |    ПРЕДСТАВЛЕНИЕ(РегЗаказы.Склад),
                   |    РегЗаказы.ДокументРезерва КАК ДокументРезерва,
                   |    ПРЕДСТАВЛЕНИЕ(РегЗаказы.ДокументРезерва),
                   |    РегЗаказы.Номенклатура КАК Номенклатура,
                   |    ПРЕДСТАВЛЕНИЕ(РегЗаказы.Номенклатура),
                   |    РегЗаказы.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                   |    ПРЕДСТАВЛЕНИЕ(РегЗаказы.ХарактеристикаНоменклатуры),
                   |    РегЗаказы.СерияНоменклатуры КАК СерияНоменклатуры,
                   |    ПРЕДСТАВЛЕНИЕ(РегЗаказы.СерияНоменклатуры),
                   |    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток,
                   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОбщееКоличествоНаСкладе,
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура1
                   |{ВЫБРАТЬ
                   |    Склад.*,
                   |    ДокументРезерва.*,
                   |    Номенклатура.*,
                   |    ХарактеристикаНоменклатуры.*,
                   |    СерияНоменклатуры.*,
                   |    КоличествоОстаток,
                   |    ОбщееКоличествоНаСкладе}
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК РегЗаказы
                   |        ПО ТоварыНаСкладахОстатки.Склад = РегЗаказы.Склад
                   |            И ТоварыНаСкладахОстатки.Номенклатура = РегЗаказы.Номенклатура
                   |{ГДЕ
                   |    РегЗаказы.Склад.*,
                   |    РегЗаказы.ДокументРезерва.*,
                   |    РегЗаказы.Номенклатура.*,
                   |    РегЗаказы.ХарактеристикаНоменклатуры.*,
                   |    РегЗаказы.СерияНоменклатуры.*,
                   |    РегЗаказы.КоличествоОстаток}
                   |{УПОРЯДОЧИТЬ ПО
                   |    Склад.*,
                   |    ДокументРезерва.*,
                   |    Номенклатура.*,
                   |    ХарактеристикаНоменклатуры.*,
                   |    СерияНоменклатуры.*,
                   |    КоличествоОстаток}
                   |ИТОГИ
                   |    СУММА(КоличествоОстаток),
                   |    СУММА(ОбщееКоличествоНаСкладе)
                   |ПО
                   |    ОБЩИЕ
                   |{ИТОГИ ПО
                   |    Склад.*,
                   |    ДокументРезерва.*,
                   |    Номенклатура.*,
                   |    ХарактеристикаНоменклатуры.*,
                   |    СерияНоменклатуры.*}
                   |АВТОУПОРЯДОЧИВАНИЕ

// УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>);
УниверсальныйОтчет.ДобавитьПоказатель("ОбщееКоличествоНаСкладе", "Количество на складе", Истина, "ЧЦ=15; ЧДЦ=3","Количество на складе", );


Автор: sava1 22.05.18, 13:36

Цитата(ЮлияЛебешева @ 22.05.18, 13:05) *
одна общая колонка с кол-вом на складе


1.Это как ?
2. Вы сами так прописали - Остатки у Вас присоеденены по номенклатура/склад - чего-же Вы хотите ?

Автор: ЮлияЛебешева 22.05.18, 15:17

На данный момент отчет показывае номенклатуру , кол-во резерва, на ком резерв, и общее кол-во на складе. Но когда показывает сразу несколько контрагентов он каждому добавляет колонку общее кол-во на складе(
тоесть
молоток в резерве 1 у Васи всего на складе 5, в резерве 5 у Пети всего на складе 5.
а нужно
молоток всего на складе 5, у Васи 1, у Пети 5

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua