Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Добавить цену в Остатки товаров
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
danie
Есть регистр накоплений Остатки товаров на складе. Выводит номенклатуру, ее серию, характеристику, склад на котором находится и количество в наличии.
К этому нужно добавить и цену каждого товара из регистра сведений Цены номенклатуры.
Добавил Цену новым измерением, как мне запросить сведения по цене?



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


PS Может я делаю через заднее место... фактическая задача - распечатать прайс по товарам что есть в наличии (а не всю номенклатуру)
Batchir
Может я ошибаюсь, но у меня никогда не получалось нормально связать табличную часть с регистрами. Я использовал пакетные запросы, т.е. табличную часть выгружал во временную таблицу, а уже её связывал с регистрами. Только в этом случае получал нужный результат.

Да задача не соответствует запросу. Ты выгребаешь табличную часть документа , смотришь остатки и пытаешься получить цены, а это немного отличается от фактической задачи.
Dennis
В запит вибираєш наступні три таблиці:
1. ТоварыНаСкладах (регістр, віртуальна таблиця Остатки)
2. ЦенаНоменклатуры (регістр, віртуальна таблиця СрезПоследних)
3. Номенклатура (довідник)

Регістр ЦенаНоменклатуры оформлюєш у вигляді вкладеного запиту.
Як звязати таблиці:
1. Таблицю Номенклатура (очевидно, прийдеться її перейменувати) з вкладеним запитом до таблиці ЦенаНоменклатуры (Левое Соединение, по Номенклатура.Ссылка
2. Таблицю Номенклатура з таблицею ТоварыНаСкладах (Левое Соединение у випадку якщо потрібна вся номенклатура, Внутреннее Соединение - якщо потрібна лише наявна номенклатура)

Зрештою, можеш написати який в тебе програмний продукт (ще краще - описати структуру згаданих вище регістрів - я тобі кину готовий звіт)
Ardi
Наподобие
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен.Ссылка = &ТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО РеализацияТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО РеализацияТоваровУслугТовары.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры
            И РеализацияТоваровУслугТовары.Ссылка.Склад = ТоварыНаСкладахОстатки.Склад
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка = &Ссылка
Ardi
В картинках.
необходимо зарегистрироваться для просмотра ссылки
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.