В процессе работы с конфигурацией «1С:Управление торговлей» версии 11.5 пользователи часто сталкиваются с ситуацией, когда при создании документа Установка цен номенклатуры на основании Приобретения товаров и услуг табличная часть с ценами остается пустой. Это происходит даже в тех случаях, когда в виде цены корректно выбран способ задания «Произвольный запрос к данным ИБ» и используется стандартная схема «Цены поступления».
Давайте подробно разберем, почему это происходит, проанализируем настройки системы и выясним, как заставить программу автоматически подтягивать нужные данные. В этой статье мы совместно пройдем по всем этапам проверки — от простых настроек интерфейса до анализа схемы компоновки данных.
Первым делом проанализируем настройки самого документа-основания. Система 1С:УТ 11.5 работает таким образом, что данные для установки цен часто берутся не напрямую из табличной части документа Приобретение товаров и услуг, а из регистров сведений, в которые эти данные должны попасть при проведении поступления.
Рассмотрим порядок действий:
Приобретение товаров и услуг, который является основанием для установки цен.Если этот флаг не установлен, запись в регистр ЦеныНоменклатурыПоставщиков не производится. Следовательно, стандартный запрос «Цены поступления», встроенный в систему, не находит актуальных записей на дату документа и возвращает пустой результат. Установим этот флаг, перепроведем документ и попробуем снова заполнить установку цен.
Одной из наиболее скрытых причин является ограничение периода, за который система ищет документы поступления. В настройках вида цены при использовании схемы Цены поступления существуют параметры, ограничивающие выборку данных.
Выясним причину, изучив настройки компоновки данных:
Период или используется ограничение «Глубина анализа».Если документ поступления был создан датой, которая выходит за рамки установленного периода (например, документ от прошлого месяца, а запрос ищет данные только за последние 10 дней), цены не будут подтянуты. Проанализируем ситуацию: если мы пытаемся установить цены сегодня по документу, который был проведен неделю назад, убедимся, что параметры запроса позволяют «видеть» эту дату.
Разберем еще один важный момент — сопоставление типов цен. Программа должна понимать, какую именно цену из поступления ей нужно взять. В документе Приобретение товаров и услуг цена может быть указана как «включая НДС» или «без НДС».
Если в настройках нашего вида цены 1С ищет данные по фильтру ЦенаБезНДС, а в поступлении зафиксирована только ЦенаСНДС, запрос может отработать некорректно. Нам необходимо проверить:
Проанализируем состояние документа-основания. В последних релизах УТ 11.5 система крайне чувствительна к статусам. Если документ Приобретение товаров и услуг находится в статусе В пути или Подготовлено, он может не делать движений по регистрам цен. Только статус Принято гарантирует полную регистрацию данных в информационной базе.
Также важно помнить о «моменте времени». Если Установка цен номенклатуры создается той же секундой, что и Приобретение товаров и услуг, запрос может не увидеть данные из-за особенностей работы платформы 1С с последовательностью записей. Рекомендуется сдвинуть время установки цен хотя бы на одну секунду позже документа поступления.
Если визуальные настройки верны, а цены все равно не заполняются, нам как техническим специалистам необходимо «собрать волю в кулак» и заглянуть внутрь механизма выборки. Проблема может крыться в самом тексте запроса схемы компоновки данных.
Рассмотрим, как проверить запрос:
ОтборПоДокументамПоставки. При создании на основании система передает туда ссылку на конкретный документ.Для программистов полезным будет использование консоли запросов. Попробуем выполнить запрос, который используется в СКД ЦеныПоступления, подставив в него параметры нашего документа. Пример логики запроса в упрощенном виде выглядит так:
ВЫБРАТЬ
ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура,
ЦеныНоменклатурыПоставщиковСрезПоследних.Цена,
ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта
ИЗ
РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(&Период, Регистратор = &ДокументПоступления) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
Если в консоли запросов результат пустой, значит, данные либо не записались в регистр (см. пункт про флаг регистрации), либо не проходят по фильтру регистратора.
В современных версиях 1С расчет цен часто выносится в фоновые задания для повышения производительности. Рассмотрим ситуацию: вы нажимаете кнопку «Заполнить», визуально ничего не происходит, и ошибок не возникает. Это может означать, что фоновое задание «упало» с внутренней ошибкой.
Проверим это следующим образом:
Если все настройки проверены, а данные заполняются у одного пользователя и не заполняются у другого, мы имеем дело с локальным сбоем кэша метаданных. В 1С:УТ 11.5 на управляемых формах это редкая, но встречающаяся проблема.
Рекомендуем выполнить следующие действия:
Подводя итог, можно сказать, что в 90% случаев проблема незаполнения цен в УТ 11.5 связана либо с отсутствием галочки Регистрировать цены поставщика в самом поступлении, либо с неверно настроенным периодом выборки в параметрах схемы компоновки данных вида цены.