|
Как отловить ситуацию в ПриСозданииНаСервере? | ☑ | ||
---|---|---|---|---|
0
ДайтеДайте Сказать
13.12.12
✎
12:55
|
В документе, в МодулеОбъекта есть ОбработкаЗаполнения().
В модуле формы есть ПриСозданииНаСервере. Документ вводит пользователь на основании другого документа. Ситуация: - отрабатывает ОбработкаЗаполнения и заполняет Реквизит1 - отрабатывает ПриСозданииНаСервере и меняет значение у Реквизит1 Как отловить в ПриСозданииНаСервере, что документ вводится на основании и сказать, что в этом случае не нужно повторно менять Реквизит1? |
|||
1
Wobland
13.12.12
✎
12:56
|
на заполненность посмотреть?
|
|||
2
ДайтеДайте Сказать
13.12.12
✎
12:57
|
(1) ну да, только что пришла мысль посмотреть заполненность реквизита "ДокументОснование".
А более крутые варианты может есть? |
|||
3
Defender aka LINN
13.12.12
✎
12:57
|
(0) Ну, надо себя как-то заставить. Заставить себя, наконец, понять, что в ПриСозданииНаСервере вообще не надо ничего менять в объекте.
|
|||
4
Wobland
13.12.12
✎
12:58
|
(3) кстати, да
|
|||
5
XLife
13.12.12
✎
12:58
|
Параметры.Основание
|
|||
6
ДайтеДайте Сказать
13.12.12
✎
12:59
|
(3) расскажи это фирме 1С и её типовым конфигурациям
|
|||
7
Defender aka LINN
13.12.12
✎
13:00
|
(6) Пруф или GTFO
|
|||
8
ДайтеДайте Сказать
13.12.12
✎
13:01
|
(5) спасибо
|
|||
9
ДайтеДайте Сказать
13.12.12
✎
13:02
|
(7)
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда Отказ = Истина; УправлениеНебольшойФирмойСервер.ЗаполнитьШапкуДокумента( Объект, "Продажа", Параметры.ЗначениеКопирования, , , ,); //*************************************** ОбновитьПодвалФормы(); КонецПроцедуры |
|||
10
Defender aka LINN
13.12.12
✎
13:03
|
(9) Если попробовать прямо глазами посмотреть в этот код и на секундочку задуматься, то ответ и так будет очевиден.
|
|||
11
ДайтеДайте Сказать
13.12.12
✎
13:04
|
(3) > Заставить себя, наконец, понять, что в ПриСозданииНаСервере вообще не надо ничего менять в объекте.
Кстати, а где рекомендуешь что-то менять в объекте? Очень интересно... |
|||
12
ДайтеДайте Сказать
13.12.12
✎
13:04
|
+(11) Гуру что рекомендуют?
|
|||
13
MSII
13.12.12
✎
13:05
|
(11) А чем обработка заполнения не устраивает?
|
|||
14
ДайтеДайте Сказать
13.12.12
✎
13:06
|
(10) Вот тебе чисто типовой код
// Процедура - обработчик события ПриСозданииНаСервере. // &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УправлениеНебольшойФирмойСервер.ЗаполнитьШапкуДокумента( Объект, , Параметры.ЗначениеКопирования, Параметры.Основание, СостояниеДокумента, КартинкаСостоянияДокумента, РазрешеноПроведение, Параметры.ЗначенияЗаполнения ); // Установка реквизитов формы. ДатаДокумента = Объект.Дата; Если НЕ ЗначениеЗаполнено(ДатаДокумента) Тогда ДатаДокумента = ТекущаяДата(); КонецЕсли; Компания = УправлениеНебольшойФирмойСервер.ПолучитьОрганизацию(Объект.Организация); Если НЕ Константы.ФункциональнаяОпцияУчетПоНесколькимСкладам.Получить() Тогда Элементы.СтруктурнаяЕдиница.РежимВыбораИзСписка = Истина; КонецЕсли; Если ЗначениеЗаполнено(Объект.СтруктурнаяЕдиница) Тогда Если НЕ Объект.СтруктурнаяЕдиница.ОрдерныйСклад Тогда Объект.СтруктурнаяЕдиница = Неопределено; ИначеЕсли НЕ Константы.ФункциональнаяОпцияУчетПоНесколькимСкладам.Получить() Тогда Элементы.СтруктурнаяЕдиница.Видимость = Ложь; КонецЕсли; КонецЕсли; // Обработчик подсистемы "Дополнительные отчеты и обработки" ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма); // ПодключаемоеОборудование ИспользоватьПодключаемоеОборудование = УправлениеНебольшойФирмойПовтИсп.ИспользоватьПодключаемоеОборудование(); СписокЭлектронныхВесов = МенеджерОборудованияСервер.ПолучитьСписокОборудования("ЭлектронныеВесы", , МенеджерОборудованияСервер.ПолучитьРабочееМестоКлиента()); Если СписокЭлектронныхВесов.Количество() = 0 Тогда // Нет подключенных весов. Элементы.ЗапасыПолучитьВес.Видимость = Ложь; КонецЕсли; // Конец ПодключаемоеОборудование КонецПроцедуры // ПриСозданииНаСервере() |
|||
15
XLife
13.12.12
✎
13:06
|
(9) Объект имеет тип ДанныеФормыСтруктура
|
|||
16
regniws
13.12.12
✎
13:07
|
(3) бред какой-то написал
|
|||
17
Defender aka LINN
13.12.12
✎
13:30
|
(11) В обработке заполнения, где же еще.
(16) Учи матчасть. В общем, Параметры.ЗначениеКопирования автора так ни на какие мысли не навело. Печально. |
|||
18
Stim
13.12.12
✎
13:31
|
(16)+100
|
|||
19
Defender aka LINN
13.12.12
✎
13:32
|
(18) Стим, не тебе меня учить ;)
|
|||
20
Stim
13.12.12
✎
13:34
|
(19) код из 14 тебя ни на что не натолкнул, изобретатель велосипедов?
|
|||
21
mikecool
13.12.12
✎
13:38
|
(20) какой то гкод, кмк
|
|||
22
Defender aka LINN
13.12.12
✎
13:38
|
(20) Нет, а должен был? А про велосипеды, опять-таки, не тебе мне рассказывать, ага.
|
|||
23
regniws
13.12.12
✎
13:40
|
(17) ну-ка ну-ка, и чем нам грозит заполнение объекта не в ПриСозданииНаСервере!? :)
|
|||
24
regniws
13.12.12
✎
13:40
|
(23) опечатка. читать: чем нам грозит заполнение объекта не в ПриСозданииНаСервере!? :)
|
|||
25
Stim
13.12.12
✎
13:40
|
(22) почитай чтоле книжки по УФ, не знаю
|
|||
26
MSII
13.12.12
✎
13:43
|
(23) Да ничем, в общем-то, пока мы помним, что ПриСозданииНаСервере - событие формы и программно создаваемые объекты заполняем самостоятельно.
|
|||
27
regniws
13.12.12
✎
13:44
|
(26) кажется он имеет что-то другое ввиду ))
|
|||
28
Stim
13.12.12
✎
13:44
|
(26) в ПриСозданииНаСервере можно и нужно заполнять реквизиты формы
|
|||
29
regniws
13.12.12
✎
13:45
|
(28) он про объект утверждает что-то, а не про форму ))
|
|||
30
MSII
13.12.12
✎
13:46
|
(28) Вроде мы про реквизиты объекта говорил, нет?
|
|||
31
Defender aka LINN
13.12.12
✎
13:46
|
(24) Вам - разрывом мозга, вестимо. Мне - ничем.
(25) Стим, еще раз: ты НИКУЯ не знаешь про управляемые формы, усохни уже со своими идиотскими советами. |
|||
32
regniws
13.12.12
✎
13:48
|
(31) обоги.. какой конструктивный диалог..
|
|||
33
Stim
13.12.12
✎
13:49
|
(32) у человека завышенное чсв на фоне собственного альтернативного понимания механизма работы УФ.
|
|||
34
regniws
13.12.12
✎
13:51
|
(33) да это уже не чсв, а ЧСАху....
|
|||
35
Maxus43
13.12.12
✎
13:53
|
тут кто то что то знает про УФ? Не смешите мои тапки, падите ниц перед моим величием :)
|
|||
36
Defender aka LINN
13.12.12
✎
13:54
|
(34) Могу и тебя следом послать, я ни для кого исключений не делаю.
(33) Ну, у меня хотя бы такое есть. |
|||
37
regniws
13.12.12
✎
13:56
|
(36) окей, давай )) дабы расставить точки над i.
Голословное "я все могу, я все умею, вы все г..но и тд" является вполне основанной аргументацией (подсказываю).. (35) как ни странно, да, бывают те, что знают об УФ в бОльшем объеме, нежели может показаться. |
|||
38
Maxus43
13.12.12
✎
13:56
|
Страницы 405-406. Читать всем.
ПриСозданииНаСервере - процедура в которой надо подготовить ФОРМУ к открытию, а не менять данные объекта, Объект удалён из памяти после предыдущего обработчика ПриЧтенииНаСервере и т.д. и т.п. |
|||
39
Stim
13.12.12
✎
13:58
|
ветку можно закрывать
|
|||
40
Defender aka LINN
13.12.12
✎
13:59
|
(37) Еще раз: я объясняю, как следует делать с точки зрения управляемого приложения. В ответ какие-то неадекватные обезьяньи ужимки типа "А чем нам грозит, если будем делать не так?". Та ничем вам не грозит. И воду в решете можно таскать, достаточно зимы дождаться.
|
|||
41
Defender aka LINN
13.12.12
✎
14:00
|
(39) Иди в соседней ветке про ДС лучше расскажи. А то я уж прямо истомился в ожидании.
|
|||
42
regniws
13.12.12
✎
14:01
|
(38) бывают сценарии, при которых необходимо заполнить некоторые данные объекта(sic!) с последующием помещением в бидэ и более аккуратного способа как сделать это в ПриСозданииНаСервере не существует.
на вскидку: - реквизит СозданИнтерактивно чудесно заполняется именно в присоздании на сервере - ВидОперации, который нельзя прописать в дефолт значение, так же прекрасно заполняется именно в ПриСозданииНаСервере Могу еще поковырять примеров. |
|||
43
regniws
13.12.12
✎
14:02
|
(40) простое следования правилам не является хорошим тоном для программиста. Понимание механизмов работы управляемых форм наше благо, что позволяет не заявлять, что так нужно делать всегда.
|
|||
44
Mort
13.12.12
✎
14:03
|
Реквизит "СозданИнтерактивно" это г*внокод. Самый короткий г*внокод, который я видел.
|
|||
45
Maxus43
13.12.12
✎
14:04
|
(43) ситуации конечно разные, если говорить о методологии - то (38), надо к этому стремится просто
|
|||
46
regniws
13.12.12
✎
14:05
|
(44) мотивация )
|
|||
47
Defender aka LINN
13.12.12
✎
14:06
|
(42) Реквизит "СозданИнтерактивно" прямо-таки разворачивает плакат с надписью "тут вбит костыль". Хотя да, иногда надо и в форме менять реквизиты. Только я не вижу, чтобы я где-то утверждал, что этого делать категорически нельзя.
(43) Вот с этими самыми словами на правила обычно с самого начала ложится здоровенный болт |
|||
48
regniws
13.12.12
✎
14:06
|
(45) я полностью согласен с тем, что есть "основной сценарий использования" и именно этому гайдлайну нужно следовать, но заявлять сразу о том, что это г*вно ведь не следует, не так ли?
|
|||
49
Stim
13.12.12
✎
14:06
|
Открываю типовую БП 3.0., форму документа РТУ и, о ужас - в процедуре при созданииНаСервере заполняются реквизиты объекта!! Надо срочно написать разработчикам, что так нельзя делать!!
|
|||
50
regniws
13.12.12
✎
14:07
|
(47) вы даже не знает, где этот "костыль" есть и как используется, но видимо с таким чса навыки телепата впечатываются автоматически.
|
|||
51
Defender aka LINN
13.12.12
✎
14:08
|
(50) Не знаю. Но знаю, что объекту должно быть пофигу, как его создали.
(49) Ты там мою фамилию в авторах увидел, или что? |
|||
52
Stim
13.12.12
✎
14:09
|
(51) типовые создают те люди, которые придумали УФ. или из той команды. во всяком случае они знают больше тебя
|
|||
53
mikecool
13.12.12
✎
14:10
|
(52) я бы на это не сильно надеялся ))
|
|||
54
regniws
13.12.12
✎
14:10
|
(51) ну да, я прям так и вижу тогда, что у вас создается регистр сведений "объекты, созданные интерактивно" с одним составным измерение, ведь объект не должен знать, как его создали.
|
|||
55
Mort
13.12.12
✎
14:11
|
БП 3.0.9.4 РТУ :
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // ДополнительныеОтчетыИОбработки ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма); // Конец ДополнительныеОтчетыИОбработки Если Параметры.Ключ.Пустая() Тогда ПодготовитьФормуНаСервере(); КонецЕсли; АктивизироватьТабличнуюЧасть = ОбщегоНазначенияБПВызовСервера.ПолучитьПервуюНепустуюВидимуюТабличнуюЧасть( ЭтаФорма, СписокВидимыхТабличныхЧастей()); КонецПроцедуры |
|||
56
Stim
13.12.12
✎
14:12
|
(55) открой последний релиз, раз уж взялся
|
|||
57
Maxus43
13.12.12
✎
14:14
|
Типовые приводить в пример вобще не кошерно, там ошибок дохрена, как методологических, так и даже программных (например код не соответсвует их же статье о снятии режима совместимости, в некоторых процедурах не учитывется новое поведение 8.2, оттого криво работает код). Но сравнивать больше не с чем, в конфах не 1с ещё больще косяков
|
|||
58
Mort
13.12.12
✎
14:14
|
(54) Примерно так. И входить это дело должно в подсистему "мы занимаемся хернёй".
(56) Значит костыль поставили. Лень было думать и наг*кодили. |
|||
59
Maxus43
13.12.12
✎
14:16
|
2 дня без мисты жили, накипело видимо у народа, щас буквами дерутся, пар выпускают :)
|
|||
60
regniws
13.12.12
✎
14:17
|
(59) да нет, все ок, просто немного коробит, когда люди думают, что знают больше других ))
|
|||
61
Defender aka LINN
13.12.12
✎
14:32
|
(54) Нет. У нас, конечно, говнокода эпические тонны, но такого регистра, равно как и реквизита, нет. Ибо объектам пофигу, как их создают.
(60) Боль пониже спины возникает? :) |
|||
62
Wobland
13.12.12
✎
14:41
|
у меня есть в кармане зажигалка. она была обнаружена после пьянки, происхождение явно не коммерческое. работа зажигалки - поджигать мне сигарету. представим теперь, что в кармане появляется вторая зажигалка, купленная мной за деньги.
первая зажигалка справится с задачей, вторая нет. ибо мне не пофигу, как был создан объект. ибо мне аллах запрещает покупать зажигалки. других случаев, когда важен источник появления, у меня нет и вообразить не могу |
|||
63
Stim
13.12.12
✎
14:43
|
(62)слишком сложно описал. альтернативный специалист не поймет
|
|||
64
Wobland
13.12.12
✎
14:45
|
альтернативный специалист - надо запомнить
|
|||
65
Wobland
13.12.12
✎
14:53
|
поправка: аллах запрещает приобретать, но не запрещает пользоваться.
вопрос: зачем нужна интерактивность? |
|||
66
regniws
13.12.12
✎
15:14
|
(61) Свою больную тему, небольшая просьба, не проецировать на других, тем более столь интимную.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |