Проверка заполнения до записи документа

1. user2096036 28.02.25 21:50 Сейчас в теме
На форме есть процедура ПослеВнесенияЗаказовНаСервер , которая получает номера заказов связывает с ссылкой и записывает в таблицу , нужно их проверить на заполнение цены , и выдать ошибку с теми номенклатурами , где нет заполненной цены. Я задачу сделал, но оказалось нужно это сделать до записи документа. Прошу подсказать, куда копать.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 01.03.25 07:37 Сейчас в теме
(1)
нужно это сделать до записи документа.

До записи. Перед записью. ПередЗаписью
2. miniogn 45 01.03.25 00:37 Сейчас в теме
Подойдет в событии ПриИзменении у номенклатуры
3. user2107191 01.03.25 01:23 Сейчас в теме
(2) Ну да. 20 раз меняем номенклатуру - 20 раз гоняем на сервер...
А потом - раз, и передумали записывать документ!
И сервер такой - ээээ, что это было?
5. miniogn 45 01.03.25 09:02 Сейчас в теме
(3) Он для того и нужен, сервер, что бы отдавать данные, пусть работает.
Тем более что дополнительного вызова не будет, ведь за ценой всё равно надо сходить, что бы вывести цену на форме.
6. user2107191 01.03.25 09:57 Сейчас в теме
(5) то есть и ошибку проверки заполнения выдавать каждый раз после похода на сервер?
7. miniogn 45 01.03.25 13:44 Сейчас в теме
(6) Я такого не говорил и даже не намекал. В (5) написано - после изменения номенклатуры, а не при каждом вызове сервера. Событие ПриИзменении вызывается при изменении данных в поле на форме, не в циклах обработки табличной части, если что.
8. user2107191 01.03.25 14:04 Сейчас в теме
(7) Смотри вокруг.
1. Автору нужна проверка заполненности тех или иных реквизитов. И делает он это на сервере.
2. Ты предлагаешь делать это уму ПриИзменении Номенклатуры.
3. То есть каждый раз ходить на сервер. Где я не прав?

Событие ПриИзменении вызывается при изменении данных в поле на форме
Я в курсе, именно поэтому я тебе и говорил
20 раз меняем номенклатуру - 20 раз гоняем на сервер... А потом - раз, и передумали записывать документ!


после изменения номенклатуры, а не при каждом вызове сервера.
А я где-то говорил про "при каждом"? Это ты говорил "при Изменении". То есть при каждом изменении номенклатуры, которое автоматически влечет поход на сервер. Да, при каждом серверном вызове, происходящем при изменении номенклатуры". Из твоих экзерсисов вытекает именно такой алгоритм. Твой алгоритм. Не мой.
Так устроит?
9. miniogn 45 01.03.25 15:08 Сейчас в теме
(8) Автор не просил на сервере, автор просил "до записи документа". Способ при изменении номенклатуры подходит.
Про остальное спорьте с фирмой 1С, которая так и делает, и ходит на сервер каждый раз:
&НаКлиенте
Процедура ТоварыТоварПриИзменении(Элемент)
	Стр = ПолучитьТекущуюСтрокуТовары();
	Стр.ЭтоУслуга = ЭтоУслуга(Стр.Товар);
	Стр.Цена = ПолучитьЦенуТовара(Объект.Дата, Стр.Товар, Объект.ВидЦен);
	Стр.Количество = ?(Стр.ЭтоУслуга ИЛИ Стр.Количество = 0, 1, Стр.Количество);
	Стр.Сумма = Стр.Количество * Стр.Цена;
	ЗаполнитьДополнительныеДанныеСтроки(Стр);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЦенуТовара(Дата, Товар, ВидЦен)
	ЦенаТовара = РегистрыСведений.ЦеныТоваров.ПолучитьПоследнее(
		Дата, Новый Структура("Товар, ВидЦен", Товар, ВидЦен));
	Возврат ЦенаТовара.Цена;
КонецФункции
Показать

Я всего лишь предложил сюда добавить вывод сообщения о незаполненности цены.
И почему нельзя ходить на сервер, когда именно это и нужно сделать, или при изменении морковки на капусту, будем продавать капусту по цене морковки?
NicolasCage; +1 Ответить
10. spacecraft 02.03.25 01:30 Сейчас в теме
(9) условия задания читали?
"На форме есть процедура ПослеВнесенияЗаказовНаСервер , которая получает номера заказов связывает с ссылкой и записывает в таблицу , нужно их проверить на заполнение цены , и выдать ошибку с теми номенклатурами , где нет заполненной цены. "
После изменения каждой номенклатуры будете делать глобальную проверку и "связывает с ссылкой" нового документа?

Тут явно тестовое задание на умение использования ссылки до записи самой ссылки.
11. miniogn 45 02.03.25 10:16 Сейчас в теме
(10) Возможно Вы знаете про это тестовое задание больше меня. Мне представилось, что надо переделать целиком. Вот и предложил свой вариант.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот