![]() |
![]() |
![]() |
|
Правильный запрос | ☑ | ||
---|---|---|---|---|
0
Надежда25
19.06.12
✎
12:22
|
Делаю отчет на основе следующего запроса:
ВЫБРАТЬ ПродажиОбороты.КоличествоОборот КАК Количество, ПродажиОбороты.ЗаказПокупателя.Ссылка, ПродажиОбороты.Номенклатура.Родитель КАК Цех, ПродажиОбороты.Регистратор.Ссылка КАК Документ, ПродажиОбороты.Период, ДокЗаказ.Ссылка, ДокЗаказ.СпецификацияСсылка КАК Спецификация, ДокЗаказ.Ссылка КАК Ссылка1, ДокЗаказ.Товары.( Ссылка ), ДокЗаказ.НоменклатураСсылка, ДокЗаказ.СпецификацияСсылка, СпрСпецификации.Сырье, СпрСпецификации.КоличествоНа1т, ПродажиОбороты.Номенклатура.Ссылка КАК Продукция, ПродажиОбороты.КоличествоОборот * СпрСпецификации.КоличествоНа1т КАК КоличествоНаРеализацию, ПродажиОбороты.Регистратор.Дата КАК Дата, ПродажиОбороты.Контрагент, ВЫБОР КОГДА ПродажиОбороты.Номенклатура.Родитель.Наименование = &Подразделение ТОГДА ПродажиОбороты.КоличествоОборот * СпрСпецификации.КоличествоНа1т КОНЕЦ КАК КоличествоНаРеализацию_Подразделение ИЗ РегистрНакопления.Продажи.Обороты(, , Запись, ) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗаказПокупателя.Ссылка КАК Ссылка, ЗаказПокупателя.Товары.( Ссылка КАК Ссылка ) КАК Товары, ЗаказПокупателяТовары.Номенклатура.Ссылка КАК НоменклатураСсылка, ЗаказПокупателяТовары.Спецификация.Ссылка КАК СпецификацияСсылка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО (ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка)) КАК ДокЗаказ ПО ПродажиОбороты.ЗаказПокупателя.Ссылка = ДокЗаказ.Ссылка И ПродажиОбороты.Номенклатура = ДокЗаказ.НоменклатураСсылка И ПродажиОбороты.ЗаказПокупателя.Товары.Спецификация = ДокЗаказ.СпецификацияСсылка ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Сырье, СпецификацииНоменклатурыИсходныеКомплектующие.Количество КАК КоличествоНа1т, СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка КАК Ссылка ИЗ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие) КАК СпрСпецификации ПО ПродажиОбороты.ЗаказПокупателя.Товары.Спецификация = СпрСпецификации.Ссылка ГДЕ ПродажиОбороты.Период >= &НачалоПериода И ПродажиОбороты.Период <= &КонецПериода Если в табличной части документа более одной строки, в отчете появляются повторяющиеся строки. Использовать РАЗЛИЧНЫЕ не получается, т.к. есть вложенный запрос. Как лучше изменить, оптимизировать запрос? Использовать временные таблицы? Опять же, сколько лучше сделать временных таблиц: 1) для документа "Заказ покупателя", 2) для регистра накопления ПродажиОбороты, 3) для справочника "Спецификации", а потом их соединять? Какие есть самые правильные, оптимальные варианты? |
|||
1
Ненавижу 1С
гуру
19.06.12
✎
12:23
|
за такое
ЗаказПокупателя.Товары.( Ссылка КАК Ссылка ) КАК Товары, надо убивать, ИМХО |
|||
2
Нуф-Нуф
19.06.12
✎
12:24
|
ужаснах
|
|||
3
Надежда25
19.06.12
✎
12:48
|
Вот и хочу узнать, в каком направлении переделывать.
|
|||
4
Ненавижу 1С
гуру
19.06.12
✎
12:48
|
(3) в направлении выкладывания фото
|
|||
5
zak555
19.06.12
✎
12:49
|
а офто где ?
|
|||
6
Надежда25
19.06.12
✎
15:11
|
Переделанный запрос ниже. Работает правильно. Посмотрите, пожалуйста, насколько это грамотно?
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Продукция, ПродажиОбороты.КоличествоОборот КАК Количество, ПродажиОбороты.ЗаказПокупателя.Ссылка, ПродажиОбороты.Регистратор КАК Документ, ПродажиОбороты.Период КАК Дата, ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.Номенклатура.Родитель КАК Подразделение ПОМЕСТИТЬ ИзРегистра ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Запись, ) КАК ПродажиОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказПокупателя.Ссылка, ЗаказПокупателяТовары.Ссылка КАК Ссылка1, ЗаказПокупателяТовары.Спецификация, ЗаказПокупателяТовары.Номенклатура ПОМЕСТИТЬ ДокЗаказ ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО (ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СпецификацииНоменклатуры.Ссылка, СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка КАК Ссылка1, СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Сырье, СпецификацииНоменклатурыИсходныеКомплектующие.Количество КАК КоличествоНа1т ПОМЕСТИТЬ ИзСправ ИЗ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие ПО (СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = СпецификацииНоменклатуры.Ссылка) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИзРегистра.Документ, ИзРегистра.Продукция, ИзРегистра.Количество, ДокЗаказ.Ссылка, ДокЗаказ.Спецификация, ИзРегистра.Подразделение, ИзСправ.Сырье, ИзСправ.Ссылка КАК Ссылка1, ИзСправ.КоличествоНа1т, ИзРегистра.Количество * ИзСправ.КоличествоНа1т КАК КоличествоНаРеализацию, ИзРегистра.Дата, ИзРегистра.Контрагент, ВЫБОР КОГДА ИзРегистра.Подразделение.Наименование = &Подразделение ТОГДА ИзРегистра.Количество * ИзСправ.КоличествоНа1т КОНЕЦ КАК КоличествоНаРеализацию_Подразделение ИЗ ИзРегистра КАК ИзРегистра ЛЕВОЕ СОЕДИНЕНИЕ ДокЗаказ КАК ДокЗаказ ЛЕВОЕ СОЕДИНЕНИЕ ИзСправ КАК ИзСправ ПО ДокЗаказ.Спецификация = ИзСправ.Ссылка ПО ИзРегистра.ЗаказПокупателяСсылка = ДокЗаказ.Ссылка И ИзРегистра.Продукция = ДокЗаказ.Номенклатура |
|||
7
golden-pack
19.06.12
✎
15:15
|
(6) все норм. Еще момент - внедрение 1с ки в любой немаленькой компании сопряжено с использованием RLS. Склад/Контрагенты (в этом запросе) - по этому при необходимости добавить слово РАЗРЕШЕННЫЕ.
|
|||
8
golden-pack
19.06.12
✎
15:15
|
+ Добавить ЕстьNull()
|
|||
9
golden-pack
19.06.12
✎
15:16
|
ВТ ДокЗаказ - непонятно
|
|||
10
Шапокляк
19.06.12
✎
15:20
|
(6) а зачем вам такое
ВЫБРАТЬ ЗаказПокупателя.Ссылка, ЗаказПокупателяТовары.Ссылка КАК Ссылка1, ЗаказПокупателяТовары.Спецификация, ЗаказПокупателяТовары.Номенклатура ПОМЕСТИТЬ ДокЗаказ ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО (ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка) ; неужели не работает просто ВЫБРАТЬ ЗаказПокупателяТовары.Ссылка КАК Ссылка1, ЗаказПокупателяТовары.Спецификация, ЗаказПокупателяТовары.Номенклатура ПОМЕСТИТЬ ДокЗаказ ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТОвары |
|||
11
Надежда25
19.06.12
✎
15:39
|
(10)Да, спасибо.
|
|||
12
Ненавижу 1С
гуру
19.06.12
✎
20:55
|
(10) разница есть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |