gifts2017

Изменение времени и даты документа

Опубликовал Андрей Зидорофф (yc_2011) в раздел Обработки - Обработка документов

Обработка позволяет, как в версии 7.7, изменять время, а заодно и дату документа. При выборе вариантов времени "В начало (конец) дня" обработка ставит не 00:00:00 или 23:59:59, а реальные значения: время первого документа - 1 или время последнего документа + 1. Легко встраивается в любые конфигурации с управляемым интерфейсом. Платформа 8.2, 8.3.

Обработка в составе конфигурации. Не обращается к процедурам и функциям конфигурации.

Для внедрения необходимо вставить представленную внешнюю обработку с именем , например, "ИзменениеДатыВремениДокумента",

и создать команду обработки, например, "ИзменитьДатуВремяДокумента". В свойствах команды установить подсказку, а так же:

 - Группа "Командная панель формы.Важное";

 - ТипПараметра команды - выбрать нужные документы (обычно все).

 - Отображение (картинка, текст) - по желанию, обычно картинка.

 - Модуль команды:

   &НаКлиенте

   Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

      Документ = ПараметрКоманды;

      Если Документ.Пустая() Тогда

         ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Документ не записан.");

         Возврат;

      ИначеЕсли ТипЗнч(ПараметрыВыполненияКоманды.Источник) <> Тип("УправляемаяФорма") Тогда

         ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Команда вызывается из форм журналов и документов.");

         Возврат;

      КонецЕсли;

      ОткрытьФорму("Обработка.ИзменениеДатыВремениДокумента.Форма", 

         Новый Структура("Документ", Документ),

         ПараметрыВыполненияКоманды.Источник, 

         ПараметрКоманды,

         ,

         ,

         ,

         РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

   КонецПроцедуры // ОбработкаКоманды

В обработке есть закладки "Установить время" и "Установить дату" с вариантами установки времени. Легко реализовать варианты "после документов оплат", "перед документами расхода" и т.д., так как выбираются все документы на дату. При изменении даты нужны времена только начального и конечного документов, так что для этого случая запрос можно ускорить функциями минимум и максимум.

Команда должна появится в командных панелях документов и списков документов.

Для обновления времени в форме (Имя события "Изменен объект" может быть изменено в обработке и формах документов):

&НаКлиенте

Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

   Если ИмяСобытия = "Изменен объект" И Объект.Ссылка = Параметр Тогда

      Прочитать();

   КонецЕсли;

КонецПроцедуры // ОбработкаОповещения



(!) Зафиксирована ошибка при выборе "в конец дня". Внесены изменения в процедуру модуля формы "ИзменитьДатуВремяНаСервере":

ИначеЕсли ВариантВремени > 0 заменено на ИНАЧЕ

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

Наименование Файл Версия Размер Кол. Скачив.
ИзменениеДатыВремениДокумента
.epf 8,72Kb
05.09.14
30
.epf 8,72Kb 30 Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа