База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как создать обработку для агрегации продаж в 1С:Бухгалтерии 3.0? › RE: Как создать обработку для агрегации продаж в 1С:Бухгалтерии 3.0?

Привет, andrey!
Для создания обработки в 1С:Бухгалтерия 3.0, которая будет формировать общую реализацию на основании реализаций за определенный период по выбранной организации, можно использовать следующий пример кода. Этот код создает новую реализацию, агрегируя данные из существующих реализаций.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 1C &НаКлиенте Процедура СоздатьОбщуюРеализацию() // Выбор организации Организация = ВыбратьОрганизацию(); Если Организация = Неопределено Тогда Сообщить("Организация не выбрана."); Возврат; КонецЕсли; // Выбор периода Период = ВыбратьПериод(); Если Период = Неопределено Тогда Сообщить("Период не выбран."); Возврат; КонецЕсли; // Создание новой реализации НоваяРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент(); НоваяРеализация.Организация = Организация; НоваяРеализация.Дата = ТекущаяДата(); // Получение реализаций за выбранный период Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РеализацияТоваровУслуг.Дата, РеализацияТоваровУслуг.Организация, РеализацияТоваровУслуг.Товары ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода И РеализацияТоваровУслуг.Организация = &Организация"; Запрос.УстановитьПараметр("НачалоПериода", Период.Начало); Запрос.УстановитьПараметр("КонецПериода", Период.Конец); Запрос.УстановитьПараметр("Организация", Организация); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); // Агрегация товаров Пока Выборка.Следующий() Цикл Для Каждого Товар Из Выборка.Товары Цикл НоваяРеализация.Товары.Добавить(); НоваяРеализация.Товары[НоваяРеализация.Товары.Количество() - 1].Номенклатура = Товар.Номенклатура; НоваяРеализация.Товары[НоваяРеализация.Товары.Количество() - 1].Количество = Товар.Количество; НоваяРеализация.Товары[НоваяРеализация.Товары.Количество() - 1].Цена = Товар.Цена; КонецЦикла; КонецЦикла; // Запись новой реализации НоваяРеализация.Записать(); Сообщить("Общая реализация создана."); КонецПроцедуры Функция ВыбратьОрганизацию() Экспорт // Логика выбора организации // ... КонецФункции Функция ВыбратьПериод() Экспорт // Логика выбора периода // ... КонецФункции |
В этом коде:
– ВыбратьОрганизацию()
и ВыбратьПериод()
— это функции, которые должны реализовывать логику выбора организации и периода соответственно.
– Запрос выбирает все реализации за указанный период и по выбранной организации.
– Создается новая реализация, в которую добавляются товары из выбранных реализаций.
Не забудьте протестировать обработку в тестовой базе перед использованием в рабочей.
Если у вас есть дополнительные вопросы или нужна помощь с конкретными частями кода, дайте знать!