Регистр бухгалтерии: работа с регистром (запись, чтение) (БП)
Приветствую участников форума.
Очень хочется слово поддержки и совет! :-)
Нужен отчет о движении многооборотной (возвратной) тары в программе БП 8 с данными: кому дали попользоваться, какой была ситуация на начало периода, кто задолжал и так далее.
1. Если пытаться выбирать данные из регистра бухгалтерии по счету 41.03 - возникает проблема: на счете возвратной тары среди существующих 3-х субконто нет контрагента!
2. Перебором документов разумно получать только оборот за период (благо период не больше месяца требуется). Получать данные на начало периода похоже на.. ну в общем сразу "нет"!
В итоге конечный вариант такой:
создать забалансовый счет (с нужными мне субконто "номенклатура" и "контрагент"), и внешней обработкой формировать проводки за выбранный период по всем документам (поступления, возврата поставщику, реализации, возврата от покупателя и списания) на этот счет. Потом на основании уже существующих проводок строить отчеты уже в любом разрезе!
Все бы просто и замечательно. Но возникают ошибки в коде (скорей всего генетическом :-) )
Создавая проводку в регистре бухгалтерии на основании документа (не важно какого), он почему то удаляет все другие движения по нему (которые создаются типовой конфигурацией при проведении). А при перепроведении документа - удаляет движения, созданные внешней обработкой.
Вопрос: можно ли по одному регистратору и наверно субконто "номенклатура" создать 2 проводки. Была уверена, что можно, теперь терзают сомнения :-) счета же разные.
Что скажите?
Очень хочется слово поддержки и совет! :-)
Нужен отчет о движении многооборотной (возвратной) тары в программе БП 8 с данными: кому дали попользоваться, какой была ситуация на начало периода, кто задолжал и так далее.
1. Если пытаться выбирать данные из регистра бухгалтерии по счету 41.03 - возникает проблема: на счете возвратной тары среди существующих 3-х субконто нет контрагента!
2. Перебором документов разумно получать только оборот за период (благо период не больше месяца требуется). Получать данные на начало периода похоже на.. ну в общем сразу "нет"!
В итоге конечный вариант такой:
создать забалансовый счет (с нужными мне субконто "номенклатура" и "контрагент"), и внешней обработкой формировать проводки за выбранный период по всем документам (поступления, возврата поставщику, реализации, возврата от покупателя и списания) на этот счет. Потом на основании уже существующих проводок строить отчеты уже в любом разрезе!
Все бы просто и замечательно. Но возникают ошибки в коде (скорей всего генетическом :-) )
Создавая проводку в регистре бухгалтерии на основании документа (не важно какого), он почему то удаляет все другие движения по нему (которые создаются типовой конфигурацией при проведении). А при перепроведении документа - удаляет движения, созданные внешней обработкой.
Вопрос: можно ли по одному регистратору и наверно субконто "номенклатура" создать 2 проводки. Была уверена, что можно, теперь терзают сомнения :-) счета же разные.
Что скажите?
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Набор записей сначала нужно прочитать, потом добавлять новые проводки.
При перепроведении документа эти движения будут удалены. Поэтому обработку придется запускать после каждого изменения документа.
Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Проводки.Отбор.Регистратор.Установить(СсылкаНаДокумент);
Проводки.Прочитать();
// добавляем проводки
Проводки.Записать();
При перепроведении документа эти движения будут удалены. Поэтому обработку придется запускать после каждого изменения документа.
В случае:
Проводки вообще не добавляются..
Движение = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Движение.Отбор.Регистратор.Установить(Выборка.Ссылка);
НаборЗаписей = Движение.ДобавитьДебет();
Движение.Прочитать();
НаборЗаписей.Регистратор = Выборка.Ссылка;
НаборЗаписей.Период = Выборка.Дата;
НаборЗаписей.Организация= ЭтаФорма.ЭлементыФормы.Организация.Значение;
НаборЗаписей.Содержание= Выборка.Представление;
НаборЗаписей.СубконтоДт.Номенклатура= Выборка.Номенклатура;
НаборЗаписей.СубконтоДт.Контрагенты = Выборка.Контрагент;
НаборЗаписей.СчетДт = СчетТара;
НаборЗаписей.КоличествоДт= Выборка.Количество;
ПоказатьПроводки вообще не добавляются..
Эмпирическим путем было выявлено, что такого рода доработки имхо следует делать через подписки на события.
В Вашем случае следует подписаться на проведение документов, которые Вам нужны.
В Вашем случае следует подписаться на проведение документов, которые Вам нужны.
Процедура ДобавитьПроводки(Источник, Отказ, РежимПроведения) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Проводка = Источник.Движения.Добавить();
Проводка .Период = Источник.Дата;
Проводка .Организация= Источник.Организация;
Проводка .Содержание= Источник.Представление;
//Проводка .СубконтоДт.Номенклатура= Выборка.Номенклатура; //так не правильно
Проводка .СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура]= Источник.Номенклатура; //так не правильно
Проводка .СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Источник.Контрагент;
Проводка .СчетДт = СчетТара;
Проводка .КоличествоДт= Источник.Количество;
КонецПроцедуры
Показать
Вакансии
Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день