Имя: Пароль:
1C
1С v8
Отмена проведения
0 ogion83
 
01.08.13
10:02
В ОбработкеПроведения использую для прекращения проведения:

Если МестоХранения.Пустая() = Истина Тогда
        Предупреждение("Не Выбран склад!");
        Отказ = Истина;
        Возврат;
    КонецЕсли;

Документ не проводится, но появляется на мой взгляд лишнее сообщение "Не удалось провести ..."
Как его убрать?
1 butterbean
 
01.08.13
10:03
нельзя Предупреждение() в обработке проведения
2 butterbean
 
01.08.13
10:03
(1)+ проверять надо в ПередЗаписью()
3 Нууф-Нууф
 
01.08.13
10:05
ужаснах. предупреждение при проведении. один из смертных грехов
4 ogion83
 
01.08.13
10:06
ПередЗаписью() тут ведь происходит сохранение? Мне надо чтоб проверялось условие при попытке провести документ.
5 Нууф-Нууф
 
01.08.13
10:06
перед записью - смотри какой режим записи
6 butterbean
 
01.08.13
10:06
(4) внимательно прочитай про параметры ПередЗаписью()
7 ogion83
 
01.08.13
10:07
(3) Изучаю 1С8 после 1С7.
8 Нууф-Нууф
 
01.08.13
10:07
(7) так за такие дела и в 7ке яйца отрубали
9 ogion83
 
01.08.13
10:08
(8) уж как научили
10 Нууф-Нууф
 
01.08.13
10:08
вообще проверяй в ПередЗаписью в самой форме.
11 Нууф-Нууф
 
01.08.13
10:08
Расширение формы документа.ПередЗаписью (Document form extension.BeforeWrite)
Расширение формы документа (Document form extension)
ПередЗаписью (BeforeWrite)
Синтаксис:

ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>)
Параметры:

<Отказ>

Тип: Булево.
Признак отказа от записи документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись документа выполнена не будет.
Значение по умолчанию: Ложь
<РежимЗаписи>

Тип: РежимЗаписиДокумента.
Режим записи документа. Позволяет определить выполняется запись, проведение или отмена проведения.
Изменение значения параметра позволяет изменить режим записи.
<РежимПроведения>

Тип: РежимПроведенияДокумента.
Позволяет определить, выполняется оперативное проведение или нет.
Изменение значения параметра позволяет изменить режим проведения.
Описание:

Возникает перед выполнением записи объекта из формы. Процедура-обработчик данного события вызывается перед вызовом процедуры-обработчика события ПередЗаписью объекта ДокументОбъект.<Имя документа>.
12 ogion83
 
01.08.13
10:11
Акай, сделаю через ПередЗаписью
13 ogion83
 
01.08.13
10:15
Как РежимЗаписи задать тип ОтменаПроведения?
14 Нууф-Нууф
 
01.08.13
10:17
РежимЗаписиДокумента (DocumentWriteMode)
РежимЗаписиДокумента (DocumentWriteMode)
Значения

Запись (Write)
ОтменаПроведения (UndoPosting)
Проведение (Posting)

Описание:

Определяет набор режимов записи документа.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Возможен обмен с сервером.
См. также:

ДокументОбъект, метод Записать
Расширение формы документа, метод ЗаписатьВФорме
ДокументОбъект, событие ПередЗаписью
Расширение формы документа, событие ПередЗаписью
Расширение управляемой формы для документа, метод Записать
Расширение управляемой формы для документа, событие ПередЗаписью
Расширение управляемой формы для документа, событие ПередЗаписьюНаСервере
15 chelentano
 
01.08.13
10:17
(13) Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения
16 Нууф-Нууф
 
01.08.13
10:17
учись пользоваться СП
17 Нууф-Нууф
 
01.08.13
10:18
и кстати пример использования РежимЗаписи (как и любого другого объекта) - легко можно найти поиском по типовой конфиге
18 ogion83
 
01.08.13
10:21
В семерке есть "Поиск во всех текстах", в 1с8 есть такое?
19 ogion83
 
01.08.13
10:25
Вот так значит:

Если Контрагент.Пустая() = Истина Тогда
        Предупреждение("Не Выбран контрагент!");
        РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения;
    КонецЕсли;
20 lEvGl
 
гуру
01.08.13
10:26
нах форму с записью, это ж 8.2. На реквизите поставить свойство ПрверкаЗаполнение в "ВыдаватьОшибку"
21 lEvGl
 
гуру
01.08.13
10:26
платформа сама все сделает
22 chelentano
 
01.08.13
10:27
(19) Нет, не так. Тебе уже всё рассказали тут
23 Starhan
 
01.08.13
10:28
(19)
Типа так
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Отказ = Контрагент.Пустая()
КонецЕсли;


Предупреждение если в модуле объекта делаешь
оберни в дериктиву на клиенте
24 Fedot200
 
01.08.13
10:30
(9) Это какой падонок тебя научил предупреждение в проведении? Ну хотя бы таймаут и то это г...
25 ogion83
 
01.08.13
10:32
(24) А чем оно смертельно?
26 chelentano
 
01.08.13
10:34
(25) да ничем, пиши их побольше, не стесняйся
27 lEvGl
 
гуру
01.08.13
10:34
(25)Предупреждение - результат проверок, все проверки должны быть до ОбработкиПроведения
28 ogion83
 
01.08.13
10:35
(27)А чем это смертельно? Или просто традиция?))
29 chelentano
 
01.08.13
10:37
(28) например, групповое перепроведение документов
30 Serg_1960
 
01.08.13
10:38
(29) Бывает ещё хуже :) - на сервере некому сообщать. Ни пользователя, ни сеанса.
31 Irbis
 
01.08.13
10:38
(29) Да просто пользователю влом закрыть предупреждение, а остальные ловят блокировки, в лучшем случае.
32 ogion83
 
01.08.13
10:39
Ок, понятно.
33 lEvGl
 
гуру
01.08.13
10:40
(28)смертельного ничего нет, но зачем выполнять код (это будет ПередЗаписью формы, ПередЗаписью объекта, ПриЗаписи объекта) а потом проверять на заполненность реквизитов. Сначала отработали эти процедуры, а потом решили, что склада нет и проводить не будем, зачем выполняли ?
Удариться головой аб стену тоже не смертельно
34 ogion83
 
01.08.13
10:41
После этого:

Если Контрагент.Пустая() = Истина Тогда
        Предупреждение("Не Выбран контрагент!");
        РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения;
    КонецЕсли;
Но теперь выскакивает сообщение:
Ошибка записи! Не установлен отбор по регистратору
35 ogion83
 
01.08.13
10:41
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если Контрагент.Пустая() = Истина Тогда
        Предупреждение("Не Выбран контрагент!");
        РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения;
    КонецЕсли;
36 Serg_1960
 
01.08.13
10:42
Мда... Быдлокодер детектед.
37 ogion83
 
01.08.13
10:43
(36)Очень информативное сообщение, а особенно в тему!
38 banco
 
01.08.13
10:44
(0) для этого есть свойство реквизита проверка заполнения, если хочешь программно проверять, то в обработчике ОбработкаПроверкиЗаполнения
39 Starhan
 
01.08.13
10:45
(35) скажи какая платформа?
40 lEvGl
 
гуру
01.08.13
10:46
Не надо менять РежимЗаписи. Надо Отказ в истину поставить, будет сообщение "провести не удалось". Если не хочешь сообщений сделай (20) и (38)
41 ogion83
 
01.08.13
10:46
(38) Бывает нужно просто сохранить не до конца заполненный документ. А вот при проведении уже нужно проверить всё ли заполнено.
Бухгалтерия предприятия, редакция 2.0 (2.0.44.6)
42 chelentano
 
01.08.13
10:48
(41) ты чего такой трудный то?
43 lEvGl
 
гуру
01.08.13
10:49
(41) ОбработкаПроверкиЗаполнения в объекте
Если РежимЗаписи <> Проведение Тогда
ПроверяемыРеквизиты.ОчиститьНах()
Конецесли;

ну а вобще это П**Ц какой то
44 lEvGl
 
гуру
01.08.13
10:50
+ (36) или кодобыдлер
45 ogion83
 
01.08.13
10:55
(44) пошел лесом вместе с (36)
46 lEvGl
 
гуру
01.08.13
11:00
охамел совсем, говоришь как делать, он тебя лесом шлет, удод.
Платформа "Бухгалтерия предприятия, редакция 2.0 (2.0.44.6)" может быть только у удода
47 Нууф-Нууф
 
01.08.13
11:02
ипать вы тему раздули
48 Нууф-Нууф
 
01.08.13
11:02
забаньте автора
49 banco
 
01.08.13
11:19
(43) ОбработкаПроверкиЗаполнения и так не будет вызываться при записи документа (кроме документов проведение запретить)
50 Fedot200
 
01.08.13
11:32
(36) Не это не быдлокодер, это копрокодер как минимум.
51 ogion83
 
01.08.13
11:51
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
        Если НЕ ЗначениеЗаполнено(МестоХранения) Тогда
            Предупреждение("Не Выбран склад!");
            РежимЗаписи = РежимЗаписиДокумента.Запись;
        КонецЕсли;
КонецЕсли;

И всё, что требовалось. Есть ещё нормальные форумы, где просто подскажут, а не начнут писать х..ю
52 Fedot200
 
01.08.13
12:04
(51) Ты считаешь, что это мега-супер сложно, что все кинулись тебе эту проблему разруливать? Тебе-же подсказили и не раз в этой ветке, какие траблы?