Диалог ввода периода, УФ

14.11.13

Разработка - Инструментарий разработчика

Почти привычное окно указания периода, давно всем знакомая форма объекта НастройкаПериода. Но теперь - для управляемых форм. Обработка и 2 способа её вызова. Сэкономит время программисту, которого клиент попросил "сделать, как было раньше".

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ВыборПериодаУФ
.epf 9,64Kb
13 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

С удивлением обнаружил, что а) объект НастройкаПериода в тонком клиенте не существует, б) на ИС именно идейной копии старого привычного варианта нету, в) не всем клиентам нравится "Произвольный период", штатно заложенный в платформу. Ну вот не радуют их этим нынешние типовые конфы. Поэтому быстренько сляпал своё, для модального и немодального вызовов, ну и почему бы не выложить? Публикация представляет собой обработку, реализующую функционал окна выбора, и описания её вызова. Параметры вызова предусматривают исходное указание периода и регулировку видимости закладок "Интервал" и "Период". Для желающих встроен также "Стандартный период".

С некоторой степенью вероятности это баян, а я, возможно, просто не умею искать. Так что, можно пинать и необязательно плюсить.

Найденные коллегами примеры похожих решений: //infostart.ru/public/77517/ //infostart.ru/public/194190/ //infostart.ru/public/175213/

Примеры вызова (сами вызывающие процедуры, в которые обёрнута форма, и собственно их инициация). Естественно, при немодальном вызове не забывайте вставить код, указанный в "ОбработкаОповещения". Наверняка есть ещё несколько способов вызова, пользуйтесь, как кому удобнее, я предлагаю лишь два из многих вариантов. 

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
   
// ...другой код...
   
Если ИмяСобытия="OnPeriodSelect" Тогда
       
Предупреждение("Получен период "+ПредставлениеПериода(Параметр.НачалоПериода,Параметр.КонецПериода));
    КонецЕсли;
   
// ...другой код...
КонецПроцедуры

&НаКлиенте
Функция ВвестиПериодМодально(рПараметры="") Экспорт
    Попытка
        Если
ТипЗнч(рПараметры)<>Тип("Структура") Тогда
           
рПараметры=Новый Структура;
        КонецЕсли;
       
пар=Новый Структура;
       
пар.Вставить("НачалоПериода",?(рПараметры.Свойство("НачалоПериода"),рПараметры.НачалоПериода,Дата(1,1,1)));
       
пар.Вставить("КонецПериода",?(рПараметры.Свойство("КонецПериода"),рПараметры.КонецПериода,Дата(3999,12,31)));
       
пар.Вставить("ДоступенИнтервал",?(рПараметры.Свойство("ДоступенИнтервал"),рПараметры.ДоступенИнтервал,Истина));
       
пар.Вставить("ДоступенПериод",?(рПараметры.Свойство("ДоступенПериод"),рПараметры.ДоступенПериод,Истина));
       
пар.Вставить("ВызывающаяФорма",?(рПараметры.Свойство("ВызывающаяФорма"),рПараметры.ВызывающаяФорма,Неопределено));
       
пар.Вставить("ЭтоМодальныйРежим",Истина);
       
рез=ОткрытьФормуМодально("Обработка.ВыборПроизвольногоПериода.Форма.ВыборПериода",пар);
        Если
ТипЗнч(рез)<>Тип("Структура") Тогда // выбрана отмена
           
Возврат Новый Структура("НачалоПериода,КонецПериода",пар.НачалоПериода,пар.КонецПериода);
        Иначе
            Возврат Новый
Структура("НачалоПериода,КонецПериода",рез.Начало,рез.Конец);
        КонецЕсли;
    Исключение
       
Сообщить("ВвестиПериодМодально, ошибка: "+ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
        Возврат Новый
Структура("НачалоПериода,КонецПериода",Дата(1,1,1),Дата(3999,12,31));
    КонецПопытки;
КонецФункции

&НаКлиенте
Процедура ВвестиПериод(рПараметры="") Экспорт
    Попытка
        Если
ТипЗнч(рПараметры)<>Тип("Структура") Тогда
           
рПараметры=Новый Структура;
        КонецЕсли;
       
пар=Новый Структура;
       
пар.Вставить("НачалоПериода",?(рПараметры.Свойство("НачалоПериода"),рПараметры.НачалоПериода,Дата(1,1,1)));
       
пар.Вставить("КонецПериода",?(рПараметры.Свойство("КонецПериода"),рПараметры.КонецПериода,Дата(3999,12,31)));
       
пар.Вставить("ДоступенИнтервал",?(рПараметры.Свойство("ДоступенИнтервал"),рПараметры.ДоступенИнтервал,Истина));
       
пар.Вставить("ДоступенПериод",?(рПараметры.Свойство("ДоступенПериод"),рПараметры.ДоступенПериод,Истина));
       
пар.Вставить("ВызывающаяФорма",?(рПараметры.Свойство("ВызывающаяФорма"),рПараметры.ВызывающаяФорма,Неопределено));
       
пар.Вставить("ЭтоМодальныйРежим",Ложь);
       
ОткрытьФорму("Обработка.ВыборПроизвольногоПериода.Форма.ВыборПериода",пар);
    Исключение
       
Сообщить("ВвестиПериод, ошибка: "+ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
    КонецПопытки;
КонецПроцедуры

&НаКлиенте
Процедура КомандаВызоваМодально(Команда)
   
// например, может применяться где-то посередине кода, где надо запросить период
   
рез=ВвестиПериодМодально();
   
Предупреждение("Получен период "+ПредставлениеПериода(рез.НачалоПериода,рез.КонецПериода));
КонецПроцедуры

&НаКлиенте
Процедура КомандаВызоваНемодально(Команда)
   
// например, может применяться из другой формы, когда на ней надо указать период
   
пар=Новый Структура("ВызывающаяФорма",ЭтаФорма.УникальныйИдентификатор);
   
ВвестиПериод(пар);
КонецПроцедуры

Вступайте в нашу телеграмм-группу Инфостарт

настройка периода ввод периода диалог периода управляемые формы УФ

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    215144    1187    413    

1052

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    41833    230    117    

215

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    19194    78    39    

92

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    27072    69    30    

98

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    38387    137    55    

178

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    5196    9    10    

16

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

5000 руб.

27.12.2024    3850    7    0    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. anton.fly7 175 13.11.13 15:56 Сейчас в теме
я вот такую делал, когда с 1с77 переходил ))

http://infostart.ru/public/77517/
2. Yashazz 4872 13.11.13 18:12 Сейчас в теме
(1) Дык, я нутром чуял, шо баяню. Ну не могло за столько лет не быть ни одной подобной разработки. Кстати, интерфейс симпатичнее, чем у моей, только бы ачипятки поправить, и вообще супер. ))
7. yuraos 1008 14.11.13 12:03 Сейчас в теме
(1)(4)(5)
так сто можешь для порядку навставлять в статью ссылок.
---
чтоб собратьям приятное сделать...
:)
3. AltF1 8 14.11.13 08:19 Сейчас в теме
Типовой механизм в упр. формах достойно выглядит
8. Yashazz 4872 14.11.13 12:18 Сейчас в теме
(3) Это который? То же, что у меня на третьем скрине?
4. yuraos 1008 14.11.13 11:54 Сейчас в теме
Плюсану ка собрату по разуму.
:)
а вот мой скромненький аналог:
EditPeriod
6. yuraos 1008 14.11.13 12:01 Сейчас в теме
(5)
еще одну статейку видел -
но интерфейс диалога выбора совсем не стандартный
и только для обычного приложения.
9. Yashazz 4872 17.11.13 00:49 Сейчас в теме
Ссылки вставил, правда, что-то при редактировании не задалось... Кстати, посмотрел их - именно идейной копии того, что есть штатно в обычных формах, таки нету, а есть разные вариации нестандартного вида.
10. anig99 2859 17.11.13 17:03 Сейчас в теме
В процедуре ПриСозданииНаСервере есть ошибка

Если ЗначениеЗаполнено(Параметры.НачалоПериода) Тогда
		спНачало = "Указанная дата";
		ДатаНачала = текдата;
	Иначе
		спНачало = "Без ограничения";
	КонецЕсли;


Должно быть

Если ЗначениеЗаполнено(Параметры.НачалоПериода) Тогда
		спНачало = "Указанная дата";
		ДатаНачала = Параметры.НачалоПериода;
	Иначе
		спНачало = "Без ограничения";
	КонецЕсли;
12. Yashazz 4872 20.11.13 17:26 Сейчас в теме
(10) Ага, спасибо, упустил.
(11) Да уж. "Стандартный период" са-а-авсем не панацея.
11. DAnry 9 20.11.13 16:46 Сейчас в теме
Плюсанул, лишний раз доказывает, что конфигурации на управляемых формах требуют доводки и "прилизывания"
13. Yashazz 4872 07.01.14 21:44 Сейчас в теме
Кстати, я обратил внимание, что разукрашка "съедает" сивмолы "<>", так что если копируете, будьте внимательны. Если нет условия, то это оно самое. И, вообще, не худо бы сообщить об этом автору разукрашки.
Для отправки сообщения требуется регистрация/авторизация