Имя: Пароль:
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) тут, пожалуй, не соглашусь. про требования адекватного проведения без открытия формы клюшечники прекрасно знали.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс