|   |   | 
| 
 | Как дозаписать реквизит документа после его проведения? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Prog111 20.04.16✎ 11:57 | 
        Нужно после проведения документа реализации (после того, как сформируются его движения), на основании этих движений дозаписать один из реквизитов документа. Как методически правильно это сделать? Конфигурация УТ 10.3     | |||
| 1
    
        aleks_default 20.04.16✎ 11:58 | 
        ПослеЗаписи()     | |||
| 2
    
        Господин ПЖ 20.04.16✎ 11:58 | 
        (1) это событие есть только в форме     | |||
| 3
    
        Fragster гуру 20.04.16✎ 11:59 | 
        чтобы все было правильно - надо писать в РС     | |||
| 4
    
        1Сергей 20.04.16✎ 12:02 | 
        методически правильно высчитать этот реквизит при формировании движений и записать его     | |||
| 5
    
        Prog111 20.04.16✎ 12:04 | 
        В какой момент работает подписка на событие с событием "ОбработкаПроведения"? Возможно ли использование подписки на событие для такого случая?     | |||
| 6
    
        DomovoiVShoke 20.04.16✎ 12:05 | 
        (0)В подписке лучше всего с учетом (3). Но еще лучше вообще никогда так не делать.     | |||
| 7
    
        PR пять 20.04.16✎ 12:06 | 
        (5) Будет цикл     | |||
| 8
    
        Prog111 20.04.16✎ 12:06 | 
        (4) Там достаточно сложный подсчёт по себестоимости, лучше считывать уже готовые результаты проведения.     | |||
| 9
    
        Fragster гуру 20.04.16✎ 12:06 | ||||
| 10
    
        PR пять 20.04.16✎ 12:06 | 
        (0) А что за задача-то?     | |||
| 11
    
        Sabbath 20.04.16✎ 12:07 | 
        (0) По мне так слегка странная задача. Я так понял, реквизит не типовой. Можно было сделать доп. свойство или РС, где хранить это значение, а писать туда подпиской на события     | |||
| 12
    
        Prog111 20.04.16✎ 12:09 | 
        (10) Сумма вознаграждения менеджера, зависящее от прибыли документа. Да, реквизит нетиповой.     | |||
| 13
    
        Sabbath 20.04.16✎ 12:11 | 
        (12) А зачем тебе это в документе хранить? Сумма вознаграждения, наверно, нужна в какой-то обработке или отчете раз в месяц. Считай ее там, а не в документе. 
 Всю задачу не знаю, но выглядит так. | |||
| 14
    
        DomovoiVShoke 20.04.16✎ 12:12 | 
        (12)В подписке и в отдельный регистр записывать.     | |||
| 15
    
        PR пять 20.04.16✎ 12:13 | 
        (12) Пипец. Такие вещи в регистры пишутся. Накопления.     | |||
| 16
    
        lxndr 20.04.16✎ 12:15 | 
        (0) >> методически правильно
 никак. Сумма вознаграждения менеджера зависит от марьванны, которая вколотит документы до обеда или после обеда? | |||
| 17
    
        Prog111 20.04.16✎ 12:16 | 
        (16) А какая разница - до обеда или после обеда?)     | |||
| 18
    
        lxndr 20.04.16✎ 12:17 | 
        (17) потому что менеджер торгует в обед     | |||
| 19
    
        Prog111 20.04.16✎ 12:20 | 
        Хотелось бы делать это непосредственно в документе ещё и потому, чтобы была возможность вручную менять эту сумму. То есть провели документ - сумма автоматически просчиталась и записалась в реквизит, отображаемый на форме. При необходимости руководитель менеджеров может отредактировать эту сумму и записать документ заново.     | |||
| 20
    
        Prog111 20.04.16✎ 12:21 | 
        (18) И? Как это повлияет на документ?     | |||
| 21
    
        PR пять 20.04.16✎ 12:24 | 
        (19) Ну так меняй через форму документа запись в регистре     | |||
| 22
    
        PR пять 20.04.16✎ 12:25 | 
        +(21) В регистре сведений, на основании чего уже делается запись в регистр накопления     | |||
| 23
    
        DomovoiVShoke 20.04.16✎ 12:28 | 
        (19)Привыкайте документы проводить только оперативно, соответственно изменять проведенные нельзя.
 Вообще какая схема подсчета вознаграждения? Может оно должно считаться сразу при наборе ТЧ? И менять тогда в документе до проведения. | |||
| 24
    
        aleks_default 20.04.16✎ 12:30 | 
        "При необходимости руководитель менеджеров может отредактировать эту сумму и записать документ заново."
 потом руководитель записывает проведенный документ - движения рассчитываются заново - сумма опять становится прежней. | |||
| 25
    
        Prog111 20.04.16✎ 12:30 | 
        (23) Грубо говоря, процент менеджера, умноженный на разницу между суммой продажи и себестоимостью товаров по документу.     | |||
| 26
    
        AneJIbcuH 20.04.16✎ 12:30 | 
        (24) Только хотел сказать :))     | |||
| 27
    
        varyag 20.04.16✎ 12:31 | 
        если не париться, то ОбменДанными = Истина ))) но это не правильно     | |||
| 28
    
        Prog111 20.04.16✎ 12:31 | 
        (24) Ну здесь уже галочка влияет на то, рассчитывать ли сумму из движений документа или брать уже вручную установленную сумму.     | |||
| 29
    
        AneJIbcuH 20.04.16✎ 12:31 | 
        (0) Подход крайне не верный, а почему уже всё сказали.     | |||
| 30
    
        DomovoiVShoke 20.04.16✎ 12:33 | 
        (25)Это стандартная схема, считается сразу до проведения документа и меняется руководителем до проведения.     | |||
| 31
    
        Prog111 20.04.16✎ 12:33 | 
        (22) Зачем 2 регистра использовать? По идее, если использовать внешний регистр - то достаточно будет РС или РН, чтобы записать и считыть в дальнейшем всю необходимую информацию.     | |||
| 32
    
        gae 20.04.16✎ 12:34 | 
        Надо сделать отдельный документ, который на основе первички и её движений соберет все за период и посчитает и запишет себе в ТЧ эти суммы, ну и если надо в регистр какой-нибудь.
 В этом же документе можно и поменять результаты расчета вручную. Если вдруг себестоимость поплывет, это же по всем документам пересчет надо будет делать, а при помощи отдельного документа - зашли в него и пресчитали-перезаполнили. И права доступа на этот документ можно только уполномоченному дать. | |||
| 33
    
        Prog111 20.04.16✎ 12:35 | 
        (30) Мне гораздо проще считать из уже готовых движений по себестоимости, чем рассчитывать, какая выйдет себестоимость ДО проведения документа.     | |||
| 34
    
        Vanilla26 20.04.16✎ 12:35 | 
        (33) Если без заморочек
 ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение); Для каждого СтрокаДвижений из ОбъектДокумента.Движения.Регистр Цикл Если НЕ ЗначениеЗаполенено(ОбъектДокумента.ТвойРеквизит) Тогда ОбъектДокумента.ТвойРеквизит = СтрокаДвижений.Сумма; КонецЕсли; КонецЦикла; ОбъектДокумента.Записать(РежимЗаписиДокумента.Запись); | |||
| 35
    
        Prog111 20.04.16✎ 12:37 | 
        (32) Сейчас наоборот от этой схемы решили уйти, ибо не хотят лишних телодвижений по формированию отдельного итогового документа. К тому же, результаты по вознаграждению желают видеть актуальные, а не ждать, пока ответственное лицо просчитает промежуточные результаты в отдельном документе.     | |||
| 36
    
        DomovoiVShoke 20.04.16✎ 12:38 | 
        (33)Ну тебе говорят как надо, а ты уже сам себе костылей добавляй) Ты не представляешь как люди проклянают БП в которой разрабы избрали принцип как у тебя. Мало того что работать с этим очень сложно, так грейдануть документ в разы усложняется.     | |||
| 37
    
        Prog111 20.04.16✎ 12:39 | 
        (34) Это куда именно засунуть? В модуле документа в процедуре обработки проведения?     | |||
| 38
    
        Vanilla26 20.04.16✎ 12:41 | 
        (37) лучше никуда) херню я написал     | |||
| 39
    
        Prog111 20.04.16✎ 12:42 | 
        (38) Ну вроде выглядит симпатично)     | |||
| 40
    
        Лефмихалыч 20.04.16✎ 12:43 | 
        О = Ссылка.ПолучитьОбъект();
 О.Реквизит = Значение; О.ОбменДанными.Загрузка = Истина; О.Записать(); | |||
| 41
    
        aleks_default 20.04.16✎ 12:43 | 
        (35) ну да ну да им проще облазить сотню документов и сложить по каждому сумму, чем получить данные отчетом по одному регистру... че за бред     | |||
| 42
    
        PR пять 20.04.16✎ 12:44 | 
        (31) По идее для расчета вознаграждения менеджера используется отдельный документ и никому не трахается мозг на тему своих копроидей.     | |||
| 43
    
        PR пять 20.04.16✎ 12:45 | 
        +(42) Ну то есть (32)     | |||
| 44
    
        elCust 20.04.16✎ 12:45 | 
        (0) В чем проблема, если документ сделает еще одно движение в регистр сведений.     | |||
| 45
    
        PR пять 20.04.16✎ 12:46 | 
        (35) Кому какое дело, куда вы там решили уйти?
 Придумали какую-то хрень, сами и расхлебывайте свои геморрои. | |||
| 46
    
        PR пять 20.04.16✎ 12:47 | 
        (40) И все это в обработке проведения, ага.     | |||
| 47
    
        gae 20.04.16✎ 12:48 | 
        (35) Цеплять к первичке кучу всякой хрени - хреново.
 Конечно, если процесс требует - то можно и извратиться, только надо понимать последствия и сложности. | |||
| 48
    
        Prog111 20.04.16✎ 12:54 | 
        Уговорили...) Теперь расскажите, как православно записать данные в регистр сведений? В подписке на события с событием "ОбработкаПроведения"?
 Далее, если эту сумму необходимо видеть и менять в форме документа - то просто создаю поле в форме и в ней отображаю данные из РС. | |||
| 49
    
        PR пять 20.04.16✎ 12:54 | 
        (47) Цеплять к первичке кучу всякой хрени — нормально.
 Но только когда она нормально цепляется. | |||
| 50
    
        gae 20.04.16✎ 12:55 | 
        Корректнее всего, если уж нужна типа оперативность, было бы в процедурах проведения выловить момент, когда себестоимость посчитана и лежит в переменных, и готова к записи в регистр (или может быть уже записана), и записать её ее в свой регистр "Вознаграждение".     | |||
| 51
    
        Лефмихалыч 20.04.16✎ 12:56 | 
        а методически правильно записывать все реквизиты до проведения     | |||
| 52
    
        gae 20.04.16✎ 12:56 | 
        (49) нормально цеплять нормальные вещи, а хрень цеплять хреново :) логика.     | |||
| 53
    
        lxndr 20.04.16✎ 12:58 | 
        (50) она может быть совсем не посчитана и не готова     | |||
| 54
    
        gae 20.04.16✎ 12:59 | 
        (53) Я предполагаю, то у них по среднескользящей или ФИФО считается. Если исходные остатки есть - то будет посчитана.     | |||
| 55
    
        aleks_default 20.04.16✎ 13:01 | 
        Делаешь регистр накопления с измерениями менеджер, документ и ресусами сумма и ручное изменение  и описываешь проведение по этому регистру своего документа     | |||
| 56
    
        DomovoiVShoke 20.04.16✎ 13:03 | 
        (54)В реализации есть партии, в партиях есть себестоимость. Тут даже гадать не надо как считать прибыль.     | |||
| 57
    
        Prog111 20.04.16✎ 13:07 | 
        (50) В документе "Реализация" в типовой процедуре ОбработкаПроведения есть такой момент, с которым не могу разобраться: в конце процедуры делается следующее:
 // Движения по документу Если Не Отказ Тогда // Подготовим таблицу скидок для проведения. ТаблицаПоСкидкам = ПодготовитьТаблицуСкидок(ТаблицаПоТоварам, ТаблицаПоУслугам, СтруктураШапкиДокумента); ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоСкидкам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок); КонецЕсли; Сообщить(ЭтотОбъект); КонецПроцедуры // ОбработкаПроведения() Когда в отладчике останавливаюсь на Сообщить(ЭтотОбъект), то движения по некоторым регистрам документа уже есть (например, РН "Продажи"), а по РН "ПродажиСебестоимость" движений ещё нет. А в следующем шаге, когда вроде ничего уже и не происходит - то движения появляются. | |||
| 58
    
        gae 20.04.16✎ 13:13 | 
        (57) Движения могут быть записаны где-то в общих модулях без использования ЭтотОбъект.Движения. А какие-то записываются по окончании Обработки проведения.     | |||
| 59
    
        Prog111 20.04.16✎ 13:28 | 
        (58) А как-то можно отловить в отладчике момент записи в регистр "ПродажиСебестоимость"? Ведь что-то же происходит в конце процедуры ОбработкаПроведения, только в отладчик не попадает...     | |||
| 60
    
        DomovoiVShoke 20.04.16✎ 13:59 | 
        Тогда дам последний совет: напишите документацию на такие велосипеды, а то программист, который придет после вас - проклянет.     | |||
| 61
    
        zak555 20.04.16✎ 14:43 | 
        Пишите в рс дополнительные свед     | |||
| 62
    
        FIXXXL 20.04.16✎ 15:10 | 
        (59) а чего бы регЗаданием не воспользоваться для такого расчета? пусть движения пишет в РН твой     | |||
| 63
    
        Serg_1960 20.04.16✎ 16:09 | 
        "Нормальные герои всегда идут в обход"(с) :( вредные советы :)
 В обработчике подписки на событие "ПередЗаписьюРегистраНакопленияПродажиСебестоимости": Процедура ПередЗаписьюРегистраНакопленияПродажиСебестоимости(Источник, Отказ, Замещение) Если Отказ ИЛИ Источник.ОбменДанными.Загрузка ИЛИ Источник.Количество() = 0 Тогда Возврат; КонецЕсли; ДокСсылка = Источник.Отбор.Регистратор.Значение; Если ТипЗнч(ДокСсылка) <> Тип("ДокументСсылка.ТипТвоегоДокумента") Тогда Возврат; КонецЕсли ТекЗначение = ТвояФункцияРасчетаЗначенияДляРеквизитаДокумента(Источник); Если ТекЗначение <> ДокСсылка.ТвойРеквизит Тогда ДокОбъект = ДокСсылка.ПолучитьОбъект(); ДокОбъект.ТвойРеквизит = ТекЗначение; Докбъект.ОбменДанными.Загрузка = Истина; ДокОбъект.Записать(); ДокОбъект = Неопределено; КонецЕсли; Возврат; КонецПроцедуры | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |