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

УТ 11, 1C8.3, форма списка номенклатуры: глючит получение ставки НДС

Автор PavelVaskan, 15 мар 2024, 17:17

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

PavelVaskan

В УТ11 в некоей базе в ФормеСписка Номенклатуры есть в таблице реквизит-колонка "Ставка НДС". Упорно берёт из справочника. Таблица заявлена как ДинамическийСписок по имени "Список".

На форме реквизита "Ставка НДС" явно нету, есть колонка ДинамическогоСписка реквизита формы. Иду в запрос ДинамическогоСписка. Делаю поле СтавкаНДС извлекаемым из регистра сведений НоменклатураСтавкиНДС по Стране и Номенклатуре на ТекущуюДату. Всё равно берёт из Справочника Номенклатура.

Иду на радикальное: объявяляю в запросе динамического списка "Список"

ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС22) КАК СтавкаНДС,

то есть - всегда 22% константно.

Всё равно извлекает из справочника 18%!

Явно заполнения кодом колонки СтавкаНДС в коде модуля формы списка нету!..

В чём может быть подвох?

Тестирование и исправление базы не помогло!

antoneus

Ищите где подменяется запрос динамического списка.

PavelVaskan

Цитата: antoneus от 15 мар 2024, 17:19Ищите где подменяется запрос динамического списка.

Запрос не подменяется...

Я проверял!

antoneus

И как он выглядит, если поставить точку останова в конце процедуры ПриОткрытии?

LexaK

еще попробуйте сбросить пользовательские настройки
в форме саиска --- Еще --- Настроить список --- Еще  ---- Установить стандартные настройки --- Применить
если помогло нажмите: Спасибо!

PavelVaskan

antoneus, ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС22) КАК СтавкаНДС,
    СпрНоменклатура.ПереводНаЛатышскийЯзык КАК ПереводНаЛатышскийЯзык,
    СпрНоменклатура.ПереводНаЛитовскийЯзык КАК ПереводНаЛитовскийЯзык,
    СпрНоменклатура.ПереводНаЭстонскийЯзык КАК ПереводНаЭстонскийЯзык,
    СпрНоменклатура.ПереводНаАнглийскийЯзык КАК ПереводНаАнглийскийЯзык,
    ВЫРАЗИТЬ(ЕСТЬNULL(ВсеОстатки.ВНаличии, 0) КАК ЧИСЛО(15, 3)) КАК ВНаличииОстаток,
    ВЫРАЗИТЬ(ЕСТЬNULL(ВсеОстатки.Доступно, 0) КАК ЧИСЛО(15, 3)) КАК Доступно,
    ВЫРАЗИТЬ(ЕСТЬNULL(ДвижениеТоваровОбороты.ПланируемоеПоступлениеОборот, 0) КАК ЧИСЛО(15, 3)) КАК ПоступлениеОстаток
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        {ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СвободныеОстатки.Номенклатура КАК Номенклатура,
            СУММА(ТоварыНаСкладахОстатки.ВНаличииОстаток) КАК ВНаличии,
            ВЫБОР
                КОГДА &УпрощенныйРасчетДоступности = ИСТИНА
                    ТОГДА СУММА(СвободныеОстатки.ВНаличииОстаток - СвободныеОстатки.ВРезервеОстаток)
                ИНАЧЕ СУММА(СвободныеОстатки.ВНаличииОстаток - ВЫБОР
                            КОГДА ЕСТЬNULL(НастройкаХарактеристика.ВариантКонтроля, ЕСТЬNULL(НастройкаНоменклатура.ВариантКонтроля, НастройкаСклад.ВариантКонтроля)) = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомРезерва)
                                ТОГДА СвободныеОстатки.ВРезервеОстаток
                            КОГДА ЕСТЬNULL(НастройкаХарактеристика.ВариантКонтроля, ЕСТЬNULL(НастройкаНоменклатура.ВариантКонтроля, НастройкаСклад.ВариантКонтроля)) = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика)
                                ТОГДА ЕСТЬNULL(График.Количество, 0)
                            ИНАЧЕ 0
                        КОНЕЦ)
            КОНЕЦ КАК Доступно
        ИЗ
            РегистрНакопления.СвободныеОстатки.Остатки(, Склад В (&Склад) {(Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК СвободныеОстатки
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкаКонтроляОстатков КАК НастройкаХарактеристика
                ПО СвободныеОстатки.Склад = НастройкаХарактеристика.Склад
                    И СвободныеОстатки.Номенклатура = НастройкаХарактеристика.Номенклатура
                    И СвободныеОстатки.Характеристика = НастройкаХарактеристика.Характеристика
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкаКонтроляОстатков КАК НастройкаНоменклатура
                ПО СвободныеОстатки.Склад = НастройкаНоменклатура.Склад
                    И СвободныеОстатки.Номенклатура = НастройкаНоменклатура.Номенклатура
                    И (НастройкаНоменклатура.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
                    И (НастройкаХарактеристика.Склад ЕСТЬ NULL)
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкаКонтроляОстатков КАК НастройкаСклад
                ПО СвободныеОстатки.Склад = НастройкаСклад.Склад
                    И (НастройкаСклад.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
                    И (НастройкаСклад.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
                    И (НастройкаХарактеристика.Склад ЕСТЬ NULL)
                    И (НастройкаНоменклатура.Склад ЕСТЬ NULL)
                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    График.Склад КАК Склад,
                    График.Номенклатура КАК Номенклатура,
                    График.Характеристика КАК Характеристика,
                    ЕСТЬNULL(НастройкаХарактеристика.ВариантКонтроля, ЕСТЬNULL(НастройкаНоменклатура.ВариантКонтроля, НастройкаСклад.ВариантКонтроля)) КАК ВариантКонтроля,
                    -МИНИМУМ(График.КоличествоКонечныйОстаток) КАК Количество
                ИЗ
                    РегистрНакопления.ГрафикДвиженияТоваров.ОстаткиИОбороты(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), , День, ДвиженияИГраницыПериода, Склад В (&Склад) {(Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК График
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкаКонтроляОстатков КАК НастройкаХарактеристика
                        ПО График.Склад = НастройкаХарактеристика.Склад
                            И График.Номенклатура = НастройкаХарактеристика.Номенклатура
                            И График.Характеристика = НастройкаХарактеристика.Характеристика
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкаКонтроляОстатков КАК НастройкаНоменклатура
                        ПО График.Склад = НастройкаНоменклатура.Склад
                            И График.Номенклатура = НастройкаНоменклатура.Номенклатура
                            И (НастройкаНоменклатура.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
                            И (НастройкаХарактеристика.Склад ЕСТЬ NULL)
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкаКонтроляОстатков КАК НастройкаСклад
                        ПО График.Склад = НастройкаСклад.Склад
                            И (НастройкаСклад.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
                            И (НастройкаСклад.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
                            И (НастройкаХарактеристика.Склад ЕСТЬ NULL)
                            И (НастройкаНоменклатура.Склад ЕСТЬ NULL)
                ГДЕ
                    ВЫБОР
                            КОГДА ЕСТЬNULL(НастройкаХарактеристика.ВариантКонтроля, ЕСТЬNULL(НастройкаНоменклатура.ВариантКонтроля, НастройкаСклад.ВариантКонтроля)) = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроля.ОстаткиСУчетомГрафика)
                                ТОГДА ВЫБОР
                                        КОГДА НЕ НастройкаХарактеристика.ВариантКонтроля ЕСТЬ NULL
                                            ТОГДА ВЫБОР
                                                    КОГДА НастройкаХарактеристика.ГраницаГрафикаДоступности >= &Дата
                                                        ТОГДА График.Период <= НастройкаХарактеристика.ГраницаГрафикаДоступности
                                                    КОГДА НастройкаХарактеристика.СрокПоставки > 0
                                                        ТОГДА График.Период <= ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, НастройкаХарактеристика.СрокПоставки)
                                                    ИНАЧЕ ЛОЖЬ
                                                КОНЕЦ
                                        КОГДА НЕ НастройкаНоменклатура.ВариантКонтроля ЕСТЬ NULL
                                            ТОГДА ВЫБОР
                                                    КОГДА НастройкаНоменклатура.ГраницаГрафикаДоступности >= &Дата
                                                        ТОГДА График.Период <= НастройкаНоменклатура.ГраницаГрафикаДоступности
                                                    КОГДА НастройкаНоменклатура.СрокПоставки > 0
                                                        ТОГДА График.Период <= ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, НастройкаНоменклатура.СрокПоставки)
                                                    ИНАЧЕ ЛОЖЬ
                                                КОНЕЦ
                                        ИНАЧЕ ВЫБОР
                                                КОГДА НастройкаСклад.ГраницаГрафикаДоступности >= &Дата
                                                    ТОГДА График.Период <= НастройкаСклад.ГраницаГрафикаДоступности
                                                КОГДА НастройкаСклад.СрокПоставки > 0
                                                    ТОГДА График.Период <= ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, НастройкаСклад.СрокПоставки)
                                                ИНАЧЕ ЛОЖЬ
                                            КОНЕЦ
                                    КОНЕЦ
                            ИНАЧЕ ЛОЖЬ
                        КОНЕЦ
                    И График.КоличествоКонечныйОстаток < 0
               
                СГРУППИРОВАТЬ ПО
                    График.Номенклатура,
                    График.Характеристика,
                    График.Склад,
                    ЕСТЬNULL(НастройкаХарактеристика.ВариантКонтроля, ЕСТЬNULL(НастройкаНоменклатура.ВариантКонтроля, НастройкаСклад.ВариантКонтроля))) КАК График
                ПО СвободныеОстатки.Склад = График.Склад
                    И СвободныеОстатки.Номенклатура = График.Номенклатура
                    И СвободныеОстатки.Характеристика = График.Характеристика
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад В (&Склад) {(Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК ТоварыНаСкладахОстатки
                ПО СвободныеОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
                    И СвободныеОстатки.Характеристика = ТоварыНаСкладахОстатки.Характеристика
                    И СвободныеОстатки.Склад = ТоварыНаСкладахОстатки.Склад
       
        СГРУППИРОВАТЬ ПО
            СвободныеОстатки.Номенклатура) КАК ВсеОстатки
        ПО СпрНоменклатура.Ссылка = ВсеОстатки.Номенклатура}
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвижениеТоваров.Обороты(, &Дата, , Склад В (&Склад) {(Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК ДвижениеТоваровОбороты
        ПО СпрНоменклатура.Ссылка = ДвижениеТоваровОбороты.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураСтавкиНДС.СрезПоследних(&Дата, ) КАК НоменклатураСтавкиНДССрезПоследних
        ПО (НоменклатураСтавкиНДССрезПоследних.Номенклатура = СпрНоменклатура.Ссылка)
            И (НоменклатураСтавкиНДССрезПоследних.Страна = &Страна)
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}

PavelVaskan

Цитата: LexaK от 15 мар 2024, 17:28еще попробуйте сбросить пользовательские настройки
в форме саиска --- Еще --- Настроить список --- Еще  ---- Установить стандартные настройки --- Применить

Не помогло!!!

LexaK

PavelVaskan, регистр присоединили а обращение к его ресурсу - НЕТ!

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


НоменклатураСтавкиНДССрезПоследних --  сделайте поиск по этому слову в тексте запроса
если помогло нажмите: Спасибо!

Максим75

LexaK, да там вроде жестко устанавливается в запросе, не из регистра сведений.
просто значение перечисления

ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС22) КАК СтавкаНДС

вот здесь.

PavelVaskan

ЧИТАЙ ВЫШЕ:

Цитата: PavelVaskan от 15 мар 2024, 17:17Иду на радикальное: объявяляю в запросе динамического списка "Список"

ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС22) КАК СтавкаНДС,

то есть - всегда 22% константно.

Всё равно извлекает из справочника 18%!

Я это для проверки установил: для товара Primer всё равно показывает 18%, то есть - значение из справочника, а не из запроса!


Теги: #1c8.3 #УТ11 

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

Рейтинг@Mail.ru

Поиск