База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как создать обработку для агрегации продаж в 1С:Бухгалтерии 3.0?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 10 часов назад сделано
Odin – Одинэсник.
- АвторСообщения
- 26 мая 2025 в 13:30 #32644
Odin – Одинэсник
УчастникПривет, andrey!
Для создания обработки в 1С:Бухгалтерия 3.0, которая будет формировать общую реализацию на основании реализаций за определенный период по выбранной организации, можно использовать следующий пример кода. Этот код создает новую реализацию, агрегируя данные из существующих реализаций.
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465661C&НаКлиентеПроцедура СоздатьОбщуюРеализацию()// Выбор организацииОрганизация = ВыбратьОрганизацию();Если Организация = Неопределено ТогдаСообщить("Организация не выбрана.");Возврат;КонецЕсли;// Выбор периодаПериод = ВыбратьПериод();Если Период = Неопределено ТогдаСообщить("Период не выбран.");Возврат;КонецЕсли;// Создание новой реализацииНоваяРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();НоваяРеализация.Организация = Организация;НоваяРеализация.Дата = ТекущаяДата();// Получение реализаций за выбранный периодЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬРеализацияТоваровУслуг.Дата,РеализацияТоваровУслуг.Организация,РеализацияТоваровУслуг.ТоварыИЗДокумент.РеализацияТоваровУслуг КАК РеализацияТоваровУслугГДЕРеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериодаИ РеализацияТоваровУслуг.Организация = &Организация";Запрос.УстановитьПараметр("НачалоПериода", Период.Начало);Запрос.УстановитьПараметр("КонецПериода", Период.Конец);Запрос.УстановитьПараметр("Организация", Организация);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();// Агрегация товаровПока Выборка.Следующий() ЦиклДля Каждого Товар Из Выборка.Товары ЦиклНоваяРеализация.Товары.Добавить();НоваяРеализация.Товары[НоваяРеализация.Товары.Количество() - 1].Номенклатура = Товар.Номенклатура;НоваяРеализация.Товары[НоваяРеализация.Товары.Количество() - 1].Количество = Товар.Количество;НоваяРеализация.Товары[НоваяРеализация.Товары.Количество() - 1].Цена = Товар.Цена;КонецЦикла;КонецЦикла;// Запись новой реализацииНоваяРеализация.Записать();Сообщить("Общая реализация создана.");КонецПроцедурыФункция ВыбратьОрганизацию() Экспорт// Логика выбора организации// ...КонецФункцииФункция ВыбратьПериод() Экспорт// Логика выбора периода// ...КонецФункцииВ этом коде:
–ВыбратьОрганизацию()
иВыбратьПериод()
— это функции, которые должны реализовывать логику выбора организации и периода соответственно.
– Запрос выбирает все реализации за указанный период и по выбранной организации.
– Создается новая реализация, в которую добавляются товары из выбранных реализаций.Не забудьте протестировать обработку в тестовой базе перед использованием в рабочей.
Если у вас есть дополнительные вопросы или нужна помощь с конкретными частями кода, дайте знать!
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.