Регистр бухгалтерии: работа с регистром (запись, чтение) (БП)

1. блондинка-программистка 112 10.06.09 13:12 Сейчас в теме
Приветствую участников форума.

Очень хочется слово поддержки и совет! :-)

Нужен отчет о движении многооборотной (возвратной) тары в программе БП 8 с данными: кому дали попользоваться, какой была ситуация на начало периода, кто задолжал и так далее.

1. Если пытаться выбирать данные из регистра бухгалтерии по счету 41.03 - возникает проблема: на счете возвратной тары среди существующих 3-х субконто нет контрагента!
2. Перебором документов разумно получать только оборот за период (благо период не больше месяца требуется). Получать данные на начало периода похоже на.. ну в общем сразу "нет"!

В итоге конечный вариант такой:
создать забалансовый счет (с нужными мне субконто "номенклатура" и "контрагент"), и внешней обработкой формировать проводки за выбранный период по всем документам (поступления, возврата поставщику, реализации, возврата от покупателя и списания) на этот счет. Потом на основании уже существующих проводок строить отчеты уже в любом разрезе!

Все бы просто и замечательно. Но возникают ошибки в коде (скорей всего генетическом :-) )
Создавая проводку в регистре бухгалтерии на основании документа (не важно какого), он почему то удаляет все другие движения по нему (которые создаются типовой конфигурацией при проведении). А при перепроведении документа - удаляет движения, созданные внешней обработкой.

Вопрос: можно ли по одному регистратору и наверно субконто "номенклатура" создать 2 проводки. Была уверена, что можно, теперь терзают сомнения :-) счета же разные.
Что скажите?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. magus 10.06.09 17:28 Сейчас в теме
Набор записей сначала нужно прочитать, потом добавлять новые проводки.

		Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
		Проводки.Отбор.Регистратор.Установить(СсылкаНаДокумент);
		Проводки.Прочитать();
		// добавляем проводки
		Проводки.Записать();


При перепроведении документа эти движения будут удалены. Поэтому обработку придется запускать после каждого изменения документа.
+
3. блондинка-программистка 112 11.06.09 11:33 Сейчас в теме
В случае:
Движение =  РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Движение.Отбор.Регистратор.Установить(Выборка.Ссылка);
НаборЗаписей = Движение.ДобавитьДебет();
Движение.Прочитать();
НаборЗаписей.Регистратор	= Выборка.Ссылка;
НаборЗаписей.Период = Выборка.Дата;
НаборЗаписей.Организация= ЭтаФорма.ЭлементыФормы.Организация.Значение;
НаборЗаписей.Содержание= Выборка.Представление;
НаборЗаписей.СубконтоДт.Номенклатура= Выборка.Номенклатура;
НаборЗаписей.СубконтоДт.Контрагенты =  Выборка.Контрагент;
НаборЗаписей.СчетДт = СчетТара;
НаборЗаписей.КоличествоДт= Выборка.Количество;
Показать

Проводки вообще не добавляются..
+
4. redgad 80 12.06.09 09:20 Сейчас в теме
Эмпирическим путем было выявлено, что такого рода доработки имхо следует делать через подписки на события.
В Вашем случае следует подписаться на проведение документов, которые Вам нужны.

Процедура ДобавитьПроводки(Источник, Отказ, РежимПроведения) Экспорт
	Если Отказ Тогда
		Возврат;
	КонецЕсли;

	Проводка = Источник.Движения.Добавить();
Проводка .Период = Источник.Дата; 
Проводка .Организация= Источник.Организация;
Проводка .Содержание= Источник.Представление; 
//Проводка .СубконтоДт.Номенклатура= Выборка.Номенклатура; //так не правильно
Проводка .СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура]= Источник.Номенклатура; //так не правильно

Проводка .СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] =  Источник.Контрагент; 
Проводка .СчетДт = СчетТара; 
Проводка .КоличествоДт= Источник.Количество; 

КонецПроцедуры
Показать
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот