Проведение документа на конец дня

1. tandy82 62 15.01.09 06:00 Сейчас в теме
Подскажите, пожалуйста, как сделать чтобы при проведении уже не нового документа (т.е.
того который уже был ранее создан и сохранен) он автоматически (без диалога
с выбором времени) сохранял его на конец дня и проводил?

p.s. проведение документа делает сам пользователь нажатием кнопки Провести, а не групповой обработкой.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. Altair777 647 15.01.09 10:05 Сейчас в теме
(1) пока я вижу одно решение - FormEx ПослеЗакрытия()
2. Altair777 647 15.01.09 09:44 Сейчас в теме
Именно на конец дня? А так не годится?
Процедура ПриЗаписи()
    УстановитьВремя(23, 59, 59);
КонецПроцедуры


вот вариант
Процедура ВремяВКонецДня()
    Перем Часы, Минуты, Секунды;
    Док=СоздатьОбъект("Документ");
    Док.ВыбратьДокументы(ДатаДок,ДатаДок);
    Док.ОбратныйПорядок();
    Если Док.ПолучитьДокумент() = 1 Тогда
        Док.ПолучитьВремя(Часы,Минуты,Секунды);
        //Потом нужно инкриминировать результат
        УстановитьВремя(Часы,Минуты,Секунды);
    КонецЕсли;
КонецПроцедуры    // ВремяВКонецДня()

Процедура ПриЗаписи()
    Процедура ВремяВКонецДня();
КонецПроцедуры
Показать
3. Ёпрст 1067 15.01.09 09:51 Сейчас в теме
(2) Не сгодится... :)
УстановитьВремя работать будет без объекта только для Нового, незаписанного документа.
5. Altair777 647 15.01.09 09:53 Сейчас в теме
16. Shaman100M 1152 15.01.09 12:02 Сейчас в теме
Используя (2) и (4) :

// диалог форма документа
// формула кнопки "Провести" заменяем на 
ПровестиВКонец = 1; #Записать Закрыть

// модуль формы документа
Перем ПровестиВКонец; // доп. переменная

Процедура ПриЗакрытии()
    Если ПустоеЗначение(ПровестиВКонец)    = 0 Тогда
        ПровестиВКонец    = 0;
        ОткрытьФорму("Обработка.ПроведениеВКонецДня",ТекущийДокумент());
    КонецЕсли;
КонецПроцедуры

// модуль обработки ПроведениеВКонецДня

Процедура ПриЗакрытии()
    Перем Часы;
    Перем Минуты;
    Перем Секунды;
       
    Док=СоздатьОбъект("Документ"); 
       Док.ОбратныйПорядок(1); 
    
       Если Док.ВыбратьДокументы(Форма.Параметр.ДатаДок,Форма.Параметр.ДатаДок) = 1 Тогда 
        Док.ПолучитьВремя(Часы,Минуты,Секунды); 
        
          Док.НайтиДокумент(Форма.Параметр);
          Если Док.Проведен()    = 1 Тогда
              Док.СделатьНеПроведенным();
          КонецЕсли;                     
          Док.УстановитьВремя(Часы,Минуты,Секунды+1); 
    Иначе
          Док.НайтиДокумент(Форма.Параметр);
    КонецЕсли;      
    Док.Провести();   
    ОткрытьФорму(Док.ТекущийДокумент()); // переоткрыть документ
КонецПроцедуры


Процедура ПриОткрытии()
    Форма.Закрыть();
КонецПроцедуры


Показать
4. Ёпрст 1067 15.01.09 09:52 Сейчас в теме
(0) Только извратом можно установить время из самой формы... Через открытие-закрытие формы обработки, к примеру...
6. Altair777 647 15.01.09 09:54 Сейчас в теме
(4) а с этим соглашусь :-)
7. Altair777 647 15.01.09 09:58 Сейчас в теме
Тогда из журнала интерактивно - Действия - Изменить время документа? :-)
Вопрос - А зачем все это?
8. Ёпрст 1067 15.01.09 10:00 Сейчас в теме
(7) если был проведен - облом :)
Для проведенных нужно еще сымать с проведения..менять время-заново проводить...

Причем, если нужно, чтоб движения, к примеру вообще не менялись при этом...то всё тоже решаемо.
9. Altair777 647 15.01.09 10:03 Сейчас в теме
(8) это понятно - сначала отменить, если права позволяют :-)
11. poppy 15.01.09 11:02 Сейчас в теме
В модуле формы документа есть метод ПроводитьПослеТА(<ФлагДляНеПров>,<ФлагДляПров>)

Если в конфигурации используется ТА и проведенный документ проводится текущей датой, то можно использовать указанный метод.
12. Altair777 647 15.01.09 11:10 Сейчас в теме
(11) И если документ еще не проведен, кажется?
14. poppy 15.01.09 11:22 Сейчас в теме
(12) Обрати внимание, там два флага, один для проведенного, другой для непроведенного.

(13) Если не в дате ТА, тогда не подойдет. Смысл всего этого, если задним числом?
15. Altair777 647 15.01.09 11:29 Сейчас в теме
(14)
Poppy пишет:
Смысл всего этого, если задним числом?

Приходная была позже, например. Но проще их в начало дня перебросить.
13. Ёпрст 1067 15.01.09 11:10 Сейчас в теме
(11) вряд ли автор в дате ТА работает, имхо..
17. tandy82 62 17.01.09 07:07 Сейчас в теме
Всем огромное спасибо! особенно Shaman100M
18. Altair777 647 17.01.09 10:57 Сейчас в теме
(17) и я хочу персональное спасибо! :-)
19. tandy82 62 21.01.09 06:20 Сейчас в теме
Персональное спасибо Альтаиру за настойчивость и пытливость в обсуждении моей проблемы :)
20. Altair777 647 21.01.09 09:26 Сейчас в теме
(19) Ура! Как приятно, чесслово :-)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот