• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

Helena

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

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

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

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

jj_mail

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

Helena

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

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

jj_mail

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

b00tch

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

Helena

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

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

b00tch

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

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

Helena

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

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

b00tch

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

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

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

Helena

время так и так устанавливается в 23.59.59
 
B

b00tch

<!--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

не нужен тебе плюсик....

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

Описание:

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

Granata005

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!