Добавить колонку в отчет, где отображается на каком контрагенте резерв данной номенклатуры.

1. user976156 16.05.18 09:56 Сейчас в теме
1С 8.2 Управление торговлей
Добрый день читатели форума!) Мне нужна подсказка по добавлению колонки в отчет , на картинке видно как он выглядит.
перечень Номенклатуры, её цена, кол-во на складе и кол-во в резерве, нужна дополнительная колонка где будет указан контрагент на котором сейчас резерв. Тоесть: на данный момент отчет показывает что на складе 10 молотков и 5 из них в резерве, нужно дополнение 2 молотка на Пете а 3 на Васе. Отчет был сделан на основе универсального и сохранен как внешний.

Вот запрос отчета:

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

// УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>);
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Склад", "Склад");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "Номенклатура", "Номенклатура");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "ХарактеристикаНоменклатуры", "Характеристика номенклатуры");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "СерияНоменклатуры", "Серия номенклатуры");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "ТипЦен", "Тип цен");
    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить( "РезервНаОбьекте", "Резерв на обьекте");
    // Добавление показателей
    // Необходимо вызывать для каждого добавляемого показателя.
    // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>);
    УниверсальныйОтчет.ДобавитьПоказатель("Цена", "Цена", Истина, "ЧЦ=15; ЧДЦ=2", "Цена", "Цена");
    УниверсальныйОтчет.ДобавитьПоказатель("Остаток", "Общее кол-во на складе", Истина, "ЧЦ=15; ЧДЦ=3", "Количество", "Количество");
    УниверсальныйОтчет.ДобавитьПоказатель("ОстатокРезерв", "Общее кол-во на обьекте", Истина, "ЧЦ=15; ЧДЦ=3", "Количество", "Количество");
    УниверсальныйОтчет.ДобавитьПоказатель("Сумма", "Сумма остаток", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма");
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаРезерв", "Сумма остаток в резерве", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма");
    УниверсальныйОтчет.ДобавитьПоказатель("РезервНаОбьекте", "Резерв на обьекте", Истина, "ЧЦ=15; ЧДЦ=3", "Резерв на обьекте", "Резерв на обьекте");
    
    
    // Добавление предопределенных группировок строк отчета.
    // Необходимо вызывать для каждой добавляемой группировки строки.
    // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Склад");
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Неопределено 91 16.05.18 09:59 Сейчас в теме
(1)
| ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = ЗаказПокупателя.Контрагент
Очень интересно...
Не работал с этой конфигурацией, но думаю что контрагента можно вытащить из
| ТоварыВРезервеНаСкладахОстатки.Регистратор.Контрагент
3. user976156 16.05.18 10:16 Сейчас в теме
Вы имеете в виду присвоить новому полю(колонке)
вместо | ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = ЗаказПокупателя.Контрагент
этот | ТоварыВРезервеНаСкладахОстатки.Регистратор.Контрагент ?


спасибо что пытаетесь помочь)
4. Неопределено 91 16.05.18 10:40 Сейчас в теме
(3) Нет, я имею в виду что вы пытаетесь взять данные по контрагенту из документа Заказ покупателя, при этом указывая что вам нужен такой документ, у которого контрагент равен полученной из регистра номенклатуре. Контрагент равен номенклатуре, понимаете? Такое сравнение вам ничего не вернёт. Нельзя сравнивать тёплое с мягким. Я имел в виду что вам не нужно левых соединений ни к каким документам. Вместо
| ЗаказПокупателя.Контрагент КАК РезервНаОбьекте
нужно написать
| ТоварыВРезервеНаСкладахОстатки.Регистратор.Контрагент
triviumfan; +1 Ответить
5. user976156 16.05.18 11:14 Сейчас в теме
Вот мои конструктор запроса, он выдает ошибку, я хочу создать новое поле ТоварыВРезервеНаСкладахОстатки.Регистратор.Контрагент
Откуда это поле тянется? с Заказа покупателя?
Прикрепленные файлы:
6. Неопределено 91 16.05.18 11:18 Сейчас в теме
(5) Так, я там глупость написал насчёт регистратора в виртуальной таблице остатков. Остатки придётся формировать отдельно из виртуальной таблицы остатков и оборотов с периодичностью Регистратор, затем помещать во временную таблицу и брать конечные данные уже из неё.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот