Имя: Пароль:
1C
1С v8
Из модуля объекта к реквизиту формы
0 Juliette_
Juliette
 
06.07.23
13:16
Есть какой-нибудь способ получения данных реквизита формы, не связанных с объектом, из модуля объекта?
Конфигурация на замке, но реквизиты надо использовать в модуле проведения.
С хранилищем такое прокатит?
1 Naumov
 
06.07.23
13:21
если не передать в модуль данные, то никак.
2 CepeLLlka
 
06.07.23
13:21
Так не можно. Придётся использовать расширения
3 Мультук
 
06.07.23
13:25
(0)

Пример для "Документ".
В форме делаем:

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.ДополнительныеСвойства.Вставить("миста_ТвойРеквизитФормы", ТвойРеквизитФормы);

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

В обработке проведения достаем из "ДополнительныеСвойства"

Форму либо снимаем с поддержки, либо используем разрешения.

P.S.
Настоятельно рекомендую префикс, иначе рано или поздно ваш реквизит совпадёт по имени с там,
что туда решат запихнуть программисты 1С
4 Juliette_
Juliette
 
06.07.23
13:34
(3) спасибо!
5 YFedor
 
06.07.23
13:37
А зачем реквизит формы в модуле проведения, что такого интересного в этом реквизите?
6 CepeLLlka
 
06.07.23
13:47
(3)Костыль какой-то, нее?
Если код в модуле объекта и в модуле формы писать = делать расширение, конфа же на замке

Захочешь потом использовать это расширение ещё в другой базе, скопировал такой, к другой базе подключил, будь добр ещё включай доп. реквизиты, которые и не доп. реквизиты по факту а костыли для работы твоего расширения..
В чём проблема просто добавить реквизит в расширение?
7 Juliette_
Juliette
 
06.07.23
13:50
(5) В моем случае клиент заполняет таблицу пеней по срокам долга, после чего она пишется в отдельный регистр.
Все через расширение, все красиво и работает
При чтении формы анализируется регистр и таблица заполняется данными для корректировок
8 YFedor
 
06.07.23
13:52
(7) Т.е. данные из формы при проведении будут писаться в этот отдельный регистр?
9 CepeLLlka
 
06.07.23
14:07
(8)При перепроведении доков без открытия формы весело будет
10 Aleksandr N
 
06.07.23
14:09
(9) хехе да
11 АгентБезопасной Нацио
 
06.07.23
14:12
(3) есть негласное  правило - не давать гранаты обезъянам...
12 Juliette_
Juliette
 
06.07.23
14:15
(9) решается дополнительным свойством БУЛЕВО, нет?
(11) аргументы?
13 YFedor
 
06.07.23
14:15
(9) Слишком рано, нужно было дождаться 50 поста
14 lodger
 
06.07.23
14:15
(9) можно поставить
Если Источник.ДополнительныеСвойства.Свойство("миста_ТвойРеквизитФормы") Тогда
// делаем движуху
Иначе
Отказ=Истина;
КонецЕсли;
15 YFedor
 
06.07.23
14:16
(14) Можно, но зачем, лучше данные для проведения хранить в самом документе
16 Juliette_
Juliette
 
06.07.23
14:17
даже проверкой свойства вопрос решается на перепроведение доков, умники
17 Fish
 
06.07.23
14:17
(14) А если это не перепроведение, а отмена проведения из формы списка?
18 Мультук
 
06.07.23
14:17
(6)

Конечно костыль. Код правда скопипастен из типовой УТ. А так да.

(11)
Беда в том, что порой трудно отличить обезьяну-новичка, от опытного орангутана,
который залез на свою пальму еще во времена 7.7 и вот решил спуститься.
19 Мультук
 
06.07.23
14:18
(17)

Отмена проведения  не юзает функцию "ОбработкаПроведения". Или я что-то "пропустил" ?
20 CepeLLlka
 
06.07.23
14:18
(14)А можно просто добавить реквизиты к документу в расширении, а не использовать ДополнительныеСвойства и не парить себе мозг :)
Потому что сейчас это "ДополнительныеСвойства", а в след релизе БСП, это уже ДопСвойства. Не говоря уже об использовании своей разработки на более старых релизах, где ДопСвойства вроде были в отдельном регистре(могу ошибаться) или же вообще в нетленках без БСП.
21 YFedor
 
06.07.23
14:18
(16) Костылей можно придумать много и разных, тут вопрос в том зачем все это делать, если можно работать по методикам 1с?
22 Fish
 
06.07.23
14:19
(19) Т.е. у непроведённого документа все движения затрутся, а эти останутся. Круто, чо.
23 CepeLLlka
 
06.07.23
14:20
(19)Наверное упустил то, что нужно очищать данные в РС при отмене проведения. А затем при проведении писать туда их снова, но опачки, данных то нигде нет, они же в форме живут..
24 YFedor
 
06.07.23
14:20
(22) Почему останутся-то, если удаление движений происходит автоматически при отмене проведения?
25 Juliette_
Juliette
 
06.07.23
14:22
(24) у них так, у меня все работает
26 lodger
 
06.07.23
14:24
(20) э не, другие ДополнительныеСвойства

ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)
ДополнительныеСвойства (AdditionalProperties)
Использование:
Только чтение.
Описание:
Тип: Структура.
Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события.
27 Fish
 
06.07.23
14:25
(24) Если они пишутся, как движения документа - тогда да. А если в независимый РС, то нет.
28 CepeLLlka
 
06.07.23
14:26
(24)Движения могу не очищаться, если не были изменены. Так-же можно выключить автоматическое удаление движений при отмене проведения.

(26)Понял, чёт не юзал такое.. А ничего что написано - "Только чтение"?
29 YFedor
 
06.07.23
14:27
(7) А этот доп. регистр он добавлен в конфигурацию расширением?
30 Juliette_
Juliette
 
06.07.23
14:27
(27) они пишутся в движения
31 Fish
 
06.07.23
14:28
(30) Т.е. отмена проведения и повторное проведение в форме списка гарантированно затрёт эти данные. Великолепно!
32 Juliette_
Juliette
 
06.07.23
14:28
(29) вот что проще - мышкой добавить реквизиты формы на форму или программно описать реквизиты объекта на форме?
33 Juliette_
Juliette
 
06.07.23
14:29
(31) дурень, есть проверка как в (14)
34 Fish
 
06.07.23
14:30
(33) Эта проверка при отмене проведения не сработает, умничка :))))
35 Juliette_
Juliette
 
06.07.23
14:31
при отмене проведения регистр очиститься сам, он в движениях документа. Мне так и надо
36 Fish
 
06.07.23
14:32
(35) Вот. И я про это. А при повторном проведении он уже не заполнится, т.е. (31). Теперь дошло, наконец?
37 Juliette_
Juliette
 
06.07.23
14:32
(34) не делайте мне мозг) все работает и с проведением, и с отменой)
38 Juliette_
Juliette
 
06.07.23
14:33
заполнится, если написать так
&После("ОбработкаПроведения")
Процедура Пени_ОбработкаПроведения(Отказ, РежимПроведения)
    
    Если ДополнительныеСвойства.Свойство("ПериодыПени") Тогда
        ТаблицаПени = ДополнительныеСвойства.ПериодыПени.Выгрузить();

        ДвиженияДокумента = Движения["ПараметрыНачисленияПениПоПериодам"];
        ДвиженияДокумента.Записывать = Истина;
        ДвиженияДокумента.Загрузить(ИнициалиализацияДанных(ТаблицаПени));
    КонецЕсли;
    
КонецПроцедуры
39 Fish
 
06.07.23
14:34
(38) При повторном проведении ИЗ ФОРМЫ СПИСКА у тебя не будет никакого допсвойсва. До сих пор не доходит? Ну тогда забей :))))
40 Juliette_
Juliette
 
06.07.23
14:35
(39) да понимаю я это, такие условия. Все изменения через другой документ формируются.
41 Fish
 
06.07.23
14:36
Т.е. любой юзер, который по ошибке отменит проведение или пометит документ на удаление, а потом проведёт документ не открывая форму - затрёт данные. Да даже если и откроет форму - то там ранее введённых данных уже не будет. Гениальное решение.
42 Juliette_
Juliette
 
06.07.23
14:38
(41) ладно ладно, Ваша правда. Придется в объект добавлять
43 АгентБезопасной Нацио
 
06.07.23
15:47
(12) аргумент простой: обезъяна - дура, и с гранатами обращаться не умеет.
(18) тут, пожалуй, не соглашусь. про требования адекватного проведения без открытия формы клюшечники прекрасно знали.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн