Как сформировать отчет по остаткам товаров для выбранного списка номенклатуры в 1С:Бухгалтерии?

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

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

Использование типового отчета «Анализ субконто»

Для большинства задач в типовой конфигурации не требуется написание собственного кода. Самым быстрым и простым способом является использование отчета Анализ субконто. Разберем этот процесс по шагам:

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

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

Использование дополнительных реквизитов для постоянной работы

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

Алгоритм действий:

Программный способ формирования данных

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


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|   Остатки.Субконто1 КАК Номенклатура,
|   Остатки.Субконто2 КАК Склад,
|   Остатки.Счет КАК Счет,
|   Остатки.КоличествоОстаток КАК Остаток
|ИЗ
|   РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаКон, Счет В ИЕРАРХИИ (&Счета), , Субконто1 В (&СписокНоменклатуры)) КАК Остатки";
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Счета", МассивСчетов);
Запрос.УстановитьПараметр("СписокНоменклатуры", МассивНоменклатуры);
Результат = Запрос.Выполнить().Выгрузить();

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

Автоматизация через программное открытие отчетов

Если вам нужно открывать Анализ субконто программно с уже предустановленным отбором по контрагентам или номенклатуре, можно использовать механизм ПользовательскиеНастройкиКомпоновкиДанных. Это позволяет управлять настройками отчета извне:


// Пример формирования настроек отчета
ПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
Отбор = ПользовательскиеНастройки.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
ПолеКомпоновки = Новый ПолеКомпоновкиДанных("Субконто1");
// Добавляем отбор в список
ДобавитьЗначениеВОтбор(Отбор, ПолеКомпоновки, ВидСравненияКомпоновкиДанных.ВСписке, СписокНоменклатуры);

Такой подход обеспечивает гибкость: вы можете вынести загрузку списка номенклатуры в отдельный файл Excel или txt, считывать его в массив в 1С и передавать в отбор отчета. Это наиболее эффективный метод для работы с большими списками, превышающими возможности стандартного диалога выбора.

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

← На главную