1с диалог настройка периода
Обработка имитирует функционал системного объекта «НастройкаПериода».
Обеспечивает работу альтернативного диалога настройки периода,
как в режиме обычного приложения, так и в Web-клиенте и в тонком клиенте.
Предыстория вопроса:
Часто при работе в базах данных возникает необходимость ввода периода «чего-нибудь».
Традиционно в 1С для этой цели служил специальный системный диалог.
В случае платформы 1С 7.x этот диалог выводится функцией ВвестиПериод () ,
а случае платформы 1С 8.x этот диалог открывается методом Редактировать () объекта “НастройкаПериода” .
Классификация же вариантов периодов, используемых в этом диалоге, заложена ещё в 1С:Бухгалтерия-6.0.
К сожалению в настоящее время на Web-клиенте и тонком клиенте объект “НастройкаПериода” не доступен.
И в этих режимах для ввода периода на безальтернативной основе предлагается
использовать диалог ввода стандартного периода системы компоновки данных.
Вопрос удобства, конечно, является понятием субъективным (и чего греха таить - внушаемым).
Однако я полагаю, что многие считают традиционный диалог настройки периода более удобным.
Реализация решения:
Чтобы как-то компенсировать указанное ограничение платформы и связанную с ней “несправедливость” в подсистему “ViewValues”,
начиная с версий 8.1.1.4 и 8.2.1.4 , включены обработка “EditPeriod ” и используемый ей одноименный общий модуль.
Обработка имеет два интерфейса - обычный и управляемый (управляемый – только в подсистеме версии 8.2.1.4 ).
Это обеспечивает ее работу в различных режимах:
- В Web-клиенте (Рис.1, рис.2, Рис.3, Рис.4);
- В тонком клиенте (Рис.5, рис.6, Рис.7, Рис.8);
- В обычном приложении (Рис.9, рис.10, Рис.11, Рис.12);
Основные формы обработки (Рис.1, Рис.5, Рис.9) - являются тестовыми,
служат для проверки работы объекта “НастройкаПериода” и демонстрации ее собственных возможностей.
Также у обработки есть служебные формы, непосредственно реализующие функционал объекта “НастройкаПериода” .
Обработка максимально точно имитирует поведение системного диалога настройки периода:
- Всем свойствам объекта “НастройкаПериода” соответствуют одноименные реквизиты обработки;
- Всем методам объекта “НастройкаПериода” соответствуют экспортные функции служебных форм обработки;
- Диалоги служебных форм обработки для настройки периода максимально приближены
к системному диалогу по дизайну и поведению при изменении данных;
Имеются также свои особенности:
- Свойства диалога настройки периода в служебных формах обработки доступны не напрямую,
а через реквизит формы “Объект” (смотрите ниже пример использования); - Поскольку служебные перечисления, связанные с объектом “НастройкаПериода” , также не доступны в управляемом приложении,
то вместо их значений в обработке используются строковые мнемокоды в стиле макрокоманд установки периода 1С:Бухгалтерии-6.0.
Так мнемокод “!ДНК” – соответствует варианту периода “День с начала квартала” .
Полный перечень мнемокодов приведен в справочном описании к обработке; - Положение окна диалога ввода периода запоминается при использовании (системный диалог всегда выводится в центре экрана);
- Есть и другие, более тонкие отличия поведения диалога (смотрите справочное описание);
Дополнительные возможности:
- Обработка поддерживает дополнительный режим ввода периода «Редактировать как стандартный период» и
соответствующую ей закладку в диалоге настройки (Рис.4, Рис.8, Рис.12); - Для диалога настройки периода обработки можно задать свой заголовок и тайм-аут ввода.
Истечение тайм-аута выводится в заголовке формы в квадратных скобках (Рис.10); - В диалоге настройки периода обработки можно включать-выключать вывод текущей даты и времени,
а также переключать представление выбранного периода с «обычного» на «финансовый» ; - На закладке “Период” имеется дополнительная опция выбора периода 'С текущей да т ы' / 'По текущую дату' ,
облегчающая выбор периода типа"Год NNNN по текущую дату"(Рис.13);
Общие замечания:
Управляемая форма настройки периода обработки оптимизирована по взаимодействию с сервером.
При ее работе на клиенте в явном виде не используются серверные вызовы (включая внеконтекстные).
Основной функционал обработки вынесен в общий модуль “ EditPeriod ” , который кроме этого предоставляет
экспортный метод Создать () - своего рода «конструктор» для более привычного создания диалога настройки периода.
Пример использования:
НастройкаПериода = EditPeriod . Создать (,,);
НастройкаПериода . Объект . РедактироватьКакИнтервал = Истина;
НастройкаПериода . Объект . РедактироватьКакПериод = Истина;
НастройкаПериода . Объект . РедактироватьКакСтандартныйПериод = Истина;
НастройкаПериода . Объект . ВариантНастройки = "!П" ;
НастройкаПериода . УстановитьПериод ( ДатаНачала , ?( ДатаОкончания = '0001-01-01' , ДатаОкончания , КонецДня ( ДатаОкончания )),Ложь);
НастройкаПериода . Объект . ФинансовыйПериод = Истина;
НастройкаПериода . Объект . ВыводитьТекущуюДату = Истина;
Если НастройкаПериода . Редактировать ( "Ввод периода акта взаиморасчётов:" , 180 ) Тогда
ДатаНачала = НастройкаПериода . ПолучитьДатуНачала ();
ДатаОкончания = НастройкаПериода . ПолучитьДатуОкончания ();
КонецЕсли;
Описание файлов поставки и установки:
В архиве с файлами поставки к статье находятся выгрузки демонстрационных баз подсистемы “ViewValues”
для платформы 1С версий 8.1 и 8.2, в которых можно проверить работу обработки.
Для установки описанного в статье функционала достаточно из конфигураций подсистемы “ViewValues”
указанных версий включить в конфигурацию базы данных обработку “EditPeriod” и используемый ей одноименный общий модуль.
Имеется похожая публикация:
(0) я просто в шоке от таких публикаций. А сделайте еще публикации с "ПоказатьВопрос" и "ПоказатьПредупреждение". А еще можно вообще весь СП выложить.
(1) Adeptus, лучше, но не канает в УФ )))
Я вот так сделал:
- в обработке определено 2 реквизита Дата1 и Дата2
- в УФ форме добавлена кнопка и команда формы
. по-моему просто и удобно
chrnv; smit1c; user908373; user1675272; Anna_arbuz; AlisultanovZakir; YA_420766153; Vil1983; BotMan4; Acort; criptid; SadrA; user706520_bichkov; buy_sale; link_l; sapervodichka; transt; N1LL; sanfoto; igormiro; DrAku1a; as-lubava; MenZurKa; wowik; user623969_dusa; cheburashka; Nigelist; AlMedvedev; ekomova; MRAK; nikivr; AlkB; ehcore; unichkin; free-lancer-2018; dj_serega; mnemchinov; RSConsulting; nick_krsk; + 39 – Ответить
chrnv; Anna_arbuz; Egovigor; AlisultanovZakir; nissti; tolyan_ekb; assa; Marka_; hydra88; buy_sale; SadrA; link_l; sapervodichka; as-lubava; Sonnya1909; ncd.art; KotBegemot77; matashin; m_aster; user620387_niols; testnv0; wowik; DimaShustov; user1090556; vre; Vida; klinval; cheburashka; Xershi; nekitsazon; &rew; dour-dead; MRAK; zemochka; Craig; irvin12345; + 36 – Ответить
(8) ehcore, Сначала сделал то же самое, а потом увидел ваш комментарий.
Ваш вариант все равно лучше, тк не везде есть общая форма выбора периода, а в моём случае - выбирает дату а не период (ЗУП ГУ)
Спасибо большое! Как раз нужна обработка, используемая в БУХ и ЗУП. Так вот общей формы "ВыборСтандартногоПериода", которая есть в БУХ, в ЗУПе нет, а "ВыборПериода" - что-то не осилила, как его прикрутить. Он в ЗУП для ПФР только, так-то везде месяц и все..
В обычных формах я всегда вот так использую
а в управляемых впервые делаю. Спасибо!
Использовал код (8). И обнаружил странное поведение формы. Если открыть форму, не выбирать период, закрыть форму - все ок. А вот если выбрать период, и закрыть форму - то при закрытии программа заходить в "Процедура ВыполнитьПослеВыбораПериода(Результат, Параметры) Экспорт", почему.
Вот так правильно, без модальных окон:
Просмотры 52667
Загрузки 68
Рейтинг 19
Создание 26.06.14 11:52
Обновление 26.06.14 11:52
№ Публикации 289236
Конфигурация Конфигурации 1cv8
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Не указано
См. также
Альтернативный способ добавления элементов и реквизитов на формы Промо
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
1 стартмани
09.09.2019 20421 39 bmk74 8
Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)
Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.
1 стартмани
17.10.2021 5242 6 Патриот 48
Работа с картами в 1С на примере бесплатной библиотеки Leaflet
Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.
1 стартмани
31.03.2021 14939 49 Parsec1C 18
Универсальные функции для работы с цветом в 1С
Все на что мы смотрим состоит из цветов в том числе и то, что есть в конфигурациях на 1С :) За время своей работы скопилось достаточно 1С-функций, которые что-то делают с цветом. Это публикация - попытка их систематизировать. Что есть: работа с HEX, HSV, HSL, CMYK представлениями цвета, конвертации из одной системы хранения в другую, работа с каталогами RAL, работа со случайными цветами, контрастные и инверсные цвета, трансформация цветов (осветление, затемнение, градации серого, смешивание цветов), работа с именованными CSS-цветами и т.п. В общем концептуально.
1 стартмани
07.08.2020 7078 18 Diversus 8
Расширенная настройка динамического списка УФ Промо
Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.
1 стартмани
31.05.2017 41709 164 tormozit 25
Делаем из СКД Excel (ну, почти)
Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.
1 стартмани
26.01.2020 18469 29 herfis 16
Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки
Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".
1 стартмани
27.12.2019 24026 45 1sig 16
Декомпиляция условного оформления
Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.
2 стартмани
23.12.2019 13912 62 XilDen 7
Открывашка ячеек таблиц Промо
Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм
1 стартмани
27.10.2018 24720 14 tormozit 38
Многоуровневые списки выбора с оформлением элементов
Данная статья - попытка решить один маленький кусочек большой проблемы платформы 1С, а именно - бедные и невыразительные пользовательские интерфейсы. Поскольку 1С в режиме управляемого приложения позволяет задействовать веб-клиент, то хочется реализовывать интерфейсы как у взрослых веб-приложений - красивые, дружелюбные для пользователя и, желательно, с положительным UX. Возможно, кто-то со мной не согласится и скажет, что учетные системы должны быть строгие и линейные. Но мы все знаем, что 1С - это уже не только про бухгалтерию. Небольшое отступление для разработчиков, работающих с типовыми конфигурациями. Я не знаю, использует ли фирма 1С что-то похожее в своих разработках. Если да, то данная статья навряд ли будет вам полезна.
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
Момент Времени и Граница, назначение, примеры использования 39
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp) 17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью 11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах 11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах 10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)
Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Ввод записей в журнал расчетов 1
Добавление записи в журнал расчетов: Метод Новая может быть вызван где угодно, в глобальном модуле, модуле обработок, документов и т.д. Данный метод проверяет корректность заполненных реквизитов журнала расчетов. При вводе новых записей журнал Использование ASCII кодов в 1С 5
Хотите писать в 1С не только стандартными буквами, знаками изображенными на клавиатуре и вставлять опять же стандартные смайлики, а тем не менее существует возможность ставить дополнительные символы, так же можно делать таблички прямо в тексте с помо Как выполнить перепроведение документов стандартными инструментами 1С? 1
При работе, часто бывает нужно перепровести разом документы за месяц. Удивительно, но многие не знают что есть встроенный механизм проведения: Откройте Операции - проведение документов И в открывшемся окне: 1. снимаем галку со всех документ Как поменять период у записей периодического независимого регистра, соответствующих ряду условий? 0
В периодическом независимом регистре сведений ОтветственныеЛицаОрганизации все записи, касающиеся организации с наименованием Групп-трейдинг, период которых меньше 01 января 2005 года, необходимо перенести на 01 января 2004 года. Но записи с указани Посмотреть все результаты поиска похожих
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 22
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 16
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Исторически, сначала был разработан диалог ввода периода для 1С 7.7. Причиной тому послужила утомляемость, проявлявшая себя после многократного использования стандартного диалога. За основу была выбрана форма годичного календаря.
На форму добавлено контекстное меню для выбора некоторых наиболее востребованных периодов. Для работы этого диалога требуются внешние компоненты FormEx и SpreadSheet(Йоксель). Выкладываю упакованную демонстрационную базу данных для версии 7.7. Все включенное в ее состав необходимо, ничего лишнего.
Для выбора произвольного периода дат, сначала нажимается-отпускается клавиша Shift, прощелкивается левой кнопкой мыши (ЛКМ) начальная дата периода; потом опять же ЛКМ прощелкивается конечная дата периода. В зависимости от опции в контекстном меню "Показать выделенный период перед выбором", если она выставлена, период сначала подсвечивается, а потом дополнительный щелчок ЛКМ по выделенному периоду завершает операцию. При неустановленной опции выбор периода осуществляется сразу же, как только будет прощелкнута конечная дата.
Начало периода можно выставить и из контекстного меню, если покажется за-умным использование клавиши Shift.
Диалог для версии 1С 8.3
В версию 1С 8.3 диалог был перенесен из 7.7 почти без изменений, но учтены некоторые стандартные возможности 1С 8.3 (возможность настройки варианта периода). Для удобства добавлены кнопки переходов на предыдущий или следующий период (удобно, если это какое-то энное количество дней, но не год, не квартал, не месяц и не неделя).
Произвольный период выбирается так: правой кнопкой мыши выделяется начальная дата периода, левой - конечная дата периода и на этом диалог закрывается.
При выборе стандартного варианта настройки периода набираем один-два фрагмента наименования, получаем отфильтрованные варианты и осуществляем уже из них окончательный выбор.
Реализован диалог аки общая форма, а не обработка (дико извиняюсь).
Праздничные дни и переносы дат отмечаются в регистре сведений (пример есть).
В демонстрационной конфигурации заведена общая команда, которую достаточно вывести на форму списка документов, регистра накопления (сведений) или форму отчета. Возможно, у вас появятся более удачные варианты использования диалога. Мне, в свое время, на ум пришел именно такой, дабы минимизировать в дальнейшем свои усилия.
В силу всего вышеперечисленного, затрудняюсь представить диалог как внешний отчет.
Читайте также: