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

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

Helena

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

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

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

Подскажите, пожалуйста, что я не так делаю
 
J

jj_mail

Гость
#2
Нужно не на ВводНового(), а ПриЗаписи()
 
H

Helena

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

Процедура ПриЗаписи()
Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда
СтатусВозврата(0);
Возврат;
ИначеЕсли глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента) = 1 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
АвтоВремяОтключить();
АвтоВремяКонецДня();
КонецПроцедуры
 
J

jj_mail

Гость
#4
тогда нужно создавать последовательность документов, а в конце дня ее восстанавливать
 
B

b00tch

Гость
#5
УстановитьВремя(<?>,,);
Синтаксис:
УстановитьВремя(<Часы>,<Минуты>,<Секунды>)
Назначение:
Установить время документа.
Параметры:
<Часы> - число часов;
<Минуты> - число минут;
<Секунды> - число секунд.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект
 
H

Helena

Гость
#6
Выдает ошибку
ТекДок.УстановитьВремя(24,0,0); Не выбран документ!

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

b00tch

Гость
#7
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект

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

Helena

Гость
#8
Теперь получается. Но обрабатывается только первый документ. неужели нужно подсчитывать кол-во доков и каждый раз вызывать процедуру?

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

b00tch

Гость
#9
судя по коду, должны обрабатываться все в периоде (НачДата,КонДата)

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

и еще - правильнее будет
Док.УстановитьВремя(23,59,59);
 
B

b00tch

Гость
#12
<!--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]
а плюсеГ?...
хехе
 
G

Granata005

Гость
#13
не нужен тебе плюсик....

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

Метод АвтоВремяОтключить отключает режим автоматической установки времени нового документа, при этом новые документы заносятся с временем устанавливаемым при помощи метода УстановитьВремя.
 
G

Granata005

Гость
#14
И ещё нужно на всякий случай добавить СделатьНеПроведённым() если вдруг это повторная запись...