Здравствуйте, написал внешнюю печатную форму "Акта списания", но сумму подтягивает только из одной проводки
Написал запрос для заполнения табличной части макета печатной формы, когда формирую этот акт списания из "требование накладной", то запрос выбирает только первую попавшуюся проводку по номенклатуре на основании документа. Допустим у номенклатуры "Ручка" было 3 документа поступления, в трёх документах разная сумма, эти 3 суммы нужны сложить, а у меня подтягивается первая попавшиеся сумма. Можно ли как то указать условия в запросе по поиску номенклатуры?
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код,
| ТребованиеНакладнаяМатериалы.Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование,
| ТребованиеНакладнаяМатериалы.Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.НомерСтроки = Хозрасчетный.НомерСтроки
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
СуммаДокумента = 0;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() > 0 Тогда
Пока Выборка.Следующий() Цикл
СуммаДокумента = СуммаДокумента + Выборка.сумма;
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
КонецЕсли;
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) Есть документ "Требование накладная" там номенклатура "Ручка", но в проводках есть 3 документа Поступления по этой ручке по одной дате, а у меня он тащит первую попавшуюся сумму в проводке и запихивает, а нужно чтобы все суммы по этим 3 документам сложил и вывел
(10)
Не согласен. Сначала лучше во временную поместить таблицу документа.
Потом в другой временной таблицу получить обороту, но с указанием отбора по номенклатуре (в параметрах виртуальной таблицы, источник из первой ВТ).
А уже потом соединить все это по номенклатуре.
Не согласен. Сначала лучше во временную поместить таблицу документа.
Потом в другой временной таблицу получить обороту, но с указанием отбора по номенклатуре (в параметрах виртуальной таблицы, источник из первой ВТ).
А уже потом соединить все это по номенклатуре.
(5)
ВЫБРАТЬ
ТребованиеНакладнаяМатериалы.Ссылка,
ТребованиеНакладнаяМатериалы.Номенклатура,
Хозрасчетный.Сумма
ИЗ
Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ПО ТребованиеНакладнаяМатериалы.Ссылка = Хозрасчетный.Регистратор
И ТребованиеНакладнаяМатериалы.НомерСтроки = Хозрасчетный.НомерСтроки
Показать
(13)
Вот смотрите в проводке у меня два документа на этот товар(Скриншот 1), а в акт списания у меня лупит только первую сумму (Скриншот 2)
Честно говоря я перестал понимать суть задачи.
Тебе нужно учитывать проводки только по выбранному документу?
Тебе нужно учитывать проводки только по выбранному документу?
Вот смотрите в проводке у меня два документа на этот товар(Скриншот 1), а в акт списания у меня лупит только первую сумму (Скриншот 2)
Прикрепленные файлы:
(17) Так?
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.НомерСтроки = Хозрасчетный.НомерСтроки
| И ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
Показать
(21) Убрал
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ
(28)
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
СуммаДокумента = 0;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() > 0 Тогда
Пока Выборка.Следующий() Цикл
СуммаДокумента = СуммаДокумента + Выборка.сумма;
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
КонецЕсли;
Показать
(29)
ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
Что это ????
Номенклатуру сравниваешь с документом-регистратором.
Нужно номенклатуру из документа с субконто из регистра бухгалтерии где находится номенклатура.
Не торопись.
ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
Что это ????
Номенклатуру сравниваешь с документом-регистратором.
Нужно номенклатуру из документа с субконто из регистра бухгалтерии где находится номенклатура.
Не торопись.
ВЫБРАТЬ
РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество
ПОМЕСТИТЬ ВТ_Документ
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
ГДЕ
РеализацияТоваровУслуг.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РеализацияТоваровУслугТовары.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
ПОМЕСТИТЬ ВТ_Обороты
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(
,
,
Регистратор,
,
,
Субконто1 В
(ВЫБРАТЬ
ВТ_Документ.Номенклатура КАК Номенклатура
ИЗ
ВТ_Документ КАК ВТ_Документ),
,
) КАК ХозрасчетныйОбороты
ГДЕ
ХозрасчетныйОбороты.Регистратор = &Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Документ.Номенклатура КАК Номенклатура,
ВТ_Документ.Количество КАК Количество,
ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) КАК Сумма,
ВЫБОР
КОГДА ВТ_Документ.Количество = 0
ТОГДА 0
ИНАЧЕ ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) / ВТ_Документ.Количество
КОНЕЦ КАК Цена
ИЗ
ВТ_Документ КАК ВТ_Документ
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты
ПО ВТ_Документ.Номенклатура = ВТ_Обороты.Субконто1
Показать
(32)
А как теперь их соединить, очень уж трудно
РеализацияТоваровУслуг.Ссылка = &Ссылка
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
//////////////////////////////////////////////////////////// /////////////////////
"ВЫБРАТЬ
|ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
|ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.Обороты(
| ,
| ,
| Регистратор,
| ,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура
| ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы),
| ,
| ) КАК ХозрасчетныйОбороты
|ГДЕ
|ХозрасчетныйОбороты.Регистратор = &Ссылка";
ПоказатьА как теперь их соединить, очень уж трудно
(37)
//Заполнение табличной части документа
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Сумма / ТребованиеНакладнаяМатериалы.Количество КАК Цена
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
| ПО ТребованиеНакладнаяМатериалы.Номенклатура = Хозрасчетный.Регистратор
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
| И Хозрасчетный.Регистратор = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
//////////////////////////////////////////////////////////// /////////////////////
"ВЫБРАТЬ
|ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
|ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.Обороты(
| ,
| ,
| Регистратор,
| ,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура
| ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы),
| ,
| ) КАК ХозрасчетныйОбороты
|ГДЕ
|ХозрасчетныйОбороты.Регистратор = &Ссылка";
/////////////////////////////////////////////
"Выбрать
|ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
|ТребованиеНакладнаяМатериалы.Количество КАК Количество,
|ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) КАК Сумма,
|ВЫБОР
|КОГДА ТребованиеНакладнаяМатериалы.Количество = 0
|ТОГДА 0
|ИНАЧЕ ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) / ТребованиеНакладнаяМатериалы.Количество
|КОНЕЦ КАК Цена
|ИЗ
|Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
|ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты
|ПО ТребованиеНакладнаяМатериалы.Номенклатура = ВТ_Обороты.Субконто1";
Показать
(42)
Вот так?
Хозрасчетный в первом запросе не нужен
Вот так?
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
//////////////////////////////////////////////////////////// /////////////////////
"ВЫБРАТЬ
|ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
|ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.Обороты(
| ,
| ,
| Регистратор,
| ,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура
| ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы),
| ,
| ) КАК ХозрасчетныйОбороты
|ГДЕ
|ХозрасчетныйОбороты.Регистратор = &Ссылка";
/////////////////////////////////////////////
"Выбрать
|ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
|ТребованиеНакладнаяМатериалы.Количество КАК Количество,
|ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) КАК Сумма,
|ВЫБОР
|КОГДА ТребованиеНакладнаяМатериалы.Количество = 0
|ТОГДА 0
|ИНАЧЕ ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) / ТребованиеНакладнаяМатериалы.Количество
|КОНЕЦ КАК Цена
|ИЗ
|Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
|ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты
|ПО ТребованиеНакладнаяМатериалы.Номенклатура = ВТ_Обороты.Субконто1";
СуммаДокумента = 0;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() > 0 Тогда
Пока Выборка.Следующий() Цикл
СуммаДокумента = СуммаДокумента + Выборка.сумма;
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
КонецЕсли;
Показать
Вы не поместили первую выборку во временную таблицу. После затребовано поместить в вт_накл. Второй запрос по оборотам по моему регистратора уже не хранит. Нужна с движениями.
Напишите два отдельных запроса с выгрузкой в таблицы значений и посмотрите в отладчике что там.
Напишите два отдельных запроса с выгрузкой в таблицы значений и посмотрите в отладчике что там.
(45)
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НомерСтроки КАК НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатураКод,
| ТребованиеНакладнаяМатериалы.Счет КАК Счет,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ТребованиеНакладнаяМатериалы.Количество КАК Количество,
| ТребованиеНакладнаяМатериалы.Количество КАК КолЗатребовано
| ПОМЕСТИТЬ ВТ_Документ
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
|ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка
//////////////////////////////////////////////////////////// /////////////////////
"ВЫБРАТЬ
|ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
|ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.Обороты(
| ,
| ,
| Регистратор,
| ,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ВТ_Документ.Номенклатура КАК Номенклатура
| ИЗ
| ВТ_Документ КАК ВТ_Документ),
| ,
| ) КАК ХозрасчетныйОбороты
|ГДЕ
|ХозрасчетныйОбороты.Регистратор = &Ссылка
/////////////////////////////////////////////
"Выбрать
|ВТ_Документ.Номенклатура КАК Номенклатура,
|ВТ_Документ.Количество КАК Количество,
|ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) КАК Сумма,
|ВЫБОР
|КОГДА ВТ_Документ.Количество = 0
|ТОГДА 0
|ИНАЧЕ ЕСТЬNULL(ВТ_Обороты.СуммаОборот, 0) / ВТ_Документ.Количество
|КОНЕЦ КАК Цена
|ИЗ
|ВТ_Документ КАК ВТ_Документ
|ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты
|ПО ВТ_Документ.Номенклатура = ВТ_Обороты.Субконто1";
СуммаДокумента = 0;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() > 0 Тогда
Пока Выборка.Следующий() Цикл
СуммаДокумента = СуммаДокумента + Выборка.сумма;
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
КонецЕсли;
Показать
(49)
Не совсем понял при чем здесь временные таблицы и прочее. Запрос судя по заданию элементарный.
"Допустим у номенклатуры "Ручка" было 3 документа поступления, в трёх документах разная сумма, эти 3 суммы нужны сложить"
Просто берем обороты за период где номенклатура в списке номенклатуры исходного документа. Отбора по регистратору не нужно в хозрасчетном регистре. Если только не хотите задать список документов поступления вручную.
Если же есть желание СТРОГО указать список поступлений, данный по которым нужно анализировать, то при получении данных из хозрасчетного регистра ставите отбор по регистратору и в параметр ставите список значений
Не совсем понял при чем здесь временные таблицы и прочее. Запрос судя по заданию элементарный.
"Допустим у номенклатуры "Ручка" было 3 документа поступления, в трёх документах разная сумма, эти 3 суммы нужны сложить"
Просто берем обороты за период где номенклатура в списке номенклатуры исходного документа. Отбора по регистратору не нужно в хозрасчетном регистре. Если только не хотите задать список документов поступления вручную.
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.Ссылка,
| ТребованиеНакладнаяМатериалы.НомерСтроки,
| ТребованиеНакладнаяМатериалы.Номенклатура,
| ТребованиеНакладнаяМатериалы.Счет,
| ТребованиеНакладнаяМатериалы.КоличествоМест,
| ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения,
| ТребованиеНакладнаяМатериалы.Коэффициент,
| ТребованиеНакладнаяМатериалы.Количество,
| ВложенныйЗапрос.СредняяСуммаПоступленияЗаУказанныйПериод
|ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
| ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот,
| ХозрасчетныйОбороты.КоличествоОборот КАК КоличествоОборот,
| ХозрасчетныйОбороты.СуммаОборот / ХозрасчетныйОбороты.КоличествоОборот КАК СредняяСуммаПоступленияЗаУказанныйПериод
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| &Дата1,
| &Дата2,
| Регистратор,
| ,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.Номенклатура
| ИЗ
| Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
| ГДЕ
| ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка),
| ,
| ) КАК ХозрасчетныйОбороты) КАК ВложенныйЗапрос
| ПО ТребованиеНакладнаяМатериалы.Номенклатура = ВложенныйЗапрос.Субконто1
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
ПоказатьЕсли же есть желание СТРОГО указать список поступлений, данный по которым нужно анализировать, то при получении данных из хозрасчетного регистра ставите отбор по регистратору и в параметр ставите список значений
(50)
А я понял, что нужно брать только движения текущего документа.
Т.к. в БД на счете учета номенклатуры есть документ-партия, то при проведении документа требование-накладная по одной позиции номенклатуры может быть несколько строк движений, т.к. списываться одна и та же номенклатура может по нескольким партиям.
А я понял, что нужно брать только движения текущего документа.
Т.к. в БД на счете учета номенклатуры есть документ-партия, то при проведении документа требование-накладная по одной позиции номенклатуры может быть несколько строк движений, т.к. списываться одна и та же номенклатура может по нескольким партиям.
Ммм, если брать движения текущего документа, то просто нужна группировка по номенклатуре с суммированием суммы проводки при запросе данных проведения.
Можно даже во вложенном запросе группировать, а в главном высчитывать среднюю стоимость как сумму/кол-во.
в трёх документах разная сумма, эти 3 суммы нужны сложить
Можно даже во вложенном запросе группировать, а в главном высчитывать среднюю стоимость как сумму/кол-во.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот