Приветствую! Я сейчас подготавливаюсь к экзамену 1С специалист решаю задачи по бухучёту для экзамена по 1С. Мне нужно через обработку создать документ "Операция" и проставить проводки в табличной части.

Создание документа и запись проходят успешно, а вот с заполнением таблицы – затык. Когда пытаюсь добавить строку через:
НоваяСтрока = Таблица.Добавить();
метод возвращает Ложь, и строка не добавляется.

Вопрос: С чем это может быть связано?.

Вот код -

```1c
    Процедура Перерасчет(Дата)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | УправленческийОстатки.Субконто1 КАК Контрагент,
    | УправленческийОстатки.Субконто2 КАК Договор,
    | ЕСТЬNULL(УправленческийОстатки.СуммаВалОстаток, 0) * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК СуммаНовая,
    | ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаСтарая
    |ИЗ
    | РегистрБухгалтерии.Управленческий.Остатки(&МоментВремени, Счет = &Счет, &МассивСубконто, ) КАК УправленческийОстатки
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, ) КАК КурсыВалютСрезПоследних
    | ПО УправленческийОстатки.Субконто2.Валюта = КурсыВалютСрезПоследних.Валюта
    |ГДЕ
    | УправленческийОстатки.Субконто2.Валюта <> &Рубль
    |
    |УПОРЯДОЧИТЬ ПО
    | Контрагент";
    Запрос.УстановитьПараметр("МоментВремени", Дата );
    Запрос.УстановитьПараметр("Счет", ПланыСчетов.Управленческий.Покупатели);
    Запрос.УстановитьПараметр("Рубль", Справочники.Валюты.НайтиПоКоду(810));

    МассивСубконто = Новый Массив(2);
    МассивСубконто[0] = ПланыВидовХарактеристик.ВидыСубконто.Контрагент;
    МассивСубконто[1] = ПланыВидовХарактеристик.ВидыСубконто.Договор;

    Запрос.УстановитьПараметр("МассивСубконто", МассивСубконто);

    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();

    Операция = Документы.Операция.СоздатьДокумент();
    Операция.Дата = КонецДня(ТекущаяДата());
    Таблица = Операция.Движения.Управленческий;
    Провести = Ложь;
    Пока Выборка.Следующий() Цикл

    Если Выборка.СуммаСтарая > Выборка.СуммаНовая Тогда
    НоваяСтрока = Таблица.Добавить();

    Если НоваяСтрока = Ложь Тогда
    Сообщить("Ошибка");
    КонецЕсли;

    НоваяСтрока.Период = ТекущаяДата();
    НоваяСтрока.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    НоваяСтрока.СчетКт = ПланыСчетов.Управленческий.Покупатели;
    НоваяСтрока.СубконтоКт.Контрагент = Выборка.Контрагент;
    НоваяСтрока.СубконтоКт.Договор = Выборка.Договор;
    НоваяСтрока.Сумма = Выборка.СуммаСтарая - Выборка.СуммаНовая;

    Провести = Истина;

    ИначеЕсли Выборка.СуммаСтарая < Выборка.СуммаНовая Тогда

    НоваяСтрока = Таблица.Добавить();
    Если НоваяСтрока = Ложь Тогда
    Сообщить("Ошибка");
    КонецЕсли;

    НоваяСтрока.Период = ТекущаяДата();
    НоваяСтрока.СчетДт = ПланыСчетов.Управленческий.Покупатели;
    НоваяСтрока.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    НоваяСтрока.СубконтоДт.Контрагент = Выборка.Контрагент;
    НоваяСтрока.СубконтоДт.Договор = Выборка.Договор;
    НоваяСтрока.Сумма = Выборка.СуммаНовая - Выборка.СуммаСтарая;

    Провести = Истина;
    КонецЕсли;

    КонецЦикла;

    Если Провести Тогда
    Операция.Записать();
    КонецЕсли;
```
---
правильной дорогой идешь, товарищ! Только учти, что ручная операция это регистратор движений Регистра бухгалтерии Хозрасчетный, и в ней по сути ничего заполнять не нужно, а нужно заполнить движения в регистре и привязать его к регистратору. У меня есть обработка, в ней в модуле формы так написано:

```1c
    ДокОбъект = Операция.ПолучитьОбъект();
    НЗ = ДокОбъект.Движения.Хозрасчетный;
```

ну и по смыслу:

```1c
    НоваяЗапись = НЗ.Добавить();
    НоваяЗапись.Период = ДокОбъект.Дата;
    НоваяЗапись.Регистратор = ДокОбъект;
    НоваяЗапись.Организация = ДокОбъект.Организация;

    НоваяЗапись.СчетДт = Счет10;
    НоваяЗапись.СчетКт = Счет000;
```
---
Это в каком модуле? У Объекта или Формы есть реквизиты с именами Таблица или Операция?
---
Формы
---
То есть твой мозг одновременно два вопроса осилить не может... Ок.
---
Может, просто занять не много был. Код в модуле формы. А нужно чтоб он записал строки в таблицу управленческий.
---
Молодец, подтвердил, что твой мозг одновременно два вопроса осилить не может...
Может, просто занять не много был. Ты куда-то торопился отвечать? Я вроде за время ожидания ответа денег пока не беру.
---
Код в модуле формы. И давно ли в модуле формы можно формировать движения?
---
правильной дорогой идешь, товарищ! Только учти, что ручная операция это регистратор движений Регистра бухгалтерии Хозрасчетный, и в ней по сути ничего заполнять не нужно, а нужно заполнить движения в регистре и привязать его к регистратору. У меня есть обработка, в ней в модуле формы так написано:

```1c
    ДокОбъект = Операция.ПолучитьОбъект();
    НЗ = ДокОбъект.Движения.Хозрасчетный;
```

ну и по смыслу:

```1c
    НоваяЗапись = НЗ.Добавить();
    НоваяЗапись.Период = ДокОбъект.Дата;
    НоваяЗапись.Регистратор = ДокОбъект;
    НоваяЗапись.Организация = ДокОбъект.Организация;

    НоваяЗапись.СчетДт = Счет10;
    НоваяЗапись.СчетКт = Счет000;
```
---
Спасибо большое!!!
---
Формировать движения из модуля формы? Не то клиент не то сервер? А чем модуль объекта мешает?