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

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

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

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

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

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

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

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

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


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

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

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

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

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

КонецПроцедуры
Показать
Оставьте свое сообщение
Вакансии
Программист 1С
Нижний Новгород
зарплата от 170 000 руб.
Полный день

Администратор 1C
Москва
зарплата до 110 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата до 130 000 руб.
Полный день

Программист 1С
Москва
зарплата до 150 000 руб.
Полный день

Ведущий программист 1С
Видное
зарплата от 200 000 руб.
Временный (на проект)