|
Программное проведение документа | ☑ | ||
---|---|---|---|---|
0
ladalk
09.03.16
✎
12:44
|
Добрый день,
программно создаю и провожу документ: Попытка Док.Записать(РежимЗаписиДокумента.Проведение); Исключение КонецПопытки; Проводит. Проводит даже то, что не должен - с пустыми реквизитами или строками. Что делать? |
|||
1
Rie
09.03.16
✎
12:45
|
(0) А кто сказал, что не должен проводить с пустыми реквизитами или строками?
|
|||
2
ladalk
09.03.16
✎
12:46
|
(1) когда вручную провожу - ошибки соответствующие выходят и не проводит. Хотелось бы также
|
|||
3
aleks_default
09.03.16
✎
12:48
|
(0)Уволить программиста.
|
|||
4
Rie
09.03.16
✎
12:49
|
(2) Где стоят проверки на пустые строки или реквизиты?
(Ну и так, для общей информации - что за конфигурация, что за документ, какая платформа...) |
|||
5
ladalk
09.03.16
✎
12:51
|
(4) Розница 2.1, документ "отчет о розничных продажах",загрузка с рабочих мест кассиров через хмл файлы.
|
|||
6
FIXXXL
09.03.16
✎
12:53
|
(2) проверки в форме?
|
|||
7
SadrArt
09.03.16
✎
12:54
|
(0) > Проводит.
Откуда инфа? |
|||
8
ladalk
09.03.16
✎
12:55
|
(7) из базы.
|
|||
9
ladalk
09.03.16
✎
12:57
|
ПроверкаЗаполнения() мне поможет ведь?
|
|||
10
Одинесю
09.03.16
✎
13:00
|
ОбработкаОбъект.<Имя обработки> (DataProcessorObject.<Имя обработки>)
ОбработкаПроверкиЗаполнения (FillCheckProcessing) Синтаксис: ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>) Параметры: <Отказ> Тип: Булево. Если в теле процедуры-обработчика установить данному параметру значение Истина, то будет выполнен отказ от продолжения работы после выполнения проверки заполнения. Значение по умолчанию: Ложь. <ПроверяемыеРеквизиты> Тип: Массив. Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам. Описание: Вызывается расширением формы при необходимости проверки заполнения реквизитов в форме, при вызове стандартных команд "OK", "Да", "Повторить", "Пропустить", а также при выполнении метода ПроверитьЗаполнение. Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана. Пример: Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) // Проверим заполненность реквизита "Покупатель" Если Не ЗначениеЗаполнено(Покупатель) Тогда // Если он не заполнено, сообщим об этом пользователю Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!"; Сообщение.Поле = "Покупатель"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); // Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Поставщик" ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Покупатель")); // Так как информация в документе не консистентна, то продолжать работу дальше смысла нет Отказ = Истина; КонецЕсли; // Сообщим платформе, что мы сами обрабатываем проверку реквизита товар в табличной части Товары ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Товары.Товар")); // Обходим строки и проверяем заполнение реквизита Для Индекс = 0 по Товары.Количество()-1 Цикл Товар = Товары.Получить(Индекс); Если Не ЗначениеЗаполнено(Товары.Товар) Тогда Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "В строке " + Индекс + " не заполнено значение товара"; Сообщение.Поле = "Товары[" + Индекс + "].Товар"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
11
ladalk
09.03.16
✎
13:01
|
ПроверитьЗаполнение т.е.)
|
|||
12
aleks_default
09.03.16
✎
14:02
|
(11) нет, при проведении проверка заполнения итак выполняется
|
|||
13
drcrasher
09.03.16
✎
14:06
|
предположу, что проведение в режиме обмена данными
|
|||
14
aleks_default
09.03.16
✎
14:10
|
(11)По-нормальному нужно перетаскивать все проверки из модуля формы в модуль объекта, вот в эту самую процедуру. Ну или у реквизитов документа свойство "Проверка заполнения" выставлять в "выдавать ошибку".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |