Установка цен в 1С:Управление торговлей 11. Произвольный запрос к данным ИБ

04.04.16

Разработка - Запросы

Как формировать цены с помощью произвольного запроса в Управление Торговлей 11

Для понимания работы с видами цен советую прочитать эту статью //infostart.ru/public/195575/ - довольно интересно и с картинками. 

Для создания и редактирования схем СКД необходимо запустить управление торговлей в толстом клиенте. Создать просто схему СКД это еще не все. Во-первых, итоговая таблица для получения цены должна соответствовать определенному виду и должна иметь следующие поля:

Основные:

  • Номенклатура – тип Справочник.Номенклатура;
  • Валюта – тип Справочник.Валюта;
  • Цена – тип Число;

Дополнительные:

  • Характеристика – тип Справочник.ХарактеристикиНоменклатуры (Если в организации ведется учет по Характеристикам)
  • Упаковка – тип Справочник.УпаковкиНоменклатуры (Если в организации ведется учет по Упаковкам);
  • Коэффициент – тип Число (Если в организации ведется учет по Упаковкам);

Всего итоговая таблица должна содержать как минимум 6 полей.

Самый простой вариант появляется при создании схемы с нуля, при выборе «Произвольной» схемы:

ВЫБРАТЬ
                ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
                ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
                ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка) КАК Упаковка,
                1 КАК Коэффициент,
                0 КАК Цена,
                ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК Валюта
{ВЫБРАТЬ
                Номенклатура.*,
                Характеристика.*,
                Упаковка.*,
                Коэффициент,
                Цена,
                Валюта.*}

Если вы сейчас попытаетесь записать цену, то появится такого рода ошибка: «Схема компоновки данных для заполнения цен должна содержать поле "Валюта" с типом значения "Валюта".» Для ее решения необходимо напрямую указать тип значения для каждого поля СКД.

 

Когда происходит расчет цены, то программно накладывает отбор по Номенклатуре и Характеристике, таким образом не нужны самим накладывать его. Один из вариантов получения номенклатуры:

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

Вариант получения номенклатуры от разработчиков Управление торговлей 11:

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

Существуют также предопределенные параметры, которые можно использовать в запросе:

  • &ВидЦены – содержит вид цены, для которого рассчитывается цена
  • &ДатаДокумента – принимает значение либо дату документа установки цен, либо если идет расчет прайса, то дату в форме, если дата не заполнена, то принимает значение ТекущаяДата()
  • &ИспользуетсяОтборПоСегментуНоменклатуры – принимает значение Ложь или Истина.

Есть параметры, которые доступные только из документа Установка цен:

  • &Основание – содержит документ на основании которого вводится документ Установка Цен, например Поступление товаров и услуг
  • &ЭтоВводНаОсновании – принимает значение Ложь или Истина, в зависимости от того заполнен ли ДокументОснование.

В форме заполнения прайса эти параметры не доступны, для более корректной работы с этими параметрами следует заполнить для них значения по умолчанию на закладке «параметры» СКД, например, &ЭтоВводНаОсновании – значение Ложь.

Для предопределенных параметров следует выставлять ограничение доступности.

Для всех остальных параметров, которые вы вводите следует либо заполнять по умолчанию, либо заполнять при первом создании цены и в дальнейшем не менять. Для примера можно посмотреть как реализована «Цена поступления»

Добавлено 28.02.2015

По просьбе моих многочисленных читателей расширяю статью на конкретном примере. Наверное, самым стандартным мерилом цены товара является его себестоимость, и вот рассмотрим простую задачу необходимо получить цену поступления, прибавить к ней доп расходы и прибавить к получившейся цене определенный процент наценки.

Порядок действий

  1. Открываем справочник «Виды цен» добавляем свою цену, называем ее как-то по-особому, например, «моя первая цена» и нажимаем «использовать полные возможности», затем выбираем «Произвольный запрос к данным ИБ» -> Схема компоновки данных «Произвольный» и нажимаем «редактировать»
  2. На открывшейся панели нажимаем «редактировать схему компоновки»

Планируем общую логику работы:

А) Вначале получаем номенклатуру и ее характеристику;

Б) получаем для них последний документ поступления, здесь может быть два варианта, если мы вводим цену из документа установки цен и на основании поступления, то получим поступление очень просто - &Основание, если же оно пустое или вводится из «прайс листа», то необходимо получить последнее проведенное поступление не превышающую даты установки цен (&ДатаДокумента).

3. Получить сколько процентов составляет одна единица номенклатуры от цены поступления и цену номенклатуры (если бы нам нужно было только получить цену поступления, то на этом можно остановиться).

4. Получаем сумму всех поступлений товаров и услуг, где в аналитике указано это поступление товаров и услуг (мы не будем определять, как ложатся расходы на себестоимость – пусть будут пропорционально).

5 Затем получаем цену номенклатуры: цена поступления + процент от поступления * сумма доп расходов.

Начнем по порядку: для получения номенклатуры будем использовать типовую часть запроса через сегменты номенклатуры.

Отдельным запросом введем видцены и его рекзивизит «ЦенаВключаетНДС» - он понадобится для корректной установки цены на поступление, в этом запросе мы используем известный на параметры &ВидЦены, чтобы получить данные по текущей цене.

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
            ВидЦены.Ссылка КАК ВидЦены,
            ВидЦены.ЦенаВключаетНДС
ПОМЕСТИТЬ ВТВидыЦен
ИЗ
            Справочник.ВидыЦен КАК ВидЦены
ГДЕ
            ВидЦены.Ссылка = &ВидЦены
;

Теперь нам нужно получить документ поступления и цену номенклатуры из этого документа. Может быть 2 случая, либо мы вводим установку цен на основании документа поступления и тогда «основание» нам известно, либо устанавливаем через форму прайс листа, где основание неизвестно и нам придется искать последний документ поступления до ввода прайса. Рассмотрим каждый случай по отдельности.

Какие поля нам нужно получить? Это номенклатура, характеристика, упаковка (если ведется учет по упаковкам), валюта (хотя я не буду ее получать, есть более простой способ ее получения), цена (с учетом НДС или без нее) и ПроцентОтПоступления (Процент отношения суммыдокумента от цены на номенклатуры, необходим, чтобы потом получить часть суммы от доп расходов и распределить ее на цену). В первом случае получить документ очень просто:

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
            ПоступлениеТоваровУслугТовары.Ссылка,
            ОтборПоСегментуНоменклатуры.Номенклатура,
            ОтборПоСегментуНоменклатуры.Характеристика,
            ВЫРАЗИТЬ(ВЫБОР
                                   КОГДА ВТВидыЦен.ЦенаВключаетНДС
                                                                       И ПоступлениеТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
                                                           ИЛИ НЕ ВТВидыЦен.ЦенаВключаетНДС
                                                                       И НЕ ПоступлениеТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
                                               ТОГДА ПоступлениеТоваровУслугТовары.Цена
                                   КОГДА ВТВидыЦен.ЦенаВключаетНДС
                                                           И НЕ ПоступлениеТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
                                               ТОГДА (ПоступлениеТоваровУслугТовары.Сумма + ПоступлениеТоваровУслугТовары.СуммаНДС) / ПоступлениеТоваровУслугТовары.Количество
                                   КОГДА НЕ ВТВидыЦен.ЦенаВключаетНДС
                                                           И ПоступлениеТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
                                               ТОГДА (ПоступлениеТоваровУслугТовары.Сумма - ПоступлениеТоваровУслугТовары.СуммаНДС) / ПоступлениеТоваровУслугТовары.Количество
                        КОНЕЦ КАК ЧИСЛО(15, 2)) КАК Цена,
            ВЫБОР
                        КОГДА ПоступлениеТоваровУслугТовары.Цена = 0
                                   ТОГДА 0
                        ИНАЧЕ ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Ссылка.СуммаДокумента / ПоступлениеТоваровУслугТовары.Цена КАК ЧИСЛО(15, 3))
            КОНЕЦ КАК ПроцентОтПоступления,
            ПоступлениеТоваровУслугТовары.Упаковка
ПОМЕСТИТЬ ВТДокументПоступления
ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОтборПоСегментуНоменклатуры КАК ОтборПоСегментуНоменклатуры
                        ПО ПоступлениеТоваровУслугТовары.Номенклатура = ОтборПоСегментуНоменклатуры.Номенклатура
                                   И ПоступлениеТоваровУслугТовары.Характеристика = ОтборПоСегментуНоменклатуры.Характеристика
                                   И (ПоступлениеТоваровУслугТовары.Ссылка = &Основание)
                                   И (&ЭтоВводНаОсновании),
            ВТВидыЦен КАК ВТВидыЦен

Здесь использованы типовые параметры: &Основание и &ЭтоВводНаОсновании – и запрос будет выполняться, когда «ЭтоВводНаОсновании» = Истина;

Теперь получим запрос, который будет исполняться, если «ЭтоВводНаОсновании» = Ложь, а затем объединим его с имеющимся. Второй запрос только отличается тем, что для него рассчитана Дата поступления номенклатуры, а затем она связывается с поступлением, как и Основание в первом запросе, поэтому привожу только код получения последней даты поступления.

 

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

В этом запросе следует обратить внимание на то, что группировка происходит по номенклатуре, хотя по идее можно просто получить максимум от даты без учета номенклатуры, но дело в том, что при программном заполнении СКД попадает не строчка с номенклатурой, а целая таблица, которая содержит все номенклатуры документа установки, из-за этого, если я не буду ставить группировку, то я могу получить дату последнего поступления не нужной нам номенклатуры. Также в этом запросе я использовал новый Параметр &ТекДата – это пользовательский параметр, которому я присвою выражение «ТекущаяДата()». Я ввел этот параметр так как &ДатаДокумента не содержит время, а только дату, это связано с тем, что сам механизм расстановки времени документа Установи цен номенклатуры построен таким образом, что первому документу присваивается дата на 0:00:00, а к следующему прибавляется секунда, поэтому есть даже специальный реквизит, который указывает порядок документа в пределах дня, на самом деле, это количество секунд, прошедшие с нулевой даты.

Осталось получить расходы на поступление – упростим задачу, получим любые документы поступления, содержащие в табличной части ссылку на наш документ поступления, без учета аналитики распределения себестоимости (везде себестоимость будет раскидываться пропорционально). Пишем так:

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

 

И остается последний штрих, это связать допрасходы с ценой поступления, добавить валюту и коэффициент упаковки, а также добавить процент наценки; я делаю это так:

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
            ВТДокументПоступления.Номенклатура,
            ВТДокументПоступления.Характеристика,
            (1 + &ПроцентНаценки / 100) * (ВТДокументПоступления.Цена + ЕСТЬNULL(ВТДопРасходы.ДопРасход, 0)) КАК Цена,
            ВТДокументПоступления.Упаковка,
            ЕСТЬNULL(ВТДокументПоступления.Упаковка.Коэффициент, 1) КАК Коэффициент,
            Константы.ВалютаРегламентированногоУчета КАК Валюта
ИЗ
            ВТДокументПоступления КАК ВТДокументПоступления
                        ЛЕВОЕ СОЕДИНЕНИЕ ВТДопРасходы КАК ВТДопРасходы
                        ПО ВТДокументПоступления.Ссылка = ВТДопРасходы.ДокументПоступления
                                   И ВТДокументПоступления.Номенклатура = ВТДопРасходы.Номенклатура
                                   И ВТДокументПоступления.Характеристика = ВТДопРасходы.Характеристика
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Константы КАК Константы
                        ПО (ИСТИНА)

Запрос готов, теперь нам остается: проставить типы для полей на закладке «наборы данных», как я говорил ранее. Проставить для всех параметров, кроме ПроцентНаценки,  ограничение доступности. Проставить для &ТекДата выражение «ТекущаяДата()».

После всего этого нажимаем «ОК». На закладке «Параметры» ставим желаемый процент наценки и Записываем цену. Наша цена готова.

Готовый вариант такой схемы прикрепил в конце статьи.

З.Ы. Если мои объяснения показались слишком длинными и занудными – простите, я не большой знаток как писать обучающие лекции. Надеюсь, было все понятно, свои пожелания и замечания оставляйте в комментариях

 

Мои работы:

Общее

Перенос данных XML с Анализом и выборочной загрузкой.

Универсальный редактор таблиц и движения документа (LITE) (Обычная Форма)

Универсальный редактор таблиц и движения документа (PRO) (Обычная Форма)

Универсальный редактор Таблиц и Движений документов (Управляемая форма)

Запуск 1С под другим пользователем без пароля.

Защита разработок от копирования (Обычная и Управляемая форма)

 

Управление торговлей 11

Установка цен в УТ11. Произвольный запрос к данным ИБ

 

ЗУП 2.5

Скрываем неиспользуемые виды расчета

Резервы отпусков в Документе "Отражение Зарплаты в Регламентированном Учете" (Оценочные Обязательства)

 

Комплексная И УПП

Форма работы с сотрудниками, как из зуп 2.5

Произвольный запрос к данным ИБ Установка цен Вид цены Виды Цена Управление Торговлей УТ составление запроса торговлей 11 Редактирование

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121525    670    389    

709

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5735    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    1994    2    Yashazz    0    

29

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6270    30    mkalimulin    25    

49

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1736    vandalsvq    7    

29

Объектная модель запроса "Схема запроса" 2

Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5379    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16151    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. cleaner_it 220 22.02.15 10:15 Сейчас в теме
2. karpik666 3760 22.02.15 10:20 Сейчас в теме
(1) cleaner_it, Какие есть предложения по расширению статьи?=)
3. grfru 23.02.15 18:08 Сейчас в теме
Маловато. Было бы отлично с подробным разбором и примером.
4. karpik666 3760 23.02.15 18:25 Сейчас в теме
(3) grfru, хорошо, как будет возможность, добавлю в статью разбор типового запроса цены и на ее основе создам свой.
5. karpik666 3760 27.02.15 20:57 Сейчас в теме
Так как к статье нельзя крепить файлы, то вот готовая схема СКД цены из статьи
Прикрепленные файлы:
Моя первая цена.xml
6. aramius 11 19.03.15 19:18 Сейчас в теме
Подскажите, какой Запрос сделать, чтобы из Цены Дилер, получить расчетную цену "Дилер без НДС",

Просто делить на 1.18 нельзя, т.к. у всех товаров НДС разный.
7. karpik666 3760 19.03.15 19:45 Сейчас в теме
(6) aramius, на вскидку можно из номенклатуры взять саму ставку, а затем в запросе через Выбор прописывать процент на который делится. Например
ЦенаДилера / Выбор Когда Номенклатура.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС18) Тогда 1.18 
Когда Номенклатура.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС10) Тогда 1.1  
Иначе 1 Конец
8. vit1c 16.07.15 17:48 Сейчас в теме
Какой будет запрос для определенного вида цены?
9. vit1c 16.07.15 17:53 Сейчас в теме
Что -то типа?:
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Характеристика,
	ЦеныНоменклатурыСрезПоследних.Цена,
	ЦеныНоменклатурыСрезПоследних.Валюта,
	ЦеныНоменклатурыСрезПоследних.Упаковка,
	1 КАК Коэффициент
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
Показать
10. karpik666 3760 16.07.15 18:24 Сейчас в теме
(9) vit1c, ее не нужно получать, при расчетах вид цены берется из документа установки цен, и сам автоматически подставляется в ее расчет.
Если просто необходимо получить уже установленную цену для номенклатуры, то в принципе такой запрос подойдет.
11. azovgsm 02.08.15 01:11 Сейчас в теме
Подскажите пожалуйста почему в при выборе типового запроса "Цены поступления" в некоторых случаях вставляется Цена без НДС а в некоторых Цена с НДС. Заранее благодарен!
12. karpik666 3760 02.08.15 07:33 Сейчас в теме
(11) azovgsm, может у вас в самой номенклатуре указано, что она "без ндс", поэтому и цена без нее.
13. azovgsm 02.08.15 12:54 Сейчас в теме
Спасибо за ответ. Действительно, так и есть. В справочнике номенклатура стоит Цена Без НДС, но если ставить НДС к примеру 10%, то ничего не изменяется, в документ установка цен все равно попадает цена - НДС.
14. karpik666 3760 03.08.15 05:37 Сейчас в теме
(13) azovgsm, а посмотрите еще в документе поступления, там цена с ндс или без указан
15. Кошкин Василий 19.01.16 23:28 Сейчас в теме
УТ11.1
Вопрос такой:
Можно ли сделать так, чтобы вид цен РекомендуемаяЦена заполнялся по формуле
РекомендуемаяЦена = цена поставщика Завод , (Завод - это партнер(поставщик) из справочника)
не на основании Заказа поставщику или Поступления , а просто в документе Установка цен или в с рабочего места Цены(Прайс-лист)
Поясню.
От поставщика" Завод" мы получаем прайс на товар с ценой "Рекомендуемая". По этой цене мы продаем нашим клиентам товар, делая различные сложные скидки. А также по этой же Рекомендуемой цене мы покупаем товар у поставщика Завод, но скидки, конечно, Завод нам делает гораздо большие и они тоже сложные. Скидки разные на разные товары (от 10 до 50%). Скидки зависят от того, предоплата или отсрочка. сколько дней отсрочка, какой товар, и проч. в общем сложные скидки. Скидки у нас настроены, все нормально.
Но, мы вынуждены заводить (обновлять) регулярно объемный прайс Рекомендуемой цены.ВРУЧНУЮ ДВАЖДЫ.
Один раз - создавая Цены поставщика (Прайс-лист), колонка цены (вид цены) - Рекомендованная, поставщик - Завод.
Второй раз - Создавая свой Цены (прайс-лист), колонки прайс-листа (вид цен) РекомендуемаяЦена.
Нам не хочется заводить одни и те же цифры (Рекомендованный прайс Завода) в наш прайс и в прайс поставщика. Хочется сначала заполнить один прайс поставщика, а из него - автоматически -прайс наш.
16. karpik666 3760 22.01.16 09:37 Сейчас в теме
(15) Кошкин Василий, здравствуйте, попробуйте настроить вторую цена, как рассчитываемую на основании первой, в проценте надбавки указать 0
17. InWith 26 23.01.16 16:22 Сейчас в теме
(0) Спасибо за статью, очень полезно.

Задался настройкой данного механизма. Смог настроить произвольным запросом один вид цен (ВидЦен1). Сделал установку цен для ВидЦен1. Теперь хочу другим произвольным запросом рассчитать ВидЦен2 по формуле, например ВидЦен1 * x (где x - получаю из БД). Пытался получить ВидЦен1 как у (9), в конструкторе запрос работает как нужно, но в виде цен - не работает.

Уважаемый karpik666, было бы не плохо, если бы Вы объяснили как вид цен рассчитанной произвольным запросом, в другом виде цен, который настраивается произвольным запросом... )))
18. karpik666 3760 23.01.16 16:52 Сейчас в теме
(17) InWith, здравствуйте, к сожалению сейчас с управлением торговлей не работаю, поэтому как-то подробней тему не смогу раскрыть.
19. Spacer 355 05.07.16 12:40 Сейчас в теме
Добрый день! Хорошая статья.
Не подскажете как можно сделать следующее:
В документ реализации нужно включать стоимость доставки. Стоимость доставки рассчитывается как 10% от стоимости всего заказа.
Хотелось бы реализовать такую схему типовыми средствами.
Создаю номенклатуру "Доставка товара" с типом услуга. В типовом соглашении об условиях продаж на закладке "Уточнение цен по товарам"
добавляю номенклатуру "Доставка товара" указываю вид цены "Доставка".
В карточке этого вида цены указываю: использовать "при продаже клиентам"; способ задания цены "произвольный запрос к данным ИБ".
В поле схема компоновки данных "произвольный".
И вот теперь вопрос: как в этой схеме получить стоимость доставки путем суммирования стоимости всех товаров в заказе и умножения этой стоимости на 10%.
Возможно ли это? Или может я пошел не тем путем и лучше реализовать все это как то по другому?
20. h00k 50 05.07.16 13:00 Сейчас в теме
(19) Spacer,
Или может я пошел не тем путем и лучше реализовать все это как то по другому?

Правильней, да и проще, реализовать обработкой заполнения для документа.
21. kassbar 157 06.08.16 11:58 Сейчас в теме
23. karpik666 3760 06.08.16 13:47 Сейчас в теме
(21) kassbar, здравствуйте, пришлите мне в сообщении сам запрос, все ли в нем верно.
24. kassbar 157 07.08.16 09:54 Сейчас в теме
(23)
Привет, вот запрос простейший, мне нужно установить цену в зависимости от веса номенклатуры. единственный параметр - коэфиициент, ставил и программно и при установке цены, не работает..


25. karpik666 3760 07.08.16 11:05 Сейчас в теме
(24) kassbar, ну у меня тоже пишет, что параметры не заполнены, но цену считает, а вот запрос, у вас какой-то странный. Вы не все делали, как написано в статье. В в полях номенклатура и валюта должны быть ссылочные поля, а не строки.
22. kassbar 157 06.08.16 11:59 Сейчас в теме
все сделал по инструкции, ввел значение параметра, но ничего не считает, пишет параметр не заполен
26. karpik666 3760 07.08.16 11:06 Сейчас в теме
Должно быть Валюта.Ссылка КаК Валюта, и Номенклатура.Ссылка КАК Номенклатура.
27. kassbar 157 07.08.16 16:57 Сейчас в теме
я уже по-всякому писал, и ссылка, и с фигурными скобками и без, не считает все равно
28. karpik666 3760 07.08.16 17:49 Сейчас в теме
(27) Загрузите данную схему себе, у меня она точно работает. Плюс такие настройки должны быть в самой цене. А в прайс-листе когда будете рассчитывать цены - при заполнении ничего не проставится и нужно нажать "Рассчитать вычисляемые".
Прикрепленные файлы:
Моя первая цена.xml
29. kassbar 157 08.08.16 08:47 Сейчас в теме
Спасибо )
Добавьте пож-та в статью этот пункт "А в прайс-листе когда будете рассчитывать цены - при заполнении ничего не проставится и нужно нажать "Рассчитать вычисляемые".
Собственно в нем и была вся загвоздка, просто по нажатию кнопки "сформировать" расчета цены не происходит, только заполняется колонка ном-ры.
Все работает, супер !
30. karpik666 3760 08.08.16 13:07 Сейчас в теме
(29) kassbar, пожалуйста, публикацию обновлю и добавлю данную информацию. Если же статья понравилась, то ставь плюс, очень мотивирует.
31. Prizrak8000 04.08.17 23:49 Сейчас в теме
Привет. Помоги разобраться. Не как ни могу запустить выдаёт ошибку. Ошибка в схеме компоновки данных
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(67, 59)}: Неверные параметры "Справочник.УпаковкиНоменклатуры.ПустаяСсылка"
КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка = ЗНАЧЕНИЕ(<<?>>Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
32. karpik666 3760 05.08.17 14:47 Сейчас в теме
(31) Здравствуйте, судя по данной ошибке, в конфигурации нет справочника "УпаковкиНоменклатуры", проверьте может он был переименован на "Упаковки", либо его вообще убрали
33. Prizrak8000 06.08.17 09:11 Сейчас в теме
Здравствуйте, проверил такого справочника нету, что теперь делать? Спасибо.
34. karpik666 3760 06.08.17 13:05 Сейчас в теме
(33) поправить текст запроса
35. Prizrak8000 08.08.17 15:17 Сейчас в теме
Вы поможете с поправкой текста. Если вам не сложно. И то я этого не понимаю
36. user810065 08.08.17 15:18 Сейчас в теме
Добавьте пож-та в статью этот пункт "А в прайс-листе когда будете рассчитывать цены - при заполнении ничего не проставится и нужно нажать "Рассчитать вычисляемые".
Собственно в нем и была вся загвоздка, просто по нажатию кнопки "сформировать" расчета цены не происходит, только заполняется колонка ном-ры.
Все работает, супер !
37. Zakuskin 11.09.17 12:00 Сейчас в теме
Доброго времени суток. А есть возможность в типовой произвести наценку таким образом:
Закупочная цена от 0р до 999р - наценка 50%
Закупочная цена от 1000р до 10000р - наценка 40% и т.п.?
Конфигурация КА2
38. karpik666 3760 11.09.17 12:02 Сейчас в теме
(37) Здравствуйте, давно работал с УТ 11, поэтому могу не помнить. но разве в типовом функционале нельзя задать шкалу с уловиями и размером наценки без программирования формулы в СКД?
39. Zakuskin 11.09.17 12:06 Сейчас в теме
(38)
ром наценки без программирования формулы в СКД?

Возможно, что есть такая возможность, но за последнюю неделю я ее не смог найти. К тому же, на сколько я понял, в КА2 есть только 1 вид цен - Прайс-лист или я ошибаюсь?
Прикрепленные файлы:
40. karpik666 3760 11.09.17 12:16 Сейчас в теме
(39) внутри справочника можно завести разные виды цен
Zakuskin; +1 Ответить
41. Zakuskin 11.09.17 13:30 Сейчас в теме
(40)с видами цен разобрался, нужно было включить в настройках "Несколько видов цен".
Но как включить наценку по диапазонам? Вычитал на форуме, что можно это сделать с помощью документа «Установка диапазонов базовых цен», но в конфигурации не могу найти ничего похожего на этот документ.
42. Zakuskin 12.09.17 15:09 Сейчас в теме
Проблема решена, всем спасибо за участие.
Итак, мой вариант решения проблемы, может кому будет полезно.
Имеем необходимые диапазоны наценок от закупочной цены:
От 0 р. до 100 р. - 100%
От 100 р. до 500 р. - 50%
От 500 р. до 1000 р. - 40%
От 1000 р. до 5000 р. - 35%
От 5000 р. до 10000 р. - 30%
От 10000 р. до 20000 р. - 25%
От 20000 р. до 30000 р. - 20%
Свыше 30000 р. - 15%
Создаем вид цены "Закупочная" со способом задания цены "Произвольный запрос к данным ИБ" со схемой компановки данных "Цена поступления"
Создаем вид цены "Розничная" со способом задания цены "Произвольная формула от других видов цен", саму же формулу нужно писать под определенные условия, в моем случае формула получилась следующая:
?([Закупочная] <= 100,[Закупочная] * 2,?([Закупочная] > 30000,[Закупочная] * 1.15,?([Закупочная] <= 500,[Закупочная] * 1.5,?([Закупочная] > 20000,[Закупочная] * 1.2,?([Закупочная] <= 1000,[Закупочная] * 1.4,?([Закупочная] > 10000,[Закупочная] * 1.25,?([Закупочная] <= 5000,[Закупочная] * 1.35,[Закупочная] * 1.3)))))))

Расставляем необходимые галочки, задаем пороги округления и срабатывания и вуаля, заработало.
Согласен, решение кривовато, но всё таки это решение:)
43. ColaLee 13.11.17 18:20 Сейчас в теме
Здравствуйте!
Если документ Установка цен делается имеет документ основание, то все просто и мой вариант расчета цен работает:
ВЫБРАТЬ
	1 КАК Коэффициент,
	ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
	ПоступлениеТоваровУслугТовары.Характеристика КАК Характеристика,
	ВЫБОР
		КОГДА ПоступлениеТоваровУслугТовары.Номенклатура.Ссылка В ИЕРАРХИИ (&Посуда)
			ТОГДА ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 0.6
		КОГДА ПоступлениеТоваровУслугТовары.Номенклатура.Ссылка В ИЕРАРХИИ (&Игрушки)
			ТОГДА ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 0.55
		ИНАЧЕ ПоступлениеТоваровУслугТовары.Цена
	КОНЕЦ КАК Цена,
	ВалютаРегламентированногоУчета.Значение КАК Валюта,
	ПоступлениеТоваровУслугТовары.Упаковка КАК Упаковка
ИЗ
	Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары,
	Константа.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
ГДЕ
	ПоступлениеТоваровУслугТовары.Ссылка = &Основание
Показать


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

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

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ВЫБОР
		КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка В ИЕРАРХИИ (&Игрушки)
			ТОГДА ЦеныНоменклатурыСрезПоследних.Цена + ЦеныНоменклатурыСрезПоследних.Цена * 0.6
		КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка В ИЕРАРХИИ (&Одежда)
			ТОГДА ЦеныНоменклатурыСрезПоследних.Цена + ЦеныНоменклатурыСрезПоследних.Цена * 0.55
		ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена
	КОНЕЦ КАК Цена,
	ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
	ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
	ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
	1 КАК Коэффициент
ИЗ
	ОтборПоСегментуНоменклатуры КАК ОтборПоСегментуНоменклатуры
		внутреннее СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаДокумента, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
		ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ОтборПоСегментуНоменклатуры.Номенклатура)
			И (ЦеныНоменклатурыСрезПоследних.Характеристика = ОтборПоСегментуНоменклатуры.Характеристика)
Показать
44. ColaLee 14.11.17 09:55 Сейчас в теме
Разобрался!
Нужно было переменную &ВидЦены назвать по другому. В эту передается обрабатываемая цена. Я назвал &ВидЦены_Закуп, добавил в параметры и присвоил цену закупа. Вот рабочий вариант:
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ВЫБОР
		КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка В ИЕРАРХИИ (&Игрушки)
			ТОГДА ЦеныНоменклатурыСрезПоследних.Цена + ЦеныНоменклатурыСрезПоследних.Цена * 0.6
		КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка В ИЕРАРХИИ (&Одежда)
			ТОГДА ЦеныНоменклатурыСрезПоследних.Цена + ЦеныНоменклатурыСрезПоследних.Цена * 0.55
		ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена
	КОНЕЦ КАК Цена,
	ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
	ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
	ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
	1 КАК Коэффициент
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаДокумента, ВидЦены = &ВидЦены_Закуп) КАК ЦеныНоменклатурыСрезПоследних
Показать
55. V_Izzy 19.03.21 09:40 Сейчас в теме
(44) Спасибо, тоже не работал запрос, переименование помогло
45. zemskov 64 12.12.17 22:21 Сейчас в теме
Доброго времени суток!
Вдохновился статьёй, но до конца недопонял.
Как на СКД сделать цену , чтобы она помимо наценки на другой вид цен добавляла копеечки в зависимости от типа упаковки. Чем мельче упаковочка, тем больше копеечек.
С уважением, Земсков В.К.
46. softgarant 62 20.09.18 12:56 Сейчас в теме
смутила меня такая трактовка
&ДатаДокумента – принимает значение либо дату документа установки цен, либо если идет расчет прайса, то дату в форме, если дата не заполнена, то принимает значение ТекущаяДата()

с этим
принимает значение либо дату документа установки цен

я согласен, закодировал проверку на дату и поигрался датой документа установки цен (скрины прикрепил)
но, с этим
если идет расчет прайса, то дату в форм

во первых, у меня это не работает, неважно какая дата прайса, цена с установки такая как в документе Установки цен
Прикрепленные файлы:
47. пользователь 17.07.19 16:38
Сообщение было скрыто модератором.
...
48. пользователь 17.07.19 16:50
Сообщение было скрыто модератором.
...
49. пользователь 17.07.19 18:39
Сообщение было скрыто модератором.
...
50. ma-mon-t 03.08.19 14:28 Сейчас в теме
Здравствуйте, не понимаю как работают стандартные СКД при способе задания цены "Произвольный запрос к данным ИБ". Выбираю, например, "минимальные цены поставщиков", нажимаю "редактировать". Добавляю в отбор "виды цены поставщика", выбираю конкретную цену поставщика, сохраняюсь. В Прайс-листе рассчитываю вычисляемые. Что за цена выскакивает, непонятно. На данный товар единожды устанавливалась цена поставщика. Оптовая -27290 и розничная - 34110, но в прайсе появляется 28425., что это за цифра, это и не средняя, ни минимальная, почему не работает отбор? Какую бы я ни использовал стандартную СКД использующую цену поставщика появляется -28425.Они, что не настроены на самом деле?
51. ma-mon-t 05.08.19 12:36 Сейчас в теме
Разобрался, НДС надо было проставить во всех ценах, и в ценах поставщиков и в настраиваемых.
52. Aleksandr_prof 191 23.12.20 09:36 Сейчас в теме
Пробую сделать, не работает в документе установка цен номенклатуры. В других документах по команде "заполнить по виду цен" тоже не работает. Пытаюсь запросам обратиться к реквизиту Вес и умножить на коэффициент. Такое ощущение, что запрос не понимает, какая это номенклатура.

Типовой произвольный запрос:
ВЫБРАТЬ
	ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
	0 КАК Цена
{ВЫБРАТЬ
	Номенклатура.*,
	Цена}


Мой запрос в СКД:
ВЫБРАТЬ
	ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
	Выразить(Номенклатура.ор_ВесВГраммах * 1000 КАК Число(15,2)) КАК Цена
{ВЫБРАТЬ
	Номенклатура.*,
	Цена}
ИЗ
	Справочник.Номенклатура КАК Номенклатура
53. karpik666 3760 23.12.20 10:26 Сейчас в теме
(52) Здравствуйте, этой статье уже почти 6 лет, скорее всего функционал уже поменялся, актуально было для той версии Управление Торговлей, сейчас с торговлей не работаю.
54. Aleksandr_prof 191 23.12.20 10:53 Сейчас в теме
(53) Да у меня старая версия программа "Розница. Ювелирный магазин". Основной принцип всё равно не ясен. Ладно, понял.
Оставьте свое сообщение