У меня есть документ с двумя таблицами - "количество книг" и "серийные номера книг". В "количество книг" вводится название книги и ее количество (например золушка 3шт) , а в "серийные номера" при нажатии кнопки "заполнить" на форме документа создаются номера (Золушшка 001, Золушка 002, Золушка 003). При попытке провести документ все работает. Я попытался сделать автоматическое заполнение второй таблицы при проведении, в случае если кнопка не была нажата и таблица с номерами не заполнилась. Однако в этом случае документ не сохраняет вторую табличную часть (при открытии документа там пусто, запрос тоже показал что ТЧ пустая), но движения документа с этой ТЧ проходят.

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)

    Если Не НомераЗаполнены Тогда
    ЗаполнитьНомера();
    КонецЕсли;

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

    Движения.МестонахождениеЭкземпляровКниг.Записывать = Истина;
    Для Каждого ТекСтрокаКниги Из Книги Цикл
    Для Каждого СтрокаУчтеннаяКнига Из ТабУчтенныеКниги Цикл
    Если ТекСтрокаКниги.Книга = СтрокаУчтеннаяКнига.Книга И ТекСтрокаКниги.СерийныйНомер = СтрокаУчтеннаяКнига.СерийныйНомер Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Книга с такими названием и серийным номером уже учтена в библиотеке";
    Сообщение.Поле = "Объект.Книги[" + (ТекСтрокаКниги.НомерСтроки-1) + "].Книга";
    Сообщение.Сообщить();
    Отказ = Истина;
    КонецЕсли;
    КонецЦикла;
    Движение = Движения.МестонахождениеЭкземпляровКниг.Добавить();
    Движение.Период = Дата;
    Движение.Книга = ТекСтрокаКниги.Книга;
    Движение.СерийныйНомер = ТекСтрокаКниги.СерийныйНомер;
    Движение.Владелец = Перечисления.МестоКниги.Библиотека;
    КонецЦикла;

    КонецПроцедуры

    Процедура ЗаполнитьНомера() Экспорт

    НомераЗаполнены = Истина;

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | МестонахождениеЭкземпляровКнигСрезПервых.Книга КАК Книга,
    | МАКСИМУМ(МестонахождениеЭкземпляровКнигСрезПервых.СерийныйНомер) КАК СерийныйНомер
    |ИЗ
    | РегистрСведений.МестонахождениеЭкземпляровКниг.СрезПервых КАК МестонахождениеЭкземпляровКнигСрезПервых
    |ГДЕ
    | МестонахождениеЭкземпляровКнигСрезПервых.Регистратор.Ссылка <> &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | МестонахождениеЭкземпляровКнигСрезПервых.Книга";

    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
    ТабМаксСерийНомера = РезультатЗапроса.Выгрузить();

    Книги.Очистить();

    Для Каждого СтрокаТаблКоличествоКниг Из ТаблКоличествоКниг Цикл
    //Обход Книга-Колво
    Книга = СтрокаТаблКоличествоКниг.Книга;
    Для Каждого Строка Из ТабМаксСерийНомера Цикл
    Если Книга = Строка.Книга Тогда
    МаксимальныйСерийныйНомер = Строка.СерийныйНомер + 1;
    КонецЕсли;
    КонецЦикла;
    Если Не ЗначениеЗаполнено(МаксимальныйСерийныйНомер) Тогда
    МаксимальныйСерийныйНомер = 1;
    КонецЕсли;
    Для СтрокаТаблНомераКниг = 1 По СтрокаТаблКоличествоКниг.Количество Цикл
    НоваяСтрока = Книги.Добавить();
    НоваяСтрока.Книга = Книга;
    НоваяСтрока.СерийныйНомер = МаксимальныйСерийныйНомер;
    МаксимальныйСерийныйНомер = МаксимальныйСерийныйНомер + 1;
    КонецЦикла;
    КонецЦикла;

    КонецПроцедуры
```
---
Перед записью надо вызывать заполнение
---
Перед записью надо вызывать заполнение
---
Спасибо