Имя: Пароль:
1C
1С v8
Остатки в проведенном документе
,
0 Borteg
 
09.04.13
11:58
Добрый день! Добавил кнопку заполнения ТЧ остатками взаиморасчетов.
Если документ не проведен то все отлично. Если проведен то остатки учитывают и его движения. Надо записать пустой набор в регистры по которым документ делает движения. Если бы это был модуль объекта то было бы не сложно, но так как получается на форме кнопка с формы управление передаю на сервер (общий модуль) там выполняю запрос возвращаю ТЧ. Получается мне надо в общий модуль передать ссылку, и записать в регистры пустой набор по это регистратору?

Сори за глупый вопрос, просто хочу правильно написать все
1 Borteg
 
09.04.13
12:12
Если Регистратор <> Неопределено тогда
       НаборЗаписейРегистра = РегистрыНакопления.ЗарплатаКВыплатеУПр.СоздатьНаборЗаписей();
       НаборЗаписейРегистра.Отбор.Регистратор.Установить(Регистратор);
       НаборЗаписейРегистра.Записать();
   КонецЕсли;
   
Решил проблему так.Может кому поможет
2 Borteg
 
09.04.13
12:25
хм,хитрый момент какой. Если в проведенном документе заполнить Тч а потом просто выйти из него, то документ остается проведенным, но движения уже удалены!Подскажите как можно побороть эту проблему
3 Wobland
 
09.04.13
12:26
заполняй свои остатки из реальной таблицы без учёта твоего регистратора
4 Maxus43
 
09.04.13
12:27
для этого используют Граница в запросе к остаткам
5 Borteg
 
09.04.13
12:28
Граница есть
6 В тылу врага
 
09.04.13
12:29
(5) покажи
7 Borteg
 
09.04.13
12:29
Запрос = Новый Запрос;
   Запрос.Текст =  
   "ВЫБРАТЬ
   |    ЗарплатаКВыплатеУПрОстатки.Сотрудник КАК Сотрудник,
   |    СУММА(ЗарплатаКВыплатеУПрОстатки.СуммаОстаток) КАК НачисленоПоУпр
   |ИЗ
   |    РегистрНакопления.ЗарплатаКВыплатеУПр.Остатки(&Дата, ) КАК ЗарплатаКВыплатеУПрОстатки
   |
   |СГРУППИРОВАТЬ ПО
   |    ЗарплатаКВыплатеУПрОстатки.Сотрудник";
   
   Запрос.УстановитьПараметр("Дата",Новый Граница(Дата,ВидГраницы.Включая));
   
   Результат = Запрос.Выполнить().Выгрузить();
8 В тылу врага
 
09.04.13
12:31
Запрос.УстановитьПараметр("Дата",Новый Граница(МоментВремени(),ВидГраницы.Исключая));
9 Borteg
 
09.04.13
12:32
Проблема, когда документ проведен и заново его перезаполниить, тогда остаток неправильный с учетом движений самого документа. Когда я добавил очищение регистра перед проверкой остатков получилось что если документ проведен я нажимаю кнопку заполнить, а потом просто закрываю документ, то движения удалены, а документ проведен. Проблема получается в том что я не могу точно отследить будет ли потом перепроведен документ
10 hhhh
 
09.04.13
12:43
(9) там еще неприятная вещь, если пользователь дату документа поменяет. Например, дата была 1 апреля, и движения на 1-е апреля, а он поставит дату 2-е апреля, тогда все равно движения попадут. И граница не прокатит, потому что в ней старая дата.
11 Borteg
 
09.04.13
12:44
Во нашел) При получении таблицы остатков с указанием параметра период типа МоментВремени, полученного из даты документы и ссылки на документ, данные получаются исключая записи движений самого документа!))
Спасибо что направили в правильное русло)
12 Borteg
 
09.04.13
12:44
(10) ох е щас попробую))
13 Borteg
 
09.04.13
12:54
НУ с моментом времени лады, границу убрал щас оттестируюсь напишу что в итоге получилось.