Проверка счетов учета номенклатуры в документах одним запросом для БП 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(СчетаУчетаНоменклатуры.Номенклатура, ИСТИНА) = ИСТИНА)

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

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

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

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

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

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

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 руб.

02.09.2020    119930    656    389    

701

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5620    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    1964    2    Yashazz    0    

29

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6091    29    mkalimulin    23    

48

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1714    vandalsvq    7    

28

Объектная модель запроса "Схема запроса" 2

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

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5285    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    15958    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Tolpinski 65 17.11.11 08:04 Сейчас в теме
Скриншотик маловат! ;)
2. GoodWinSpr 402 17.11.11 08:12 Сейчас в теме
3. sinjevla 184 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 122 12.05.13 20:08 Сейчас в теме
Да скриншот супер! Видимо это у неё реакция на Ваш запрос с проверкой счетов.
9. TitanLuchs 395 05.07.13 13:36 Сейчас в теме
Если б потом после запроса оно еще и само переустанавливало счета в необходимых документах... И перепроводило их... Нет в жизни совершенства!
ЗЫ: скриншотик да, надо бы покрупнее сделать...
10. POLGA 16 27.11.15 16:54 Сейчас в теме
Спасибо!!! Пригодился Ваш запрос!
Оставьте свое сообщение