Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 04:18

Выполнить запрос в СКД в зависимости от даты

Автор Vasya Povar, 22 дек 2016, 12:47

0 Пользователей и 1 гость просматривают эту тему.

Vasya Povar

Делаю отчет в СКД. Отчет по двум регистрам. До определенной даты данные хранились в Регистре Хозрасчетний1с77, а сейчас в Хозрасчетный. Я сделал запрос к первому регистру и к этой дате все работает. Как мне теперь получить данные по старому регистру? Вот мой запрос:
ВЫБРАТЬ
OHP_Продажи.Период,
OHP_Продажи.Организация,
OHP_Продажи.Контрагент.ИНН,
OHP_Продажи.Контрагент.НаименованиеПолное,
OHP_Продажи.Контрагент.ЮридическийАдрес + OHP_Продажи.Контрагент.Телефоны КАК Адресс,
OHP_Продажи.Номенклатура.КодКВЭД,
OHP_Продажи.Номенклатура.КодУКТВЭД,
OHP_Продажи.Единица,
OHP_Продажи.Регистратор,
OHP_Продажи.Номенклатура.НаименованиеПолное,
ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1 ,
ХозрасчетныйДвиженияССубконто.СубконтоКт1 ,
СУММА(OHP_Продажи.Количество) КАК Количество,
ХозрасчетныйДвиженияССубконто.Сумма - ХозрасчетныйДвиженияССубконто.Сумма / 6 КАК СуммаТТН,
OHP_Продажи.Регистратор.Проведен
ИЗ
РегистрНакопления.OHP_Продажи КАК OHP_Продажи
ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
ПО OHP_Продажи.Контрагент = ХозрасчетныйДвиженияССубконто.СубконтоДт1
И OHP_Продажи.Регистратор = ХозрасчетныйДвиженияССубконто.Регистратор
ГДЕ
OHP_Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
И OHP_Продажи.Номенклатура.ВидНоменклатуры.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
И OHP_Продажи.Номенклатура.ВидНоменклатуры.Наименование = "Продукция"
И (ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями3611)
ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями3612))
И (ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДоходОтРеализацииГотовойПродукции))
ИЛИ ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДоходОтРеализацииТоваров)))

СГРУППИРОВАТЬ ПО
OHP_Продажи.Регистратор,
OHP_Продажи.Период,
OHP_Продажи.Организация,
OHP_Продажи.Контрагент.ИНН,
OHP_Продажи.Контрагент.НаименованиеПолное,
OHP_Продажи.Номенклатура.КодКВЭД,
OHP_Продажи.Номенклатура.КодУКТВЭД,
OHP_Продажи.Единица,
OHP_Продажи.Номенклатура.НаименованиеПолное,
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
OHP_Продажи.Контрагент.ЮридическийАдрес + OHP_Продажи.Контрагент.Телефоны,
ХозрасчетныйДвиженияССубконто.Сумма - ХозрасчетныйДвиженияССубконто.Сумма / 6,
OHP_Продажи.Регистратор.Проведен

Я делал второй запрос просто заменив 1 таблицу на другую (Хозрасчетный1С77ДвиженияССубконто) и через обьеденить все делал, но не получилось. Может надо как то связать через пакет запроса? Помогите плз

alex0402

можно два запроса объединить через "объединить все", и каждый подзапрос ограничить соответсвующим условием.
Спасибо за Сказать спасибо

Vasya Povar

Цитата: alex0402 от 22 дек 2016, 14:23
можно два запроса объединить через "объединить все", и каждый подзапрос ограничить соответсвующим условием.
В переменную "НачалоПериода" поставить в параметрах конкретное значения? Для примера дата 01.10.2016
Если Период Между 01.10.2016 и "КонецПериода" Тогда делать єтот запрос. А второй запрос между "НачалоПериода" и "10.01.2016" и Обьеденить их. Я правильно понял?
Добавлено: 22 дек 2016, 15:47


Написал вот такой запрос
ВЫБРАТЬ
OHP_Продажи.Период,
OHP_Продажи.Организация,
OHP_Продажи.Контрагент.ИНН,
OHP_Продажи.Контрагент.НаименованиеПолное,
OHP_Продажи.Контрагент.ЮридическийАдрес + OHP_Продажи.Контрагент.Телефоны КАК Адресс,
OHP_Продажи.Номенклатура.КодКВЭД,
OHP_Продажи.Номенклатура.КодУКТВЭД,
OHP_Продажи.Единица,
OHP_Продажи.Регистратор,
OHP_Продажи.Номенклатура.НаименованиеПолное,
ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
СУММА(OHP_Продажи.Количество) КАК Количество,
ХозрасчетныйДвиженияССубконто.Сумма - ХозрасчетныйДвиженияССубконто.Сумма / 6 КАК СуммаТТН,
OHP_Продажи.Регистратор.Проведен
ИЗ
РегистрНакопления.OHP_Продажи КАК OHP_Продажи
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДАТАВРЕМЯ(2016, 10, 1, 0, 0, 0),
&КонецПериода,
СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДоходОтРеализацииГотовойПродукции))
ИЛИ СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДоходОтРеализацииТоваров))
И СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями3611)
ИЛИ СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями3612),
,
) КАК ХозрасчетныйДвиженияССубконто
ПО OHP_Продажи.Контрагент = ХозрасчетныйДвиженияССубконто.СубконтоДт1
И OHP_Продажи.Регистратор = ХозрасчетныйДвиженияССубконто.Регистратор
ГДЕ
OHP_Продажи.Период >= ДАТАВРЕМЯ(2016, 10, 1, 0, 0, 0)
И OHP_Продажи.Период <= &КонецПериода
И OHP_Продажи.Номенклатура.ВидНоменклатуры.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
И OHP_Продажи.Номенклатура.ВидНоменклатуры.Наименование = "Продукция"

СГРУППИРОВАТЬ ПО
OHP_Продажи.Регистратор,
OHP_Продажи.Период,
OHP_Продажи.Организация,
OHP_Продажи.Контрагент.ИНН,
OHP_Продажи.Контрагент.НаименованиеПолное,
OHP_Продажи.Номенклатура.КодКВЭД,
OHP_Продажи.Номенклатура.КодУКТВЭД,
OHP_Продажи.Единица,
OHP_Продажи.Номенклатура.НаименованиеПолное,
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
OHP_Продажи.Регистратор.Проведен,
OHP_Продажи.Контрагент.ЮридическийАдрес + OHP_Продажи.Контрагент.Телефоны,
ХозрасчетныйДвиженияССубконто.Сумма - ХозрасчетныйДвиженияССубконто.Сумма / 6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
OHP_Продажи.Период,
OHP_Продажи.Организация,
OHP_Продажи.Контрагент.ИНН,
OHP_Продажи.Контрагент.НаименованиеПолное,
OHP_Продажи.Контрагент.ЮридическийАдрес + OHP_Продажи.Контрагент.Телефоны,
OHP_Продажи.Номенклатура.КодКВЭД,
OHP_Продажи.Номенклатура.КодУКТВЭД,
OHP_Продажи.Единица,
OHP_Продажи.Регистратор,
OHP_Продажи.Номенклатура.НаименованиеПолное,
Хозрасчетный1С77ДвиженияССубконто.СчетДт,
Хозрасчетный1С77ДвиженияССубконто.СчетКт,
Хозрасчетный1С77ДвиженияССубконто.СубконтоДт1,
Хозрасчетный1С77ДвиженияССубконто.СубконтоКт1,
СУММА(OHP_Продажи.Количество),
Хозрасчетный1С77ДвиженияССубконто.Сумма - Хозрасчетный1С77ДвиженияССубконто.Сумма / 6,
OHP_Продажи.Регистратор.Проведен
ИЗ
РегистрНакопления.OHP_Продажи КАК OHP_Продажи
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный1С77.ДвиженияССубконто(
&НачалоПериода,
ДАТАВРЕМЯ(2016, 9, 30, 23, 59, 59),
СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДоходОтРеализацииГотовойПродукции))
ИЛИ СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДоходОтРеализацииТоваров))
И СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями3611)
ИЛИ СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями3612),
,
) КАК Хозрасчетный1С77ДвиженияССубконто
ПО OHP_Продажи.Контрагент = Хозрасчетный1С77ДвиженияССубконто.СубконтоДт1
И OHP_Продажи.Регистратор = Хозрасчетный1С77ДвиженияССубконто.Регистратор
ГДЕ
OHP_Продажи.Период >= &НачалоПериода
И OHP_Продажи.Период <= ДАТАВРЕМЯ(2016, 9, 30, 23, 59, 59)
И OHP_Продажи.Номенклатура.ВидНоменклатуры.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
И OHP_Продажи.Номенклатура.ВидНоменклатуры.Наименование = "Продукция"

СГРУППИРОВАТЬ ПО
OHP_Продажи.Регистратор,
OHP_Продажи.Период,
OHP_Продажи.Организация,
OHP_Продажи.Контрагент.ИНН,
OHP_Продажи.Контрагент.НаименованиеПолное,
OHP_Продажи.Номенклатура.КодКВЭД,
OHP_Продажи.Номенклатура.КодУКТВЭД,
OHP_Продажи.Единица,
OHP_Продажи.Номенклатура.НаименованиеПолное,
Хозрасчетный1С77ДвиженияССубконто.СчетДт,
Хозрасчетный1С77ДвиженияССубконто.СчетКт,
Хозрасчетный1С77ДвиженияССубконто.СубконтоДт1,
Хозрасчетный1С77ДвиженияССубконто.СубконтоКт1,
OHP_Продажи.Регистратор.Проведен,
OHP_Продажи.Контрагент.ЮридическийАдрес + OHP_Продажи.Контрагент.Телефоны,
Хозрасчетный1С77ДвиженияССубконто.Сумма - Хозрасчетный1С77ДвиженияССубконто.Сумма / 6


В итоге первый запрос работает, выводит правильно Если период с 01.10.2016 до КонецПериода, но если дату делаю с ДатыНачала до 30.09.2016, результат пустой.

alex0402

Цитата: Vasya Povar от 22 дек 2016, 14:45OHP_Продажи.Период <= ДАТАВРЕМЯ(2016, 9, 30, 23, 59, 59)

угу.
только это условие я заменил бы на

date=1482407134]OHP_Продажи.Период < ДАТАВРЕМЯ(2016, 10, 1, 0, 0,0)

там куча нюансов с этими секундами в регистрах.
Спасибо за Сказать спасибо

Vasya Povar

Поменял, но не помогло. 1 запрос работает, а 2 нет:( С 01.10.2016 выводит результат хорошо, но все что раньше- пусто
Добавлено: 22 дек 2016, 18:03


Цитата: Vasya Povar от 22 дек 2016, 14:45И OHP_Продажи.Регистратор = Хозрасчетный1С77ДвиженияССубконто.Регистратор

Если убираю єту связь во втором запросе, выводит, но дублирует колличество и сумму по всем документам


Добавлено: 23 дек 2016, 12:22


проблема осталась, мб кто поможет?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск