Имя: Пароль:
1C
1С v8
Товары на складах + Товары в резерве на складах
,
0 first_may
 
21.06.15
11:59
Добрый день.

Конфигурация Управление производственным предприятием, редакция 1.3.

Есть два типовых отчета Товары на складах и Товары в резерве на складах.
Из первого сделал внешний и в него добавил запрос из второго. Получилось:

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

в модуле отчета в процедуре УстановитьНачальныеНастройки
добаляю строку
    УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетовРезерв",           "ИсточникДанных.КоличествоРезерв * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов) (резерв)");

и при вызове отчета получаю ошибку
{Отчет.УниверсальныйОтчет.МодульОбъекта(3515)}: Ошибка при установке значения атрибута контекста (Текст)
    ПостроительОтчета.Текст = ТекстЗапроса;
по причине:
{(24, 17)}: Поле не найдено "ИсточникДанных.КоличествоРезерв"
ИсточникДанных.<<?>>КоличествоРезерв * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовРезерв,

Я понял, что все из за строки
УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах";

Подскажите пожалуйста, как избежать этой ошибки?
1 LegO
 
21.06.15
12:08
попробуй на СКД
2 echo77
 
21.06.15
12:09
Типовой отчет "Анализ доступности товаров на складах" не поможет?
3 echo77
 
21.06.15
12:11
Левое соединение здесь не пойдет - возможна ситуация, когда в товарах на складах ничего, а в товарах в резерве на складах минус
4 first_may
 
21.06.15
12:12
(2) в нем оборотов нет за перио
(3) наверное придется делать как (1)
5 kn
 
21.06.15
21:16
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоРезерв
попробуй заменить на
ЕстьNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоРезерв

и включить в доступные поля в построителе на закладке в конструкторе отчетов.
6 kn
 
21.06.15
21:16
т.е в конструкторе запроса
7 first_may
 
23.06.15
23:34
В продолжении темы. Если в этом отчете надо видеть не только количества, но еще и деньги, то есть сколько пришло в шт. и в деньгах, сколько ушло и сколько осталось. Что тогда надо еще добавить?
8 Otkr
 
23.06.15
23:37
(7) "Переходите на восьмерку, там это реализовано"
9 first_may
 
23.06.15
23:38
Это и так восьмерка.

Конфигурация Управление производственным предприятием, редакция 1.3.
10 Otkr
 
23.06.15
23:41
(9) Тогда в корне не прав. Сложение остатков в РН "ТоварыНаСкладах" с "ТОварыВРезерве"  имхо неверно. Ну и складывай с ... Зависит от РАУЗ или нет...
11 first_may
 
23.06.15
23:43
(10) РАУЗ
12 Otkr
 
23.06.15
23:45
(11) Тогда соединение по номенклатуре из аналитике из РАУЗ.
13 first_may
 
23.06.15
23:46
(12) РН "ТоварыНаСкладах" с "ТОварыВРезерве" - это сложил, тут количество, а сумма?
14 Otkr
 
23.06.15
23:49
(13) Плять, нет там суммы, там только количественные остатки!!
15 first_may
 
23.06.15
23:51
(14) это я знаю, вот и спрашиваю, можно ли как то другим способом получить ее?
16 Otkr
 
24.06.15
00:00
(15) соответсвующий регистр РАУЗ
17 first_may
 
24.06.15
00:23
(16) какой именно не подскажешь?
18 Azverin
 
24.06.15
09:04
вы про РН "Учёт затрат"?
19 Одинесю
 
24.06.15
09:26
Я в запрос добавил ЗаказПокупателяТовары.Цена * РегЗаказы.КоличествоОстаток КАК СуммаОстатка
и завел новый показатель СуммаОстатка
20 Serg_1960
 
24.06.15
09:28
Не хочу расстраивать ТС, но в УПП кроме регистров ТоварыНаСкладах и ТоварыВРезервеНаСкладах есть ещё регистры ТоварыКПередачеСоСкладов и ТоварыКПолучениюНаСклады (для работы по ордерам). Впрочем одного только резервирования вполне достаточно чтобы приуныть - резервы на товары могут бы сделаны без учета характеристик и серий. Т.е. резервируется товар с любой характеристикой/серией. Такие резервы "сложно" соединять по характеристикам/сериям.
21 Serg_1960
 
24.06.15
09:35
PS: посмотрите общий модуль "ПроцедурыКонтроляОстатков" - там достаточно примеров построения текстов запросов. Например процедура "ТоварыНаСкладахКонтрольОстатков_ПеремещениеТоваров" - в ней запрос по остаткам с левым соединением по резервам есть.
22 first_may
 
24.06.15
09:45
(19) вот запрос:

ВЫБРАТЬ
    ТоварыНаСкладах.Склад КАК Склад,
    ТоварыНаСкладах.Номенклатура КАК Номенклатура,
    ТоварыНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТоварыНаСкладах.СерияНоменклатуры КАК СерияНоменклатуры,
    ТоварыНаСкладах.Качество КАК Качество,
    ТоварыНаСкладах.Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
    ТоварыНаСкладах.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ТоварыНаСкладах.КоличествоПриход КАК КоличествоПриход,
    ТоварыНаСкладах.КоличествоРасход КАК КоличествоРасход,
    ТоварыНаСкладах.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ТоварыНаСкладах.КоличествоОборот КАК КоличествоОборот,
    ТоварыНаСкладах.КоличествоНачальныйОстаток * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладах.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовНачальныйОстаток,
    ТоварыНаСкладах.КоличествоПриход * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладах.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовПриход,
    ТоварыНаСкладах.КоличествоРасход * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладах.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовРасход,
    ТоварыНаСкладах.КоличествоКонечныйОстаток * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладах.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовКонечныйОстаток,
    ТоварыНаСкладах.КоличествоОборот * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладах.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовОборот,
    ТоварыНаСкладах.КоличествоНачальныйОстаток * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдНачальныйОстаток,
    ТоварыНаСкладах.КоличествоПриход * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдПриход,
    ТоварыНаСкладах.КоличествоРасход * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдРасход,
    ТоварыНаСкладах.КоличествоКонечныйОстаток * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдКонечныйОстаток,
    ТоварыНаСкладах.КоличествоОборот * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдОборот
ПОМЕСТИТЬ ТоварыНаСкладах
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ТоварыНаСкладах

ИНДЕКСИРОВАТЬ ПО
    Склад,
    Номенклатура,
    ХарактеристикаНоменклатуры,
    СерияНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладах.Склад,
    ТоварыНаСкладах.Номенклатура,
    ТоварыНаСкладах.ХарактеристикаНоменклатуры,
    ТоварыНаСкладах.Качество,
    ТоварыНаСкладах.БазоваяЕдиницаИзмерения,
    ТоварыНаСкладах.КоличествоНачальныйОстаток,
    ТоварыНаСкладах.КоличествоПриход,
    ТоварыНаСкладах.КоличествоРасход,
    ТоварыНаСкладах.КоличествоКонечныйОстаток,
    ТоварыНаСкладах.КоличествоОборот,
    ТоварыНаСкладах.КоличествоЕдиницОтчетовНачальныйОстаток,
    ТоварыНаСкладах.КоличествоЕдиницОтчетовПриход,
    ТоварыНаСкладах.КоличествоЕдиницОтчетовРасход,
    ТоварыНаСкладах.КоличествоЕдиницОтчетовКонечныйОстаток,
    ТоварыНаСкладах.КоличествоЕдиницОтчетовОборот,
    ТоварыНаСкладах.КоличествоБазовыхЕдНачальныйОстаток,
    ТоварыНаСкладах.КоличествоБазовыхЕдПриход,
    ТоварыНаСкладах.КоличествоБазовыхЕдРасход,
    ТоварыНаСкладах.КоличествоБазовыхЕдКонечныйОстаток,
    ТоварыНаСкладах.КоличествоБазовыхЕдОборот,
    ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Зарезервировано,
    ТоварыНаСкладах.КоличествоБазовыхЕдКонечныйОстаток - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК СвободныйОстаток
ИЗ
    ТоварыНаСкладах КАК ТоварыНаСкладах
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
                &Период,
                (Номенклатура, Склад, ХарактеристикаНоменклатуры) В
                    (ВЫБРАТЬ
                        ТоварыНаСкладах.Номенклатура,
                        ТоварыНаСкладах.Склад,
                        ТоварыНаСкладах.ХарактеристикаНоменклатуры
                    ИЗ
                        ТоварыНаСкладах КАК ТоварыНаСкладах)) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ТоварыНаСкладах.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ТоварыНаСкладах.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
            И ТоварыНаСкладах.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры


и как подвязать цену, что бы получить суммы?
23 Serg_1960
 
24.06.15
09:48
Модуль документа "ИнвентаризацияТоваровНаСкладах" - там много примеров получения остатков и сумм (процедуры, например, при РАУЗ  ЗаполнитьПоОстаткамНаСкладеРасширеннаяАналитика, ПерезаполнитьУчетныеКоличестваРасширеннаяАналитика и т.д.)
24 Одинесю
 
24.06.15
09:52
Вот мой запрос, но он только для товары на складах и документ резерва - заказ покупателя.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.Склад КАК Склад,
    ПРЕДСТАВЛЕНИЕ(РегЗаказы.Склад),
    РегЗаказы.ДокументРезерва КАК ДокументРезерва,
    ПРЕДСТАВЛЕНИЕ(РегЗаказы.ДокументРезерва),
    РегЗаказы.Номенклатура КАК Номенклатура,
    ПРЕДСТАВЛЕНИЕ(РегЗаказы.Номенклатура),
    РегЗаказы.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(РегЗаказы.ХарактеристикаНоменклатуры),
    РегЗаказы.СерияНоменклатуры КАК СерияНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(РегЗаказы.СерияНоменклатуры),
    РегЗаказы.КоличествоОстаток * РегЗаказы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РегЗаказы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОстаток,
    РегЗаказы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент,
    РегЗаказы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток1,
    ЗаказПокупателяТовары.Цена КАК СуммаДокумента,
    ЗаказПокупателяТовары.Номенклатура КАК Номенклатура1,
    ЗаказПокупателяТовары.Цена * РегЗаказы.КоличествоОстаток КАК СуммаОстатка
{ВЫБРАТЬ
    Склад.*,
    ДокументРезерва.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    КоличествоОстаток,
    КоличествоОстаток1,
    СуммаОстатка}
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК РегЗаказы
        ПО (РегЗаказы.ДокументРезерва.Ссылка = ЗаказПокупателяТовары.Ссылка)
            И (РегЗаказы.Номенклатура = ЗаказПокупателяТовары.Номенклатура)
ГДЕ
    РегЗаказы.ДокументРезерва ССЫЛКА Документ.ЗаказПокупателя
{ГДЕ
    РегЗаказы.Склад.*,
    РегЗаказы.ДокументРезерва.*,
    РегЗаказы.Номенклатура.*,
    РегЗаказы.ХарактеристикаНоменклатуры.*,
    РегЗаказы.СерияНоменклатуры.*,
    РегЗаказы.КоличествоОстаток}
{УПОРЯДОЧИТЬ ПО
    Склад.*,
    ДокументРезерва.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    КоличествоОстаток}
ИТОГИ
    СУММА(КоличествоОстаток),
    СУММА(КоличествоОстаток1),
    СУММА(СуммаОстатка)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Склад.*,
    ДокументРезерва.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*}
АВТОУПОРЯДОЧИВАНИЕ
25 Одинесю
 
24.06.15
09:53
* товары в резерве