Имя: Пароль:
1C
1С v8
Найти и удалить проводку
0 1C2SS
 
29.11.12
12:49
1С 8
Подскажите как программно, зная период и регистратор, найти соответствующие проводки и удалить их?
1 Wobland
 
29.11.12
12:49
отменить проведение регстратора
2 1C2SS
 
29.11.12
12:50
регистратор делает много проводок. надо некоторые оставить а некоторые удалить.
3 cw014
 
29.11.12
12:50
(1) Не всегда помогает, если конечно не г*внокод
4 Нуф-Нуф
 
29.11.12
12:50
получи набор записей, будь мужиком, блеать!
5 cw014
 
29.11.12
12:52
(4) +100500
6 Wobland
 
29.11.12
12:52
(2) тогда перепровести. на этот раз с правильной логикой проведения
7 1C2SS
 
29.11.12
12:53
(4) а можешь код написать ?
(6) что значит с правильной логикой проведения ?
8 Нуф-Нуф
 
29.11.12
12:54
(7) 1500 руб
9 Рэйв
 
29.11.12
12:56
(7)Это значит что проводки были те, которые нужны.а которые не нужны - не были
10 ICWiner
 
29.11.12
12:56
(7) Демпенгану... 1000 руб
11 Нуф-Нуф
 
29.11.12
12:57
(10) ты так никогда на айфон и макбук не заработаешь
12 Starhan
 
29.11.12
12:59
(7)(10) подниму 2000 и час работы в подарок.
13 1C2SS
 
29.11.12
12:59
Какая милая беседа получается.
14 ICWiner
 
29.11.12
13:00
(11) Зачем мне эта гадость?
(7) Не правильно вопрос ставишь... "Можешь написать код" - не правильно... Порыться 10 минут в справке, написать овнокод, выложить и спросить почему не работает - правильно
15 1C2SS
 
29.11.12
13:01
Я не могу найти в справке информации по методам вот этого:  Движения.Хозрасчетный.
16 Starhan
 
29.11.12
13:02
(15) как думаешь что там хранится?
17 Starhan
 
29.11.12
13:03
(17) ладно 1000 руб за консультацию как решить твою. Это дешевле чем курсу у Гилева. Ага.
18 Cyberhawk
 
29.11.12
13:03
(0) расскажи изначальную задачу
19 Starhan
 
29.11.12
13:03
твою задачу*
20 1C2SS
 
29.11.12
13:03
Регистр бухгалтерии ?
21 Starhan
 
29.11.12
13:03
20. Если точнее набор записи регистра бухгалтерии вот это в справке и ищи.
22 1C2SS
 
29.11.12
13:06
(21) Спасибо. Нашел.
23 1C2SS
 
29.11.12
13:16
Рег = РегистрыБухгалтерии.Хозрасчетный;
   НаборЗаписей = Рег.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Значение = ЭлементыФормы.ТабличнаяЧастьОсновная.ТекущаяСтрока.ДокОпер;
   НаборЗаписей.Отбор.Период.Значение = ЭлементыФормы.ТабличнаяЧастьОсновная.ТекущаяСтрока.ДатаОпер;
   НаборЗаписей.Прочитать();

ДокОпер это строка. Как сделать отбор в этом случае ?
24 DrShad
 
29.11.12
13:20
передать ссылку
25 Starhan
 
29.11.12
13:22
(23) по норлмаьному добовлять еще одну колонку с сылкой на документ.И брать ссылку оттуда.
26 1C2SS
 
29.11.12
13:34
Рег = РегистрыБухгалтерии.Хозрасчетный;
   НаборЗаписей = Рег.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Значение = ЭтотОбъект.Ссылка;
   пДата = ЭлементыФормы.ТабличнаяЧастьОсновная.ТекущаяСтрока.ДатаОпер;
   НаборЗаписей.Прочитать();
   Для Каждого Зап из НаборЗаписей Цикл
       Если Зап.Период = пДата Тогда
           пИндекс = Движения.Хозрасчетный.Индекс(Зап);
           Движения.Хозрасчетный.Удалить(пИндекс);
       КонецЕсли;
   КонецЦикла;    
Как удалить найденный элемент теперь ?
27 Buster007
 
29.11.12
13:38
НаборЗаписей.Удалить
28 Buster007
 
29.11.12
13:38
+(27) только у тебя все равно не заработает)
29 1C2SS
 
29.11.12
13:42
(28) как сделать чтоб заработало ?
30 Starhan
 
29.11.12
13:55
Попробуй так

НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный
.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Значение = ЭтотОбъект.Ссылка;
пДата = ЭлементыФормы.ТабличнаяЧастьОсновная.ТекущаяСтрока.ДатаОпер;
НаборЗаписей.Прочитать();
КоличествоСтрок = НаборЗаписей.Количество()-1;

   Для сч=-КоличествоСтрок по 0  Цикл
       
       Если НаборЗаписей[-сч].Период = пДата Тогда
        НаборЗаписей.Удалить(-сч);  
       КонецЕсли;
   КонецЦикла;
НаборЗаписей.Записать();
31 1C2SS
 
29.11.12
14:08
(30) Большое спасибо!
32 Мыш
 
29.11.12
14:15
(30) Для сч=-КоличествоСтрок по 0 Цикл
[-сч]

Интересный подход )
33 1C2SS
 
29.11.12
15:50
Выяснилось что проводки удаляются а движения документа остаются. Можно ли как то аналогично удалить движения документа?
34 Starhan
 
29.11.12
15:55
Ты хочешь удалить часть двиежний во время проведения документа?
35 1C2SS
 
29.11.12
15:57
Перед проведением.
36 1C2SS
 
29.11.12
15:57
Вообще по нажатию на кнопку удаляется движение связанное с текущей строкой.
37 Starhan
 
29.11.12
16:01
ну или попробуй так


НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей = ЭтотОбъект.Движения.Хозрасчетный;
пДата = ЭлементыФормы.ТабличнаяЧастьОсновная.ТекущаяСтрока.ДатаОпер;
НаборЗаписей.Прочитать();
КоличествоСтрок = НаборЗаписей.Количество()-1;

   Для сч=-КоличествоСтрок по 0  Цикл
       
       Если НаборЗаписей[-сч].Период = пДата Тогда
        НаборЗаписей.Удалить(-сч);  
       КонецЕсли;
   КонецЦикла;
НаборЗаписей.Записать();


(35) это как?
38 1C2SS
 
29.11.12
16:13
Сделал так:
   индекс = -1;
   Для Каждого Движение Из Движения.Хозрасчетный Цикл
       индекс = индекс + 1;
       Если (Движение.Период = пДата и Движение.Регистратор = ЭлементыФормы.ТабличнаяЧастьОсновная.ТекущаяСтрока.ДокОпер) Тогда
           ЭтотОбъект.Движения.Хозрасчетный.Удалить(индекс);                                                      
       КонецЕсли;
   КонецЦикла;