Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Время документа в оперативном учете (число прочтений - 1505 )
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Время документа в оперативном учете
31. Января 2008 :: 17:19
Печать  
При проведении документов в оперативном учете, 1С автоматом предлагает сменить время документа (если оно меньше ТА), а конструкция
МДВ=СоздатьОбъект("MetaDataWork");
умент().ПолучитьПозицию()));
ТаблЗнач= Запр.ВыполнитьИнструкцию(ТекстЗапроса);

Выдает старое время документа, из-за этого не учитываются движения последних минут

Как это исправить?
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Время документа в оперативном учете
Ответ #1 - 31. Января 2008 :: 20:47
Печать  
ну я так думаю, что проверять методом
Код
Выбрать все
СравнитьТА() 


и в случае если документ на ТА, то предавать
Код
Выбрать все
ПолучитьПозициюТА() 

  
Наверх
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Время документа в оперативном учете
Ответ #2 - 01. Февраля 2008 :: 05:36
Печать  
Спасибо, что-то тормознул
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Время документа в оперативном учете
Ответ #3 - 01. Февраля 2008 :: 05:49
Печать  
А зачем проверять на ТА? Сделать вот такую функцию:
Код
Выбрать все
Функция glDateTimeIDDoc(Знач Позиция) Экспорт
	Если ТипЗначения(Позиция) <> 2 Тогда
		Позиция = Позиция.ПолучитьПозицию();
	КонецЕсли;

	стрДата		= Сред(Позиция, 2, 8);    //Дата документа
	стрВремя	= Сред(Позиция, 10, 10);  //Время документа
	стрИДДОК1	= Сред(Позиция, 20, 10);  //IDDOC без идентификатора ИБ
	стрИДДОК2	= Сред(Позиция, 30, 3);   //идентификатор ИБ
	Возврат стрДата + _idtostr(стрВремя) + _idtostr(стрИДДОК1) + стрИДДОК2;
КонецФункции

 



и брать позицию документа из нее. Тоесть:

Код
Выбрать все
Процедура ЗаполнениеВспомогательныйхПеременных(фИтогиАктуальны) Экспорт
	Сам = Сам(Контекст);

	идЭтотДок13			= РадугаСервис.ЗначениеВДлиннуюСтрокуБД(Сам.ТекущийДокумент());
	идЭтотДок9			= Прав(идЭтотДок13, 9);
	ПозицияДокумента	= glDateTimeIDDoc(Сам.ПолучитьПозицию());
	СчитаемСОборотами	= ?(фИтогиАктуальны = 0, 1, 0);
	НачДатаДляДв		= Формат(НачМесяца(Сам.ДатаДок),"ДГГГГММДД");

	Если фИтогиАктуальны = 0 Тогда
		ДАТА_ДляПолученияИТОГОВ = Формат(НачМесяца(ДобавитьМесяц(Сам.ДатаДок,-1)), "ДГГГГММДД");
		СчитаемСОборотами = 1;
		ГраницаРасчетаДляВиртТаблиц = "'" + ПозицияДокумента + "'";
	Иначе
		ДАТА_ДляПолученияИТОГОВ = Формат(НачМесяца(ПолучитьДатуТА()), "ДГГГГММДД");
		СчитаемСОборотами = 0;
		ГраницаРасчетаДляВиртТаблиц = "";
	КонецЕсли;
КонецПроцедуры

 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать