Работа с большими объемами складских данных в 1С:Предприятие требует гибких инструментов фильтрации. Без правильного отбора по складам вы рискуете получить искаженные отчеты, ошибки в учете остатков или затянутые инвентаризации. Эта статья поможет разобраться, как настроить отбор по складам в разных конфигурациях 1С 8.3 — от базовых фильтров в списках документов до сложных запросов с использованием языка 1С:Предприятие.
Мы рассмотрим не только стандартные способы (через формы документов и отчетов), но и продвинутые техники: программный отбор в модулях, настройку прав доступа по складам, а также нюансы работы с распределенными информационными базами. Особое внимание уделим типичным ошибкам, которые приводят к потере данных при некорректном отборе по виртуальным складам или складам с особыми правами доступа.
Инструкции актуальны для наиболее распространенных конфигураций: 1С:Управление торговлей (УТ 11), 1С:ERP, 1С:Бухгалтерия 3.0 и 1С:УНФ. Если вы работаете с другой версией — проверьте наличие описанных функций в вашей конфигурации через Конфигуратор.
1. Базовый отбор по складам в формах документов
Самый простой способ отфильтровать данные — использовать стандартные формы списков документов. Этот метод подходит для бухгалтеров, кладовщиков и менеджеров, которым не требуется глубокая аналитика.
Чтобы применить отбор:
- Откройте любой журнал документов (например,
Реализация товаров и услугилиПоступление товаров). - Нажмите кнопку
Ещё → Настройка списка(илиВсе действия → Изменить формув некоторых конфигурациях). - В открывшемся окне перейдите на вкладку
Отбор. - Добавьте новое условие: в поле
ПолевыберитеСклад, вТип сравнения—РавноилиВ списке, а вЗначениеукажите нужный склад.
Для удобства можно сохранить настройку отбора как пользовательский вариант. Это избавит от необходимости настраивать фильтр каждый раз:
- 📌 Сохранение варианта: После настройки отбора нажмите
Сохранить варианти присвойте ему имя (например, "Только главный склад"). - 🔄 Быстрое переключение: Сохраненные варианты отображаются в выпадающем списке рядом с кнопкой
Настройка списка. - 🔒 Общие настройки: В 1С:ERP и УТ 11 можно сделать вариант отбора общим для всех пользователей через
Дополнительно → Сделать общим.
Если в списке документов отображается более 10 000 строк, отбор по складам значительно ускорит загрузку формы. В некоторых конфигурациях (например, 1С:УНФ) для этого даже не требуется нажимать "Применить" — фильтрация происходит автоматически.
2. Отбор по складам в отчетах и обработках
Отчеты в 1С — это мощный инструмент анализа, но без правильного отбора по складам они могут выдавать некорректные данные. Рассмотрим, как настроить фильтрацию в стандартных отчетах, таких как Ведомость по товарам на складах или Оборотно-сальдовая ведомость.
Алгоритм действий:
- Откройте нужный отчет через меню
Отчеты. - В форме отчета найдите блок
Настройки → Отбор(в некоторых конфигурациях он называетсяФильтр). - Добавьте условие по полю
Склад. Здесь доступны дополнительные опции:- 📋
В списке— выбор нескольких складов; - 🚫
Не равно— исключение определенных складов; - 🔍
В группе— отбор по группе складов (если они сгруппированы в справочнике).
- 📋
Сформировать, чтобы применить отбор.В 1С:ERP и УТ 11 есть возможность настроить динамический отбор — когда фильтр автоматически применяется при открытии отчета. Для этого:
- В форме отчета перейдите в
Все действия → Изменить форму. - Найдите реквизит
Отбори установите флагДинамический. - Сохраните изменения.
| Тип отчета | Где находится настройка отбора | Особенности |
|---|---|---|
Ведомость по товарам |
Настройки → Отбор → Склад |
Поддерживает отбор по подчиненным складам (если включена иерархия) |
Оборотно-сальдовая ведомость |
Показатели → Отбор |
Можно фильтровать по складам в разрезе субконто |
Анализ продаж |
Группировки → Отбор |
Отбор по складам отключает детализацию по другим складам |
Инвентаризация |
Параметры → Склад |
Фильтр применяется только к текущему документу |
Как отобразить склады в отчете, если они не показываются в настройках?
Если поле "Склад" отсутствует в настройках отбора, проверьте:
1. Права доступа пользователя (возможно, скрыто админом).
2. Версию конфигурации — в старых релизах 1С:Бухгалтерия 2.0 склад мог называться "Место хранения".
3. Настройки отчета — иногда поле скрыто в дополнительных параметрах (кнопка "Ещё").
3. Программный отбор по складам (для разработчиков)
Если стандартных инструментов недостаточно, можно настроить отбор программно. Это актуально для автоматизации рутинных задач или создания кастомных отчетов. Рассмотрим основные методы.
Способ 1: Отбор в запросах
Используйте конструкцию ГДЕ в языке запросов 1С:
ВЫБРАТЬ
ТоварыНаСкладах.Товар,
ТоварыНаСкладах.Количество
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТоварыНаСкладах.Склад = &Склад
Пример с несколькими складами:
ВЫБРАТЬ
Документ.ПоступлениеТоваров.Номер,
Документ.ПоступлениеТоваров.Дата
ИЗ
Документ.ПоступлениеТоваров КАК Документ
ГДЕ
Документ.Склад В (&МассивСкладов)
Способ 2: Отбор в объектах конфигурации
Для динамического отбора в формах используйте метод УстановитьОтбор():
Отбор = Новый Структура();
Отбор.Вставить("Склад", ЗначениеСправочника.Склады.ГлавныйСклад);
Документы.ПоступлениеТоваров.УстановитьОтбор(Отбор);
Способ 3: Отбор в регистрах накопления
Для работы с остатками:
Отбор = Новый Структура("Склад", ЗначениеСправочника.Склады.Основной);
Остатки = РегистрыНакопления.ТоварыНаСкладах.Остатки(,, Отбор);
Используйте тестовые данные перед применением в рабочей базе|Проверьте права доступа на выполнение запросов|Убедитесь, что имена полей совпадают с конфигурацией|Тестируйте отбор на пустых и заполненных складах-->
При программном отборе всегда учитывайте иерархию складов. Если в справочнике включена подчиненность, отбор по родительскому складу не вернет данные по дочерним, если явно не указать параметр ВключатьПодчиненные = Истина.
4. Отбор по складам в правах доступа
Ограничение доступа пользователей к определенным складам — ключевой элемент безопасности в 1С. Это позволяет, например, кладовщику видеть только свой склад, а менеджеру — все склады своего региона.
Настройка прав по складам:
- Откройте
Администрирование → Пользователи. - Выберите пользователя и нажмите
Изменить. - Перейдите на вкладку
Праваи найдите разделОграничение доступа к данным. - Добавьте новое ограничение:
- 📌 Объект: выберите справочник
Склады; - 🔒 Права: установите
ПросмотрилиРедактирование; - 📋 Значения: укажите разрешенные склады.
- 📌 Объект: выберите справочник
- Сохраните изменения и перезапустите сеанс пользователя.
- 🚛 Товары в пути: В отчетах такие склады часто исключают из отбора по умолчанию. Чтобы их включить, используйте условие
Склад В (&МассивСкладов) ИЛИ Склад.ЭтоГруппа() = Истина. - 📦 Резервы: Для корректного отбора резервов добавьте в запрос связь с регистром
РезервыТоваров. - 🔄 Транзитные склады: В 1С:ERP для них может потребоваться отдельная настройка прав доступа.
- 🌐 Обмен данными: Настройте правила обмена, чтобы склады из удаленных баз отображались как "внешние" в основной базе.
- 🔗 Ссылки на объекты: В запросах используйте конструкцию
ВНЕШНЯЯБАЗА.Справочник.Склады. - ⚡ Репликация: В 1С:УТ 11 поддерживается репликация данных по складам с заданной периодичностью.
В 1С:ERP и УТ 11 есть дополнительная возможность настройки прав по подразделениям, которые могут быть привязаны к складам. Это упрощает управление доступом для крупных компаний с разветвленной структурой.
⚠️ Внимание: Если пользователь имеет права на просмотр всех складов, но в отчете установлен фильтр по конкретному складу, он сможет снять этот фильтр и увидеть данные по всем складам. Чтобы полностью запретить доступ, настройте права на уровне Ролей.
Для массовой настройки прав (например, для группы пользователей) используйте обработку Групповое изменение прав, которая доступна в Администрирование → Сервис.
5. Работа с виртуальными и распределенными складами
Виртуальные склады (например, "Товары в пути" или "Резерв под заказы") и распределенные информационные базы требуют особого подхода к отбору. Рассмотрим ключевые нюансы.
Виртуальные склады:
Распределенные базы:
Если склады находятся в разных информационных базах (например, в филиалах), используйте:
⚠️ Внимание: При работе с распределенными базами отбор по складам может замедлять формирование отчетов. Оптимизируйте запросы, используя индексы по полю Склад или настройте предварительную выборку данных.
Для виртуальных складов в 1С:Бухгалтерия 3.0 может потребоваться ручная корректировка остатков, так как автоматические проводки не всегда корректно обрабатывают такие объекты. Проверяйте данные через отчет Карточка счета с детализацией по складам.
6. Типичные ошибки и их решение
Даже опытные пользователи 1С сталкиваются с проблемами при отборе по складам. Разберем наиболее частые ошибки и способы их устранения.
| Ошибка | Причина | Решение |
|---|---|---|
| Отбор не применяется | Не нажата кнопка Применить или Сформировать |
Проверьте, сохранены ли изменения в настройках отчета |
| Пустой результат | Некорректное значение в фильтре (например, несуществующий склад) | Убедитесь, что указанный склад существует и активен |
| Данные дублируются | Отбор по подчиненным складам без учета иерархии | Используйте параметр ВключатьПодчиненные = Ложь |
| Ошибка доступа | У пользователя нет прав на просмотр склада | Настройте права в Администрирование → Пользователи |
| Медленное формирование отчета | Слишком широкий отбор по периодам или складам | Сузьте диапазон дат или используйте предварительную выборку |
Ошибка 1: Отбор игнорируется в отчетах
Если фильтр по складам не работает:
- Проверьте, не перекрывается ли он другим условием (например, по организации).
- Убедитесь, что поле
Складвключено в настройки отчета (Показатели → Настройки). - Обновите конфигурацию — в старых релизах могли быть баги с отборами.
Ошибка 2: Некорректные остатки после отбора
Если остатки по складу не сходятся:
- 🔄 Проверьте движения документов по складу за последний месяц.
- 📊 Сформируйте отчет
Анализ субконтодля счета учета. - 🛠 Запустите тестирование и исправление базы (
Администрирование → Тестирование и исправление).
Что делать, если отбор по складам работает нестабильно?
Проблема может быть связана с кэшированием данных. Попробуйте:
1. Очистить кэш 1С (папка %APPDATA%\1C\1cv8).
2. Перезапустить сервер 1С:Предприятие.
3. Выполнить реиндексацию базы данных через Конфигуратор.
7. Автоматизация отборов: обработки и внешние отчеты
Для упрощения работы с отборами по складам можно создать собственные обработки или использовать готовые решения из Инфостарт.
Пример 1: Обработка для массового отбора
Создайте обработку с формой, где пользователь может:
- 📋 Выбрать несколько складов из справочника;
- 📅 Указать период;
- 📊 Выбрать тип отчета (остатки, движения, продажи).
Код для формирования динамического отбора:
Процедура СформироватьОтчет(Команда)
Отбор = Новый Структура();
Отбор.Вставить("Склад", МассивСкладов);
Отбор.Вставить("Период", Период);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладах.Товар КАК Товар,
| СУММА(ТоварыНаСкладах.Количество) КАК Количество
|ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
|ГДЕ
| ТоварыНаСкладах.Склад В (&Склады)
| И ТоварыНаСкладах.Период МЕЖДУ &НачалоПериода И &КонецПериода
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладах.Товар";
Запрос.УстановитьПараметр("Склады", Отбор.Склад);
Запрос.УстановитьПараметр("НачалоПериода", Отбор.Период.Начало);
Запрос.УстановитьПараметр("КонецПериода", Отбор.Период.Конец);
Результат = Запрос.Выполнить();
ВывестиРезультат(Результат);
КонецПроцедуры
Пример 2: Внешний отчет с гибкими настройками
Во внешнем отчете можно реализовать:
- 🔄 Динамическое изменение отбора без перезагрузки формы;
- 📈 Визуализацию данных (диаграммы, цветовые индикаторы);
- 📤 Экспорт в Excel с сохранением структуры отбора.
Для интеграции с другими системами (например, WMS) используйте HTTP-Сервисы или REST API, передавая параметр склада в теле запроса:
АдресСервиса = "http://ваш_сервер/hs/exchange/get_stock";
Параметры = Новый Структура("warehouse_id", Склад.УникальныйИдентификатор);
Ответ = ВыполнитьHTTPЗапрос(АдресСервиса, Параметры);
⚠️ Внимание: При использовании внешних отчетов или обработок убедитесь, что они совместимы с вашей версией платформы 1С 8.3. Некоторые решения, написанные для 1С 8.2, могут некорректно работать с отборами по складам в новых релизах.
FAQ: Частые вопросы по отбору по складам в 1С
Как сделать отбор по складам в документе "Перемещение товаров"?
В документе Перемещение товаров отбор настраивается в табличной части:
- Откройте документ и перейдите на вкладку
Товары. - Нажмите
Ещё → Настройка списка. - В разделе
Отбордобавьте условие по полюСклад-отправительилиСклад-получатель.
Если нужно отфильтровать список доступных складов при выборе, настройте ограничение доступа для пользователя в справочнике Склады.
Почему в отчете "Ведомость по товарам" не отображаются все склады?
Причины могут быть следующими:
- 🔍 В настройках отчета установлен фильтр по организации, которая не владеет этими складами.
- 👥 У пользователя нет прав на просмотр всех складов (проверьте в
Администрирование → Пользователи). - 📉 Склады являются подчиненными, а в отборе не учтена иерархия (включите опцию
Показывать подчиненные). - 🛠 В базе данных нарушена целостность (запустите
Тестирование и исправление).
Чтобы увидеть все склады, сбросьте отбор и проверьте настройки группировки в отчете.
Можно ли настроить отбор по складам в мобильном приложении 1С?
Да, но функциональность зависит от версии приложения:
- 📱 В 1С:Мобильная платформа отбор настраивается через
Фильтрв списке документов. - 🖥 В 1С:Drive (для УТ 11 и ERP) доступны те же фильтры, что и в десктопной версии.
- ⚠️ В старых версиях мобильных приложений (до 2023 года) отбор по складам мог отсутствовать.
Для сложных фильтров рекомендуется использовать десктопную версию или настроить предопределенные варианты отчетов, которые будут доступны в мобильном приложении.
Как экспортировать данные с отбором по складам в Excel?
Способы экспорта:
- Через стандартный отчет:
- Настройте отбор по складам.
- Сформируйте отчет.
- Нажмите
Ещё → Выгрузитьи выберите форматExcel.
- Через
Универсальный отчет:- Откройте
Отчеты → Универсальный отчет. - Выберите источник данных (например,
ТоварыНаСкладах). - Добавьте отбор по складам и экспортируйте результат.
- Откройте
- Через
Внешнюю обработку:- Используйте обработку
ВыгрузкаВExcelиз каталога Инфостарт. - Настройте в ней отбор по нужным складам.
- Используйте обработку
Для автоматического экспорта с отбором по складам можно написать скрипт на 1С:Предприятие, который будет сохранять данные в файл .xlsx по расписанию.
Как настроить отбор по складам в обмене данными между базами?
При настройке обмена (например, между 1С:УТ и 1С:Бухгалтерией):
- Откройте настройки обмена в
Администрирование → Обмен данными. - Выберите узел обмена и нажмите
Изменить. - Перейдите на вкладку
Правила обмена. - Найдите объект
Складыи настройте фильтр:- Укажите, какие склады должны участвовать в обмене.
- Исключите виртуальные склады, если они не нужны.
- Сохраните настройки и выполните синхронизацию.
В 1С:ERP для распределенных баз можно настроить репликацию по складам, чтобы данные передавались только по выбранным складам, сокращая объем передаваемой информации.