Стояла задача - выбрать в качестве периода отчета - месяц.
Ни день, ни период "с - по". Именно месяц, без вариантов.
Пришлось подсмотреть как это сделано в документах начисления зарплаты - на форме документа есть выбор месяца. Принято решение задействовать этот механизм.
Приступим.
Создаём внешний отчёт, сделаем в нём реквизит МесяцНачисленияДата с типом "Дата":
Создаём форму отчета, делаем её основной.
Создаём реквизит формы "МесяцНачисленияСтрокой" с типом строка 50 символов, заголовок "Месяц" переносим его на форму:
Переходим в свойства нашего перенесенного на форму поля и добавляем кнопки:
А так же События:
В модуле формы описываем эти события:
&НаКлиенте
Процедура МесяцНачисленияСтрокойПриИзменении(Элемент)
ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(ЭтаФорма, "Отчет.МесяцНачисленияДата", "МесяцНачисленияСтрокой", Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(ЭтаФорма, ЭтаФорма, "Отчет.МесяцНачисленияДата", "МесяцНачисленияСтрокой", , );
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойРегулирование(Элемент, Направление, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(ЭтаФорма, "Отчет.МесяцНачисленияДата", "МесяцНачисленияСтрокой", Направление, Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
В моём отчете СКД для указания даты используется параметр ДатаНачала, поэтому установим этот параметр в модуле объекта - создаем в нём процедуру ПриКомпоновкеРезультата():
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", МесяцНачисленияДата);
КонецПроцедуры
Теперь открываем схему компоновки данных и используем этот параметр как угодно.
Пример:
Результат:
Прикрепляю файл с примером, если кому будет нужно.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.22.72
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.181.31
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.34.77
Вступайте в нашу телеграмм-группу Инфостарт