:Помогите с запросом по остаткам в подборе номенклатуры в КА
Доброе время суток.
Помогите с запросом по остаткам в бух учете.Необходимо получать остатки не только по Управл. учету, но и по бух.
Так вот подскажите куда мне его вставить в основной запрос, а то я что-то не могу сообразить?
Вот текст Запроса текущего кода:
+ Code
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыНаСкладах.Номенклатура КАК Номенклатура,
| СУММА( ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
| " + ?(СтруктураЗаказов = Неопределено,"","+ ЕСТЬNULL(ТоварыВРезерве.КоличествоОстаток, 0.00)") + "
| ) КАК КоличествоСвободныйОстаток,
| 0.00 КАК КоличествоОстатокОрганизации
|ИЗ
| (ВЫБРАТЬ
| ОбщиеОстатки.Номенклатура КАК Номенклатура,
| ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ОбщиеОстатки.Качество КАК Качество,
| СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток
| ИЗ
| (";
//Формируем запрос по свободным остаткам
ТекстЗапроса = ТекстЗапроса + ПолучитьСтрокуЗапросаСвободныеОстаткиУПП(Новый Структура("СвободныеОстатки,ТоварыВНТТ"), ТекстУсловияКачества, Истина);
ТекстЗапроса = ТекстЗапроса + "
| ) КАК ОбщиеОстатки
|
| СГРУППИРОВАТЬ ПО
| ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
| ) КАК ТоварыНаСкладах
|";
Если НЕ СтруктураЗаказов = Неопределено Тогда
Если ЗаказИзШапки Тогда
Если ВидРегистраПлюсСвободныйОстаток = "ТоварыВРезервеНаСкладах" Тогда
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ?(мУсловиеНоменклатураСклад = "", "", " И ") + "ДокументРезерва = &ДокументРезерва) КАК ТоварыВРезерве
|ПО
| ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
| И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
| И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
|";
ИначеЕсли ВидРегистраПлюсСвободныйОстаток = "ТоварыКПередачеСоСкладов" Тогда
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ?(мУсловиеНоменклатураСклад = "", "", " И ") + "ДокументПередачи = &ДокументРезерва) КАК ТоварыВРезерве
|ПО ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
| И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
| И ТоварыВРезерве.Качество = ТоварыНаСкладах.Качество
|";
КонецЕсли;
Иначе
//временная таблица товаров в резерве
Запрос.Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура,
| ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СУММА(ТоварыВРезервеНаСкладах.КоличествоОстаток) КАК КоличествоОстаток
|ПОМЕСТИТЬ ТоварыВРезерве
|ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ") КАК ТоварыВРезервеНаСкладах
//При использовании регистра свободных остатков добавляется только резерв по заказам документа
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| ЗаказыТаблицаНоменклатура КАК ЗаказаноПоДокументуЗаказ
|ПО
| ЗаказаноПоДокументуЗаказ.Номенклатура = ТоварыВРезервеНаСкладах.Номенклатура
| И ЗаказаноПоДокументуЗаказ.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры
| И ЗаказаноПоДокументуЗаказ.ДокументРезерва = ТоварыВРезервеНаСкладах.ДокументРезерва
|ГДЕ
| НЕ ЗаказаноПоДокументуЗаказ.ДокументРезерва ЕСТЬ NULL
| ИЛИ ТоварыВРезервеНаСкладах.ДокументРезерва = &ДокументРезерва
|СГРУППИРОВАТЬ ПО ТоварыВРезервеНаСкладах.Номенклатура, ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры
|ИНДЕКСИРОВАТЬ ПО ТоварыВРезервеНаСкладах.Номенклатура, ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры
|";
Запрос.Выполнить();
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| ТоварыВРезерве КАК ТоварыВРезерве
|ПО
| ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
| И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
| И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
|";
КонецЕсли;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса +"
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладах.Номенклатура
|";
Запрос.Текст = ТекстЗапроса;
А это, то что надо добавить:
ВЫБРАТЬ
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация,
ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация),
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура,
ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура),
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад,
ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад),
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстатки
Буду очень благодарен за помощь, а то мозг уже не особо соображает(((
Помогите с запросом по остаткам в бух учете.Необходимо получать остатки не только по Управл. учету, но и по бух.
Так вот подскажите куда мне его вставить в основной запрос, а то я что-то не могу сообразить?
Вот текст Запроса текущего кода:
+ Code
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыНаСкладах.Номенклатура КАК Номенклатура,
| СУММА( ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
| " + ?(СтруктураЗаказов = Неопределено,"","+ ЕСТЬNULL(ТоварыВРезерве.КоличествоОстаток, 0.00)") + "
| ) КАК КоличествоСвободныйОстаток,
| 0.00 КАК КоличествоОстатокОрганизации
|ИЗ
| (ВЫБРАТЬ
| ОбщиеОстатки.Номенклатура КАК Номенклатура,
| ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ОбщиеОстатки.Качество КАК Качество,
| СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток
| ИЗ
| (";
//Формируем запрос по свободным остаткам
ТекстЗапроса = ТекстЗапроса + ПолучитьСтрокуЗапросаСвободныеОстаткиУПП(Новый Структура("СвободныеОстатки,ТоварыВНТТ"), ТекстУсловияКачества, Истина);
ТекстЗапроса = ТекстЗапроса + "
| ) КАК ОбщиеОстатки
|
| СГРУППИРОВАТЬ ПО
| ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
| ) КАК ТоварыНаСкладах
|";
Если НЕ СтруктураЗаказов = Неопределено Тогда
Если ЗаказИзШапки Тогда
Если ВидРегистраПлюсСвободныйОстаток = "ТоварыВРезервеНаСкладах" Тогда
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ?(мУсловиеНоменклатураСклад = "", "", " И ") + "ДокументРезерва = &ДокументРезерва) КАК ТоварыВРезерве
|ПО
| ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
| И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
| И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
|";
ИначеЕсли ВидРегистраПлюсСвободныйОстаток = "ТоварыКПередачеСоСкладов" Тогда
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ?(мУсловиеНоменклатураСклад = "", "", " И ") + "ДокументПередачи = &ДокументРезерва) КАК ТоварыВРезерве
|ПО ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
| И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
| И ТоварыВРезерве.Качество = ТоварыНаСкладах.Качество
|";
КонецЕсли;
Иначе
//временная таблица товаров в резерве
Запрос.Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура,
| ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СУММА(ТоварыВРезервеНаСкладах.КоличествоОстаток) КАК КоличествоОстаток
|ПОМЕСТИТЬ ТоварыВРезерве
|ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ") КАК ТоварыВРезервеНаСкладах
//При использовании регистра свободных остатков добавляется только резерв по заказам документа
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| ЗаказыТаблицаНоменклатура КАК ЗаказаноПоДокументуЗаказ
|ПО
| ЗаказаноПоДокументуЗаказ.Номенклатура = ТоварыВРезервеНаСкладах.Номенклатура
| И ЗаказаноПоДокументуЗаказ.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры
| И ЗаказаноПоДокументуЗаказ.ДокументРезерва = ТоварыВРезервеНаСкладах.ДокументРезерва
|ГДЕ
| НЕ ЗаказаноПоДокументуЗаказ.ДокументРезерва ЕСТЬ NULL
| ИЛИ ТоварыВРезервеНаСкладах.ДокументРезерва = &ДокументРезерва
|СГРУППИРОВАТЬ ПО ТоварыВРезервеНаСкладах.Номенклатура, ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры
|ИНДЕКСИРОВАТЬ ПО ТоварыВРезервеНаСкладах.Номенклатура, ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры
|";
Запрос.Выполнить();
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| ТоварыВРезерве КАК ТоварыВРезерве
|ПО
| ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
| И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
| И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
|";
КонецЕсли;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса +"
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладах.Номенклатура
|";
Запрос.Текст = ТекстЗапроса;
А это, то что надо добавить:
ВЫБРАТЬ
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация,
ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация),
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура,
ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура),
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад,
ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад),
ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстатки
Буду очень благодарен за помощь, а то мозг уже не особо соображает(((
По теме из базы знаний
- Рабочее место менеджера по продажам для 1С (УТ 11, ERP 2.0, КА 2) - v.2 (оптовая торговля)
- Ведение взаиморасчетов в конфигурациях «Комплексная автоматизация 1.1» и «Управление производственным предприятием 1.3» - часть 1
- SynchroSber - полноценный модуль API интеграции с маркетплейсом Мегамаркет (СберМегаМаркет) для 1С УТ 11.X, КА 2.X, ERP 2.X, УНФ 1.6, 3.0 (возможность работы как с публикацией, так и без публикации базы)
- Государственные контракты в УТ 11.5, КА 2.5.11 с выгрузкой в ЕИС (Госзакупки)
- Модуль интеграции 1С и Wildberries+Яндекс Маркет+СберМегамаркет по схеме FBO+FBS для УТ 11, КА, ERP, УНФ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) одновременно в подборе остатки по бух и упр? жесть! а зачем? мимо кассы отгружаете больше?
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| УправленческийОстатки.КоличествоОстаток КАК ОстатокПОБух
|ИЗ РегистрБухгалтерии.Управленческий.Остатки(, Счет В (&Счета), , ) КАК УправленческийОстатки";
ТекстЗапроса = ТекстЗапроса +"
|ЛЕВОЕ СОЕДИНЕНИЕ
| УправленческийОстатки.КоличествоОстаток КАК ОстатокПОБух
|ИЗ РегистрБухгалтерии.Управленческий.Остатки(, Счет В (&Счета), , ) КАК УправленческийОстатки";
Воспользуйтесь отладной, установите точку останова перед выполнением запроса и скопируйте получившийся полный текст запроса и необходимые параметры в консоль запроса, а затем в режиме конструктора просто соедините со своим запросом. Выйдя из режима конструктора сразу наглядно увидите куда что добавлять в исходный код. А делать это за Вас думаю тут никто не станет
Добавлять надо в самый первый запрос. Только как добавлять зависит от того, что ты хочешь получить: Сумму остатков по УУ и БУ или Среднее, или 2 колонки на выходе: остатки по УУ и по БУ. От этого будет зависеть как добавлять. А вообще на мой взгляд это глупость....Уверен ли ты, что ведется партионный учет, а не РАУЗ(хотя не помню есть ли РАУЗ в КА), и правильно ли ведется партионный учет. Если нужен для списания остатков для бухов (н-р списать остстки по 10,01 счету), то проще сделать обработку заполнения по остаткам в документе.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот