Почему не заполняются товары в документе Возврат товаров от клиента из документов продажи в УТ 11

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Одной из наиболее частых проблем, с которой сталкиваются пользователи и разработчики в конфигурации 1С:Управление торговлей, редакция 11, является пустая табличная часть при попытке автоматического заполнения документа Возврат товаров от клиента. Система подбора по кнопке Заполнить -> Добавить товары из документов продажи работает на основе сложного запроса с множеством жестких фильтров. Если хотя бы один реквизит в документе возврата не совпадает с данными в исходной реализации, список товаров будет пуст.

В этой статье мы подробно разберем внутреннюю логику работы этого механизма, проанализируем текст запроса и выясним, какие параметры влияют на результат подбора.

Анализируем основной запрос подбора

Для начала разберем структуру запроса, который система выполняет при вызове формы подбора товаров. Весь процесс разбит на несколько этапов формирования временных таблиц (ВТ). Понимание того, на каком этапе «отсекаются» данные, — ключ к решению проблемы.

Первый и самый важный блок запроса формирует временную таблицу ДокументыРеализации. Рассмотрим его внимательно:


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РеализацияТоваровУслуг.Ссылка КАК Ссылка
ПОМЕСТИТЬ ДокументыРеализации
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И РеализацияТоваровУслуг.Проведен
    И РеализацияТоваровУслуг.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
    И РеализацияТоваровУслуг.Контрагент = &Контрагент
    И РеализацияТоваровУслуг.Организация = &Организация
    И ВЫБОР
            КОГДА НЕ &ИспользоватьСоглашенияСКлиентами
                ТОГДА ИСТИНА
            ИНАЧЕ РеализацияТоваровУслуг.Соглашение = &Соглашение
        КОНЕЦ
    И РеализацияТоваровУслуг.НалогообложениеНДС = &НалогообложениеНДС
    И РеализацияТоваровУслуг.Партнер = &Партнер
    И ВЫБОР
            КОГДА НЕ &ИспользоватьНаправленияДеятельности
                ТОГДА ИСТИНА
            ИНАЧЕ РеализацияТоваровУслуг.НаправлениеДеятельности = &НаправлениеДеятельности
        КОНЕЦ

Проанализируем условия в секции ГДЕ. Именно здесь чаще всего кроется причина пустого результата:

  1. Статус документа: Обратим внимание, что выбираются только документы со статусом Отгружено. Если в системе используется статусная модель и реализация находится в статусе «К отгрузке», она никогда не попадет в подбор для возврата.
  2. Налогообложение НДС: Параметр &НалогообложениеНДС берется из шапки (или вкладки «Дополнительно») документа Возврат товаров. Если в реализации указано «Продажа облагается НДС», а в возврате вы по ошибке выбрали «Продажа на экспорт», документы не свяжутся.
  3. Соглашение: Если функциональная опция использования соглашений включена, проверка идет по конкретному соглашению. Проверьте, чтобы в возврате было выбрано то же самое соглашение, что и в реализации.
  4. Направление деятельности: Это критически важный момент для систем, где ведется финансовый учет по направлениям деятельности. Если в реализации заполнено НаправлениеДеятельности, а в возврате оно пустое (или наоборот), запрос не вернет ни одной строки.

Учет корректировок и уже оформленных возвратов

Далее система проверяет, не были ли эти товары уже возвращены ранее или откорректированы. Для этого формируются таблицы ДанныеКорректировки и ДанныеДокументовВозврата. Рассмотрим логику вычисления остатка товара к возврату:


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(ЕСТЬNULL(ДанныеДокументовРеализации.Количество, 0) - ЕСТЬNULL(ДанныеДокументовВозврата.Количество, 0)) КАК Количество,
    ...
ГДЕ
    ЕСТЬNULL(ДанныеДокументовРеализации.Количество, 0) - ЕСТЬNULL(ДанныеДокументовВозврата.Количество, 0) > 0

Разберем, как работает эта арифметика:

Важный нюанс: запрос исключает текущий документ возврата (параметр &ДокументВозврата), чтобы вы могли перевыбирать товары в текущем сеансе редактирования.

Пошаговый алгоритм поиска причины

Если вы столкнулись с тем, что подбор не работает, рекомендуем выполнить следующие действия вместе с нами:

Шаг 1. Проверка реквизитов шапки

Сравните документ Реализация товаров и услуг и ваш Возврат товаров от клиента. Должны строго совпадать следующие поля:

Шаг 2. Проверка статуса реализации

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

Шаг 3. Использование консоли запросов

Если визуальная проверка не помогла, воспользуемся консолью запросов. Скопируйте текст запроса из конфигуратора (процедура подбора в менеджере документа) и вставьте его в консоль. Устанавливайте параметры по одному. Рассмотрим, на каком параметре количество строк становится нулевым. Чаще всего «виновником» оказывается либо Налогообложение, либо НаправлениеДеятельности.

Различия между файловой и серверной базами

Иногда пользователи замечают, что в файловой копии подбор работает, а в серверной (SQL) — нет. Рассмотрим возможные причины этого явления:

Во-первых, это может быть связано с кэшем сервера 1С. При обновлении конфигурации или изменении настроек параметров учета серверный кэш может выдавать неактуальные данные для запроса. Попробуйте очистить кэш или перезапустить службу сервера.

Во-вторых, обратите внимание на права доступа (RLS). Запрос использует конструкцию ВЫБРАТЬ РАЗРЕШЕННЫЕ. В SQL-варианте ограничения на уровне записей работают более строго. Если у пользователя нет прав на просмотр документов по конкретному подразделению или направлению деятельности, которые указаны в реализации, запрос просто «отмолчится».

Особенности Направления деятельности

Проанализируем ситуацию с полем Направление деятельности. В последних релизах УТ 11 (начиная с 11.4) это поле стало обязательным для многих аналитических отчетов. Если в документе реализации это поле заполнено (даже если оно не выведено на форму, а заполнено программно или по умолчанию), то в документе возврата оно обязательно должно быть таким же. Если вы создаете возврат вручную, а не на основании, это поле часто остается пустым, что и приводит к ошибке подбора.

Заключение

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

← На главную