Имя: Пароль:
1C
 
Как изменить текст на форме из модуля документа?
0 Паланик
 
08.12.08
12:00
В момент проведения нужно изменить текст на форме. По аналогии как из модуля формы:
Форма.Превышено.Заголовок(КусокМяса);

или через невидимый реквизит на форме передавать? Подскажите, пжлст.
1 ДенисЧ
 
08.12.08
12:02
В момент проведения документа формы может не быть. Поэтому забей.
2 Паланик
 
08.12.08
12:06
Тогда сделать КусокМяса невидимым реквизитом формы и передовать в него значение из проведения, а потом в ПриЗаписи() уже выдать в текст на форме?
3 Euguln
 
08.12.08
12:07
Навешать на кнопку ОК свой обработчик, который будет проводить и все что надо делать
4 ДенисЧ
 
08.12.08
12:07
Повторяю. В момент проведения нет никаких реквизитов формы. Поэтому ищи другой способ.
5 Паланик
 
08.12.08
12:11
(3) Как это реализовать? Прописать в формулу свою функцию из в которой бедт исполняться "#Записать Провести? Закрыть" и мой код?
6 Ёпрст
 
гуру
08.12.08
12:13
(5) нет, смотреть на параметры в методе Провести и Обработка проведения...
И ..получить потом граблей по-лбу при любом программном проведении/перепроведении документа.
7 Эльниньо
 
08.12.08
12:14
(0) Зачем?
8 Паланик
 
08.12.08
12:17
В конце проведения в модуле дока включается моя процедура (там проверяется лимит) и потом нужно выдать на форму, что лимит превышен. Затем, чтоб при открытии этого дока было видно, что лимит превышен.
9 ДенисЧ
 
08.12.08
12:18
(8) Проверяй при открытии докумнта.
10 Torquader
 
08.12.08
12:18
Есть стандартная функция Сообщить(Message), которая прекрасно работает из модуля проведения. Если уж очень хочется, чтобы на форме что-то появилось, то при проведении документа можно записать значение в глобальную переменную (объявленную в глобальном модуле с признаком Export), а потом на форме из неё что-то читать. В этом случае, при отсутствии формы переменая всё равно будет.
11 Паланик
 
08.12.08
12:20
У меня выводится сообщение о превышении. Нужно, чтобы при повторном открытии было ясно, по какой причине не был проведен этот док. Воспользуюсь глобальной переменной, спасибо всем!
12 ДенисЧ
 
08.12.08
12:21
Мда... Глобальная переменная - это самый лучший подход. Пиши больше, раздавай шире! Нам больше работы будет! :-)
13 Паланик
 
08.12.08
12:27
(9) При открытии документа не получится, т.к. мне нужно проверять лимит с движениями этого документа тоже. Какие еще варианты могут быть? (не хочу добавлять вам работы)))
14 ДенисЧ
 
08.12.08
12:29
(13) при открытии документа не видно движений? О_о дайте два...
15 Паланик
 
08.12.08
12:31
В окрытом доке меняют данные и проводят...
16 ДенисЧ
 
08.12.08
12:32
Текст на форме. В тексте функция, которая считает нужное и возвращает текст.
17 Ёпрст
 
гуру
08.12.08
12:33
(15) в модуле формы посмотреть, проведен али нет и поиметь всё что надо.
18 Паланик
 
08.12.08
12:33
Надо подумать над вариантом ПриЗакрытии() тогда...
19 Ёпрст
 
гуру
08.12.08
12:37
(18) смотри во всех типовых на изменяемый Заголовок....
20 Паланик
 
08.12.08
12:39
Прверку лимита нужно хоть как делать после отработки процедуры проведения. Это либо в модуле документа, либо в модуле формы в ПриЗакрытии().
(17) Проведен или нет, это мне ничего ж не даст.
21 Ёпрст
 
гуру
08.12.08
12:41
(20) Биомать а ? Какое нах ПриЗакрытии? ...
Ладно, читаем (16,17,19) думаем.
22 Деметрио
 
08.12.08
12:46
чота я не понял механизма работы с документом.
его открывают, изменяют, проводят, закрывают - в какой момент надпись смотрят?
23 КонецЦикла
 
08.12.08
12:48
(20) Да вы просто рутинер, милейший!
24 КонецЦикла
 
08.12.08
12:48
Изучайте типовые
25 Паланик
 
08.12.08
12:50
Надпись нужно выдать после проведения дока. Если док открыт повторно, то надпись пишется от последнего проведения- проверки.
26 Ёпрст
 
гуру
08.12.08
12:54
(25) см. 24 ... там всё есть.
27 Деметрио
 
08.12.08
12:57
//положил бы в реквизит, чтобы не рассчитывать заново при каждом открытии.
28 d_malyshev
 
08.12.08
13:00
А если определить какую-нибудь Глобальную переменную "СообщениеПроведенияДок1"?
По умолчанию там "". И пусть на форме отображается значение этой переменной.
Если возникает ошибка - присваеваем этой глобальной переменной все, что нам  нужно.
29 Sadovnikov
 
08.12.08
13:01
(28) Ипануться... Шедевр...
30 Паланик
 
08.12.08
13:01
(27) Мне так и надо. Я предложил через реквизит, либо через гл пер. Но мне посоветовали этим не заниматься...
31 Паланик
 
08.12.08
13:07
(28) Почему-то спецами не приветствуется использование собственных глобальных переменных, почему - никто толком не говорит.))
32 Irbis
 
08.12.08
13:13
>> Прверку лимита нужно хоть как делать после отработки процедуры проведения.
Никогда бы не подумал: сначала грузим потом лимит проверяем? Куда катится мир?!

ИМХО: Все лимиты в программе, за исключением, может быть самых критических и связанных с работоспособностью самой программы, должны носить чисто информативный характер. Ибо тупость пользователей и глупость их деяний ничем не ограничены. А пытаться с помощью програмных методов лечить административные заморочки, действие заранее обреченное на неудачу, типа как цирроз печени "Боржоми" пользовать.
По сабжу: если нужно что-то важное, или не очень, сообщить пользователю в процессе проведения - есть Сообщить(), пользователь читает и думает. Или не думает и "забивает" на сообщение. Но решение принимает пользователь.
Смысл отражать состояние в документе нулевой, сдвинут его в пределах дня на пару минут или еще один документ вобьют, и состояние лимита может поменяться.
33 Паланик
 
08.12.08
13:16
(32) Согласен. В том -то и дело, что информативный, чтобы менеджер или его нач-к открыл непроведенную накладную и увидел, почему она не проведена. В момент проведения у меня выводится предупреждение, всё пучком. Но вот надо им еще ляпнуть об этом на доке, им чем больше всяких информашек - тем круче.
34 Ёпрст
 
гуру
08.12.08
13:17
"В момент проведения у меня выводится предупреждение"
Полный ПЭ..
35 Vitello
 
08.12.08
13:17
(33)им чем больше всяких информашек - тем круче.
FAIL. Информации должно быть ровно столько, сколько нужно. Иначе глаза разъезжаться будут.
36 Паланик
 
08.12.08
13:20
(32)Никогда бы не подумал: сначала грузим потом лимит проверяем? Куда катится мир?!

В типовом решении, когда проверяется наличие товара на складе, разве иначе?
Я планирую отражать в накладной текущий долг менеджера.
37 Irbis
 
08.12.08
13:21
(33) Документ (номер, дата) не проведен. Причина: превышен лимит.
Чего еще пользователю надо? Максимум текущее состояние, на основании чего был сделан такой вывод. дело начальства согласовать или нет с превышением, а не разбираться по чему именно тот или иной документ не проведен.

P.S. А предупреждение из проведения убери, равно как и все интеракивные действия пользователей.
38 Деметрио
 
08.12.08
13:21
можно в комментарий писать - вроде он есть в типовой...
39 Паланик
 
08.12.08
13:22
(34) В конце типового проведения стоит вызов моей процедуры проверки лимита. Что тут полноПЭшного?
40 Ёпрст
 
гуру
08.12.08
13:22
(39) "В момент проведения у меня выводится ПРЕДУПРЕЖДЕНИЕ"
41 Sadovnikov
 
08.12.08
13:23
Это я один не понимаю: "Прверку лимита нужно хоть как делать после отработки процедуры проведения" и "открыл непроведенную накладную и увидел..." ?
42 Ёпрст
 
гуру
08.12.08
13:23
Автор, типовые в глаза вообще видел ?
Там всё есть, и долг клиентоса текущий, и изменение статуса отображенное в заголовке самой формы ....
43 Irbis
 
08.12.08
13:24
(41) Ты не одинок. См (32).
44 Sadovnikov
 
08.12.08
13:24
(43) Уфф... Сразу полегчало... :)
45 Паланик
 
08.12.08
13:25
(41) Что не так?
(42) Я и завел ветку, чтобы услышать ваши варианты. Скорее всего лучше было бы в заголовок формы писать.
46 Паланик
 
08.12.08
13:28
"открыл непроведенную накладную и увидел..."

непроведенную из-за предыдущей неудачной попытки проведения документа из-за превышения суммы лимита. Чо тут непонятного?
47 foxey
 
08.12.08
13:28
(45) Да лучше всего при проведении получить отрицательный отстаток и Ведомость по отстаткам ТМЦ манагеру на экран хлопсь с нужным разрезом. Вот тут будет полная информативность.
48 Irbis
 
08.12.08
13:31
(45) Лучше всего до момента проведения проверить лимит, может и проводить-то нельзя. Предупредить пользователя, и при ингорировании предупреждения провести. Ну всяческие оповещалки для начальства расписывать не буду, тут уж пусть у тебя фантазия работает.
49 Паланик
 
08.12.08
13:39
(48) Можно и до проведения, тогда все равно придется с учетом суммы этого документа считать. Вообще, изначально идет заявка от покумателя, если она превышает лимит, то док проводится и выдается сообщение. в форму заявки пишу строку, мол, превышено. Началник продаж видит заявку и принимает решение. Когда уже отгружаем "товарной накл" и проверка фиксирует превышение лимита, тогда уже нельзя проводить.
50 Деметрио
 
08.12.08
13:41
как я понял, нужно, чтобы в непроведенном документн хранилась информация о том, почему он непроведен.
51 Паланик
 
08.12.08
13:43
(50) так точно! Вижу 3 способа: реквизит, ГП, заголовок формы... думаю последний заюзать)
52 smaharbA
 
08.12.08
13:44
Провести(,Форма.МойРеквизит)
53 Irbis
 
08.12.08
13:48
(51) Если исходить из того, что документ должен сам в любой момент времени знать о своем состоянии, то "Заголовок формы" и "ГП" мало подходят для такой цели.
54 Паланик
 
08.12.08
13:51
в (52) как раз в реквизите инфу нужную сохранить и выдавать. Других проведений, кроме как руками, не предусмотрено.
55 Irbis
 
08.12.08
13:53
(54) Кем не предусмотрено? Сам еще не раз запустишь групповую обработку документов, в том числе и провести. Так, что не зарекайся.
56 Паланик
 
08.12.08
13:59
Ок. Чем грозит, кроме как потерей заголовков? Прошлые документы уже не так важны будут, они в итоге все равно проведутся все, без превышений лимитов.
57 Torquader
 
08.12.08
22:14
Реквизит хорош тем, что его смогут увидеть и с другого клиента.
Заголовок и глобальную переменную же будут созерцать только в одном рабочем сеансе.
P.S. глобальные переменные плохи с точки зрения переносимости кода. Если мы переносим какой-то документ из одной конфы в другую, то "глобалки" придётся переносить ручками.
Если же мы готовим что-то общее для всех документов, то глобальные переменные как нельзя кстати (или допихивать реквизит в документ каждого типа).
А вообще, полезно полистать типовые особенно по поводу частичного проведения.
58 lals2
 
08.12.08
23:24
(54) Всетаки реквизит всего надежней. Если не проведен то реквизит = " непроведен по причине превышения лимита"
Иначе реквизит = " проведен и очень хорошо"
59 Злопчинский
 
09.12.08
03:01
все гуано... причем как верно отметили выше - сам подход...
При проведении тупо пиши инфу о всяких лимитах и о всем прочем в тривиальный текстовый файл, который клади в определенное место, имя файла = номеру дока (номердока.txt), в конце процедуры проведения - вываливай текстовый документ на просмотр (или преобразуй его в красивый моксель), при закрытии мокселя _по спецкнопке_ - файл с текстовым содержимым переименовывается в "Показан_НомерДока.txt", при закрытии любым другим способом - файл остается как был номердока.txt. При начале любого сеанса 1 показываешь все "непросмотренные" доки-сообщения - при закрытии _спецкнопочкой_ и т.д.....
работы - часа на полтора-два с условием наваяния ЦУПа по управлению информационными файлами...
60 Паланик
 
09.12.08
06:25
Всем большое спасибо за советы! (59) Хорошая идея, но почему в ёксель переводить? Почему не признаком в начале файла: 1, 0? Спасибо за идею. Думаю вести лог-файл со всеми превышениями лимитов за день, который будет расшарен для начальника, который будет смотреть периодически. Или вообще можно замутить отсылку письма начальнику по событию или чего-нить подобного, но это уже с перебором))