База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать отчет по номенклатуре и дате прихода в 1С с использованием СКД?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 часа, 22 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
19 апреля 2026 в 11:56 #36663
помоги с готовым отчетом «по номенклатуре и дате прихода, например»
-
19 апреля 2026 в 11:56 #36664
Вот пример простого отчета по номенклатуре и дате прихода (например, по документам ПоступлениеТоваровУслуг) в виде расширения с использованием СКД.
—
### 1. Запрос для набора данных (СКД)
1С (Код)123456789101112131415|ВЫБРАТЬ| Поступление.Ссылка КАК Документ,| Поступление.Дата КАК ДатаПрихода,| ПоступлениеТовары.Номенклатура КАК Номенклатура,| ПоступлениеТовары.Количество КАК Количество,| ПоступлениеТовары.Сумма КАК Сумма|ИЗ| Документ.ПоступлениеТоваровУслуг КАК Поступление| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Поступление.Товары КАК ПоступлениеТовары| ПО Поступление.Ссылка = ПоступлениеТовары.Ссылка|ГДЕ| Поступление.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания|УПОРЯДОЧИТЬ ПО| Поступление.Дата,| Номенклатура—
### 2. Параметры отчета
— ДатаНачала — дата начала периода (тип Дата)
— ДатаОкончания — дата окончания периода (тип Дата)—
### 3. Настройка СКД
— Создайте новый отчет в расширении.
— В схеме компоновки данных добавьте набор данных с типом «Запрос».
— Вставьте запрос из пункта 1.
— Добавьте параметры ДатаНачала и ДатаОкончания.
— В макете добавьте колонки: ДатаПрихода, Номенклатура, Количество, Сумма.
— Настройте группировки по ДатеПрихода и Номенклатуре.—
### 4. Модуль отчета (пример)
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859&НаКлиентеПроцедура ПриОткрытии()ЭлементыФормы.ДатаНачала.Значение = НачалоМесяца(ТекущаяДата());ЭлементыФормы.ДатаОкончания.Значение = КонецМесяца(ТекущаяДата());КонецПроцедуры&НаСервереФункция ПолучитьДанные(Параметры)Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Поступление.Ссылка КАК Документ,| Поступление.Дата КАК ДатаПрихода,| ПоступлениеТовары.Номенклатура КАК Номенклатура,| ПоступлениеТовары.Количество КАК Количество,| ПоступлениеТовары.Сумма КАК Сумма|ИЗ| Документ.ПоступлениеТоваровУслуг КАК Поступление| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Поступление.Товары КАК ПоступлениеТовары| ПО Поступление.Ссылка = ПоступлениеТовары.Ссылка|ГДЕ| Поступление.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания|УПОРЯДОЧИТЬ ПО| Поступление.Дата,| Номенклатура";Запрос.УстановитьПараметр("ДатаНачала", Параметры.ДатаНачала);Запрос.УстановитьПараметр("ДатаОкончания", Параметры.ДатаОкончания);Результат = Запрос.Выполнить();Возврат Результат.Выгрузить();КонецФункции&НаКлиентеПроцедура СформироватьОтчет(Команда)Параметры = Новый Структура;Параметры.Вставить("ДатаНачала", ЭлементыФормы.ДатаНачала.Значение);Параметры.Вставить("ДатаОкончания", ЭлементыФормы.ДатаОкончания.Значение);ТаблицаДанных = ПолучитьДанные(Параметры);// Вывод в табличный документДокумент = Новый ТабличныйДокумент;Документ.ВывестиСтроку("Отчет по номенклатуре и дате прихода");Документ.ВывестиСтроку("Период: " + Формат(Параметры.ДатаНачала, "ДФ=dd.MM.yyyy") + " - " + Формат(Параметры.ДатаОкончания, "ДФ=dd.MM.yyyy"));Документ.ВывестиСтроку("");Документ.ВывестиСтроку("Дата|Номенклатура|Количество|Сумма", ТабличныйДокумент.УстановитьФорматТекста);Для Каждого Строка Из ТаблицаДанных ЦиклДокумент.ВывестиСтроку(Формат(Строка.ДатаПрихода, "ДФ=dd.MM.yyyy") + "|" +Строка.Номенклатура + "|" +Формат(Строка.Количество, "ЧГ=10; ЧДЦ=2") + "|" +Формат(Строка.Сумма, "ЧГ=15; ЧДЦ=2"));КонецЦикла;ЭлементыФормы.Результат.Отобразить(Документ);КонецПроцедуры—
### 5. Форма отчета
— Добавьте реквизиты: ДатаНачала, ДатаОкончания (тип Дата).
— Добавьте кнопку «Сформировать», которая вызывает процедуруСформироватьОтчет.
— Добавьте элемент «Результат» типа ТабличныйДокумент для вывода результата.—
Если нужно, могу помочь с готовым файлом расширения или более детальной инструкцией по внедрению.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.