Имя: Пароль:
1C
1С v8
изменить проводки документа
,
0 zippygrill
 
25.01.13
10:57
снова всем привет.
есть необходимость в проводках документа ОоРП поменять счет с 50.1 на 50.2.
сделал подписку на событие и указал момент события "ПриЗаписи"(естессно документ ОоРП).
только вот в отладчике не вижу я этих проводок. смотрю "Источник.Движения.Хозрасчетный" а там ноль записей.
либо я момент события неправильно выбрал для этой подписки либо они еще не сформировались. не подскажите как их получить в подписке?
1 zippygrill
 
25.01.13
10:59
сейчас попробую еще с событием "обработкаПроведения"
2 Eugene_life
 
25.01.13
11:00
(0) А в документе поменять религия не позволяет? Это плохо, когда в документе стоит один счет, а в проводках "подменили" другой
3 zippygrill
 
25.01.13
11:01
(2) в модуле объекта ОоРП жестко прописано вот так "        СчетДт = ПланыСчетов.Хозрасчетный.КассаОрганизации;
"
да, проводки находятся в моменте "ОбработкаПроведения"
4 Cube
 
25.01.13
11:01
(0) Попахивает быдлокодом.
5 zippygrill
 
25.01.13
11:02
(4) успокойся :) ты б иначе делал чтоли?
6 Cube
 
25.01.13
11:03
(3) Наверное, умные люди писали этот код, как считаешь? Может лучше разобраться в вопросе, прежде чем лезть в конфигуратор?
7 Cube
 
25.01.13
11:03
(5) Я всегда делаю иначе.
8 Eugene_life
 
25.01.13
11:05
(3) Ну так поменяй в этой строке, и дело сделано. Тока комментарий оставь, чтобы быстро найти в случае чего
9 zippygrill
 
25.01.13
11:06
(8) между внесение изменении в стандартный документ конфигурации и добавление подписки на событие ты выбираешь первое? почему так?
10 Kreont
 
25.01.13
11:08
Через подписку как раз правильно, с обновлением не надо заморачиваться + может пригодится там менять проводки только по условию и т.п.
11 Cube
 
25.01.13
11:09
(0) Почитай это, хотя бы: http://www.buh.ru/forum/thread.jsp?id=526711
12 ИС-2
 
naïve
25.01.13
11:09
конфа какая? Используется ли РАУЗ?
13 zippygrill
 
25.01.13
11:10
(12) УПП и РАУЗ
14 zippygrill
 
25.01.13
11:10
(11) сейчас гляну
15 ИС-2
 
naïve
25.01.13
11:10
(8) бить или банить за такие советы надо. Иди учись как надо работать с 1C
16 ИС-2
 
naïve
25.01.13
11:12
(13) РАУЗ хитро проводки делает. Посмотри макет ПараметрыФормированияДвижений у РН УчетЗатратРегл
17 zippygrill
 
25.01.13
11:18
(16) впервые вижу такое
18 zippygrill
 
25.01.13
11:47
блин что-то не так.
вот проводка до изменении https://dl.dropbox.com/u/9627383/Screens/проводкиДо.jpg

после того как внес этот кусок кода

       Если Движение.СчетДТ = ПланыСчетов.Хозрасчетный.КассаОрганизации Тогда
           Движение.СчетДТ = ПланыСчетов.Хозрасчетный.ОперационнаяКасса;
       КонецЕсли;

проводки стали такие https://dl.dropbox.com/u/9627383/Screens/проводкиПослеИзменении.jpg
19 zippygrill
 
25.01.13
11:47
20 zippygrill
 
25.01.13
11:54
и еще почему в отладчик вижу не все строки проводок по этому регистру?
21 zippygrill
 
25.01.13
11:57
ну кто-нибудь еще подскажит?
22 cw014
 
25.01.13
12:03
(21)
> после того как внес этот кусок кода
Куда ты его внес то???

И весь то код можно посмотреть или телепатировать надо?
23 zippygrill
 
25.01.13
12:05
(22) подписка на событие для документы ОоРП и с моменто событии "ОбработкаПроведения":

   Если Источник.Склад.ВидСклада = Перечисления.ВидыСкладов.Розничный
       И Источник.Дата > Дата('2013.01.01') Тогда
   //получаем проводки документа
   ДвиженияХозрасчетный = Источник.Движения.Хозрасчетный;
   Для каждого Движение Из ДвиженияХозрасчетный Цикл
   
       Если Движение.СчетДТ = ПланыСчетов.Хозрасчетный.КассаОрганизации Тогда
           //Движение.СчетДТ = ПланыСчетов.Хозрасчетный.ОперационнаяКасса;
       КонецЕсли;
       
   
   КонецЦикла;
   
   КонецЕсли;
24 nvs
 
25.01.13
12:08
Подписку на событие "Перед записью" для набора записей регистра бухгалтерии "Хозрасчетный"?
25 nvs
 
25.01.13
12:11
+(24) хотя нет - накладно будет
26 Kreont
 
25.01.13
12:26
можна так, через ТЗ, и в ф-ю ИзменитьПроводки нужный алгоритм изменения:
ПроводкиБУ = Источник.Движения.Хозрасчетный.Выгрузить();
ПроводкиБУ = ИзменитьПроводки(ПроводкиБУ);
Источник.Движения.Хозрасчетный.Загрузить(ПроводкиБУ);
27 Kreont
 
25.01.13
12:28
+(26) например далее
Функция ИзменитьПроводки(Знач ТЧПроводок)

Масс_СчетДт = ТЧПроводок.ВыгрузитьКолонку("СчетДт");

//+ здесь перебор массива + условие + изменение и обратно загрузка колонки

ТЧПроводок.ЗагрузитьКолонку(Масс_СчетДт,"СчетКт");

Возврат ТЧПроводок;
   
КонецФункции
28 Kreont
 
25.01.13
12:32
(27) промазал там :)
ТЧПроводок.ЗагрузитьКолонку(Масс_СчетДт,"СчетДт");
29 zippygrill
 
25.01.13
12:43
(28) красиво красиво )) но .... вопрос у меня не в этом )
30 Kreont
 
25.01.13
12:48
(29) а что ж тогда не работает?
У меня так получается менять любые пожелания ГБ :)
31 zippygrill
 
25.01.13
12:54
(30) )))
вот что в отладчике https://dl.dropbox.com/u/9627383/Screens/1.jpg и что в предприятие https://dl.dropbox.com/u/9627383/Screens/2.jpg
32 zippygrill
 
25.01.13
12:54
с такой подпиской на событие

   Если Источник.Склад.ВидСклада = Перечисления.ВидыСкладов.Розничный
       И Источник.Дата > Дата('2013.01.01') Тогда
       //получаем проводки документа по Хозрасчетный
       ДвиженияХозрасчетный = Источник.Движения.Хозрасчетный;
       Для каждого Движение Из ДвиженияХозрасчетный Цикл
           
           Если Движение.СчетДТ = ПланыСчетов.Хозрасчетный.КассаОрганизации Тогда
               //Движение.СчетДТ = ПланыСчетов.Хозрасчетный.ОперационнаяКасса;
           КонецЕсли;
           
           
       КонецЦикла;
       
   КонецЕсли;
33 zippygrill
 
25.01.13
12:55
в отладчике 2 записи а в предприятие 4  :)
34 zippygrill
 
25.01.13
12:58
(30) и можно подумать что у вас все ГБ молодые и красивые и еще с фразой "У меня так получается менять любые пожелания ГБ" ))))
35 Kreont
 
25.01.13
13:00
(31) странно
(34) ГБ мужик :))))
36 zippygrill
 
25.01.13
13:02
(35) первый раз слышу ))
37 Kreont
 
25.01.13
13:05
А может просто есть еще одна ОбработкаПроведения для того же документа?
38 Kreont
 
25.01.13
13:05
подписка в смысле)
39 zippygrill
 
25.01.13
13:09
вроде других нет.
40 zippygrill
 
25.01.13
13:11
блин, тогда в какой событие получить все проводки которые на форме по Хозрасчетный.
41 Kreont
 
25.01.13
13:17
хз, вроде ОбработкаПроведения последняя как раз из подписок
Ничего нет подозрительного в ПередЗаписью() для регистра Хозрасчетный, в его модулях набора?
42 zippygrill
 
25.01.13
13:23
в модуле Хозрасчетного написано пару проверок на пустое значение СчетДт/СчетКт. ничего особенного.
43 zippygrill
 
25.01.13
13:30
апну
44 PCcomCat
 
25.01.13
13:36
"ПриЗаписи"? Там и не будет проводок, они удаляются до этого. А вот ОбработкаПроведения - там всё можно поменять:
Для каждого Движение из Источник.Движения.Хозрасчетный цикл
Если Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(50.01) тогда
45 zippygrill
 
25.01.13
13:37
(44) не вопрос. я так и делаю, только количество записей в отладчике отличается от количество записей в предприятие при просмотре проводок данного документа :)
46 PCcomCat
 
25.01.13
13:39
(45)Поясни, как увидел разницу?
47 eklmn
 
гуру
25.01.13
13:40
(46) глазами ))))
48 zippygrill
 
25.01.13
13:43
(46) глянь (31)
49 PCcomCat
 
25.01.13
13:43
(47)Я рада, конечно, что не ж опой!;)
Но всё же: учитывается ли при подсчете, что первая строка имеет индекс 0 в отладчике?
50 zippygrill
 
25.01.13
13:44
(49) с первой занятие по информатике понял что все с нуля начинается :)
51 eklmn
 
гуру
25.01.13
13:45
(48) у тебя там 2 строки с 41 счетом, добавляются в другом месте, походу ТЗ с проводким скачет куда-то, ищи это место и смотри отладчиком
52 PCcomCat
 
25.01.13
13:46
(50) За несколько лет использования подписок ёще ни разу не видела, чтобы количество записей различалось!
53 eklmn
 
гуру
25.01.13
13:54
(50) у неё фото как бэ намекает ))
54 zippygrill
 
25.01.13
13:56
(53) фото есть:)
55 PCcomCat
 
25.01.13
13:57
(53) Попрошу сильно извилины не напрягать!
56 zippygrill
 
25.01.13
14:43
ап. не пойму, вроде событие "ОбработкаПроведения" последняя и по идее там все все проводки. но как бы странно это не звучало это не так.
57 Eugene_life
 
25.01.13
14:48
(56) у тебя Содержание какое-то странное
58 zippygrill
 
25.01.13
14:56
(57) все норм. с Содержанием
59 Kreont
 
25.01.13
16:05
в ОбработкаПроведения документа есть: Движения.Хозрасчетный.ВыполнитьДействияПередЗаписьюДвижений();

по Ф12 смотри может там дальше еще что-то дописано есть
60 zippygrill
 
28.01.13
09:34
(59) нет такой код в модуле.
61 zippygrill
 
28.01.13
09:47
и апну.
62 zippygrill
 
28.01.13
09:56
..
63 zippygrill
 
28.01.13
10:03
еще
64 zippygrill
 
28.01.13
10:24
попытка с использованием набораЗаписей также показывает мне 2 записи вместо 4 которых я вижу в режиме предприятие:

Если Источник.Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда
   
   // Создать набор записей.
   НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Источник.Ссылка);
   НаборЗаписей.Прочитать();
   
КонецЕсли;
65 zippygrill
 
28.01.13
10:37
ап..
66 Domanoff26
 
28.01.13
10:47
а подписку на событие регистра бухгалтерии чем не подходит? там наверно будут все движения
67 zippygrill
 
28.01.13
11:04
(66) и опять же нет.
68 zippygrill
 
28.01.13
12:10
....
69 zippygrill
 
28.01.13
13:58
АП