Имя: Пароль:
1C
 
Ошибка СУБД. (Продолжение)
0 andrejip
 
13.12.10
09:27
v8: Ошибка СУБД.

Доброе утро.(

ТекстЗапросаРеквизитыДокумента = "
           |    (ВЫБРАТЬ
           //Строки ТЧ Товары, в которых номенклатура - не комплект
           |            Док.Ссылка,
           |            Док.Номенклатура,
           |            Док.Склад,
           |            Док.СпособСписанияОстаткаТоваров,
           |            Док.ХарактеристикаНоменклатуры,
           |            Док.СерияНоменклатуры,
           |            Док.Коэффициент,
           |            Док.ЗаказПокупателя,
           |            Док.ЕдиницаИзмерения,
           |            Док.Количество
           |        ИЗ
           |            Документ." + СтруктураПараметров.ИмяТаблицы + " КАК Док
           |        ГДЕ
           |            Док.Ссылка = &ДокументСсылка
           |            И НЕ Док.Номенклатура.Комплект
           |           И Док.СпособСписанияОстаткаТоваров = &ИзРезерва
           |        ОБЪЕДИНИТЬ ВСЕ
           |
           //Строки ТЧ Состав набора
           |        ВЫБРАТЬ
           |            Док.Ссылка,
           |            Док.Номенклатура,
           |            Док.Склад,
           |            Док.СпособСписанияОстаткаТоваров,
           |            Док.ХарактеристикаНоменклатуры,
           |            Док.СерияНоменклатуры,
           |            Док.Коэффициент,
           |            Док.ЗаказПокупателя,
           |            Док.ЕдиницаИзмерения,
           |            Док.Количество
           |        ИЗ
           |            (ВЫБРАТЬ
           |                ДокНаб.Ссылка,
           |                ДокНаб.Номенклатура,
           //Склад может быть указан в целом для набора в строке ТЧ Товары, или для каждого элемента набора в ТЧ СоставНабора
           |                ВЫБОР
           |                    КОГДА ДокНаб.Склад = &ПустойСклад ТОГДА ДокТов.Склад
           |                    ИНАЧЕ ДокНаб.Склад
           |                КОНЕЦ КАК Склад,
           //СпособСписанияОстатков может быть указан в целом для набора в строке ТЧ Товары, или для каждого элемента набора в ТЧ СоставНабора
           |                ВЫБОР
           |                    КОГДА ДокНаб.СпособСписанияОстаткаТоваров = &ПустойСпособСписания ТОГДА ДокТов.СпособСписанияОстаткаТоваров
           |                    ИНАЧЕ ДокНаб.СпособСписанияОстаткаТоваров
           |                КОНЕЦ КАК СпособСписанияОстаткаТоваров,
           |                ДокНаб.ХарактеристикаНоменклатуры,
           |                ДокНаб.СерияНоменклатуры,
           |                ДокНаб.ЕдиницаИзмерения.Коэффициент КАК Коэффициент,
           |                ДокТов.ЗаказПокупателя,
           |                ДокТов.ЕдиницаИзмерения,
           |                ДокНаб.Количество * ДокТов.Количество КАК Количество
           |            ИЗ
           |                Документ." + СтруктураПараметров.ИмяДокумента + ".СоставНабора   КАК ДокНаб
           |                ЛЕВОЕ СОЕДИНЕНИЕ Документ." + СтруктураПараметров.ИмяТаблицы + " КАК ДокТов
           |                    ПО ДокТов.КлючСтроки = ДокНаб.КлючСтроки
           |                     И ДокТов.Ссылка     = &ДокументСсылка
           |            ГДЕ
           |                ДокНаб.Ссылка = &ДокументСсылка
           |
           |            ) КАК Док
           |       ГДЕ Док.СпособСписанияОстаткаТоваров = &ИзРезерва
           |        ) КАК Док
           |";
       
   Иначе
       ТекстЗапросаРеквизитыДокумента = "
           |    Документ." + СтруктураПараметров.ИмяТаблицы + "
           |    КАК Док
           |";
   КонецЕсли;




ТекстЗапроса = "
   |ВЫБРАТЬ // Запрос, контролирующий остатки на складах
   |    Док.Номенклатура                                        КАК Номенклатура,
   |    Док.Номенклатура.Представление                          КАК НоменклатураПредставление,
   |    Док.Номенклатура.ЕдиницаХраненияОстатков.Представление  КАК ЕдиницаХраненияОстатковПредставление,
   |   %ПОЛЕ_Док_Характеристика%                                КАК ХарактеристикаНоменклатуры,
   |    ПРЕДСТАВЛЕНИЕ(%ПОЛЕ_Док_Характеристика%)                КАК ХарактеристикаНоменклатурыПредставление,
   |   %ПОЛЕ_Док_Серия%                                        КАК СерияНоменклатуры,
   |    ПРЕДСТАВЛЕНИЕ(%ПОЛЕ_Док_Серия%)                        КАК СерияНоменклатурыПредставление,
   |    Док.ЗаказПокупателя                                    КАК ДокументРезерва,
   |   Док.Склад                                              КАК Склад,
   |   %ПОЛЕ_Док_Количество%                                    КАК ДокументКоличество,
   |    ЕСТЬNULL(МАКСИМУМ(Резервы.КоличествоОстаток), 0)        КАК РезервыКоличество
   |ИЗ
   |    "+ ТекстЗапросаРеквизитыДокумента + "
   |
   |ЛЕВОЕ СОЕДИНЕНИЕ
   |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(," + УсловияТаблицыОстатков.Резерв + ") КАК Резервы
   |ПО
   |    Резервы.Склад = Док.Склад
   |    И Резервы.Номенклатура = Док.Номенклатура
   |    И Резервы.ДокументРезерва = Док.ЗаказПокупателя
   |   И Резервы.ХарактеристикаНоменклатуры = %СОЕДИНЕНИЕ_Характеристика_Остатки%
   |   И Резервы.СерияНоменклатуры = %СОЕДИНЕНИЕ_Серия_Остатки%
   |ГДЕ
   |    Не Док.Номенклатура.Комплект
   |    И Док.Ссылка  =  &ДокументСсылка
   |    И Док.СпособСписанияОстаткаТоваров = &ИзРезерва
   |    И (НЕ Док.ЗаказПокупателя В (&МассивПустыхСсылок))
   |СГРУППИРОВАТЬ ПО
   |
   |    Док.Номенклатура,
   |   %ПОЛЕ_Док_Характеристика%,
   |   %ПОЛЕ_Док_Серия%,
   |    Док.ЗаказПокупателя,
   |    Док.Склад
   |ИМЕЮЩИЕ ЕСТЬNULL(МАКСИМУМ(Резервы.КоличествоОстаток), 0) < %ПОЛЕ_Док_Количество%
   |ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки // Блокирующие чтение таблицы остатков регистра для разрешения коллизий многопользовательской работы
   |";

ЗАТЫКАЕТСЯ ЗДЕСЬ:

|ЛЕВОЕ СОЕДИНЕНИЕ
   |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(," + УсловияТаблицыОстатков.Резерв + ") КАК Резервы
   |ПО
   |    Резервы.Склад = Док.Склад
   |    И Резервы.Номенклатура = Док.Номенклатура
   |    И Резервы.ДокументРезерва = Док.ЗаказПокупателя
   |   И Резервы.ХарактеристикаНоменклатуры = %СОЕДИНЕНИЕ_Характеристика_Остатки%
   |   И Резервы.СерияНоменклатуры = %СОЕДИНЕНИЕ_Серия_Остатки%
   |ГДЕ
   |    Не Док.Номенклатура.Комплект
   |    И Док.Ссылка  =  &ДокументСсылка
   |    И Док.СпособСписанияОстаткаТоваров = &ИзРезерва
   |    И (НЕ Док.ЗаказПокупателя В (&МассивПустыхСсылок))
   |СГРУППИРОВАТЬ ПО
   |
   |    Док.Номенклатура,
   |   %ПОЛЕ_Док_Характеристика%,
   |   %ПОЛЕ_Док_Серия%,
   |    Док.ЗаказПокупателя,
   |    Док.Склад
   |ИМЕЮЩИЕ ЕСТЬNULL(МАКСИМУМ(Резервы.КоличествоОстаток), 0) < %ПОЛЕ_Док_Количество%
   |ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки // Блокирующие чтение таблицы остатков регистра для разрешения коллизий многопользовательской работы
   |";

В консоли запросов по конкретной номенклатуре и складу не затыкается..

ГУРУ 1С направьте на мысль..
1 andrejip
 
13.12.10
09:33
ап\
2 andrejip
 
13.12.10
09:37
ап\\
3 andrejip
 
13.12.10
09:38
ап\\\
4 andrejip
 
13.12.10
09:44
Народ подсобите..
5 strange2007
 
13.12.10
09:45
Автор, тебе в прошлой ветке просили запрос, а ты опять код. Вот эту муйню ты как в консоль вставляешь? "УсловияТаблицыОстатков.Резерв" - это что?
А это в каком месте надо писать?
   Иначе
       ТекстЗапросаРеквизитыДокумента = "
           |    Документ." + СтруктураПараметров.ИмяТаблицы + "
           |    КАК Док
           |";
   КонецЕсли;
6 strange2007
 
13.12.10
09:46
(4) Да ни кто тебе не будет с таким отношением помогать
7 andrejip
 
13.12.10
09:47
ок.. сейчас скину
8 strange2007
 
13.12.10
09:50
(7) Ты хоть понял что надо? Отладчиком тормозишь перед Выполнить и смотришь результирующий текст запроса. Потом его так и кидаешь
9 andrejip
 
13.12.10
09:57
(8) попробую
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший