АвтоВремяКонецДня

  • Автор темы Автор темы Helena
  • Дата начала Дата начала
H

Helena

v7:Бухгалтерский учет ред.4.5. Для новых документов время надо утанавливать на конец дня.Пробую по-всякому, но не получается :(

в модуле формы:

Процедура ВводНового()
АвтоВремяОтключить();
АвтоВремяКонецДня();
КонецПроцедуры

Подскажите, пожалуйста, что я не так делаю
 
Нужно не на ВводНового(), а ПриЗаписи()
 
Исправила. Нужный документ (списание) записывается последним в журнале. Любой другой новый записывается следом за ним :( . Т.е. так же идет в конец дня. А мне надо, чтоб всегда в журнале последним был определенный вид документов.

Процедура ПриЗаписи()
Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда
СтатусВозврата(0);
Возврат;
ИначеЕсли глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента) = 1 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
АвтоВремяОтключить();
АвтоВремяКонецДня();
КонецПроцедуры
 
тогда нужно создавать последовательность документов, а в конце дня ее восстанавливать
 
УстановитьВремя(<?>,,);
Синтаксис:
УстановитьВремя(<Часы>,<Минуты>,<Секунды>)
Назначение:
Установить время документа.
Параметры:
<Часы> - число часов;
<Минуты> - число минут;
<Секунды> - число секунд.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект
 
Выдает ошибку
ТекДок.УстановитьВремя(24,0,0); Не выбран документ!

Процедура Перепроведение()
Док = СоздатьОбъект("Документ.ТребованиеНакладная");
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()>0 Цикл
ТекДок = Док.ТекущийДокумент();
ТекДок.АвтоВремяОтключить();
ТекДок.УстановитьВремя(24,0,0);
КонецЦикла;
КонецПроцедуры
 
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект

Код:
Пока Док.ПолучитьДокумент()>0 Цикл
//ТекДок = Док.ТекущийДокумент();
//ТекДок.АвтоВремяОтключить();
Док.УстановитьВремя(24,0,0);
Док.Записать();
КонецЦикла;
 
Теперь получается. Но обрабатывается только первый документ. неужели нужно подсчитывать кол-во доков и каждый раз вызывать процедуру?

//*******************************************
Процедура Перепроведение()
кол=0;
Док = СоздатьОбъект("Документ.ТребованиеНакладная");
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()>0 Цикл
Док.СделатьНеПроведенным();
Док.АвтоВремяОтключить();
Док.УстановитьВремя(24,0,0);
Док.Записать();
Док.Провести();
кол=кол+1;
КонецЦикла;
предупреждение(кол);
КонецПроцедуры
 
судя по коду, должны обрабатываться все в периоде (НачДата,КонДата)

кстати, неплохо бы добавить
Код:
Если Док.Проведен() = 0 Тогда
Продолжить;
КонецЕсли;
иначе проведуцца доки, бывшие непроведенными...

и еще - правильнее будет
Док.УстановитьВремя(23,59,59);
 
время так и так устанавливается в 23.59.59
 
Работает
Всем большое спасибо
 
<!--QuoteBegin-Helena+7:09:2007, 14:42 -->
<span class="vbquote">(Helena @ 7:09:2007, 14:42 )</span><!--QuoteEBegin-->большое спасибо
[snapback]77503" rel="nofollow" target="_blank[/snapback]​
[/quote]
а плюсеГ?...
хехе
 
не нужен тебе плюсик....

Код:
Процедура ПриЗаписи()
АвтоВремяОтключить ();
УстановитьВремя(23,59,59);
КонецПроцедуры

Описание:

Метод АвтоВремяОтключить отключает режим автоматической установки времени нового документа, при этом новые документы заносятся с временем устанавливаемым при помощи метода УстановитьВремя.
 
И ещё нужно на всякий случай добавить СделатьНеПроведённым() если вдруг это повторная запись...
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab