Проверка счетов учета номенклатуры в документах одним запросом для БП 2.0

17.11.11

Разработка - Запросы

Запрос проверяет счета учета номенклатуры в документах (например реализации товаров услуг) за период...
Суть такая же как и в стандартном механизме получения счетов учета, проверка 5-ти вложенностей номенклатуры, + склад + вид склада + организация. по таким же приоритетам. повторяет функцию получения счетов учета, но только одним запросом.


пользуйтесь...перенос строк не работает при копипасте в HyperText Transfer Protocol

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

ИНДЕКСИРОВАТЬ ПО  Организация,  Склад,  ТипСклада,  Номенклатура,  НомерСтроки,  Ссылка ;

//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ  ИсточникИерархии.Номенклатура КАК Номенклатура,  ИсточникИерархии.НоменклатураРодитель КАК НоменклатураРодитель,  СУММА(ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок1, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 1   КОНЕЦ + ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок2, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 2   КОНЕЦ + ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок3, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 3   КОНЕЦ + ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок4, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 4   КОНЕЦ + ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок5, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 5   КОНЕЦ + ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок6, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 6   КОНЕЦ + ВЫБОР    КОГДА ЕСТЬNULL(ИсточникИерархии.НоменклатураПорядок7, ИСТИНА) = ИСТИНА     ТОГДА 0    ИНАЧЕ 7   КОНЕЦ) КАК ПриоритетНоменклатура ПОМЕСТИТЬ НоменклатураСоответствие ИЗ  (ВЫБРАТЬ   Документы.Номенклатура КАК Номенклатура,   Документы.Номенклатура КАК НоменклатураРодитель,   Документы.Номенклатура КАК НоменклатураПорядок7,   NULL КАК НоменклатураПорядок6,   NULL КАК НоменклатураПорядок5,   NULL КАК НоменклатураПорядок4,   NULL КАК НоменклатураПорядок3,   NULL КАК НоменклатураПорядок2,   NULL КАК НоменклатураПорядок1  ИЗ   Документы КАК Документы    ОБЪЕДИНИТЬ ВСЕ    ВЫБРАТЬ   Документы.Номенклатура,   Документы.Номенклатура.Родитель,   NULL,   Документы.Номенклатура.Родитель,   NULL,   NULL,   NULL,   NULL,   NULL  ИЗ   Документы КАК Документы    ОБЪЕДИНИТЬ ВСЕ    ВЫБРАТЬ   Документы.Номенклатура,   Документы.Номенклатура.Родитель.Родитель,   NULL,   NULL,   Документы.Номенклатура.Родитель.Родитель,   NULL,   NULL,   NULL,   NULL  ИЗ   Документы КАК Документы    ОБЪЕДИНИТЬ ВСЕ    ВЫБРАТЬ   Документы.Номенклатура,   Документы.Номенклатура.Родитель.Родитель.Родитель,   NULL,   NULL,   NULL,   Документы.Номенклатура.Родитель.Родитель.Родитель,   NULL,   NULL,   NULL  ИЗ   Документы КАК Документы    ОБЪЕДИНИТЬ ВСЕ    ВЫБРАТЬ   Документы.Номенклатура,   Документы.Номенклатура.Родитель.Родитель.Родитель.Родитель,   NULL,   NULL,   NULL,   NULL,   Документы.Номенклатура.Родитель.Родитель.Родитель.Родитель,   NULL,   NULL  ИЗ   Документы КАК Документы    ОБЪЕДИНИТЬ ВСЕ    ВЫБРАТЬ   Документы.Номенклатура,   Документы.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель,   NULL,   NULL,   NULL,   NULL,   NULL,   Документы.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель,   NULL  ИЗ   Документы КАК Документы    ОБЪЕДИНИТЬ ВСЕ    ВЫБРАТЬ   Документы.Номенклатура,   ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка),   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL  ИЗ   Документы КАК Документы) КАК ИсточникИерархии ГДЕ  ЕСТЬNULL(ИсточникИерархии.НоменклатураРодитель, ИСТИНА) <> ИСТИНА

СГРУППИРОВАТЬ ПО  ИсточникИерархии.Номенклатура,  ИсточникИерархии.НоменклатураРодитель

ИНДЕКСИРОВАТЬ ПО  Номенклатура,  НоменклатураРодитель,  ПриоритетНоменклатура ;

//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ  НоменклатураСоответствие.Номенклатура КАК Номенклатура,  СчетаУчетаНоменклатуры.Номенклатура КАК НоменклатураСчетаУчета,  СчетаУчетаНоменклатуры.Организация КАК Организация,  СчетаУчетаНоменклатуры.Склад КАК Склад,  СчетаУчетаНоменклатуры.ТипСклада КАК ТипСклада,  СчетаУчетаНоменклатуры.СчетУчета,  СчетаУчетаНоменклатуры.СчетДоходовОтРеализации,  СчетаУчетаНоменклатуры.СчетРасходовОтРеализации,  СУММА(НоменклатураСоответствие.ПриоритетНоменклатура * 1000 + ВЫБОР    КОГДА СчетаУчетаНоменклатуры.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)     ТОГДА 0    ИНАЧЕ 1   КОНЕЦ * 500 + ВЫБОР    КОГДА СчетаУчетаНоменклатуры.ТипСклада = ЗНАЧЕНИЕ(Перечисление.ТипыСкладов.ПустаяСсылка)     ТОГДА 0    ИНАЧЕ 1   КОНЕЦ * 300 + ВЫБОР    КОГДА СчетаУчетаНоменклатуры.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)     ТОГДА 0    ИНАЧЕ 1   КОНЕЦ) КАК ПриоритетСтрока ПОМЕСТИТЬ СчетаУчетаСПриоритетами ИЗ  НоменклатураСоответствие КАК НоменклатураСоответствие   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаУчетаНоменклатуры КАК СчетаУчетаНоменклатуры   ПО НоменклатураСоответствие.НоменклатураРодитель = СчетаУчетаНоменклатуры.Номенклатура ГДЕ  (НЕ ЕСТЬNULL(СчетаУчетаНоменклатуры.Номенклатура, ИСТИНА) = ИСТИНА)

СГРУППИРОВАТЬ ПО  СчетаУчетаНоменклатуры.Номенклатура,  СчетаУчетаНоменклатуры.СчетУчета,  НоменклатураСоответствие.Номенклатура,  СчетаУчетаНоменклатуры.Склад,  СчетаУчетаНоменклатуры.Организация,  СчетаУчетаНоменклатуры.ТипСклада,  СчетаУчетаНоменклатуры.СчетДоходовОтРеализации,  СчетаУчетаНоменклатуры.СчетРасходовОтРеализации

ИНДЕКСИРОВАТЬ ПО  ПриоритетСтрока,  Номенклатура ;

//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ  Документы.Ссылка КАК Ссылка,  Документы.НомерСтроки КАК НомерСтроки,  Документы.Номенклатура КАК Номенклатура,  МАКСИМУМ(СчетаУчетаСПриоритетами.ПриоритетСтрока) КАК ПриоитетСтрока ПОМЕСТИТЬ СчететаУчетаПоСтрокамДокументаСПриоритетом ИЗ  Документы КАК Документы   ЛЕВОЕ СОЕДИНЕНИЕ СчетаУчетаСПриоритетами КАК СчетаУчетаСПриоритетами   ПО (Документы.Номенклатура = СчетаУчетаСПриоритетами.Номенклатура     ИЛИ СчетаУчетаСПриоритетами.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))    И (Документы.ТипСклада = СчетаУчетаСПриоритетами.ТипСклада     ИЛИ СчетаУчетаСПриоритетами.ТипСклада = ЗНАЧЕНИЕ(Перечисление.ТипыСкладов.ПустаяСсылка))    И (Документы.Организация = СчетаУчетаСПриоритетами.Организация     ИЛИ СчетаУчетаСПриоритетами.Организация = ЗНАЧЕНИЕ(Справочник.организации.ПустаяССылка))    И (Документы.Склад = СчетаУчетаСПриоритетами.Склад     ИЛИ СчетаУчетаСПриоритетами.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))

СГРУППИРОВАТЬ ПО  Документы.Ссылка,  Документы.НомерСтроки,  Документы.Номенклатура

ИНДЕКСИРОВАТЬ ПО  НомерСтроки,  Ссылка,  ПриоитетСтрока,  Номенклатура ;

//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ  Источник.Ссылка КАК Ссылка,  Источник.НомерСтроки,  Источник.Номенклатура,  Источник.СчетУчета,  Источник.СчетДоходов,  Источник.СчетРасходов,  Источник.СчетУчетаДолженБыть,  Источник.СчетДоходовДолженБыть,  Источник.СчетРасходовДолженБыть,  ВЫБОР   КОГДА Источник.СчетУчета = Источник.СчетУчетаДолженБыть     И Источник.СчетДоходов = Источник.СчетДоходовДолженБыть     И Источник.СчетРасходов = Источник.СчетРасходовДолженБыть    ТОГДА ИСТИНА   ИНАЧЕ ЛОЖЬ  КОНЕЦ КАК ВсеХороше ИЗ  (ВЫБРАТЬ   Документы.Ссылка КАК Ссылка,   Документы.НомерСтроки КАК НомерСтроки,   Документы.Номенклатура КАК Номенклатура,   Документы.СчетУчета КАК СчетУчета,   Документы.СчетДоходов КАК СчетДоходов,   Документы.СчетРасходов КАК СчетРасходов,   ВЫРАЗИТЬ(СчетаУчетаСПриоритетами.СчетУчета КАК ПланСчетов.Хозрасчетный) КАК СчетУчетаДолженБыть,   ВЫРАЗИТЬ(СчетаУчетаСПриоритетами.СчетДоходовОтРеализации КАК ПланСчетов.Хозрасчетный) КАК СчетДоходовДолженБыть,   ВЫРАЗИТЬ(СчетаУчетаСПриоритетами.СчетРасходовОтРеализации КАК ПланСчетов.Хозрасчетный) КАК СчетРасходовДолженБыть  ИЗ   Документы КАК Документы    ЛЕВОЕ СОЕДИНЕНИЕ СчететаУчетаПоСтрокамДокументаСПриоритетом КАК СчететаУчетаПоСтрокамДокументаСПриоритетом     ЛЕВОЕ СОЕДИНЕНИЕ СчетаУчетаСПриоритетами КАК СчетаУчетаСПриоритетами     ПО СчететаУчетаПоСтрокамДокументаСПриоритетом.ПриоитетСтрока = СчетаУчетаСПриоритетами.ПриоритетСтрока      И СчететаУчетаПоСтрокамДокументаСПриоритетом.Номенклатура = СчетаУчетаСПриоритетами.Номенклатура    ПО Документы.Ссылка = СчететаУчетаПоСтрокамДокументаСПриоритетом.Ссылка     И Документы.НомерСтроки = СчететаУчетаПоСтрокамДокументаСПриоритетом.НомерСтроки) КАК Источник ИТОГИ  МИНИМУМ(ВсеХороше) ПО  Ссылка

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    169303    937    403    

905

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    11395    sergey279    18    

65

Запросы Программист Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    6339    XilDen    36    

83

Запросы Программист Запросы Бесплатно (free)

Отлаживая взаимодействие с базой данных, мы регулярно сталкиваемся с зависающими или подозрительно долго выполняющимися обращениями, негативно влияющими на производительность. О том, как в PostgreSQL выявить подозрительные запросы, основываясь на доступной о них информации, расскажем в статье.

16.08.2024    9071    user1840182    5    

28

Математика и алгоритмы Запросы Программист Платформа 1С v8.3 Запросы Бесплатно (free)

Рассмотрим быстрый алгоритм поиска дублей с использованием hash функции по набору полей шапки и табличных частей.

08.07.2024    2727    ivanov660    9    

22

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

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

15.05.2024    10220    implecs_team    6    

48

Запросы Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    3625    andrey_sag    10    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tolpinski 68 17.11.11 08:04 Сейчас в теме
Скриншотик маловат! ;)
2. GoodWinSpr 402 17.11.11 08:12 Сейчас в теме
3. sinjevla 185 17.11.11 11:12 Сейчас в теме
скриншот симпатичный, а запрос лучше разукрасить
4. Tur_gad 17.11.11 14:10 Сейчас в теме
Поддерживаю мнение по поводу скрина, А с кодом советую по работать внимательней)
5. mirco 74 17.11.11 16:49 Сейчас в теме
Где такую картинку нашли ? Призавайтесь...
6. Mudrii_Gankster 18.11.11 13:03 Сейчас в теме
Да, фотка действительно с большими запросами
7. DimanYa 03.07.12 05:18 Сейчас в теме
Это для того, чтобы контролировать с какого счёта списали номенклатуру? Хорошо бы запрос развить в дальнейшую разработку
8. ZVN 123 12.05.13 20:08 Сейчас в теме
Да скриншот супер! Видимо это у неё реакция на Ваш запрос с проверкой счетов.
9. TitanLuchs 416 05.07.13 13:36 Сейчас в теме
Если б потом после запроса оно еще и само переустанавливало счета в необходимых документах... И перепроводило их... Нет в жизни совершенства!
ЗЫ: скриншотик да, надо бы покрупнее сделать...
10. POLGA 16 27.11.15 16:54 Сейчас в теме
Спасибо!!! Пригодился Ваш запрос!
Оставьте свое сообщение