3.
kmax1980
26.02.07 12:22
Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> данного коода недостаточно, чтобы однозначнго
> определить причину...
> переменные определять надо...?
> //кмПроводитьПоКассе=1;
> Если ПустоеЗначение(ДокОснование)=0 Тогда
>
ДокОснование - тип "документ", строку кмПроводитьПоКассе=1; забыл скопировать, она действительно присутствует перед всем этим кодом. Т.е сначал флаг кмПроводитьПоКассе устанавливаем равным 1, а потом проверяем, вызвал ли движения регистра ДокОснование, если вызвал, то устанавливаем флаг кмПроводитьПоКассе равным 0.
Ещё забыл сказать я немного переделал этот кусок, воспользовавшись функцией ВыбратьДвижения вместо ВыбратьДвиженияДокумента, и он заработал, как ни странно (т.е. метод ВыбратьДвижения не отбирает в выборку документ ДокОснование, т.е. он туда не попадает, как и должно быть, в отличие от метода ВыбратьДвиженияДокумента).
[ code ]
кмПроводитьПоКассе=1;
Если ПустоеЗначение(ДокОснование)=0 Тогда
кмДвижение=СоздатьОбъект("Регистры");
кмДвижениеКасса=кмДвижение.Касса;
Касса2=СоздатьОбъект("Справочник.Кассы");
Касса2.НайтиПоКоду("00002");
кмДвижениеКасса.УстановитьЗначениеФильтра("Касса",Касса2.ТекущийЭлемент(),1);
Если кмДвижениеКасса.ВыбратьДвижения(ДокОснование.ДатаДок,ДокОснование.ДатаДок)=1 Тогда
Пока кмДвижениеКасса.ПолучитьДвижение()>0 Цикл
Если кмДвижениеКасса.ТекущийДокумент()=ДокОснование Тогда
кмПроводитьПоКассе=0;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Если кмПроводитьПоКассе=1 Тогда
ОбработкаПроведенияПоКассе2(ВремКасса);
КонецЕсли;
[ /code ]
Понятно, что этот новый кусок намного тормознее, чем изначальный, но другого выхода пока не вижу.
Может я чего-то не знаю об этом методе (ВыбратьДвиженияДокумента)? Видимо он как-то по другому работает.