База - самописка 8.2.19.83
Создаю регистр накоплений, Вид - Обороты.
В документе:
Процедура ОбработкаПроведения(Отказ, РежимПроведения) // Получим необходимые данные для проведения и проверки заполенения данные по табличной части "Приложение". СтруктураПолей = Новый Структура(); СтруктураПолей.Вставить("Филиал" , "Филиал"); СтруктураПолей.Вставить("СредниеТЗ" , "СредниеТЗ"); СтруктураПолей.Вставить("СредниеДЗ" , "СредниеДЗ"); СтруктураПолей.Вставить("БазаРаспределения" , "БазаРаспределения"); СтруктураПолей.Вставить("ИтогРаспределенных" , "ИтогРаспределенных"); РезультатЗапросаПриложение = ЗаполнениеДокументов.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, "Приложение", СтруктураПолей); ТаблицаПриложение = РезультатЗапросаПриложение.Выгрузить(); // Укажем, что надо проверить: СтруктураОбязательныхПолей = Новый Структура("Филиал"); ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "Приложение", СтруктураОбязательныхПолей, Отказ, Заголовок); // Движения по документу Если Не Отказ Тогда ДвиженияПоРегистрам(РежимПроведения, ТаблицаПриложение, Отказ, Заголовок); КонецЕсли; КонецПроцедуры Процедура ДвиженияПоРегистрам(РежимПроведения, ТаблицаПриложение, Отказ, Заголовок) НаборДвижений = Движения.МойНовыйРегистр; ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки(); ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПриложение, ТаблицаДвижений); ТаблицаДвижений.ЗаполнитьЗначения(ПланФакт, "ПланФакт"); ТаблицаДвижений.ЗаполнитьЗначения(Автор, "Автор"); НаборДвиженийРС.Записывать = Истина; НаборДвижений.мПериод = ПериодРегистрации; НаборДвижений.мТаблицаДвижений = ТаблицаДвижений; Если Не Отказ Тогда Движения.МойНовыйРегистр.ДобавитьДвижение(); КонецЕсли; КонецПроцедуры
В модуле набора записей моего регистра:
Перем мПериод Экспорт; // Период движений Перем мТаблицаДвижений Экспорт; // Таблица движений Процедура ДобавитьДвижение() Экспорт Если мПериод <> Неопределено Тогда мТаблицаДвижений.ЗаполнитьЗначения(мПериод, "Период"); КонецЕсли; мТаблицаДвижений.ЗаполнитьЗначения(Истина, "Активность"); ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект,,, Ложь); КонецПроцедуры // ДобавитьДвижение()