Перенос проводок из Регистра бухгалтерии в регистр Накопление по настройкам, которые задаются в Регистре Ведомостей
Добрый день. У меня возникла проблема при написании кода, который должен переносить проводки из регистра бухгалтерии в регистр накопления по настройкам задаваемых в регистре сведений. запись.Также есть нюанс в том что в регистре сведений есть булевые значения СуммаПродажи и СуммаСебестоимость.Если какое-либо из данных значений активное то проводка должна записаться именно в ту колонку.
Процедура КнопкаВыполнитьНажатие(Кнопка)
НачалоПериода = ЭлементыФормы.ДатаНачало.Значение;
КонецПериода = ЭлементыФормы.ДатаКонец.Значение;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
| ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3,
| ХозрасчетныйДвиженияССубконто.СубконтоДт4 КАК СубконтоДт4,
| ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
| ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
| ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК СубконтоКт3,
| ХозрасчетныйДвиженияССубконто.СубконтоКт4 КАК СубконтоКт4,
| кнтНастройкаПортированияПродаж.СчетДт КАК СчетДт1,
| кнтНастройкаПортированияПродаж.СчетКт КАК СчетКт1,
| кнтНастройкаПортированияПродаж.СуммаПродажи КАК СуммаПродажи,
| кнтНастройкаПортированияПродаж.СуммаСебестоимость КАК СуммаСебестоимость,
| кнтНастройкаПортированияПродаж.НастрокаАктуальна КАК НастрокаАктуальна,
| кнтНастройкаПортированияПродаж.KindOfBusiness КАК KindOfBusiness,
| кнтНастройкаПортированияПродаж.НомерСубконтоНоменклатуры КАК НомерСубконтоНоменклатуры,
| ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
| ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК СубконтоДт31
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.кнтНастройкаПортированияПродаж КАК кнтНастройкаПортированияПродаж
| ПО ХозрасчетныйДвиженияССубконто.СчетДт = кнтНастройкаПортированияПродаж.СчетДт
| И ХозрасчетныйДвиженияССубконто.СчетКт = кнтНастройкаПортированияПродаж.СчетКт
|ГДЕ
| ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода";
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Выборка.Регистратор.ПолучитьОбъект().Движения.кнтПродажиБухгалтерия;
НоваяЗапись = Движение.Добавить();
Если Выборка.СуммаПродажи = Истина Тогда
НоваяЗапись.СуммаДоллар = Движение.СуммаПродажи;
КонецЕсли;
Если Выборка.СуммаСебестоимость = Истина Тогда
НоваяЗапись.СуммаСебестоимостьДоллар = Движение.СуммаСебестоимость;
КонецЕсли;
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.Номенклатура = Движение.НомерСубконтоНоменклатуры;
НоваяЗапись.Техника = Движение.Услуги.Техника;
НоваяЗапись.Склад = Движение.Товары.Склад;
НоваяЗапись.Дилершип = Движение.Дилершип;
НоваяЗапись.Контрагент = Движение.Контрагент;
НоваяЗапись.ДоговорКонтрагента = Движение.ДоговорКонтрагента;
НоваяЗапись.ФормаОбслуживания = Движение.ФормаОбслуживания;
НоваяЗапись.KindOfBusiness = Движение.KindOfBusiness;
НоваяЗапись.Валюта = Движение.ВалютаДокумента;
НоваяЗапись.Количество = Движение.Товары.Количество;
НоваяЗапись.Записать();
КонецЦикла;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вы плохо описываете свою проблему. Непонятно, что не работает, и что вы пробовали.
Предположу, что проблема может быть в том, что вы на каждой строке выборки получете набор записей по регистратору, не читаете этот набор, добавляете новую запись и перезаписываете все записи по регистратору. И в итоге в регистре остается только последняя запись (от последней строки выборки).
Попробуйте добавить чтение набора:
Предположу, что проблема может быть в том, что вы на каждой строке выборки получете набор записей по регистратору, не читаете этот набор, добавляете новую запись и перезаписываете все записи по регистратору. И в итоге в регистре остается только последняя запись (от последней строки выборки).
Попробуйте добавить чтение набора:
Движение = Выборка.Регистратор.ПолучитьОбъект().Движения.кнтПродажиБухгалтерия;
Движение.Прочитать();
НоваяЗапись = Движение.Добавить();
Движение.Прочитать();
НоваяЗапись = Движение.Добавить();
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот