# Отчёт о производстве в 1С: заполнение поля «Продукция» в материалах массово

> Сайт: allerrorcodes.ru · Обновлено: 23.04.2026 · Адрес: https://allerrorcodes.ru/otchet-o-proizvodstve-v-1s/

Задача массового заполнения поля **«Продукция»** в табличной части **«Материалы»** документа **«Отчёт о производстве»** возникает в 1С УПП, ERP 2.5 и ЗУП 3.1, когда в базе накоплено большое количество документов без этой связи. Вручную редактировать каждый документ нереально — задача решается через обработку **«Групповое изменение реквизитов»** с алгоритмом на встроенном языке 1С 8.3.

## Что такое поле «Продукция» в материалах отчёта о производстве

В документе «Отчёт о производстве» есть две связанные табличные части:

- **Продукция** — что выпустили (номенклатура готовой продукции, количество, счёт учёта).
- **Материалы** — что потратили на производство (сырьё, полуфабрикаты). Каждая строка материалов должна быть привязана к конкретной строке продукции через поле **«Продукция»**.

Без заполнения этого поля программа не может корректно распределить затраты на себестоимость конкретного выпуска. В платформе 8.3.20 и выше это поле является обязательным для корректного закрытия месяца.

## Причины возникновения проблемы

- Документы создавались в старой версии конфигурации, где поле «Продукция» не было обязательным
- Перенос данных из другой программы (Excel, другой конфигурации 1С) без учёта этой связи
- Ошибки при начальном вводе: пользователи заполняли только материалы, не указывая к какой продукции они относятся
- Массовое создание документов через внешнюю обработку или API без заполнения реквизита

## Способ 1: Алгоритм через «Групповое изменение реквизитов»

Стандартный инструмент 1С 8.3 — обработка «Групповое изменение реквизитов» (доступна в меню Все функции или в разделе Администрирование в зависимости от конфигурации).

1. Откройте обработку **«Групповое изменение реквизитов»** через меню Все функции → Стандартные.
2. В поле **«Тип объекта»** выберите Документ.ОтчётОПроизводствеЗаСмену (или соответствующий документ вашей конфигурации).
3. Настройте отбор при необходимости (период, организация, подразделение).
4. В поле **«Алгоритм»** вставьте следующий код:

```
Для Каждого СтрокаМатериал Из Объект.Материалы Цикл
    Если Объект.Продукция.Количество() > 0 Тогда
        СтрокаМатериал.Продукция = Объект.Продукция[0].Номенклатура;
        Сообщить("Продукция обновлена для материала: " + СтрокаМатериал.Номенклатура);
    Иначе
        Сообщить("Нет продукции для документа: " + Объект.Ссылка);
    КонецЕсли;
КонецЦикла;
```

1. Нажмите Выполнить. Алгоритм обработает все отобранные документы.
2. Проверьте результат: откройте несколько документов и убедитесь, что поле «Продукция» в материалах заполнено.

## Пояснение работы алгоритма

### Что делает цикл «Для Каждого»

Алгоритм перебирает все строки табличной части «Материалы» текущего документа. Для каждой строки проверяет наличие хотя бы одной записи в табличной части «Продукция» того же документа:

```
Если Объект.Продукция.Количество() > 0 Тогда
```

### Логика присвоения значения

Если продукция в документе есть — берётся **первая строка** из табличной части «Продукция» и её значение записывается в поле «Продукция» каждой строки материалов:

```
СтрокаМатериал.Продукция = Объект.Продукция[0].Номенклатура;
```

Важно: обращение `[0]` — это индекс с нуля, то есть первая строка. Если нужно присваивать разные строки продукции разным материалам — алгоритм потребует усложнения (добавить логику сопоставления).

### Обработка документов без продукции

Если в документе нет ни одной строки в табличной части «Продукция», алгоритм выводит сообщение:

```
Сообщить("Нет продукции для документа: " + Объект.Ссылка);
```

Эти документы нужно проверить вручную — возможно, они заполнены некорректно.

## Способ 2: Обработка через запрос для сложных случаев

Если у вас в документах несколько строк продукции и нужно сопоставить материалы с конкретной продукцией по определённому признаку (например, по переделу или субконто), используйте расширенный алгоритм с запросом. Это требует участия программиста 1С, знакомого с вашей конфигурацией.

Для ERP 2.5 задача может решаться через встроенный механизм **«Управление производством»** — проверьте наличие автоматического заполнения этого реквизита в настройках конфигурации.

## Что делать если ничего не помогло

- **Проверьте типы данных:** убедитесь, что тип поля «Продукция» в строке материалов совпадает с типом значения `Объект.Продукция[0].Номенклатура`. В разных конфигурациях это может быть ссылка на номенклатуру, документ или составной тип — откройте конфигуратор и сверьте.
- **Проверьте журнал регистрации** на наличие ошибок при выполнении обработки: Администрирование → Журнал регистрации.
- **Технологический журнал** (для сложных ошибок платформы 8.3.24+): настраивается в файле `logcfg.xml` каталога платформы.
- **Обратитесь к сопровождающему 1С**: если база работает на нестандартной конфигурации или сильно доработана, имена реквизитов могут отличаться.

## FAQ

### В каких конфигурациях 1С есть документ «Отчёт о производстве»?

Документ «Отчёт о производстве за смену» есть в 1С:УПП (Управление производственным предприятием), 1С:ERP Управление предприятием 2.5, 1С:Комплексная автоматизация. В Бухгалтерии 3.0 и ЗУП 3.1 он отсутствует или имеет другую структуру.

### Безопасно ли запускать групповое изменение реквизитов?

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

### Алгоритм присваивает первую продукцию всем материалам — как сопоставить правильно?

Это упрощённый алгоритм для случая, когда в документе одна строка продукции. Если строк несколько — нужна логика сопоставления: по номеру строки, по переделу, по дополнительным реквизитам. Это задача для программиста 1С.

### Можно ли сделать то же самое через консоль запросов?

Прямое изменение данных через консоль запросов (UPDATE в SQL) в 1С не рекомендуется — это обходит бизнес-логику платформы. Используйте групповое изменение реквизитов или внешнюю обработку.

### Что такое индекс [0] в 1С и почему счёт начинается с нуля?

В 1С табличные части являются коллекциями, и обращение по индексу начинается с нуля: `[0]` — первая строка, `[1]` — вторая. Это стандартное поведение платформы 8.3.

### После обработки документы не записываются — в чём причина?

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

## Ещё по теме

- [Параметр сеанса отсутствует или удалён на сервере 1С](https://allerrorcodes.ru/parametr-seansa-otsutstvuet-ili-udalen-na-servere-1c-predpriyatie/): «Параметр сеанса отсутствует или удалён» — сервер 1С не нашёл сохранённые данные сеанса пользователя.
- [«Вход в программу временно невозможен» в 1С — причины и как исправить](https://allerrorcodes.ru/vhod-v-programmu-vremenno-nevozmozhen-v-svyazi-s-neobhodimostyu-obnovleniya-konfiguratsii/): «Вход в программу временно невозможен» — база 1С заблокирована после обновления конфигурации, блокировку не сняли явно.
- [Очистка истории лицензий 1С 8.3 на сервере — инструкция](https://allerrorcodes.ru/ochistka-istorii-litsenziy-informatsionnoy-bazy-8-3-server/): Длинный список лицензий в «О программе» — это накопленный кэш последних успешно полученных лицензий; официальной статьи 1С о его очистке на its.1c.ru нет, способ ниже — практика сообщества администраторов 1С (infostart.ru), а не рекомендация вендора.
- [«Конфигурация поставщика не обнаружена» в 1С — как исправить](https://allerrorcodes.ru/konfiguraciya-postavshhika-ne-obnaruzhena-1s/): Решение ошибки «Конфигурация поставщика не обнаружена» в 1С: проверка настройки поддержки, установка cf-файла поставщика и восстановление снятой с поддержки базы.
