Выбор месяца (периода) на управляемой форме

25.07.12

Разработка - Работа с интерфейсом

Выбор месяца из списка выбора на управляемой форме с корректным отображением после выбора

Скачать файлы

Наименование Файл Версия Размер
Пример выбора периода
.epf 6,38Kb
89
.epf 6,38Kb 89 Скачать

Как отобразить выбранную дату в произвольном формате? Пока не столкнулся с проблемой - не подумал бы, что такое на управляемой форме типовыми средствами сделать нельзя. Единственный выход, который я нашел - это добавление реквизита формы с типом "Строка" и обработка события "НачалоВыбораИзСписка".

&НаКлиенте

Процедура ПериодСНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
[МодульКлиент].НачалоВыбораИзСпискаПредставленияПериодаРегистрации(Элемент, СтандартнаяОбработка, Объект.ПериодС, ЭтаФорма);
КонецПроцедуры

Саму же процедуру НачалоВыбораИзСпискаПредставленияПериодаРегистрации помещаем в какой-нибудь общий модуль для которого установлен вызов с клиента.

Процедура НачалоВыбораИзСпискаПредставленияПериодаРегистрации(Элемент, СтандартнаяОбработка, ПериодРегистрации, ЭтаФорма, НачальноеЗначение = Неопределено) Экспорт

СтандартнаяОбработка = Ложь;

Если НачальноеЗначение = Неопределено Тогда
НачальноеЗначение = ПериодРегистрации;
КонецЕсли;

СписокВыбора = Новый СписокЗначений;
НачалоТекущегоГода = НачалоГода(НачальноеЗначение);
НачалоПрошлогоГода = НачалоГода(НачалоТекущегоГода - 1);
СписокВыбора.Добавить(НачалоПрошлогоГода, (Формат(НачалоПрошлогоГода, "ДФ='yyyy'") + "..."));
НачалоМесяцаЗаполнения = НачалоТекущегоГода;
ЭлементПоУмолчанию = Неопределено;
Для а = 1 По 12 Цикл
ДобавленныйЭлемент = СписокВыбора.Добавить(НачалоМесяцаЗаполнения, ДатаКакМесяцПредставление(НачалоМесяцаЗаполнения));
Если НачальноеЗначение = НачалоМесяцаЗаполнения Тогда
ЭлементПоУмолчанию = ДобавленныйЭлемент;
КонецЕсли;
НачалоМесяцаЗаполнения = ДобавитьМесяц(НачалоМесяцаЗаполнения, 1);
КонецЦикла;
НачалоСледующегоГода = КонецГода(НачалоТекущегоГода) + 1;
СписокВыбора.Добавить(НачалоСледующегоГода, (Формат(НачалоСледующегоГода, "ДФ='yyyy'") + "..."));

ВыбранныйЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокВыбора, Элемент, ЭлементПоУмолчанию);

Если ВыбранныйЭлемент = Неопределено Тогда
Возврат;
ИначеЕсли Год(ВыбранныйЭлемент.Значение) <> Год(НачальноеЗначение) Тогда
НачалоВыбораИзСпискаПредставленияПериодаРегистрации(Элемент, СтандартнаяОбработка, ПериодРегистрации, ЭтаФорма, ВыбранныйЭлемент.Значение);
Возврат;
КонецЕсли;

ПериодРегистрации = ВыбранныйЭлемент.Значение;
Элемент.ВыделенныйТекст = ДатаКакМесяцПредставление(ПериодРегистрации);

КонецПроцедуры

Функция ДатаКакМесяцПредставление(ДатаДата) Экспорт
Возврат Формат(ДатаДата, "ДФ='ММММ гггг'");
КонецФункции

ну и чтобы при открытии формы у нас восстанавливалось представление периодов в наших полях - в событии "ПриОткрытии" устанавляваем представления в наши строковые реквизиты формы:

ПериодС = [МодульКлиент].ДатаКакМесяцПредставление(Объект.ПериодС);;
ПериодПо = [МодульКлиент].ДатаКакМесяцПредставление(Объект.ПериодПо);;

 

 

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61797    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

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

5000 руб.

14.01.2016    54403    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16698    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10738    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9617    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3666    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12082    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. IamAlexy 344 25.07.12 08:05 Сейчас в теме
достаточно просто открыть БП3 и посмотреть как там в отчетах построена работа с периодами.
Raskad; Leon99; +2 Ответить
8. Leon99 22.10.12 18:04 Сейчас в теме
10. Leo_A 102 22.10.12 18:36 Сейчас в теме
(8) Leon99, как уже писал в 3-м сообщении, в БП3 слишком навороченный механизм, для простого выбора месяца...
2. Alex_grem 256 25.07.12 08:55 Сейчас в теме
Полностью согласен с IamAlexy. Нечего изобретать велосипед
3. Leo_A 102 25.07.12 10:32 Сейчас в теме
Да, БП3 это пожалуй единственная конфа, в которую я не подумал заглянуть, спасибо за наводку... Но на самом деле 2 общих модуля, перечисление и общая форма - это немного больше, чем 2 процедуры, которые можно и не выносить в общие модули для локальной обработки.
4. Stepan_1c 21.10.12 15:45 Сейчас в теме
делал сегодня нечто подобное - я не один такой :)
5. Lyns_owner 355 21.10.12 15:50 Сейчас в теме
Это давно реализовано до вас. Ставьте копирайты, а лучше не вообще не занимайтесь копипастом.
6. Leo_A 102 21.10.12 17:06 Сейчас в теме
(5) Lyns_owner, реализовано может и давно, но поиск мне почему-то не выдал достойного результата, решение данной задачи тоже весьма не очевидное на первый взгляд, поэтому и опубликовал его здесь. Дайте ка ссылочку откуда это скопировано, а то больно голословно выглядит ваш комментарий...
Кроме того, существование похожих публикации не делает мою публикацию хуже - это не основание понижать ее рейтинг. © Lyns_owner
7. Lyns_owner 355 22.10.12 17:43 Сейчас в теме
(6) =)) Улыбнуло. А кто говорил про статью? Открой ЗУП - там почти в любом документе увидишь свой ПериодРегистрации.

З.Ы. убрал минус. Его отсутствие будем считать компенсацией за потраченное время на публикацию.
9. Leo_A 102 22.10.12 18:34 Сейчас в теме
(7) Lyns_owner, одно дело период регистрации в ЗУП, на неуправляемом приложении, а другое дело управляемая форма - это не одно и тоже, хотя и очень похоже. А про ЗУП я знаю...
11. Lyns_owner 355 23.10.12 02:29 Сейчас в теме
12. KuJIT 17.12.14 17:13 Сейчас в теме
А чем не устраивает "СтандартныйПериод"?
13. Leo_A 102 20.12.14 21:17 Сейчас в теме
(12) всем устраивает, а как это относится к данной публикации?
14. пользователь 20.12.14 23:14
Сообщение было скрыто модератором.
...
15. YanTsys 12 16.12.17 15:37 Сейчас в теме
Функция ДатаКакМесяцПредставление(ДатаДата) Экспорт
   Возврат Формат(ДатаДата, "ДФ='ММММ гггг'");
КонецФункции


Жесть :)
Если продолжать в том же духе то можно создать функцию

Функция Сложение(А,Б) Экспорт
   Возврат А+Б;
КонецФункции
Eillecho; +1 Ответить
16. nporrep 50 22.12.17 04:04 Сейчас в теме
(15)На самом деле такой подход положительно влияет на скорость разработки.
Проще набрать ДатаК, нажать Ctrl+Space и Enter, чтобы получить в коде имя функции, чем каждый раз прописывать в параметре функции Формат форматную строку.
17. YanTsys 12 22.12.17 10:39 Сейчас в теме
(16) Спасибо за идею, теперь понятны плюсы этого подхода :)
19. 🅵🅾️🆇 522 15.06.18 14:37 Сейчас в теме
(15)
Если продолжать в том же духе то можно создать функцию


Мимо использую функции Инк(Число, Размер = 1) и Дек(Число, Размер = 1)
user599167_sbityutskiy; +1 Ответить
18. Leo_A 102 22.12.17 16:20 Сейчас в теме
(15) Скорость разработки думаю тут не главная причина данного подхода. Главным в данном случае является то, что если клиент захочет видеть например не "Декабрь 2017", а "Дек 2017", то нам нужно в одной функции поменять форматную строку и мы получим изменения во всех местах использующих вызов этой функции. Но тут нужно опять же руководствоваться здравым смыслом. Если эта функция будет вызываться единожды в одном месте конфигурации, то конечно же это скорее излишество. Данный код был взят из типовой конфигурации 1С и представлен как есть, в их решении действительно была необходимость данного подхода, в вашем случае - решать вам.
Eillecho; +1 Ответить
20. user805602 07.09.18 07:41 Сейчас в теме
Так непонятно написано.
21. user805602 07.09.18 07:43 Сейчас в теме
Какой вид реквизита? Как реквизит на форме называется?
22. user805602 07.09.18 07:45 Сейчас в теме
Какие свойства , каких полей, надо установить, чтобы был такой вид?
23. Leo_A 102 07.09.18 12:44 Сейчас в теме
(22) Здравствуйте, если Вам важен именно такой вид и описание для Вас непонятно - можно скачать обработку, там разобраться проще.
Если важен выбор периода и не важно какой при этом будет вид у элементов управления - используйте поле с типом "Стандартный период".
user675194_iChibis; user805602; +2 Ответить
24. 1C_tradeomsk 105 09.02.22 12:21 Сейчас в теме
Что за бред я скачал?

Скриншот не соответствует скачанному. Буду жаловаться. И где что тут выбирается?
Прикрепленные файлы:
Светлый ум; +1 Ответить
25. 1C_tradeomsk 105 09.02.22 12:22 Сейчас в теме
Прошу снять с публикации
Оставьте свое сообщение