Возник вопрос с запросом. Есть 2 таблицы (скрин 1), доп расходы начисляются ежедневно, можно ли к допрасходам прикрутить себестоимость с прихода, который был не день в день с доп расходом? (скрин 2)
ВЫБРАТЬ
КОНЕЦПЕРИОДА(СебестоимостьТоваровОбороты.Период, ДЕНЬ) КАК День,
СебестоимостьТоваровОбороты.Товар КАК Товар,
СебестоимостьТоваровОбороты.ДопРасходыПриход КАК ДопРасходыПриход
ПОМЕСТИТЬ ДополнительныеРасходы
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, ) КАК СебестоимостьТоваровОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
КОНЕЦПЕРИОДА(СебестоимостьТоваровОбороты.Период, ДЕНЬ) КАК День,
СебестоимостьТоваровОбороты.Товар КАК Товар,
СебестоимостьТоваровОбороты.СебестоимостьПриход КАК СебестоимостьПриход
ПОМЕСТИТЬ Себестоимость
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, ) КАК СебестоимостьТоваровОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДополнительныеРасходы.День КАК День,
ДополнительныеРасходы.Товар КАК Товар,
ДополнительныеРасходы.ДопРасходыПриход КАК ДопРасходыПриход,
Себестоимость.СебестоимостьПриход КАК СебестоимостьПриход
ИЗ
ДополнительныеРасходы КАК ДополнительныеРасходы
ЛЕВОЕ СОЕДИНЕНИЕ Себестоимость КАК Себестоимость
ПО (ДополнительныеРасходы.День = Себестоимость.День
И ДополнительныеРасходы.Товар = Себестоимость.Товар)
ПоказатьКОНЕЦПЕРИОДА(СебестоимостьТоваровОбороты.Период, ДЕНЬ) КАК День,
СебестоимостьТоваровОбороты.Товар КАК Товар,
СебестоимостьТоваровОбороты.ДопРасходыПриход КАК ДопРасходыПриход
ПОМЕСТИТЬ ДополнительныеРасходы
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, ) КАК СебестоимостьТоваровОбороты
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОНЕЦПЕРИОДА(СебестоимостьТоваровОбороты.Период, ДЕНЬ) КАК День,
СебестоимостьТоваровОбороты.Товар КАК Товар,
СебестоимостьТоваровОбороты.СебестоимостьПриход КАК СебестоимостьПриход
ПОМЕСТИТЬ Себестоимость
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, ) КАК СебестоимостьТоваровОбороты
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДополнительныеРасходы.День КАК День,
ДополнительныеРасходы.Товар КАК Товар,
ДополнительныеРасходы.ДопРасходыПриход КАК ДопРасходыПриход,
Себестоимость.СебестоимостьПриход КАК СебестоимостьПриход
ИЗ
ДополнительныеРасходы КАК ДополнительныеРасходы
ЛЕВОЕ СОЕДИНЕНИЕ Себестоимость КАК Себестоимость
ПО (ДополнительныеРасходы.День = Себестоимость.День
И ДополнительныеРасходы.Товар = Себестоимость.Товар)
Прикрепленные файлы:
По теме из базы знаний
- Работа с периодическими реквизитами 1С версии 7.7 при помощи прямых запросов.
- Мониторинг SQL Server с помощью Extended Events (и не только) для 1С. Как держать руку на пульсе?
- Руководство по SQL: Как лучше писать запросы (Часть 1)
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Решение некоторых задач с помощью "Отладчика запросов"
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Можно. Если в СКД, то я использовал 2 набора данных.
У меня была задача связать план продаж и фактические продажи. При этом план продаж вносился всегда за месяц но несколькими датами и всегда с 1 числа. Использовал следующий алгоритм: запросом определял какие даты фактических продаж относятся к какому периоду плана и с помощью 2 наборов данных (ведущим выступал план) соединял по этим датам.
У меня была задача связать план продаж и фактические продажи. При этом план продаж вносился всегда за месяц но несколькими датами и всегда с 1 числа. Использовал следующий алгоритм: запросом определял какие даты фактических продаж относятся к какому периоду плана и с помощью 2 наборов данных (ведущим выступал план) соединял по этим датам.
Я так понимаю, себестоимость считают на конец периода, например месяца, поэтому будут собираться расходы/затраты этого периода по номенклатуре или (укрупненно) по номенклатурной группе, и косвенные затраты будут распределяться согласно правилам их распределения.
можно, только, скорее всего, вопрос не правильно поставлен
и Вам нужны остатки на каждое движение
Вы же не знаете, что доп. расходы относятся к конкретному приходу??
тем более если выберут период, где не будет прихода, а будет только доп.расходы
и Вам нужны остатки на каждое движение
Вы же не знаете, что доп. расходы относятся к конкретному приходу??
тем более если выберут период, где не будет прихода, а будет только доп.расходы
(7) Не Ваш понял вопрос... в Отчете должно быть, как я думаю, период из регистра, товар и (ДопРасходы+СебестоимостьПервоначальная)/СебестоимостьПервоначальна*100 = Процент. Не понимаю как организовать регистр чтобы вытаскивать себестоимость первоначальную на любой день. Чтобы подсчитать процент
(11) Отлично. Тогда решение в (10), только осталось запрос перевести на язык запросов 1С.
В 1С это стандартная задача решается через поиск ближайшей даты, на которую надо брать и потом прицеплять уже по связи товар + дата, либо коррелированный запрос, в котором это делается сразу.
В 1С это стандартная задача решается через поиск ближайшей даты, на которую надо брать и потом прицеплять уже по связи товар + дата, либо коррелированный запрос, в котором это делается сразу.
(16)
Нашел пример в инете, как-то так должно выглядеть?
ВЫБРАТЬ
КурсыВалютСрезПоследних.Валюта,
КурсыВалютСрезПоследних.Период КАК ПоследняяДата,
КурсыВалют.Период КАК ПредпоследняяДата,
КурсыВалютСрезПоследних.Курс КАК ПоследнийКурс,
КурсыВалют.Курс КАК ПредпоследнийКурс
ИЗ
РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
ПО ((КурсыВалют.Валюта, КурсыВалют.Период) В
(ВЫБРАТЬ
КурсыВалют.Валюта,
МАКСИМУМ(КурсыВалют.Период) КАК Период
ИЗ
РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
КурсыВалют.Период < КурсыВалютСрезПоследних.Период
И КурсыВалют.Валюта = КурсыВалютСрезПоследних.Валюта
СГРУППИРОВАТЬ ПО
КурсыВалют.Валюта))
ПоказатьНашел пример в инете, как-то так должно выглядеть?
(18)
У меня почему то как полное соединение отрабатывает?
У меня почему то как полное соединение отрабатывает?
ВЫБРАТЬ
КОНЕЦПЕРИОДА(СебестоимостьТоваровОбороты.Период, ДЕНЬ) КАК День,
СебестоимостьТоваровОбороты.Товар КАК Товар,
СебестоимостьТоваровОбороты.ДопРасходыПриход КАК ДопРасходыПриход
ПОМЕСТИТЬ ДополнительныеРасходы
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, ) КАК СебестоимостьТоваровОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
КОНЕЦПЕРИОДА(СебестоимостьТоваровОбороты.Период, ДЕНЬ) КАК День,
СебестоимостьТоваровОбороты.Товар КАК Товар,
СебестоимостьТоваровОбороты.СебестоимостьПриход КАК СебестоимостьПриход
ПОМЕСТИТЬ Себестоимость
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, ) КАК СебестоимостьТоваровОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДополнительныеРасходы.День КАК День,
ДополнительныеРасходы.Товар КАК Товар,
ДополнительныеРасходы.ДопРасходыПриход КАК ДопРасходыПриход,
Себестоимость.СебестоимостьПриход КАК СебестоимостьПриход
ИЗ
ДополнительныеРасходы КАК ДополнительныеРасходы
ЛЕВОЕ СОЕДИНЕНИЕ Себестоимость КАК Себестоимость
ПО ((ДополнительныеРасходы.День, ДополнительныеРасходы.Товар) В
(ВЫБРАТЬ
МАКСИМУМ(Себестоимость.День),
Себестоимость.Товар
ИЗ
Себестоимость
ГДЕ
Себестоимость.День <= ДополнительныеРасходы.День
И ДополнительныеРасходы.Товар = Себестоимость.Товар
СГРУППИРОВАТЬ ПО
Себестоимость.Товар))
ПоказатьПрикрепленные файлы:
(19) А если так (писал на коленке - проверяйте)....
ВЫБРАТЬ
ДополнительныеРасходы.День КАК День,
ДополнительныеРасходы.Товар КАК Товар,
ДополнительныеРасходы.ДопРасходыПриход КАК ДопРасходыПриход,
Себестоимость.СебестоимостьПриход КАК СебестоимостьПриход
ИЗ
ДополнительныеРасходы КАК ДополнительныеРасходы
ЛЕВОЕ СОЕДИНЕНИЕ Себестоимость КАК Себестоимость
ПО ДополнительныеРасходы.Товар = Себестоимость.Товар
И Себестоимость.День В
(ВЫБРАТЬ
МАКСИМУМ(Себестоимость.День),
Себестоимость.Товар
ИЗ
Себестоимость
ГДЕ
Себестоимость.День <= ДополнительныеРасходы.День
И ДополнительныеРасходы.Товар = Себестоимость.Товар
СГРУППИРОВАТЬ ПО
Себестоимость.Товар)
Показать
(19) приблизительно, но могу ошибаться
ВЫБРАТЬ
&НачалоПериода КАК Период,
СебестоимостьТоваров.ТоварКАК Товар,
СебестоимостьТоваров.СтоимостьОстаток КАК СебестоимостьНачальныйОстаток,
0 КАК СебестоимостьОборот,
СебестоимостьТоваров.СуммаДопРасходовОстаток КАК ДопРасходыНачальныйОстаток,
0 КАК ДопРасходыОборот
ПОМЕСТИТЬ СебестоимостьТоваров
ИЗ
РегистрНакопления.СебестоимостьТоваров.Остатки(&НачалоПериода, ) КАК СебестоимостьТоваров
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СебестоимостьТоваров.Период,
СебестоимостьТоваров.Товар,
0,
СебестоимостьТоваров.СтоимостьОборот,
0,
СебестоимостьТоваров.СуммаДопРасходовОборот
ИЗ
РегистрНакопления.СебестоимостьТоваров.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК СебестоимостьТоваров
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СебестоимостьТоваров.Период КАК Период,
СебестоимостьТоваров.Товар,
МАКСИМУМ(СебестоимостьТоваров.СебестоимостьНачальныйОстаток) + СУММА(ЕСТЬNULL(СебестоимостьТоваров1.СебестоимостьНачальныйОстаток, 0) + ЕСТЬNULL(СебестоимостьТоваров1.СебестоимостьОборот, 0)) КАК СебестоимостьНачальныйОстаток,
МАКСИМУМ(СебестоимостьТоваров.СебестоимостьОборот) КАК СебестоимостьОборот,
МАКСИМУМ(СебестоимостьТоваров.СебестоимостьНачальныйОстаток + СебестоимостьТоваров.СебестоимостьОборот) + СУММА(ЕСТЬNULL(СебестоимостьТоваров1.СебестоимостьНачальныйОстаток, 0) + ЕСТЬNULL(СебестоимостьТоваров1.СебестоимостьОборот, 0)) КАК СебестоимостьКонечныйОстаток,
МАКСИМУМ(СебестоимостьТоваров.ДопРасходыНачальныйОстаток) + СУММА(ЕСТЬNULL(СебестоимостьТоваров1.ДопРасходыНачальныйОстаток, 0) + ЕСТЬNULL(СебестоимостьТоваров1.ДопРасходыОборот, 0)) КАК ДопРасходыНачальныйОстаток,
МАКСИМУМ(СебестоимостьТоваров.ДопРасходыОборот) КАК ДопРасходыОборот,
МАКСИМУМ(СебестоимостьТоваров.ДопРасходыНачальныйОстаток + СебестоимостьТоваров.ДопРасходыОборот) + СУММА(ЕСТЬNULL(СебестоимостьТоваров1.ДопРасходыНачальныйОстаток, 0) + ЕСТЬNULL(СебестоимостьТоваров1.ДопРасходыОборот, 0)) КАК ДопРасходыКонечныйОстаток
ИЗ
СебестоимостьТоваров КАК СебестоимостьТоваров
ЛЕВОЕ СОЕДИНЕНИЕ СебестоимостьТоваров КАК СебестоимостьТоваров1
ПО СебестоимостьТоваров.Товар = СебестоимостьТоваров1.Товар
И СебестоимостьТоваров.Период > СебестоимостьТоваров1.Период
СГРУППИРОВАТЬ ПО
СебестоимостьТоваров.Период,
СебестоимостьТоваров.Товар
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот