Все привет!
Есть задача записать данные в документ не делая по нему никаких движений, но заполняя пару колонок в табличной части.

У нас есть документ "Перемещение товаров", в нем в табличную часть добавлены два столбца: Цена и Сумма.
Документ уже проведен. Нужно при его открытии заполнять столбцы Цена и Сумма, а так же сохранять эти данные, чтобы при следующем открытии заново не заполнять их, так как они должны будут выводиться еще на печатной форме "Накладная на перемещение".

Я написал код в "Перемещение товаров"->"Форма документа"->"Модуль"->"Процедура ПриОткрытии". Табличная часть цены и суммы заполняется, все работает, но сами эти данные не сохраняются, так как при последующем открытии, они заполняются заново. Подскажите как сохранить эти данные, но не перепроводить документы?

```1c
    Если НЕ Объект.Ссылка.Пустая() Тогда
    Если Объект.Товары.Получить(0).ол_РозничнаяЦена = 0 Тогда
    ол_ЗаполнениеРозничнойЦеныКлиент.ЗаполнитьРозничныеЦены(, Объект);
    КонецЕсли;
    КонецЕсли;
```

Столбцы эти были созданы в самом документе, а так же в общих модулях были добавлены два модуля для получения самой цены и суммы. Это все работает и заполнят данные правильно.
---
```1c
    Записать(Новый Структура("РежимЗаписи",РежимЗаписиДокумента.Запись));
```
---
У нас есть документ "Перемещение товаров", в нем в табличную часть добавлены два столбца: Цена и Сумма.
"Столбцы" надо добавлять в табличную часть документа, а не на форме.

Чтобы данные сохранились, очевидно, надо записать документ.
Чтобы не перепроводить документ, надо писать в режиме Запись.
---
Если мы их на форму не добавим, их и в самом документе не будет.
Я пробовал так
```1c
    ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
```
, но выдает ошибку.
---
Если мы их на форму не добавим, их и в самом документе не будет.
Неверно. Не все реквизиты табличной части предназначены для вывода на форму и интерактивного редактирования.

но выдает ошибку.
Мне надо догадаться какую?

Приведите полный код, приведите текст ошибки. Что за игры в партизанов то?
---
Этот код ошибки появляется если добавить Запись документа

```1c
    Если НЕ Объект.Ссылка.Пустая() Тогда
    Если Объект.Товары.Получить(0).ол_РозничнаяЦена = 0 Тогда
    ол_ЗаполнениеРозничнойЦеныКлиент.ЗаполнитьРозничныеЦены(, Объект);
    ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
    КонецЕсли;
```
---
Подход не верный изначально.
Если в документ/справочник добавляются новые реквизиты, и требуется их заполнить у существующих документов/элементов справочника, делается обработчик обновления в котором запросом получаются ссылки, в которых реквизиты еще не заполнены. Далее по ссылке получается объект и в нем заполняются новые реквизиты и объект записывается.

Вместо Обработчика обновления можете сделать внешнюю обработку с одной кнопкой.

У вас же какая-то дичь - при открытии существующего документа - если не заполнена колонка - записываете. Пользователь должен все документы открыть что ли?

По поводу ошибки - синтакс-помощник по методу Запись формы:
Расширение формы клиентского приложения для документа (Client application form extension for documents)
Записать (Write)
Синтаксис:
Записать(<ПараметрыЗаписи>)
Параметры:
<ПараметрыЗаписи> (необязательный)
Тип: Структура.
Структура параметров записи, которые могут быть обработаны в обработчиках событий записи. Состав параметров произвольный. Содержит предопределенные параметры записи РежимЗаписи и РежимПроведения. Предопределенные параметры передаются в метод объекта Записать.
Параметры записи можно обработать в событиях формы ПередЗаписью, ПередЗаписьюНаСервере, ПриЗаписиНаСервере, ПослеЗаписиНаСервере, ПослеЗаписи.
---
Я просто хотел сделать чтобы данные заполнялись и сохранялись только в тех документах, которые пользователь открывает уже созданные и проведенные.
Так как в программе около миллиона документов за более чем 10 лет и не вижу смысла делать это во всех документах в базе.
---
Заполните за этот год например, или за этот и прошлый.
Добавьте кнопку на форму - Заполнить новые колонки, если надо - пользователь нажмет и запишет документ.

Такой подход - модифицирование документа при открытии и безусловная запись - это плохой вариант.
У пользователя может не быть прав на запись документа.
Может быть открыт документ из закрытого периода.
При записи документа закрытого периода будет ошибка.
---
Данный вариант сработал.
Подскажите, при запись документа не происходил заново движение по Регистрам?
(9)
"У пользователя может не быть прав на запись документа.
Может быть открыт документ из закрытого периода."
Такое действительно возможно
---
Подскажите, при запись документа не происходил заново движение по Регистрам?
Нет
---
(11) А есть в программе вариант чтобы сделать по типу "Группового проведения документов", только запись, а не проведение? Или запись доступна только напрямую из документа?
---
```1c
    Записать(Новый Структура("РежимЗаписи",РежимЗаписиДокумента.Запись));
```