Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 12:47

Ошибка скул сервера

Автор GRADUS, 08 окт 2013, 23:09

0 Пользователей и 1 гость просматривают эту тему.

GRADUS

В общем была файловая база, затем стала клиент-серверной моими рукими, сломался отчет на скд, а точнее отбор у отчета.

Пишет что кол-во вложений не должно бы больше 10 или что то типо того.

Как решить эту ошибку? Можно было бы переписать запрос СКД. Но так как мне было лениво, я изменил отбор, таким образом, чтобы СКД было легче и он заработал. Собственно поля по которым отбираю вынес в набор данных и т.д.

А теперь вопрос, что надо сделать, чтобы можно было отбирать так:
Номенлктару.Чтототам = Чтототут

Сервер:
Microsoft SQL Server Management Studio                  10.0.1600.22 ((SQL_PreRelease).080709-1414 )
2008 экспрес версия


GRADUS

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

СГРУППИРОВАТЬ ПО
ТоварыВРозницеОстаткиИОбороты.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
ЗаказыПоставщикам.Номенклатура
;

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаказПоставщику.Ссылка
ПОМЕСТИТЬ СписокЗаказов
ИЗ
Документ.ЗаказПоставщику КАК ЗаказПоставщику
ГДЕ
ЗаказПоставщику.Проведен = ИСТИНА
И ЗаказПоставщику.СкладОбобщенный = &СкладОбобщенный
И ЗаказПоставщику.Дата <= &КонДата
;

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

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

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

СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА ЕСТЬNULL(ВЫБОР
КОГДА ЕСТЬNULL(ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
ИНАЧЕ ОстаткиРозн.Номенклатура
КОНЕЦ, 0) = 0
ТОГДА ЗаказыПоставщикамОстаткиИОбороты.Номенклатура
ИНАЧЕ ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
ИНАЧЕ ОстаткиРозн.Номенклатура
КОНЕЦ
КОНЕЦ, 0) = 0
ТОГДА ПродажиПолные.Номенклатура
ИНАЧЕ ВЫБОР
КОГДА ЕСТЬNULL(ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
ИНАЧЕ ОстаткиРозн.Номенклатура
КОНЕЦ, 0) = 0
ТОГДА ЗаказыПоставщикамОстаткиИОбороты.Номенклатура
ИНАЧЕ ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
ИНАЧЕ ОстаткиРозн.Номенклатура
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК Номенклатура,
СУММА(0) КАК ЗаказПриход,
СУММА(ЗаказыПоставщикамОстаткиИОбороты.Количество) КАК ЗаказКоличество,
СУММА(0) КАК ПриходСумма,
СУММА(ЕСТЬNULL(ПеремещениеСОптаНаМагазин.Количество, 0)) КАК ПриходКоличество,
СУММА(0) КАК ОсталосьПолучитьСумма,
СУММА(ЕСТЬNULL(ЗаказыПоставщикамОстаткиИОбороты.Количество, 0) - ЕСТЬNULL(ПеремещениеСОптаНаМагазин.Количество, 0)) КАК ОсталосьПолучитьКоличество,
ПродажиПолные.КоличествоОборот КАК ПродажиКоличество,
ПродажиПолные.СтоимостьОборот КАК ПродажиСтоимость
ПОМЕСТИТЬ Пром2
ИЗ
ЗаказыПоСкладам КАК ЗаказыПоставщикамОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ПеремещениеСОптаНаМагазин КАК ПеремещениеСОптаНаМагазин
ПО ЗаказыПоставщикамОстаткиИОбороты.Номенклатура = ПеремещениеСОптаНаМагазин.Номенклатура
ПОЛНОЕ СОЕДИНЕНИЕ ОстаткиРозн КАК ОстаткиРозн
ПО (ОстаткиРозн.Номенклатура = ЗаказыПоставщикамОстаткиИОбороты.Номенклатура)
ПОЛНОЕ СОЕДИНЕНИЕ ПродажиПолные КАК ПродажиПолные
ПО (ПродажиПолные.Номенклатура = ЗаказыПоставщикамОстаткиИОбороты.Номенклатура)

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

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

СГРУППИРОВАТЬ ПО
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
ПродажиСебестоимостьОбороты.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
ПродажиСебестоимостьОбороты.Номенклатура
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Пром2.ЗаказПриход,
Пром2.ЗаказКоличество,
Пром2.ПриходСумма КАК ПоступленияСумма,
Пром2.ПриходКоличество КАК ПоступленияКоличество,
Перемещения.КоличествоПриход КАК ПеремещПриход,
Перемещения.СтоимостьПриход КАК ПеремещСтоимостьПриход,
ПродажиПолные.КоличествоОборот КАК ПродажиКоличество,
ПродажиПолные.СтоимостьОборот КАК ПродажиСтоимость,
Перемещения.КоличествоРасход КАК ПеремещРасход,
Перемещения.СтоимостьРасход КАК ПеремещСтоимостьРасход,
ПродажиПолные.КоличествоОборот КАК ВозвратКоличество,
ПродажиПолные.СтоимостьОборот КАК ВозвратСтоимость,
Списания.КоличествоРасход КАК СписаноКоличество,
Списания.СтоимостьРасход КАК СписаноСтоимость,
ОстаткиРозн.КоличествоКонечныйОстаток КАК КонечныйОстаток,
0 КАК СтоимостьОстаток,
Пром2.Номенклатура КАК Номенклатура,
Пром2.Номенклатура.Артикул КАК Артикул,
Пром2.Номенклатура.РазмерОригинальный КАК Размер,
Пром2.ОсталосьПолучитьСумма КАК ОсталосьПолучитьСумма,
Пром2.ОсталосьПолучитьКоличество КАК ОсталосьПолучитьКоличество,
ПОДСТРОКА(Пром2.Номенклатура.Артикул, 2, 1) КАК ВторойСимволВАртикуле,
Пром2.Номенклатура.СезонРус,
Пром2.Номенклатура.Коллекция
ИЗ
Пром2 КАК Пром2
ЛЕВОЕ СОЕДИНЕНИЕ Перемещения КАК Перемещения
ПО Пром2.Номенклатура = Перемещения.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ПродажиБезВозвратов КАК ПродажиБезВозвратов
ПО Пром2.Номенклатура = ПродажиБезВозвратов.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Списания КАК Списания
ПО Пром2.Номенклатура = Списания.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ПартииОстатки КАК ПартииОстатки
ПО Пром2.Номенклатура = ПартииОстатки.Номенклатура
ПОЛНОЕ СОЕДИНЕНИЕ ПродажиПолные КАК ПродажиПолные
ПО Пром2.Номенклатура = ПродажиПолные.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиРозн КАК ОстаткиРозн
ПО Пром2.Номенклатура = ОстаткиРозн.Номенклатура


А это текст запроса :bleh:

Yura063

Обычно в СКД хватает ссылки на номенклатуру, что бы потом отбирать по полям в номенклатуре!
Помогли, отблагодари!

GRADUS

Цитата: Yura063 от 09 окт 2013, 09:49
Обычно в СКД хватает ссылки на номенклатуру, что бы потом отбирать по полям в номенклатуре!

Серьезно? :bleh:

Yura063

Прикинь я сам в шоке!!!
Помогли, отблагодари!

Dethmontt

ВЫБОР КОГДА и есть CASE
Добавлено: 09 окт 2013, 10:33


А почему case синим подсвечивается?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

GRADUS

Цитата: Dethmontt от 09 окт 2013, 10:10
ВЫБОР КОГДА и есть CASE
Добавлено: 09 окт 2013, 10:33


А почему case синим подсвечивается?

Хз, кто то его покрасил.

Как увеличить степень вложенности в скуле то? Изменять текст запроса не вариант.

Dethmontt

Цитата: GRADUS от 09 окт 2013, 11:32Как увеличить степень вложенности в скуле то?
Никак. Это ограничения Скуля (и вроде бы не только Скуля)
Добавлено: 09 окт 2013, 12:00


Не правильно используется конструкция ВЫБОР КОГДА(ВЫБОР КОГДА(ВЫБОР КОГДА))

Нужно постараться убрать все вложенности
ВЫБОР КОГДА ТОГДА
КОГДА ТОГДА
КОГДА ТОГДА
ИНАЧЕ
КОНЕЦ
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

GRADUS

Цитата: Dethmontt от 09 окт 2013, 11:51
Цитата: GRADUS от 09 окт 2013, 11:32Как увеличить степень вложенности в скуле то?
Никак. Это ограничения Скуля (и вроде бы не только Скуля)
Добавлено: 09 окт 2013, 12:00


Не правильно используется конструкция ВЫБОР КОГДА(ВЫБОР КОГДА(ВЫБОР КОГДА))

Нужно постараться убрать все вложенности
ВЫБОР КОГДА ТОГДА
КОГДА ТОГДА
КОГДА ТОГДА
ИНАЧЕ
КОНЕЦ

Я как бы тест запроса во втором сообщении написал. Каким образом я смогу постараться убрать то, чего нет?

Dethmontt

Цитата: GRADUS от 08 окт 2013, 23:10ВЫБРАТЬ
   ВЫБОР
      КОГДА ЕСТЬNULL(ВЫБОР
               КОГДА ЕСТЬNULL(ВЫБОР
                        КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
                           ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
                        ИНАЧЕ ОстаткиРозн.Номенклатура
                     КОНЕЦ, 0) = 0
                  ТОГДА ЗаказыПоставщикамОстаткиИОбороты.Номенклатура
               ИНАЧЕ ВЫБОР
                     КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
                        ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
                     ИНАЧЕ ОстаткиРозн.Номенклатура
                  КОНЕЦ
            КОНЕЦ, 0) = 0
         ТОГДА ПродажиПолные.Номенклатура
      ИНАЧЕ ВЫБОР
            КОГДА ЕСТЬNULL(ВЫБОР
                     КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
                        ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
                     ИНАЧЕ ОстаткиРозн.Номенклатура
                  КОНЕЦ, 0) = 0
               ТОГДА ЗаказыПоставщикамОстаткиИОбороты.Номенклатура
            ИНАЧЕ ВЫБОР
                  КОГДА ЕСТЬNULL(ОстаткиРозн.Номенклатура, 0) = 0
                     ТОГДА ПеремещениеСОптаНаМагазин.Номенклатура
                  ИНАЧЕ ОстаткиРозн.Номенклатура
               КОНЕЦ
         КОНЕЦ
   КОНЕЦ КАК Номенклатура,
Мне приснилось что ли?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск