Согласованная сумма документа

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Согласованная сумма документа, Как с этим работать?
 
При нажатии на "Валюта" и "Итого"
выскочила таблица "Введите согласованную сумму".
Можно рассказать порядок действий при работе с данной таблицей.
 
Добрый день, Станислав, согласованная сумма ремонта - это оговоренная с клиентом заранее сумма стоимости ремонта: допустим, к нам приезжает клиент, и мы с ним договариваемся, что ремонт будет стоить 10000. Вводим в данном окне эту сумму (что-то наподобие блокнота). Сделали ремонт, и оказалось, что итоговая сумма превышает эту сумму, звоним клиенту и сообщаем ему данную информацию.  
 
Насколько я понимаю, на поведение программы заполнение этой строки(согласованная сумма ремонта) никак не влияет. Как будто её и не заполнили, программа позволит дальше работать с ЗН(записывать, проводить, закрывать) при превышении согласованной суммы.
Если повесить на запись или проведение ЗН "значимое событие", можно ли не дать пользователю записать/провести ЗН если превышена согласованная сумма.
За что отвечают пункты в "значимых событиях" : "Выполнять действия в транзакции", "В случае исключения прерывать выполнение", "В случае исключения продолжать выполнение"
Идея вызвать исключение и не дать провести документ если превышена согласованная сумма.
 
Добрый день, Илья.
Совершенно верно, данная строка не влияет на проведение документа.
Значимые события Вы можете настроить по своему усмотрению, мы предоставляем только механизм значимых событий, а настраивает их для проведения специалист, который разбирается в языке программирования 1С. Сотрудники компании 1С-Рарус не оказывают консультации по программированию на платформе 1С. Возможно, кто-то из участников форума даст Вам совет, это не запрещается правилами форума.
Изменено: Светлана Сулименко - 10.11.2016 17:38:16
 
Если внимательно перечитать моё сообщение, можно увидеть в нем 2 вопроса:
1. Если повесить на запись или проведение ЗН "значимое событие", можно ли  не дать пользователю записать/провести ЗН если превышена согласованная  сумма?
2. За что отвечают пункты в "значимых событиях" : "Выполнять действия в  транзакции", "В случае исключения прерывать выполнение", "В случае  исключения продолжать выполнение"?

Ни на один вы не ответили. Я не просил привести примеры кода, не просил показать как можно это сделать и пр. Опять ответ без ответа. Мы сделали, а как это работает - догадайся сам.
 
Илья,
1. с помощью значимых событий можно сделать указанные Вами настройки
2. Выполнять действия в транзакции - все действия значимого события выполняются в рамках одной транзакции. Если в одном из действий произойдет ошибка, то транзакция будет отменена. В случае исключения прерывать выполнение - в случае возникновения ошибки в одном из действий, дальнейшие действия выполнятся не будут. Однако, результат работы предыдущих действий отменен не будет. В случае исключения продолжить выполнение - в случае возникновения ошибки в одном из действий, это действие будет проигнорировано, а выполнение действий продолжится.
 
Цитата
Светлана Сулименко написал:
1. с помощью значимых событий можно сделать указанные Вами настройки

Мне тоже стало интересно, можно ли прервать запись или проведение документа через значимые события (хотя с точки зрения быстродействия, на мой взгляд, это существенно выгоднее делать напрямую в модуле).

С настройками значимого события все довольно однозначно - на событие "ПриЗаписи" заказ-наряда вешаем условие, что состояние равно "Выполнен". А вот с действием на него возникает проблема. Во-первых, очевидно, что единственным подходящим нам видом действия является "Прочее" (т. е. выполнение произвольного кода).

Далее же нужно определиться со способом прерывания процесса записи. Наиболее красивым решением было бы из нашего произвольного кода перевести флаг "Отказ" процедуры "ПриЗаписи" в состояние "Истина". Однако в конечном итоге произвольный код выполняется в контексте процедуры "ВыполнитьПрочееДействие" общего модуля "сбСобытия":

Код
Процедура ВыполнитьПрочееДействие(ВыборкаИзРезультатЗапроса, Параметры)

   Попытка
      Выполнить(ВыборкаИзРезультатЗапроса.ПроизвольныйКод); // <<< Вот тут
   Исключение
      #Если Клиент Тогда
         Сообщить(ОписаниеОшибки());
      #КонецЕсли   
   КонецПопытки;

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

Выполняется эта процедура уже после обработчиков "ПриЗаписи" и "ОбработкаПроведения". Поэтому на флаг "Отказ", равно как и на ход записи или проведения документа, мы из нее повлиять не можем. Максимум, что мы можем отсюда выжать - это объект документа, вызвавшего значимое событие:

Код
Параметры.ОбъектИсточникСобытия

Поэтому с моей точки зрения, реализовать с помощью значимых событий дополнительные проверки при записи или проведении документа невозможно. Хотя, вполне вероятно, я что-то упускаю из вида.
 
Приношу свои извинения: прервать запись или проведение документа через значимые события нельзя.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С