Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Выводятся значения колонки не за тот период , значения второй колонки повторяют значения первой (другой период)          
bruslan Подменю пользователя
сообщение 10.01.20, 14:50
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 1 раз
Рейтинг: 0

Помогите разобраться с проблемой.
Конфигурация УТП.
Формирую отчет "Сравнительный анализ оборота по подразделению" за разные периоды, следующего вида

Период Месяц.................... СуммаОборот1 СуммаОборот2
1......... Обороты за Январь ...... 39 245 ......65 567
2......... Обороты за Февраль ... 117 402 ....56 524
3......... Обороты за Март .......... 99 053 ......2 240


Составил запрос (запрос работает правильно, табл. выше сформирована этим запросом). Перенес его в отчет на СКД.
Но при формировании отчета колонка за прошлый период повторяет первую!!!

Параметры: Период1: 01.01.2019 - 31.12.2019
Период2: 01.01.2018 - 31.12.2018
Контрагент: Магазин Кировский

Период Месяц.................. Сумма оборот1 Сумма оборот2
1......... Обороты за Январь ......39 245,00 ....... 39 245,00
2......... Обороты за Февраль ...117 402,00 ... 117 402,00
3......... Обороты за Март .........99 053,00 ....... 99 053,00

Внешний отчет можно скачать тут [необходимо зарегистрироваться для просмотра ссылки]

Сам запрос
ВЫБРАТЬ
ВложенныйЗапрос.Период КАК Период,
ВложенныйЗапрос.Месяц,
ВложенныйЗапрос.Контрагент КАК Контрагент,
СУММА(ВложенныйЗапрос.СуммаОборот1) КАК СуммаОборот1,
СУММА(ВложенныйЗапрос.СуммаОборот2) КАК СуммаОборот2
ИЗ
(ВЫБРАТЬ
Период_1.Период КАК Период,
Период_1.Месяц КАК Месяц,
Период_1.Контрагент КАК Контрагент,
Период_1.СуммаОборот1 КАК СуммаОборот1,
Период_2.СуммаОборот2 КАК СуммаОборот2
ИЗ
(ВЫБРАТЬ
ВложенныйЗапрос.Период КАК Период,
ВложенныйЗапрос.Месяц КАК Месяц,
СУММА(ВложенныйЗапрос.СуммаОборотКт) КАК СуммаОборот1,
ВложенныйЗапрос.субконто1 КАК Контрагент
ИЗ
(ВЫБРАТЬ
движения.СчетУчета КАК СчетУчета,
движения.субконто1 КАК субконто1,
движения.субконто2 КАК субконто2,
движения.СуммаОборотКт КАК СуммаОборотКт,
движения.КорСчет КАК КорСчет,
движения.Месяц КАК Месяц,
движения.Период КАК Период
ИЗ
(ВЫБРАТЬ
ХозрасчетныйОбороты.Счет КАК СчетУчета,
ХозрасчетныйОбороты.Субконто1 КАК субконто1,
ХозрасчетныйОбороты.Субконто2 КАК субконто2,
ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт,
ХозрасчетныйОбороты.КорСчет КАК КорСчет,
ВЫБОР
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 1
ТОГДА "Обороты за Январь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 2
ТОГДА "Обороты за Февраль"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 3
ТОГДА "Обороты за Март"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 4
ТОГДА "Обороты за Апрель"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 5
ТОГДА "Обороты за Май"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 6
ТОГДА "Обороты за Июнь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 7
ТОГДА "Обороты за Июль"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 8
ТОГДА "Обороты за Август"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 9
ТОГДА "Обороты за Сентябрь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 10
ТОГДА "Обороты за Октябрь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 11
ТОГДА "Обороты за Ноябрь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 12
ТОГДА "Обороты за Декабрь"
КОНЕЦ КАК Месяц,
МЕСЯЦ(ХозрасчетныйОбороты.Период) КАК Период
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет = &Счет361, &ВидыСубконтоНС, , КорСчет В (&Счет), ) КАК ХозрасчетныйОбороты) КАК движения) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.КорСчет <> &Корсчет

СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Месяц,
ВложенныйЗапрос.Период,
ВложенныйЗапрос.субконто1) КАК Период_1
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВложенныйЗапрос.Период КАК Период,
ВложенныйЗапрос.Месяц КАК Месяц,
СУММА(ВложенныйЗапрос.СуммаОборотКт) КАК СуммаОборот2,
ВложенныйЗапрос.субконто1 КАК Контрагент
ИЗ
(ВЫБРАТЬ
движения.СчетУчета КАК СчетУчета,
движения.субконто1 КАК субконто1,
движения.субконто2 КАК субконто2,
движения.СуммаОборотКт КАК СуммаОборотКт,
движения.КорСчет КАК КорСчет,
движения.Месяц КАК Месяц,
движения.Период КАК Период
ИЗ
(ВЫБРАТЬ
ХозрасчетныйОбороты.Счет КАК СчетУчета,
ХозрасчетныйОбороты.Субконто1 КАК субконто1,
ХозрасчетныйОбороты.Субконто2 КАК субконто2,
ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт,
ХозрасчетныйОбороты.КорСчет КАК КорСчет,
ВЫБОР
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 1
ТОГДА "Обороты за Январь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 2
ТОГДА "Обороты за Февраль"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 3
ТОГДА "Обороты за Март"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 4
ТОГДА "Обороты за Апрель"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 5
ТОГДА "Обороты за Май"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 6
ТОГДА "Обороты за Июнь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 7
ТОГДА "Обороты за Июль"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 8
ТОГДА "Обороты за Август"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 9
ТОГДА "Обороты за Сентябрь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 10
ТОГДА "Обороты за Октябрь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 11
ТОГДА "Обороты за Ноябрь"
КОГДА МЕСЯЦ(ХозрасчетныйОбороты.Регистратор.Дата) = 12
ТОГДА "Обороты за Декабрь"
КОНЕЦ КАК Месяц,
МЕСЯЦ(ХозрасчетныйОбороты.Период) КАК Период
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода_2, &КонецПериода_2, Регистратор, Счет = &Счет361, &ВидыСубконтоНС, , КорСчет В (&Счет), ) КАК ХозрасчетныйОбороты) КАК движения) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.КорСчет <> &Корсчет

СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Месяц,
ВложенныйЗапрос.Период,
ВложенныйЗапрос.субконто1) КАК Период_2
ПО Период_1.Период = Период_2.Период
И Период_1.Контрагент = Период_2.Контрагент) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.Контрагент = &Контрагент

СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Контрагент,
ВложенныйЗапрос.Месяц,
ВложенныйЗапрос.Период

УПОРЯДОЧИТЬ ПО
Контрагент,
Период

Параметры в СКД - [необходимо зарегистрироваться для просмотра ссылки]

Настройки в СКД - [необходимо зарегистрироваться для просмотра ссылки]

[необходимо зарегистрироваться для просмотра ссылки]


Помогите разобраться, уже что только не перепробовал, все равно выводит первый период.

Сообщение отредактировал Vofka - 10.01.20, 23:08

fly Подменю пользователя
сообщение 10.01.20, 15:43
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

bruslan @ Сегодня, 14:50 * ,
у вас по запросу берется только одна таблица
Период_1.СуммаОборот
Период_2.СуммаОборот
....
соединение ПО
...
Период_1.Период = Период_2.Период

где Период_1.Период = МЕСЯЦ(ХозрасчетныйОбороты.Период) - а это значит 01.01.18
где Период_2.Период= МЕСЯЦ(ХозрасчетныйОбороты.Период) - а это значит 01.01.19

fly @ Сегодня, 15:32 * ,
у вас по запросу берется только одна таблица
Период_1.СуммаОборот

имелось ввиду Таблица Период_1

вторая Период_2 не попадет, так как соединение по Периоду не работает, там периоды разные

Сообщение отредактировал fly - 10.01.20, 15:37

pablo Подменю пользователя
сообщение 10.01.20, 15:45
Сообщение #3

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

fly, Вы не внимательно смотрели запрос. Поле Период содержит номер месяца


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: fly,

fly Подменю пользователя
сообщение 10.01.20, 15:48
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

pablo @ Сегодня, 15:45 * ,
тогда ВЫРАЗИТЬ(МЕСЯЦ(ХозрасчетныйОбороты.Период) КАК ЧИСЛО(2,0))

pablo @ Сегодня, 15:45 * ,
МЕСЯЦ(ХозрасчетныйОбороты.Период) = тип дата
и является "201901010000...."

pablo Подменю пользователя
сообщение 10.01.20, 15:51
Сообщение #5

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Навскидку в гугле: [необходимо зарегистрироваться для просмотра ссылки]


Signature
Правильно поставленный вопрос содержит до 90% ответа.

bruslan Подменю пользователя
сообщение 10.01.20, 17:43
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 1 раз
Рейтинг: 0

Спасибо за ваши ответы.
Что касаемо запроса, то он был перенесен из отладчика запросов, где выдавал правильные результаты, и первая таблица (в самом начале) результат данного запроса. К тому же пришлось временно сделать вариант отчета без СКД, с выводом по шаблону, с данным запросом. Так там выводится все верно.
Возможно в отчете с СКД где-то ошибки в компановке или в задании параметров?

fly Подменю пользователя
сообщение 10.01.20, 19:13
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Цитата(pablo @ 10.01.20, 15:45) *
fly, Вы не внимательно смотрели запрос. Поле Период содержит номер месяца

не прав +
перепутал НачалоПериода(Дата, Месяц)

Сообщение отредактировал fly - 10.01.20, 19:14

fly Подменю пользователя
сообщение 10.01.20, 20:56
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Цитата(bruslan @ 10.01.20, 17:43) *
Возможно в отчете с СКД где-то ошибки в компановке или в задании параметров?


не будет запрос выдавать полную информацию, даже не в СКД

так как в первой таблице, если данные отсутствуют за какой то месяц строки из второй таблицы

ВЫБРАТЬ
ВложенныйЗапрос.Период КАК Период,
ВложенныйЗапрос.Месяц,
ВложенныйЗапрос.Контрагент КАК Контрагент,

заполнит как Null - будут пустые строки, или из второй таблицы не берет - вообще

у Контрагента стоит измерение
+
Игнорировать значения NULL – если установлено, то в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL.
- приведет, что отбор на Параметр Контрагент может не сработать.



Далее
в СКД нет полного соединения, оно все равно остается Левым,
неявным образом задается таблица - система как то сама определяет, какая будет левой - какая правой. Может поэтому лепит одни и те же цифры в обе колонки (НаборДанных с обоих таблиц подставляет в одни и те же поля).


по сути если нужны общие цифры за периоды, вообще использовать можно одну таблицу добавив поле Год а в макете прописать колонки Год.
либо на худой конец объединение, или два НабораДанных

Сообщение отредактировал fly - 10.01.20, 21:02

bruslan Подменю пользователя
сообщение 11.01.20, 21:01
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(fly @ 10.01.20, 21:56) *
по сути если нужны общие цифры за периоды, вообще использовать можно одну таблицу добавив поле Год


Спасибо за ценную информацию. насчет отсутствия полного соединения в СКД.
Попробую использовать одну таблицу, так думаю будет более правильно, и отчет будет работать быстрее.

bruslan Подменю пользователя
сообщение 14.01.20, 10:44
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 1 раз
Рейтинг: 0

Всем спасибо, все получилось. Сделал выборку за оба периода во временную таблицу, и затем из нее выбрал за отдельные года. Так и отчет работает заметно быстрее.

вот и сам запрос:

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

СГРУППИРОВАТЬ ПО
ХозрасчетныйОбороты.Субконто1,
ГОД(ХозрасчетныйОбороты.Период),
МЕСЯЦ(ХозрасчетныйОбороты.Период)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЕСТЬNULL(Год_1.Контрагент, Год_2.Контрагент) КАК Контрагент,
ЕСТЬNULL(Год_1.ПериодМесяц1, Год_2.ПериодМесяц2) КАК ПериодМесяц,
ЕСТЬNULL(Год_1.Месяц, Год_2.Месяц) КАК Месяц,
Год_1.СуммаОборот1 КАК СуммаОборот1,
Год_2.СуммаОборот2 КАК СуммаОборот2,
ЕСТЬNULL(Год_2.СуммаОборот2, 0) - ЕСТЬNULL(Год_1.СуммаОборот1, 0) КАК Разница
ИЗ
(ВЫБРАТЬ
ВТ.Контрагент КАК Контрагент,
ВТ.СуммаОборот КАК СуммаОборот1,
ВТ.Месяц КАК Месяц,
ВТ.Год КАК Год1,
ВЫБОР
КОГДА ВТ.Месяц = 1
ТОГДА "Обороты за Январь"
КОГДА ВТ.Месяц = 2
ТОГДА "Обороты за Февраль"
КОГДА ВТ.Месяц = 3
ТОГДА "Обороты за Март"
КОГДА ВТ.Месяц = 4
ТОГДА "Обороты за Апрель"
КОГДА ВТ.Месяц = 5
ТОГДА "Обороты за Май"
КОГДА ВТ.Месяц = 6
ТОГДА "Обороты за Июнь"
КОГДА ВТ.Месяц = 7
ТОГДА "Обороты за Июль"
КОГДА ВТ.Месяц = 8
ТОГДА "Обороты за Август"
КОГДА ВТ.Месяц = 9
ТОГДА "Обороты за Сентябрь"
КОГДА ВТ.Месяц = 10
ТОГДА "Обороты за Октябрь"
КОГДА ВТ.Месяц = 11
ТОГДА "Обороты за Ноябрь"
КОГДА ВТ.Месяц = 12
ТОГДА "Обороты за Декабрь"
КОНЕЦ КАК ПериодМесяц1
ИЗ
ВТ КАК ВТ
ГДЕ
ВТ.Год = &Год1) КАК Год_1
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВТ.Контрагент КАК Контрагент,
ВТ.СуммаОборот КАК СуммаОборот2,
ВТ.Месяц КАК Месяц,
ВТ.Год КАК Год2,
ВЫБОР
КОГДА ВТ.Месяц = 1
ТОГДА "Обороты за Январь"
КОГДА ВТ.Месяц = 2
ТОГДА "Обороты за Февраль"
КОГДА ВТ.Месяц = 3
ТОГДА "Обороты за Март"
КОГДА ВТ.Месяц = 4
ТОГДА "Обороты за Апрель"
КОГДА ВТ.Месяц = 5
ТОГДА "Обороты за Май"
КОГДА ВТ.Месяц = 6
ТОГДА "Обороты за Июнь"
КОГДА ВТ.Месяц = 7
ТОГДА "Обороты за Июль"
КОГДА ВТ.Месяц = 8
ТОГДА "Обороты за Август"
КОГДА ВТ.Месяц = 9
ТОГДА "Обороты за Сентябрь"
КОГДА ВТ.Месяц = 10
ТОГДА "Обороты за Октябрь"
КОГДА ВТ.Месяц = 11
ТОГДА "Обороты за Ноябрь"
КОГДА ВТ.Месяц = 12
ТОГДА "Обороты за Декабрь"
КОНЕЦ КАК ПериодМесяц2
ИЗ
ВТ КАК ВТ
ГДЕ
ВТ.Год = &Год2) КАК Год_2
ПО Год_1.Контрагент = Год_2.Контрагент
И Год_1.Месяц = Год_2.Месяц

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 14:20
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!