Имя: Пароль:
1C
 
УТ 11 Запрос из отчета прайс лист
0 falselight
 
17.11.16
17:30
Вытащил запрос из отчета прайс лист.
Какого типа параметр &ПодстановкаТоварногоОграничения?
Можно ли посмотреть выполнение запроса по коду?
В модуле отчета где не ставил точки останова, ничего не срабатывает (
||


ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    Сегменты.Номенклатура КАК Номенклатура,
    Сегменты.Характеристика КАК Характеристика,
    ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
    РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
    Сегменты.Сегмент.* КАК СегментНоменклатуры,
    Сегменты.Номенклатура.* КАК Номенклатура,
    Сегменты.Характеристика.* КАК Характеристика}

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

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

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    ОбъектПланирования,
    ИспользуетсяОтборПоАссортименту
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
    ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
            ТОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаИзмерения
        ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Упаковка
    КОНЕЦ КАК Упаковка,
    ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
    ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
            ТОГДА СвободныеОстатки.Остаток
        ИНАЧЕ СвободныеОстатки.Остаток / &ТекстЗапросаКоэффициентУпаковки
    КОНЕЦ КАК Остаток,
    ВЫБОР
        КОГДА СвободныеОстатки.Остаток <= 0
            ТОГДА ЗНАЧЕНИЕ(Перечисление.ДоступностьТовараДляКлиента.НетВНаличии)
        ИНАЧЕ ВЫБОР
                КОГДА СвободныеОстатки.Остаток <= СвободныеОстатки.МинимальноеКоличествоЗапаса
                    ТОГДА ЗНАЧЕНИЕ(Перечисление.ДоступностьТовараДляКлиента.УточняйтеНаличие)
                ИНАЧЕ ВЫБОР
                        КОГДА СвободныеОстатки.Остаток < СвободныеОстатки.СтраховоеКоличествоЗапаса + СвободныеОстатки.МинимальноеКоличествоЗапаса
                            ТОГДА ЗНАЧЕНИЕ(Перечисление.ДоступностьТовараДляКлиента.Мало)
                        ИНАЧЕ ВЫБОР
                                КОГДА СвободныеОстатки.Остаток < СвободныеОстатки.МаксимальноеКоличествоЗапаса
                                    ТОГДА ЗНАЧЕНИЕ(Перечисление.ДоступностьТовараДляКлиента.Достаточно)
                                ИНАЧЕ ВЫБОР
                                        КОГДА СвободныеОстатки.Остаток >= СвободныеОстатки.МаксимальноеКоличествоЗапаса
                                            ТОГДА ЗНАЧЕНИЕ(Перечисление.ДоступностьТовараДляКлиента.Много)
                                        ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ДоступностьТовараДляКлиента.Неизвестно)
                                    КОНЕЦ
                            КОНЕЦ
                    КОНЕЦ
            КОНЕЦ
    КОНЕЦ КАК ОстатокТекстом,
    СвободныеОстатки.Склад КАК Склад,
    СвободныеОстатки.МетодОбеспеченияПотребностей КАК МетодОбеспеченияПотребностей
ПОМЕСТИТЬ Цены
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены В (&ВидыЦен) {((Номенклатура, Характеристика) В
                (ВЫБРАТЬ
                    ОтборПоСегментуНоменклатуры.Номенклатура,
                    ОтборПоСегментуНоменклатуры.Характеристика
                ИЗ
                    ОтборПоСегментуНоменклатуры
                ГДЕ
                    ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)) КАК Поле2, (Номенклатура В
                (ВЫБРАТЬ
                    ОтборПоАссортименту.Номенклатура
                ИЗ
                    ОтборПоАссортименту
                ГДЕ
                    ОтборПоАссортименту.ИспользуетсяОтборПоАссортименту = &ИспользуетсяОтборПоАссортименту)) КАК Поле4}) КАК ЦеныНоменклатурыСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ СвободныеОстатки КАК СвободныеОстатки
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СвободныеОстатки.Номенклатура
            И ЦеныНоменклатурыСрезПоследних.Характеристика = СвободныеОстатки.Характеристика
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, {(ВидЦены) КАК ВидЦеныДиапазон}) КАК ЦеныНоменклатурыОтбор
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыОтбор.Номенклатура
            И ЦеныНоменклатурыСрезПоследних.Характеристика = ЦеныНоменклатурыОтбор.Характеристика}
ГДЕ
    ЦеныНоменклатурыСрезПоследних.Цена > 0
{ГДЕ
    ЦеныНоменклатурыОтбор.Цена КАК ЦенаОт,
    ЦеныНоменклатурыОтбор.Цена КАК ЦенаДо}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Цены.Номенклатура,
    Цены.Характеристика,
    Цены.ВидЦены,
    Цены.Цена,
    Цены.Упаковка,
    Цены.Валюта,
    Цены.ЦеноваяГруппа,
    Цены.Склад,
    ВЫБОР
        КОГДА Цены.Остаток < 0
            ТОГДА 0
        ИНАЧЕ Цены.Остаток
    КОНЕЦ КАК Остаток,
    ВЫБОР
        КОГДА Цены.МетодОбеспеченияПотребностей = ЗНАЧЕНИЕ(Перечисление.МетодыОбеспеченияПотребностей.ЗаказПодЗаказ)
                ИЛИ Цены.МетодОбеспеченияПотребностей ЕСТЬ NULL
                    И Цены.Остаток > 0
            ТОГДА "под заказ"
        ИНАЧЕ Цены.ОстатокТекстом
    КОНЕЦ КАК ОстатокТекстом
{ВЫБРАТЬ
    Номенклатура.*,
    Характеристика.*,
    ВидЦены.*,
    Цена,
    Упаковка.*,
    Валюта.*,
    ЦеноваяГруппа.*,
    Склад.*}
ИЗ
    Цены КАК Цены
{ГДЕ
    Цены.Номенклатура.*,
    Цены.Характеристика.*,
    Цены.ВидЦены.*,
    Цены.Цена,
    Цены.Упаковка.*,
    Цены.Валюта.*,
    Цены.Склад.*}
1 falselight
 
17.11.16
17:41
какого типа параметр может быть?

ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
        ПО (&ПодстановкаТоварногоОграничения)
2 falselight
 
17.11.16
17:45
никто не подскажет?
3 HardBall
 
17.11.16
18:41
(2) выражение типа "СвободныеОстаткиОстатки.Товар =  ТоварныеОграничения.Товар"
4 falselight
 
17.11.16
18:53
(3) Тип параметра &ПодстановкаТоварногоОграничения номенклатура?
5 falselight
 
17.11.16
18:57
(3) вытащив запрос нужно задать там этот параметр, что в нем будет то ?
6 falselight
 
17.11.16
19:02
в консоли запрос не формируется без этого параметра, выходит ошибка, не пойму что туда можно задать (
7 HardBall
 
17.11.16
19:15
Замени на
СвободныеОстаткиОстатки.Номенклатура =ТоварныеОграничения.Номенклатура
8 Lexey_
 
17.11.16
21:27
(6) так бывает, когда ты Ливингстар
9 falselight
 
18.11.16
07:10
(7)

   РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
        ПО (&ПодстановкаТоварногоОграничения)

заменить на

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

???
10 vyaz
 
18.11.16
07:17
ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.ПрайсЛист.Запрос;
    ТекстЗапроса = СтрЗаменить(
        ТекстЗапроса,
        "&ТекстЗапросаКоэффициентУпаковки",
        Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
            "ЦеныНоменклатурыСрезПоследних.Упаковка",
            "ЦеныНоменклатурыСрезПоследних.Номенклатура"));
    
    Поля = "СвободныеОстаткиОстатки.Номенклатура,СвободныеОстаткиОстатки.Характеристика,СвободныеОстаткиОстатки.Склад";
    ТекстЗапроса = РегистрыСведений.ТоварныеОграничения.ПодставитьСоединение(ТекстЗапроса, "ПодстановкаТоварногоОграничения", Поля);
    
    СхемаКомпоновкиДанных.НаборыДанных.ПрайсЛист.Запрос = ТекстЗапроса;
11 falselight
 
18.11.16
07:18
В какой общей форме УТ 11 можно посмотреть пред выполнение запроса отчета прайс лист? В самом отчете прайс лист этого не удастся как я увидел.
12 falselight
 
18.11.16
07:19
(10) ну то есть в эту переменную идет часть текста запроса?
А где вы это нашли в УТ11, в какой форме можно поставить точку останова и отследить это?
13 vyaz
 
18.11.16
07:20
Модуль объекта отчета ПрайсЛист

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
14 falselight
 
18.11.16
07:21
(10) В консоле запросов, этого не сьимитировать получается?
15 falselight
 
18.11.16
07:21
(13) Странно в отчете в составе конфигурации в модуле объекта я ставил точки останова во всех процедурах, но не срабатывало ничего... Так то я так и хотел отследить эту переменную.
16 vyaz
 
18.11.16
07:22
(14) возьми итоговый текст запроса, после подстановок, и имитируй в консоли
17 falselight
 
18.11.16
07:23
(16) Вот его я и хотел вытащить!!!! Но получается что прайс лист, это тот отчет в котором не срабатывают точки останова как я понял. Бывают такие отчеты. Я думал нужно через общую форму какую это отлавливать.
18 vyaz
 
18.11.16
07:23
(17) включи отладку на сервере
19 falselight
 
18.11.16
07:24
(16) Ясно спасибо! Буду пробовать ещё.
То что не сработало, может глюк какой?
Или внешним его нужно сделать.
По какой ещё причине могли не сработать точки останова?
20 falselight
 
18.11.16
07:24
(18) База файловая.
Ок, буду пробовать. Спасибо!
21 Romyr
 
18.11.16
07:26
(0) >В модуле отчета где не ставил точки останова, ничего не срабатывает (
поставь точку останова перед "запрос.выполнить" и посмотри в свойства запроса.
(19) >По какой ещё причине могли не сработать точки останова?
формируется фоновым заданием, поэтому не срабатывают. Поставь автоматическое подключение к фоновым заданиям
22 Romyr
 
18.11.16
07:27
(21) отладка->подключение->автоматическое подключение
23 falselight
 
18.11.16
07:54
(22) Ок! Спасибо! Пробую все выше изложенные рекомендации!!!