Добрый день , коллеги. Столкнулся с такой проблемой в запросе:
Делаю такой запрос
И всё считается правильно вроде:
_______________НачОстаток________Приход______Расход_____КонО статок
Товар___________800________________24___________14 _______ 810
Но когда я добавляю регистратор в запросе, Остатки меняются :
Получается что то вроде таких цифр:
__________НачОстаток _______Приход _______Расход_______КонОстаток
Товар______ 24400 ____________ 24 _________ 14 ________ 24410
Никто не сталкивался с такой ситуацией ? может знает кто ?
Делаю такой запрос
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
И ТоварыНаСкладахОстаткиИОбороты.Организация = &Организация
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
И ТоварыНаСкладахОстаткиИОбороты.Организация = &Организация
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
И всё считается правильно вроде:
_______________НачОстаток________Приход______Расход_____КонО
Товар___________800________________24___________14 _______ 810
Но когда я добавляю регистратор в запросе, Остатки меняются :
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
И ТоварыНаСкладахОстаткиИОбороты.Организация = &Организация
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&НачПериода, &КонПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
И ТоварыНаСкладахОстаткиИОбороты.Организация = &Организация
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор
АВТОУПОРЯДОЧИВАНИЕ
Получается что то вроде таких цифр:
__________НачОстаток _______Приход _______Расход_______КонОстаток
Товар______ 24400 ____________ 24 _________ 14 ________ 24410
Никто не сталкивался с такой ситуацией ? может знает кто ?
По теме из базы знаний
- Полезные сведения о языке запросов 1С 8.2
- Вывод остатка товаров на складе в документ Реализация товаров и услуг (для конфигурации Управление Торговлей 11.2 / 11.3 / 11.4)
- СКД: Корректный расчет остатков по нескольким регистрам
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Исправление неправильных остатков при свертке базы Бухгалтерии
Найденные решения
Я не могу понять для чего вы пишите сумму по полям количество остатки и обороты. ИТОГИ по суммам делаются в секции ИТОГИ ... ПО ОБЩИЕ. Это первое. А второе: сумма с регистратором меняется, потому что вы выбираете движения по всем регистраторам которые фиксируют это движение. Т.е. у вас в списке допустим один товар пришел на кол-во 100 шт. по 1-му регистратору, потом ушел этот же товар на кол-во 50 шт. по 2-му регистратору, а потом допустим еще было перемещение со склада на склад в количестве 10 шт. по 3-ему регистратору. Если вы хотите видеть движение по регистратору, то только конкретного регистратора. Для этого в условии ИЗ нужно написать:
Запись - это и есть ваш регистратор.
Выкладываю полный запрос:
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&ДатаНач, &ДатаОконч, Запись, Движения, АналитикаУчетаНоменклатуры.Склад = &Склад) КАК ТоварыОрганизацийОстаткиИОбороты
Запись - это и есть ваш регистратор.
Выкладываю полный запрос:
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
ТоварыОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор,
ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&ДатаНач, &ДатаОконч, Запись, Движения, АналитикаУчетаНоменклатуры.Склад = &Склад) КАК ТоварыОрганизацийОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.Регистратор,
ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИТОГИ
СУММА(КоличествоНачальныйОстаток),
СУММА(КоличествоПриход),
СУММА(КоличествоРасход),
СУММА(КоличествоКонечныйОстаток)
ПО
ОБЩИЕ
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
А куда его добавить ?
Вы уж как-то пояснее...
ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда
А куда его добавить ?
Вы уж как-то пояснее...
ВЫБРАТЬ
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
&НачПериода,
&КонПериода,
Регистратор,
ДвиженияИГраницыПериода,
Организация = &Организация
И АналитикаУчетаНоменклатуры.СкладскаяТерритория = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор
Показать
(16)
Результат такой же
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
&НачПериода,
&КонПериода,
Авто,
ДвиженияИГраницыПериода,
Склад = &Склад
И Организация = &Организация) КАК ТоварыНаСкладахОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
&НачПериода,
&КонПериода,
Авто,
ДвиженияИГраницыПериода,
Склад = &Склад
И Организация = &Организация) КАК ТоварыНаСкладахОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор
АВТОУПОРЯДОЧИВАНИЕ
Результат такой же
(44)
С регистратором:
__________НачОстаток____Приход____Расход_____КонОстаток
Тоавр_____200___________100__________0 ________300__________Документ1
Товар_____300___________100__________50_______350__________Д окумент1
Товар_____350___________200__________50_______500__________Д окумент2
БЕЗ
__________НачОстаток____Приход____Расход_____КонОстаток
Тоавр_____750___________400__________100 ________1150____
Показать
С регистратором:
__________НачОстаток____Приход____Расход_____КонОстаток
Тоавр_____200___________100__________0 ________300__________Документ1
Товар_____300___________100__________50_______350__________Д
Товар_____350___________200__________50_______500__________Д
БЕЗ
__________НачОстаток____Приход____Расход_____КонОстаток
Тоавр_____750___________400__________100 ________1150____
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
ТоварыОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
&НачПериода,
&КонПериода,
Регистратор,
ДвиженияИГраницыПериода,
Склад = &Склад
И Организация = &Организация) КАК ТоварыОрганизацийОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.Регистратор
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
ТоварыОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
&НачПериода,
&КонПериода,
Регистратор,
ДвиженияИГраницыПериода,
Склад = &Склад
И Организация = &Организация) КАК ТоварыОрганизацийОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.Регистратор
АВТОУПОРЯДОЧИВАНИЕ
вот
Думаю остатки размножаются по регистратору и суммируются. Следовательно нужно разбить на 2 запроса: остатки без регистратора в ВТ, обороты с регистратором соединить с ВТ. Для остатков не СУММА, а МАКСИМУМ.
ООО У вас тут уже дискуссия
Вместо
| ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
напиши
| ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
| ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда,
и все
Вместо
| ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
напиши
| ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
| ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда,
и все
Типичные проблемы при расчете остатков
В данной статье описывается, по какой причине отчет, созданный при помощи системы компоновки данных, может выдавать неправильные остатки.
Отсутствие родительских полей - периодов в запросе
Данная проблема возникает например, если в запросе получают поле Регистратор, но не получают поле ПериодСекунда.
Пример неправильного запроса:
Пример правильного запроса:
В данной статье описывается, по какой причине отчет, созданный при помощи системы компоновки данных, может выдавать неправильные остатки.
Отсутствие родительских полей - периодов в запросе
Данная проблема возникает например, если в запросе получают поле Регистратор, но не получают поле ПериодСекунда.
Пример неправильного запроса:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Регистратор,
УчетНоменклатурыОстаткиИОбороты.Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Склад,
УчетНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоОборот
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
Для такого запроса система рассчитать правильные остатки не может.
Для устранения проблемы нужно обеспечить, чтобы в запросе присутствовало поле Период.
Пример правильного запроса:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Регистратор,
УчетНоменклатурыОстаткиИОбороты.ПериодСекунда,
УчетНоменклатурыОстаткиИОбороты.Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Склад,
УчетНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоОборот
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
Отсутствие в запросе парного поля - остатка
Данная проблема возникает когда в запросе получают только поле начального остатка или только поле конечного остатка.
Пример неправильного запроса:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Регистратор,
УчетНоменклатурыОстаткиИОбороты.ПериодСекунда,
УчетНоменклатурыОстаткиИОбороты.Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Склад,
УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
Для устранения проблемы нужно обеспечить, чтобы в запросе присутствовал как начальный, так и конечный остатки.
ПоказатьПример правильного запроса:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Регистратор,
УчетНоменклатурыОстаткиИОбороты.ПериодСекунда,
УчетНоменклатурыОстаткиИОбороты.Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Склад,
УчетНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
Показать
Не использование периодичности Авто
Данная проблема возникает, когда данные получаются из виртуальной таблицы ОстаткиИОбороты с указанием периодичности, отличной от Авто, если при этом в отчет выводятся не все поля - периоды. Эта проблема родственна проблеме "Отсутствие родительских полей - периодов в запросе", описанной в начале данной статьи.
Пример запроса, который может привести к получению неправильных остатков:
Для решения проблемы лучше в запросах для настраиваемых отчетов системы компоновки данных, в виртуальных таблицах ОстаткиИОбороты, использовать периодичность Авто. Или обеспечить обязательных вывод всех полей - периодов в результат отчета.
Пример запроса:
Данная проблема возникает, когда данные получаются из виртуальной таблицы ОстаткиИОбороты с указанием периодичности, отличной от Авто, если при этом в отчет выводятся не все поля - периоды. Эта проблема родственна проблеме "Отсутствие родительских полей - периодов в запросе", описанной в начале данной статьи.
Пример запроса, который может привести к получению неправильных остатков:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Регистратор,
УчетНоменклатурыОстаткиИОбороты.Период,
УчетНоменклатурыОстаткиИОбороты.Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Склад,
УчетНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоОборот
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Регистратор, , ) КАК УчетНоменклатурыОстаткиИОбороты
ПоказатьДля решения проблемы лучше в запросах для настраиваемых отчетов системы компоновки данных, в виртуальных таблицах ОстаткиИОбороты, использовать периодичность Авто. Или обеспечить обязательных вывод всех полей - периодов в результат отчета.
Пример запроса:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Регистратор,
УчетНоменклатурыОстаткиИОбороты.ПериодСекунда,
УчетНоменклатурыОстаткиИОбороты.Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Склад,
УчетНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток,
УчетНоменклатурыОстаткиИОбороты.КоличествоОборот
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
Показать
Соберите данные программно. Пример
В ОсновнаяСхемаКомпоновкиДанных необходимо добавить набор данных "Затраты" (так в примере), задать имя объекта, содержащего данные "Затраты". Добавить все поля из ТЗ.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ТЗ=ПолучитьДанные();
СтандартнаяОбработка=Ложь;
Если ТЗ=Неопределено Тогда
Возврат;
КонецЕсли;
ВнешниеНаборыДанных=Новый Структура;
ВнешниеНаборыДанных.Вставить("Затраты",ТЗ);
КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки=ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();
МакетКомпоновки=КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);
ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
ДокументРезультат.Очистить();
ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ДокументРезультат.ФиксацияСлева=2;
КонецПроцедуры
ПоказатьВ ОсновнаяСхемаКомпоновкиДанных необходимо добавить набор данных "Затраты" (так в примере), задать имя объекта, содержащего данные "Затраты". Добавить все поля из ТЗ.
(60) В функции в цикле можно собрать в ТЗ все, что нужно. Получили остатки на начало. Записали в ТЗ - номенклатура, остаток на начало. Потом делаете запрос по оборотам по регистраторам. В цикле проходите. Заполняете существующую строку, добавляете новые.
Я не могу понять для чего вы пишите сумму по полям количество остатки и обороты. ИТОГИ по суммам делаются в секции ИТОГИ ... ПО ОБЩИЕ. Это первое. А второе: сумма с регистратором меняется, потому что вы выбираете движения по всем регистраторам которые фиксируют это движение. Т.е. у вас в списке допустим один товар пришел на кол-во 100 шт. по 1-му регистратору, потом ушел этот же товар на кол-во 50 шт. по 2-му регистратору, а потом допустим еще было перемещение со склада на склад в количестве 10 шт. по 3-ему регистратору. Если вы хотите видеть движение по регистратору, то только конкретного регистратора. Для этого в условии ИЗ нужно написать:
Запись - это и есть ваш регистратор.
Выкладываю полный запрос:
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&ДатаНач, &ДатаОконч, Запись, Движения, АналитикаУчетаНоменклатуры.Склад = &Склад) КАК ТоварыОрганизацийОстаткиИОбороты
Запись - это и есть ваш регистратор.
Выкладываю полный запрос:
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
ТоварыОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор,
ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&ДатаНач, &ДатаОконч, Запись, Движения, АналитикаУчетаНоменклатуры.Склад = &Склад) КАК ТоварыОрганизацийОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.Регистратор,
ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИТОГИ
СУММА(КоличествоНачальныйОстаток),
СУММА(КоличествоПриход),
СУММА(КоличествоРасход),
СУММА(КоличествоКонечныйОстаток)
ПО
ОБЩИЕ
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот