Подскажите, пожалуйста, почему может не формироваться отчет, который был скопирован с консоли в СКД?
Если в СКД через конструктор создавать отчет с нуля, все работает.
(6) вопрос не в выбранных полях, а в настройке макета, который вы скорее всего не определили
выбранные поля только дадут вам возможность выбрать их в группировках макета
(11) имеется в виду вкладка Настройки, где определяется вид отчета
когда используется конструктор с ноля, как правило он сам помещает туда группировку "Детальные записи"
а когда вы копируете запрос или пишете его сами в СКД, то этого не происходит и вам требуется самой определить, что будет выводить в отчет, фактически в табличный документ. Без настройки группировок даже правильно работающий запрос, выдающий нужный вам результат, отразит пустой табличный документ на выходе.
ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, ДЕНЬ) КАК День,
НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, НЕДЕЛЯ) КАК неделя,
НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК месяц,
СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот,
СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ втОстатки
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
&ДатаНачало,
&ДатаОкончание,
День,
,
Счет = &Счет,
,
Организация = &Организация
И Субконто1 В ИЕРАРХИИ (&Номенклатура)) КАК ХозрасчетныйОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстаткиИОбороты.Организация,
ХозрасчетныйОстаткиИОбороты.СуммаОборот,
ХозрасчетныйОстаткиИОбороты.Период,
ХозрасчетныйОстаткиИОбороты.Субконто1
;
ВЫБРАТЬ
Хозрасчетный.СчетДт,
Хозрасчетный.СчетКт,
ПеремещениеТоваровТовары.Номенклатура,
НАЧАЛОПЕРИОДА(Хозрасчетный.Период, НЕДЕЛЯ) КАК Неделя,
НАЧАЛОПЕРИОДА(Хозрасчетный.Период, ДЕНЬ) КАК День,
НАЧАЛОПЕРИОДА(Хозрасчетный.Период, МЕСЯЦ) КАК Месяц,
ЕСТЬNULL(ПеремещениеТоваровТовары.ВесФакт, 0) КАК ПолученоСПроизводства,
Хозрасчетный.Организация
ПОМЕСТИТЬ втПроизводство
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ПО Хозрасчетный.Регистратор = ПеремещениеТоваровТовары.Ссылка
ГДЕ
Хозрасчетный.СчетДт = &Счет
И Хозрасчетный.СчетКт = &СчетКт
И Хозрасчетный.Организация = &Организация
И Хозрасчетный.Период МЕЖДУ &ДатаНачало И &ДатаОкончание
И ПеремещениеТоваровТовары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
СГРУППИРОВАТЬ ПО
НАЧАЛОПЕРИОДА(Хозрасчетный.Период, МЕСЯЦ),
НАЧАЛОПЕРИОДА(Хозрасчетный.Период, ДЕНЬ),
Хозрасчетный.СчетДт,
Хозрасчетный.СчетКт,
НАЧАЛОПЕРИОДА(Хозрасчетный.Период, НЕДЕЛЯ),
ПеремещениеТоваровТовары.ВесФакт,
Хозрасчетный.Организация,
ПеремещениеТоваровТовары.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, ДЕНЬ) КАК День,
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, НЕДЕЛЯ) КАК Неделя,
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, МЕСЯЦ) КАК Месяц,
СУММА(ЕСТЬNULL(ЗаявкиПродажи.Количество, 0)) КАК ЗаявленоКоличество,
СУММА(ЕСТЬNULL(ЗаявкиПродажи.Сумма, 0)) КАК ЗаявленоСумма,
ЗаявкиПродажи.Номенклатура,
ЗаявкиПродажи.Организация КАК Организация
ПОМЕСТИТЬ втЗаявлено
ИЗ
РегистрНакопления.ЗаявкиПродажи КАК ЗаявкиПродажи
ГДЕ
ЗаявкиПродажи.Период МЕЖДУ &ДатаНачало И &ДатаОкончание
И ЗаявкиПродажи.Организация = &Организация
И ЗаявкиПродажи.Номенклатура В ИЕРАРХИИ(&Номенклатура)
И ЗаявкиПродажи.ВидДвиженияТовара = &ВидыДвиженияТовара_Заявка
СГРУППИРОВАТЬ ПО
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, МЕСЯЦ),
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, НЕДЕЛЯ),
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, ДЕНЬ),
ЗаявкиПродажи.Номенклатура,
ЗаявкиПродажи.Организация
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, ДЕНЬ) КАК День,
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, НЕДЕЛЯ) КАК Неделя,
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, МЕСЯЦ) КАК Месяц,
СУММА(ЕСТЬNULL(ЗаявкиПродажи.Количество, 0)) КАК ОтгруженоКоличество,
СУММА(ЕСТЬNULL(ЗаявкиПродажи.Сумма, 0)) КАК ОтгруженоСумма,
ЗаявкиПродажи.Организация КАК Организация,
ЗаявкиПродажи.Номенклатура
ПОМЕСТИТЬ втОтгружено
ИЗ
РегистрНакопления.ЗаявкиПродажи КАК ЗаявкиПродажи
ГДЕ
ЗаявкиПродажи.Период МЕЖДУ &ДатаНачало И &ДатаОкончание
И ЗаявкиПродажи.Организация = &Организация
И ЗаявкиПродажи.Номенклатура В ИЕРАРХИИ(&Номенклатура)
И ЗаявкиПродажи.ВидДвиженияТовара = &ВидыДвиженияТовара_Отгрузка
СГРУППИРОВАТЬ ПО
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, НЕДЕЛЯ),
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, ДЕНЬ),
НАЧАЛОПЕРИОДА(ЗаявкиПродажи.Период, МЕСЯЦ),
ЗаявкиПродажи.Организация,
ЗаявкиПродажи.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗаявлено.День,
втЗаявлено.Неделя,
втЗаявлено.Месяц,
втЗаявлено.ЗаявленоКоличество КАК ЗаявленоКоличество,
втЗаявлено.ЗаявленоСумма КАК ЗаявленоСумма,
втОтгружено.ОтгруженоКоличество КАК ОтгруженоКоличество,
втОтгружено.ОтгруженоСумма КАК ОтгруженоСумма,
втЗаявлено.Номенклатура,
втЗаявлено.Организация
ПОМЕСТИТЬ втБезПроизводства
ИЗ
втЗаявлено КАК втЗаявлено
ЛЕВОЕ СОЕДИНЕНИЕ втОтгружено КАК втОтгружено
ПО втЗаявлено.День = втОтгружено.День
И втЗаявлено.Неделя = втОтгружено.Неделя
И втЗаявлено.Месяц = втОтгружено.Месяц
И втЗаявлено.Номенклатура = втОтгружено.Номенклатура
СГРУППИРОВАТЬ ПО
втЗаявлено.День,
втЗаявлено.Неделя,
втЗаявлено.Месяц,
втЗаявлено.ЗаявленоКоличество,
втЗаявлено.ЗаявленоСумма,
втОтгружено.ОтгруженоКоличество,
втОтгружено.ОтгруженоСумма,
втЗаявлено.Номенклатура,
втЗаявлено.Организация
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втБезПроизводства.День,
втБезПроизводства.Неделя,
втБезПроизводства.Месяц,
втБезПроизводства.ЗаявленоКоличество КАК ЗаявленоКоличество,
втБезПроизводства.ЗаявленоСумма КАК ЗаявленоСумма,
втБезПроизводства.ОтгруженоКоличество КАК ОтгруженоКоличество,
втБезПроизводства.ОтгруженоСумма КАК ОтгруженоСумма,
втПроизводство.ПолученоСПроизводства КАК ПоступилоСПроизводства,
втБезПроизводства.Номенклатура КАК Номенклатура,
втБезПроизводства.Организация
ПОМЕСТИТЬ втИтог
ИЗ
втБезПроизводства КАК втБезПроизводства
ЛЕВОЕ СОЕДИНЕНИЕ втПроизводство КАК втПроизводство
ПО втБезПроизводства.День = втПроизводство.День
И втБезПроизводства.Неделя = втПроизводство.Неделя
И втБезПроизводства.Месяц = втПроизводство.Месяц
И втБезПроизводства.Номенклатура = втПроизводство.Номенклатура
СГРУППИРОВАТЬ ПО
втБезПроизводства.День,
втБезПроизводства.Неделя,
втБезПроизводства.Месяц,
втПроизводство.ПолученоСПроизводства,
втБезПроизводства.ЗаявленоКоличество,
втБезПроизводства.ЗаявленоСумма,
втБезПроизводства.ОтгруженоКоличество,
втБезПроизводства.ОтгруженоСумма,
втБезПроизводства.Номенклатура,
втБезПроизводства.Организация
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втИтог.День,
втИтог.Неделя,
втИтог.Месяц,
втИтог.ЗаявленоКоличество,
втИтог.ЗаявленоСумма,
втИтог.ОтгруженоКоличество,
втИтог.ОтгруженоСумма,
втИтог.ПоступилоСПроизводства,
втИтог.Номенклатура,
втИтог.Организация,
втОстатки.КоличествоНачальныйОстаток,
втОстатки.КоличествоКонечныйОстаток
ИЗ
втИтог КАК втИтог
ЛЕВОЕ СОЕДИНЕНИЕ втОстатки КАК втОстатки
ПО (втОстатки.Номенклатура = втИтог.Номенклатура)
И (втОстатки.Организация = втИтог.Организация)
И (втОстатки.День = втИтог.День)
И (втОстатки.неделя = втИтог.Неделя)
И (втОстатки.месяц = втИтог.Месяц)
Рекомендации
1. Привыкайте использовать в определении периода стандартные выражения. Потом будет меньше проблем
&ДатаНачало - &НачалоПериода &ДатаОкончание - &КонецПериода
2. Определения границ периода в запросе надо дополнить:
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНачало,&ДатаОкончание) В Вашем случае это будет
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНачало {(&ДатаНачало)},&ДатаОкончание {(&ДатаОкончание)})
Надо добавить и попробовать на работоспособность
3. Параметр &Счет у Вас будет разный?
4. &ВидыДвиженияТовара_Заявка и &ВидыДвиженияТовара_Отгрузка тип перечисления?
5. Вот это вот соединение РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары это жопная жопа...
6. Почему собирая втЗаявлено и иже сними Вы обращаетесь к таблице регистра РегистрНакопления.ЗаявкиПродажи а не к виртуальной таблице? Например РегистрНакопления.ЗаявкиПродажи.Остатки ?
(19) По поводу лишних параметров.
ЗаявкиПродажи.ВидДвиженияТовара = &ВидыДвиженияТовара_Заявка будет идентично
ЗаявкиПродажи.ВидДвиженияТовара = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженияТовара.Заявка)
И не надо пихать и изобретать лишних параметров.
Точно так же можно обработать счета.
Хозрасчетный.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах)
Это все не критично но избавляет от лишних телодвижений.
По поводу РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНачало {(&ДатаНачало)},&ДатаОкончание {(&ДатаОкончание)})
почитайте, там написано про скобочки http://misligrad.ru/2018/05/11/skd7/
Я просил заменить выше написанное и попробовать собрать отчет. Получилось или нет?
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ПО ВЫРАЗИТЬ(Хозрасчетный.Регистратор КАК Документ.ПеремещениеТоваров).Ссылка = ПеремещениеТоваровТовары.Ссылка
Цитирую:
"Получение значения поля составного типа через точку
При получении данных составного типа в запросе через точку система соединяет левым соединением ровно столько таблиц, сколько типов возможно в поле составного типа.
например, крайне нежелательно для оптимизации обращаться к полю записи регистра — регистратор. Регистратор имеет составной тип данных, среди которых все возможные типы документов, которые могут писать данные в регистр.
НЕПРАВИЛЬНО:
ВЫБРАТЬ
НаборЗаписей.Регистратор.Дата,
НаборЗаписей.Количество
ИЗ
РегистрНакопления.ТоварыOрганизаций КАК НаборЗаписей".
В Вашем случае работать будет, но это не оптимальный запрос.
(25) где-то используете расчетный показатель для отчета и включили его в группировки, этого не надо делать, плюс проверьте для чего он рассчитывается, возможно неверно указали
(31) ух... какая старая, такой уже и не найти (
к сожалению у меня имеется только 2.0, где запрос в компоновке уже не открывается и не дает полноценно увидеть настройки
рискну предположить, что вы уже вычислили в запросе итоги по остаткам и еще раз тоже самое выполняете в ресурсах - в результате видите общий итог
или же в ресурсах объявить расчет остатков для номенклатуры
в общем надо с ресурсами поиграть
(34) вероятно, т.к. настройки отчета у меня теряются при открытии, могу лишь предполагать
попробуйте в ресурсах для начального и конечного остатка объявить для чего они рассчитываются, т.е. не общий итог, как есть сейчас (возможно у меня просто ломается настройка), а для Номенклатуры
(36) а вы консолью запросов или консолью СКД пользуетесь? они сами по себе разные и то что у вас получилось в консоли запроса совсем не будет равно тому что будет в консоли СКД
к сожалению, дальше без конфигурации помочь затруднительно
могу предложить еще вариант - формируете запрос отдельно, помещаете результат в ТаблицаЗначений (раз у вас получается все как надо отразить в консоли), передаете ее в СКД и уже по таблице пишете запрос и настраиваете отображение отчета