Имя: Пароль:
1C
1С v8
1с83 КА 2.4 Дополнительная проводка к типовому документу
0 buketovav
 
18.11.18
19:49
Добрый день!
очень нужна помощь

Создал подписку на событие
Источник - РегистрБухгалтерииНаборЗаписей.Хозрасчетный
Событие - ПриЗаписи
Обработчик - ДобавленныйМодульДляДокументов.ДопПроводкиПоРегиструХозрасчетныйПриЗаписи

Код обработчика:

// регистр Хозрасчетный
    Передача = Источник.Отбор.Регистратор.Значение;
    Если ТипЗнч(Передача) = Тип("ДокументСсылка.ПередачаСырьяПереработчику") Тогда
        Если Передача.Давальческое = Истина Тогда
            Для Каждого ТекСтрокаТовары Из Передача.Товары Цикл
                НоваяПроводка = Источник.Добавить();
                НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку;
                НоваяПроводка.Период = Передача.Дата;
                НоваяПроводка.Организация = Передача.Организация;
                НоваяПроводка.ПодразделениеДт = Передача.Подразделение;
                НоваяПроводка.Сумма = ТекСтрокаТовары.Сумма;
                НоваяПроводка.КоличествоДт = ТекСтрокаТовары.Количество;
                НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Передача.Контрагент;
                НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаТовары.Номенклатура;  
            КонецЦикла;  
            //Источник.Записать(ЛОЖЬ);
        КонецЕсли;
    КонецЕсли;

проходит все без ошибок, но ми проводки не добавляются, отображаются только типовые проводки а мне нужно, чтобы отображались и типовые и мои добавленные.

отладчиком прошел по коду, движения все заполняются, но что-то где-то не так, очень прошу помощи, завтра дедлайн
1 palsergeich
 
18.11.18
20:07
Во первых - при записи - набор уже записан в БД. И добавление к нему бесполезно.
Попробуйте передЗаписью
2 buketovav
 
18.11.18
20:30
Спасибо огромное, получилось!
3 buketovav
 
19.11.18
15:35
а такой вопрос: а каким образом могу удалить проводки. например, по 10 счету?
4 palsergeich
 
19.11.18
15:36
(3) Из этого же набора записей?
5 buketovav
 
19.11.18
15:40
этот же документ формирует типовые проводки при отражении в регламентированном учете, так вот мне надо удалить все проводки, которые связаны с 10 счетом
6 shuhard
 
19.11.18
15:41
(5) перед записью в модуле Рг бухгалтерии с отбором по типу регистратора и корреспонденции счетов
7 palsergeich
 
19.11.18
15:42
(5) Если Вы работаете в (0) этом наборе записей, то самым читаемым способом будет:
- Выгрузить проводки из набора записей в таблицу значений
- Удалить необходимые проводки
- Загрузить таблицу значений в набор записей
8 palsergeich
 
19.11.18
15:44
Естесственно с этими уточнениями (6)
9 buketovav
 
19.11.18
15:45
сейчас выполняется такой обработчик для добавления проводок к типовым, выполняется перед записью:

Процедура ДопПроводкиПоРегиструХозрасчетныйПриЗаписи(Источник, Отказ, РежимЗаписи) Экспорт
    // регистр Хозрасчетный  приход Переработчику  - документ ПередачаСырьяПереработчику
    Передача = Источник.Отбор.Регистратор.Значение;
    Если ТипЗнч(Передача) = Тип("ДокументСсылка.ПередачаСырьяПереработчику") Тогда
        Если Передача.Давальческое = Истина Тогда
            Для Каждого ТекСтрокаТовары Из Передача.Товары Цикл
                НоваяПроводка = Источник.Добавить();
                НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку;
                НоваяПроводка.Период = Передача.Дата;
                НоваяПроводка.Организация = Передача.Организация;
                НоваяПроводка.ПодразделениеДт = Передача.Подразделение;
                //НоваяПроводка.Сумма = ТекСтрокаТовары.Сумма;
                НоваяПроводка.КоличествоДт = ТекСтрокаТовары.Количество;
                НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Передача.Контрагент;
                НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаТовары.Номенклатура;    
            КонецЦикла;
            
            // регистр Хозрасчетный расход у Нас
            Для Каждого ТекСтрокаТовары Из Передача.Товары Цикл
                НоваяПроводка = Источник.Добавить();
                НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку;
                НоваяПроводка.Период = Передача.Дата;
                НоваяПроводка.Организация = Передача.Организация;
                НоваяПроводка.ПодразделениеКт = Передача.Подразделение;
                //НоваяПроводка.Сумма = ТекСтрокаТовары.Сумма;
                НоваяПроводка.КоличествоКт = ТекСтрокаТовары.Количество;
                НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Передача.Организация;
                НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаТовары.Номенклатура;
            КонецЦикла;
            
            Источник.Прочитать();
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
10 buketovav
 
19.11.18
15:47
но у меня в наборе записей присутствуют только мои добавленные проводки? или мне надо выполнить команду Источник.Прочитать(); ?
11 Фрэнки
 
19.11.18
15:48
А какого типа параметр Источник в коде?
12 Фрэнки
 
19.11.18
15:51
а я все думаю, что за головняк у ТС...

А он прицепил подписку на событие к набору записей регистра, вместо того, чтоб повесить все на событие ПередЗаписью документа!
13 buketovav
 
19.11.18
15:51
Тип - РегистрБухгалтерииНаборЗаписей.Хозрасчетный
14 buketovav
 
19.11.18
15:53
не вариант, так как мои проводки формируются при отражении документа в рег учете. и если все делать в обработке проведения, то все мои проводки удаляются и отображаются только типовые, а мне надо чтобы отображались мои проводки, типовые и удалить все проводки, которые связаны с 10 счетом
15 buketovav
 
19.11.18
15:53
все работает, осталось только удалить проводки связанные с 10 счетом
16 Фрэнки
 
19.11.18
15:55
(15) тогда, во избежании путаницы и придания большего порядка смотри совет в (7)

Работай в набором через Выгрузить в таб значений, обработай все в таблице, а на выходе загрузить в набор
17 Фрэнки
 
19.11.18
15:56
и обработку строк в таблице значений легче будет расписать
18 buketovav
 
19.11.18
15:57
понял. пошел пробовать
19 buketovav
 
19.11.18
16:04
но есть проблема одна, я отладчиком смотрю на Источник и в нем только две проводки и те мои, я не вижу там типовых проводок. Может бытья не правильно смотрю или не там? смотрю "ПриЗаписи"
20 Джинн
 
19.11.18
16:07
(6) Сразу видно опытного индейца :)
21 buketovav
 
19.11.18
16:21
в источнике ПередЗаписью не вижу типовых проводок. только мои
22 buketovav
 
19.11.18
17:09
давайте продолжим предполагать, как правильно поступить и сделать?
23 dinn
 
19.11.18
17:24
Расширение наверное будет интереснее использовать
24 buketovav
 
19.11.18
20:12
почему Вы так считаете?
25 buketovav
 
19.11.18
20:12
чем это изменить ситуацию?
26 Фрэнки
 
19.11.18
20:17
По идее, перехват процедуры Расширением даст вход внутри транзакции, а не снаружи.
27 buketovav
 
19.11.18
20:27
с самого начала я как раз делал расширением, не получилось. неужели нет другого способа отсечь ненужные проводки?
28 palsergeich
 
19.11.18
20:55
(27) А что не получилось то?
29 hhhh
 
19.11.18
21:22
(27) перед записью там вызывается 2 раза. первый раз при очистке движений, поэтому там пусто, 2й раз уже когда добавляются проводки. поэтому у тебя нетривиальная задача - первое перед записью пропускаешь, во второе вклиниваешься.
30 buketovav
 
19.11.18
22:21
тогда что мне добавлять в расширение? документ? и в его модуле писать обработчик проведения с моими проводками? или сам РБ и в его модуль набора записей добавлять свои проводки при записи?
31 buketovav
 
20.11.18
07:54
(29) а где и как понять когда вызывается первый раз и когда второй? и где это происходит?
32 buketovav
 
20.11.18
08:27
(29) как мне понять и выяснить когда и где происходит второй вызов "ПередЗаписью"? Чтобы я мог прочитать набор записей и удалить из него ненужные мне проводки.
33 buketovav
 
20.11.18
10:07
ребят, ну подскажите, пожалуйста
34 buketovav
 
20.11.18
11:59
нашел полный набор записей в обработке ОтражениеДокументовВРеглУчете,

Код:
&НаСервере
Процедура ЗаполнитьПредставлениеВидовСубконто()

    Для каждого Запись Из НаборЗаписей Цикл
        ЗаполнитьЗначенияСвойств(Запись, ПредставлениеВидовСубконто(Запись.СчетДт, "Дт"));
        ЗаполнитьЗначенияСвойств(Запись, ПредставлениеВидовСубконто(Запись.СчетКт, "Кт"));
    КонецЦикла;

КонецПроцедуры


теперь его надо почистить от записей, которые мне не нужны в этом документе
35 buketovav
 
20.11.18
14:13
не получается в этом месте ни чего сделать... что-то делаю не так. кто подскажет, как правильно удалить типовые проводки по определенному номеру счета и регистратору?
36 buketovav
 
20.11.18
14:20
помооооогитеееееееееееее, ни ка кне могу разобраться. как удалить несколько типовых проводок из набора записей, да и вообще где это делается
37 Джинн
 
20.11.18
14:23
(36) (6) читали?
38 buketovav
 
20.11.18
14:40
(37) ну конечно же, вот только у меня наборе в ПередЗаписью нет типовых проводок
39 buketovav
 
20.11.18
14:50
то есть в самом РБ, в модуле набора записей ПередЗаписью? вижу только мои проводки
40 buketovav
 
20.11.18
16:02
будет ли так правильно сделать в расширении:

&После("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи)
    //здесь будет обработчик
КонецПроцедуры
41 Cyberhawk
 
20.11.18
16:04
Проводки по РБ формируются пади отложенно
42 Вафель
 
20.11.18
16:04
(41) по другому и не может быть
43 buketovav
 
20.11.18
16:10
(41) (42) какие варианты решения могут быть? я уже всю голову сломал. подскажите
44 Cyberhawk
 
20.11.18
16:35
(43) Ну ловить в подписке ПередЗаписью РБ конечно же
45 buketovav
 
20.11.18
16:46
не ловится чет, вижу только свои добавленные проводки, типовые не вижу. Как можно поймать все и сразу?
46 Cyberhawk
 
20.11.18
16:47
В доп. свойствах НЗ поищи
47 buketovav
 
20.11.18
16:55
(46) там только структура, записей нет
48 Cyberhawk
 
20.11.18
17:08
Мне лениво смотреть, где именно это делается (конфа отдельно и далеко, открывать и искать в ней долго), но ничего сложного там точно нет
49 buketovav
 
20.11.18
18:41
ну не ленитесь, пожалуйста, оч надо научиться этому
50 Cyberhawk
 
20.11.18
18:42
Научиться можно только самостоятельно
51 buketovav
 
20.11.18
19:21
вот и учусь самостоятельно
52 buketovav
 
20.11.18
19:21
все равно прошу помощи, может кто-нибудь подскажет?
53 buketovav
 
21.11.18
09:25
ладно, а такой вопрос, есть в документе "передачаСырьяПереработчкиу" в модуле менеджера Функция ТекстОтраженияВРеглУчете()

так вот, а можно ли как-нибудь из модуля менеджера объекта обратиться к реквизиту объекта, посмотреть, если он Истина, тогда не добавлять в массив определенные тексты отражения:

ТекстыОтражения = Новый Массив;
    ТекстыОтражения.Добавить(ПередачаКомиссионныхТоваровСписание);
    ТекстыОтражения.Добавить(ПередачаТоваров);
    ТекстыОтражения.Добавить(ПередачаТоваровСоСкладаПроизводства);
    ТекстыОтражения.Добавить(СписаниеМатериаловДавальца);
    ТекстыОтражения.Добавить(РасходыНаПроизводствоИзМатериаловДавальца);
    ТекстыОтражения.Добавить(СписаниеПродукцииДавальца);
    ТекстыОтражения.Добавить(РасходыНаПроизводствоИзПродукцииДавальца);
    ТекстыОтражения.Добавить(ЗалоговаяСтоимостьПереданнойТары);
    ТекстыОтражения.Добавить(ЗалоговаяСтоимостьПереданнойТарыСкладПроизводства);
    ТекстыОтражения.Добавить(ТекстВключениеИсключениеНДСВСтоимость);
54 buketovav
 
21.11.18
14:30
такая ситуация, мне надо было добавить проводки для типового документа. чтобы они были по забалансу, я сделал подписку на событие для РБ ПереЗаписью, все хорошо, проводки добавились
но теперь другая ситуация, как мне у этого документа удалить типовую проводку по определенному счету

проводки формируются при отражении в регламентированном учете
у РБ ПередЗаписью вызывается два раза и формирование проводок происходит как раз во второй раз, я ни как не могу понять и найти. где и как поймать мне это второй раз, где в котором я смогу увидеть весь набор записей РБ
55 buketovav
 
21.11.18
21:02
эх... Люди Добрые, скажите как убрать из движений типового документа типовые проводки по 10 счету
56 Cyberhawk
 
21.11.18
22:05
Тебе дали удочку, а ты продолжаешь просить рыбу
57 buketovav
 
22.11.18
07:26
решил
AdBlock убивает бесплатный контент. 1Сергей