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

Новая тема
Показывать по 10 20 40 сообщений
Спасибо, образумили тёмного...)) Только про эти методы работают только в оперативном учете, а у меня только бухгалтерский, и о их существовании я знал еще до своего вопроса... Если они работают и в бухгалтерском учете, то объясните их принцип поподробнее - стану еще менее темным))
А вы попробуйте на копии базы... я посмотреть только дома вечером смогу...
Мои корявенькие ручонки уже неоднократно пытались что-то подобное наваять, но ничего нужного из этого не получалось...))
Ладно, вы пока для саморазвития почитайте http://buch77.h12.ru/
А
я вечером дом попробую...
ТА в бух.программах 7.7 не существует, вернее не применяется!
З,Ы, Кстати по ссылку на главной странице дата 58 августа 2009 :)))
> ТА в бух.программах 7.7 не существует, вернее не применяется!
Да, тут надо делать через обработку ожидания, но, что-то у меня не работает, не запускается процедура которую передаю в параметре обработе ожидания.

> З,Ы, Кстати по ссылку на главной странице дата 58 августа 2009 :)))
8)))
"Про обработку не могу сказать, сейчас практически не работаю с 7.7, просто не хочу, каждый раз вспоминать, что там и как там! ;))"
Я своими корявенькими ручонками вчера и написал в бухгалтерии аналог ТА для нужного типа документов, только теперь хочу его правильно запустить... Не могу определиться с точкой вызова обработки...
"Вот рабочий вариант с обработкой ожидания.
В Глобальном мобуле:
Перем ДанныеДляИзмененияВремениДокумента Экспорт;
Процедура глИзменитьВремениДокумента() Экспорт
ОткрытьФорму("Обработка.УстановитьВремяДокумента");
КонецПроцедуры

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

Текст обработки УстановитьВремяДокумента:
Процедура ПриОткрытии()
ОбработкаОжидания("""");
Данные=СоздатьОбъект("СписокЗначений");
Данные=ЗначениеИзСтрокиВнутр(ДанныеДляИзмененияВремениДокумента);
Если Данные.РазмерСписка()<>3 Тогда
   Сообщить("Не верное количество входящих параметров");
Форма.Закрыть();
Возврат;
КонецЕсли;
ОбрабатываемйДокумент=Данные.ПолучитьЗначение(1);
Если ТипЗначения(ОбрабатываемйДокумент)<>12 Тогда
   Сообщить("Не правильно задан входящий параметр Документ");
Форма.Закрыть();
Возврат;
КонецЕсли;
Время=Данные.ПолучитьЗначение(2);
Если ТипЗначения(Время)<>2 Тогда
   Сообщить("Не правильно задан входящий параметр Время (не совпадает тип значения)");
Форма.Закрыть();
Возврат;
КонецЕсли;
Если СтрДлина(Время)<>8 Тогда
   Сообщить("Не правильно задан входящий параметр Время (не совпадает длина параметра)");
Форма.Закрыть();
Возврат;
КонецЕсли;
Открыть=Данные.ПолучитьЗначение(3);
Если ТипЗначения(Открыть)<>1 Тогда
   Сообщить("Не правильно задан входящий параметр Открыть (не совпадает тип значения)");
Форма.Закрыть();
Возврат;
КонецЕсли;
Док=СоздатьОбъект("Документ."+ОбрабатываемйДокумент.Вид());
Док.НайтиДокумент(ОбрабатываемйДокумент);
//Док=Док.ТекущийДокумент();
ЧЧ=Лев(Время,2);
ММ=Сред(Время,4,2);
СС=Прав(Время,2);
БылПроведен=0;
Если Док.Проведен()=1 Тогда
   Док.СделатьНеПроведенным();
БылПроведен=1;
КонецЕсли;
Док.УстановитьВремя(ЧЧ,ММ,СС);
Док.Записать();
Если БылПроведен=1 Тогда
   Док.Провести();
КонецЕсли;
Если Открыть=1 Тогда
   ОткрытьФорму(Док.ТекущийДокумент());
КонецЕсли;
Форма.Закрыть();
КонецПроцедуры

Как работает. При нажатии в документе кнопки с формулой ИзменитьВремяДокумента() вормируется список параметров в который заностся ссылка на текущий документ, текущее время и режим 1 - открыть документ после изменения времени, 0 - не открывать, параметры помещаются в глобальную переменную ДанныеДляИзмененияВремениДокумента. Далее документ закрывается и устанавливается обработка ожидания с интервалом в 1 сек - вызов процедуры глобального модуля - глИзменитьВремениДокумента. Далее через 1 сек срабатывает обработка ожидания и в процедуре глИзменитьВремениДокумента вызывается обработка УстановитьВремяДокумента. В обработке УстановитьВремяДокумента останавливается обработка ожидания, считываются параметры из глобальной переменной ДанныеДляИзмененияВремениДокумента и проверяются. Далее ищется документ переданный в 1 параметре, парсится сремя переданное во втором патаметре, если документ проведен отменятеся его проведение, изменятеся время документа и он запистывается, потом если документ был ранне проведен то он проводится и в зависимости от третьего полученного параметра , елси он равен 1 документ открывается и обработка закрывается."
Покажите, что написали и опишите как работает тогда будет проще подсказать.
Читают тему
(гостей: 1)

Быстрый переход