|
разный результат при програмном и интерактивном проведении | ☑ | ||
---|---|---|---|---|
0
vde69
25.06.12
✎
10:10
|
есть код:
Док = Выборка.Документ.ПолучитьОбъект(); Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); в модуле документа: // По результату запроса по шапке документа формируем движения по регистрам. // // Параметры: // РежимПроведения - режим проведения документа (оперативный или неоперативный), // СтруктураШапкиДокумента - выборка из результата запроса по шапке документа, // ТаблицаПоТоварам - таблица значений, содержащая данные для проведения и проверки ТЧ Товары // ТаблицаПоТаре - таблица значений, содержащая данные для проведения и проверки ТЧ "Возвратная тара", // Отказ - флаг отказа в проведении, // Заголовок - строка, заголовок сообщения об ошибке проведения. // Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоСуммам, Отказ, Заголовок); //-------------------------------------------------------------------------------- // на всякий случай удалим движения, // хотя текущий алгоритм расчитан на правильную работу и без // очистки, но при изменении состава движений возможны проблеммы // ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, Ложь, Ложь); РегистрыСведений.ПринятиеДокументовСделок.УдалитьДвиженияДокумента(ЭтотОбъект); //-------------------------------------------------------------------------------- // фиксируем суммы // РегистрыНакопления.ДвижениеСделок.ЗаписатьСуммы(Ссылка, СтруктураШапкиДокумента, ТаблицаПоСуммам); //-------------------------------------------------------------------------------- // запишем статус принятия документов бухгалтерией // РегистрыСведений.ПринятиеДокументовСделок.ЗаписатьСтатус(Ссылка, СтруктураШапкиДокумента); КонецПроцедуры // ДвиженияПоРегистрам() РегистрыСведений.ПринятиеДокументовСделок - НЕЗАВИСИМЫЙ, отладчикк проходит эту процедуру и при программном и при интерактивном проведении, но при программном - движения в указаном регистре остаются (а должны очищатся). ни чего не понимаю |
|||
1
PiVa123
25.06.12
✎
10:12
|
Посмотри вкладку "Движения" документа - потому что щас модно стало "Не удалять автоматически" а удаление делают программно, поэтому, видимо, движения не удаляются. Или удаляй сам вручную.
|
|||
2
vde69
25.06.12
✎
10:14
|
(1) >>> РегистрыСведений.ПринятиеДокументовСделок.УдалитьДвиженияДокумента(ЭтотОбъект);
движения удалятся прогрммно, вот текст этой процедуры Процедура УдалитьДвиженияДокумента(Документ) Экспорт //******************************************************************* // Регистр "ПринятиеДокументовСделкок" Рег = РегистрыСведений.ПринятиеДокументовСделок.СоздатьМенеджерЗаписи(); Рег.Документ = Документ.Ссылка; Рег.Период = Документ.Дата; Рег.ЭтоДвиженияДокумента = Истина; Рег.Прочитать(); Рег.Удалить(); КонецПроцедуры |
|||
3
aleks-id
25.06.12
✎
10:18
|
(2)
ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, Ложь, Ложь); Процедура УдалитьДвиженияДокумента(Документ) Экспорт ни на что не намекает? |
|||
4
MRAK
25.06.12
✎
10:18
|
кэш на сервере почистить?
|
|||
5
MRAK
25.06.12
✎
10:19
|
(3)
РегистрыСведений.ПринятиеДокументовСделок.УдалитьДвиженияДокумента(ЭтотОбъект); |
|||
6
PiVa123
25.06.12
✎
10:20
|
В обработке проведения, не посмотреть после удаления записей, регистра что там что-то осталось или как ?
Сорри про НЕЗАВИСИМЫЙ пропустил. |
|||
7
aleks-id
25.06.12
✎
10:20
|
(5) да, но перед этим какой то расколбас идет в процедуре общего модуля
|
|||
8
MRAK
25.06.12
✎
10:21
|
(7) согласен, отладчик автору в помощь
|
|||
9
F_cker
25.06.12
✎
10:27
|
Оперативное и не оперативное проведение. Скорее дело в этом...
|
|||
10
vde69
25.06.12
✎
10:30
|
(9) у документа оперативное проведение вообще запрещено
|
|||
11
Stepa86
25.06.12
✎
10:31
|
Есть подозрение, что дело в
Рег.Период = Документ.Дата; при интерактивном проведении дата меняется, т.к. оперативное, при программном нет Если через набор записей с отбором чистить, повторяется? |
|||
12
vde69
25.06.12
✎
11:01
|
вот так работает (видимо действительно дело в дате)
Процедура УдалитьДвиженияДокумента(Документ) Экспорт //******************************************************************* // Регистр "ПринятиеДокументовСделкок" Запрос = Новый Запрос( "ВЫБРАТЬ * |ИЗ | РегистрСведений.ПринятиеДокументовСделок КАК ПринятиеДокументовСделок |ГДЕ | ПринятиеДокументовСделок.ЭтоДвиженияДокумента | И ПринятиеДокументовСделок.Документ = &Документ"); Запрос.УстановитьПараметр("Документ", Документ.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Рег = РегистрыСведений.ПринятиеДокументовСделок.СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(Рег, Выборка); Рег.Удалить(); КонецЦикла; КонецПроцедуры |
|||
13
Stepa86
25.06.12
✎
11:16
|
(12) а почему не
нз = РегистрыСведений.ПринятиеДокументовСделок.СоздатьНаборЗаписей(); нз.Отбор.Документ.Установить(Документ.Ссылка); нз.Отбор.ЭтоДвиженияДокумента.Установить(Истина); нз.Записать(); ? Документ и/или ЭтоДвижениеДокумента не измерение, штоле? |
|||
14
vde69
25.06.12
✎
11:17
|
(13) не измерение.
измерения выходит 2, документ и период |
|||
15
vde69
25.06.12
✎
11:20
|
(14) то есть для документа может быть несколько записей, часть из них ручные а часть "движения документа", удалить нужно только те которые делаются проведением
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |