Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

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

Warhammer
читатель
офлайн
Дата регистрации: 27.11.2008
Сообщений: 30
Пост №31
 
03.12.2008 16:56

"Мои корявые ручонки додумались с вашей подачи только до такого:<br><br>Обработка.ИзменениеВремениДокумента<br><br>Модуль формы<br>//*******************************************<br>Процедура Выполнить() <br> <br> Если ВыбДокумент.Выбран() = 0 Тогда<br> Предупреждение("Не выбран документ!");<br> Возврат;<br> КонецЕсли;<br> <br> Док = СоздатьОбъект("Документ."+ВыбДокумент.Вид());<br> Док.НайтиДокумент(ВыбДокумент);<br> БылПоведен=0;<br> <br> Если Док.Проведен() = 1 Тогда<br> Док.СделатьНеПроведенным();<br> БылПоведен = 1;<br> КонецЕсли;<br> <br> Док1 = СоздатьОбъект("Документ");<br> Док1.ВыбратьДокументы(Док.ДатаДок,Док.ДатаДок);<br> Пока Док1.ПолучитьДокумент() = 1 Цикл<br> Текущий = Док1.ТекущийДокумент();<br> КонецЦикла;<br> ЧЧ = 0;<br> ММ = 0;<br> СС = 0;<br> Текущий.ПолучитьВремя(ЧЧ,ММ,СС);<br> СС = СС + 1;<br> Если СС > 59 Тогда<br> СС = 00;<br> ММ = ММ + 1;<br> Если ММ > 59 Тогда<br> ММ = 00;<br> ЧЧ = ЧЧ + 1;<br> Если ЧЧ > 23 Тогда<br> ЧЧ = 23;<br> КонецЕсли;<br> КонецЕсли;<br> КонецЕсли;<br> <br> Док.УстановитьВремя(ЧЧ,ММ,СС);<br> Док.Записать();<br> <br> Если БылПоведен=1 Тогда<br> Док.Провести();<br> КонецЕсли; <br> <br>КонецПроцедуры<br><br>//*******************************************<br>Процедура ПриОткрытии()<br> <br> Если ТипЗначения(Форма.Параметр)=12 Тогда //Тип значения 12 - Документ<br> ВыбДокумент=Форма.Параметр;<br> Форма.Закрыть();<br> КонецЕсли; <br> <br>КонецПроцедуры <br><br>//*******************************************<br>Процедура ПриЗакрытии()<br> <br> Выполнить(); <br> <br>КонецПроцедуры<br><br><br>Теперь маюся - откуда это добро вызывать: желательно, чтобы в отгрузке добавить к кнопке "ок" вызов данной обработки..."

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №32
 
03.12.2008 18:50

"ИМХО, получение ТА корректнее сделать так:<br>Функция ПолучитьВремяТАБух(ВидДок="""")<br> Если ВидДок="""" Тогда<br>       Док=СоздатьОбъект("Документ");<br> Иначе<br> Док=СоздатьОбъект("Документ."+ВидДок);<br> КонецЕсли;<br> Док.ОбратныйПорядок(1);<br> Док.ВыбратьДокументы(РабочаяДата(),РабочаяДата());<br> ЧЧ=-1;<br> ММ=-1;<br> СС=-1;<br> Пока Док.ПолучитьДокумент()>0 Цикл<br> Если Док.Проведен()=1 Тогда<br>        ТА=Док.ПолучитьВремя(ЧЧ,ММ,СС);<br> Прервать;<br> КонецЕсли;<br> КонецЦикла;<br> ВремяПоДокументу=0;<br> Если ЧЧ>0 Тогда<br> ВремяПоДокументу=ЧЧ*3600;<br> ВремяПоДокументу=ВремяПоДокументу+(ММ*60);<br> ВремяПоДокументу=ВремяПоДокументу+СС;<br> КонецЕсли;<br> Время=ТекущееВремя(ЧЧ,ММ,СС);<br> ВремяПоТекущему=ЧЧ*3600;<br> ВремяПоТекущему=ВремяПоТекущему+(ММ*60);<br> ВремяПоТекущему=ВремяПоТекущему+СС;<br> Если ВремяПоДокументу>ВремяПоТекущему Тогда<br> Возврат ТА;<br> Иначе<br> Возврат Время;<br> КонецЕсли;<br>КонецФункции<br><br>Описание: если при вызове функции не передавать в нее вид документа то функция вернет теущее время или врем последнего проведенного документа если оно больше текущего. Если передать вид документа, то функция вернет текущее время документа или время последнего поведенного документа _заданного_ _вида_ если его время больше текущего.<br><br>А далее для проведения можно другого документа после ТА можно просто распарсить секунды, прибавить кним 1,2 или сколько угодно секунд, проконтролировать не получилось ли более 59 со всеми вытекающими полседствиями, и использовать новое время для проведение нужного документа."

Warhammer
читатель
офлайн
Дата регистрации: 27.11.2008
Сообщений: 30
Пост №33
 
04.12.2008 09:18

Ну, с ТА вроде разобрался..))) Теперь хотел бы спросить как лучше вызвать обработку с изменением времени, чтобы для пользователя визуально ничего не поменялось - т.е. по привычному нажатию на одну кнопку он проводил и закрывал документ...

Prikum
активный пользователь
онлайн
Дата регистрации: 18.02.2002
Сообщений: 20954
Пост №34
 
04.12.2008 09:36

Интереснол, а что будет если существуют проведенные документы с датой больше чем РабочаяДата()?

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №35
 
04.12.2008 10:20

> Интереснол, а что будет если существуют проведенные документы с датой больше чем РабочаяДата()?<br><br>Да, тут я забыл написать комментарий... надо дорабатывать... вот только не знаю уж как, может на дату документа завязаться

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №36
 
04.12.2008 10:23

> Ну, с ТА вроде разобрался..))) Теперь хотел бы спросить как лучше вызвать обработку с изменением времени, чтобы для пользователя визуально ничего не поменялось - т.е. по привычному нажатию на одну кнопку он проводил и закрывал документ...<br><br>Не получиться так, документ все равно надо закрыть, но можно по нажатию кнопки документ сначала проводить и потом вызывать обработку с третьим параметром = 0, она тогда изменит время документа но не откроет его после этого.

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №37
 
04.12.2008 10:33

"В связи с замечанием Prikum'а заменяем<br><br>Если ВидДок="""" Тогда<br> Док=СоздатьОбъект("Документ");<br>Иначе<br> Док=СоздатьОбъект("Документ."+ВидДок);<br>КонецЕсли;<br>Док.ОбратныйПорядок(1);<br>Док.ВыбратьДокументы(РабочаяДата(),РабочаяДата());<br><br>на<br><br> Если ВидДок="""" Тогда<br>       Док=СоздатьОбъект("Документ");<br> Док.ОбратныйПорядок(1);<br> Док.ВыбратьДокументы(РабочаяДата(),РабочаяДата());<br> Иначе<br> Док=СоздатьОбъект("Документ."+ВидДок);<br> Док.ОбратныйПорядок(1);<br> Док.ВыбратьДокументы(Док.ДатаДок,Док.ДатаДок);<br> КонецЕсли;<br><br>Если будет выбран документ записаный заньше чем забочая дата, то ТА будет искаться в тот день, иначе в рабочей дате.<br><br>"

Prikum
активный пользователь
онлайн
Дата регистрации: 18.02.2002
Сообщений: 20954
Пост №38
 
04.12.2008 10:43

Не, просто надо убрать второй параметр, тогда будут выбираться все документы, с первой даты и до конца века!

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №39
 
04.12.2008 11:32

Да, конечно, можно и так, но тут подразумевается ограничение в день документа...

Prikum
активный пользователь
онлайн
Дата регистрации: 18.02.2002
Сообщений: 20954
Пост №40
 
04.12.2008 12:26

если мы говорим о ТА, то не должно быть ограничения в день документа!

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация