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

25.07.12

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Пример выбора периода
.epf 6,38Kb
89
89 Скачать (1 SM) Купить за 1 850 руб.

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

&НаКлиенте

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

См. также

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

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

5000 руб.

14.01.2016    55306    17    23    

43

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

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

6000 руб.

16.01.2015    63700    44    59    

82

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

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

2400 руб.

29.06.2020    19550    27    6    

42

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

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

1500 руб.

06.10.2020    10768    7    7    

11

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    20833    mrXoxot    44    

128

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    10317    smielka    37    

105

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

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

27.12.2023    17745    1223    elcoan    53    

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

З.Ы. убрал минус. Его отсутствие будем считать компенсацией за потраченное время на публикацию.
9. Leo_A 103 22.10.12 18:34 Сейчас в теме
(7) Lyns_owner, одно дело период регистрации в ЗУП, на неуправляемом приложении, а другое дело управляемая форма - это не одно и тоже, хотя и очень похоже. А про ЗУП я знаю...
11. Lyns_owner 356 23.10.12 02:29 Сейчас в теме
12. KuJIT 17.12.14 17:13 Сейчас в теме
А чем не устраивает "СтандартныйПериод"?
13. Leo_A 103 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. 🅵🅾️🆇 524 15.06.18 14:37 Сейчас в теме
(15)
Если продолжать в том же духе то можно создать функцию


Мимо использую функции Инк(Число, Размер = 1) и Дек(Число, Размер = 1)
user599167_sbityutskiy; +1 Ответить
18. Leo_A 103 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 103 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 Сейчас в теме
Прошу снять с публикации
Оставьте свое сообщение