powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1c 8.2 - запретить создание документа на основании по условию
18 сообщений из 18, страница 1 из 1
1c 8.2 - запретить создание документа на основании по условию
    #37254620
dimbasbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Нужно чтобы если сумма документа > 1000 была возможность создавать документ на основании


Подскажите как в документе отключить возможность создавать на основании. Вот что у меня получилось:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Процедура ТоварыПриИзменении(Элемент)

		СуммаДокумента = Объект.Товары.Итог("Сумма");
		
		Если СуммаДокумента < 1000  тогда
			
			
		Иначе
			
			
		Конецесли;
Заранее спасибо!

КонецПроцедуры
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254654
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimbasbear, анализировать сумму документа - основания в процедуре "ОбработкаЗаполнения" и, если сумма меньше 1000, вызывать исключение.
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254675
Sinoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DmitriyZdimbasbear, анализировать сумму документа - основания в процедуре "ОбработкаЗаполнения" и, если сумма меньше 1000, вызывать исключение.

+1
Ищем или создаем в модуле документа процедуру "ОбработкаЗаполнения(Основание,СтандартнаяОбработка)"

В ней следующий код:
Код: plaintext
1.
2.
3.
4.
5.
                СуммаДокумента = Основание.Товары.Итог("Сумма");
		
		Если СуммаДокумента < 1000  тогда
			СтандартнаяОбработка = Ложь;
                        Возврат;
		Конецесли;
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254686
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sinoptic, это не совсем верно, установка в Ложь СтандартнойОбработки (это только для 8.2, кстати) не отменяет действие. Форма все равно будет открыта. Так что ВызватьИсключение().
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254693
dimbasbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уточните пожалуйста где что прописать

Документ1 - документ основание
Документ2 - документ который вводится на основании Документа1
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254708
Sinoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimbasbear,

В документ2
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254711
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimbasbearуточните пожалуйста где что прописать

Документ1 - документ основание
Документ2 - документ который вводится на основании Документа1

В модуле объекта Документ2 в предопределенной процедуре "ОбработкаЗаполнения".
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254725
dimbasbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DmitriyZSinoptic, это не совсем верно, установка в Ложь СтандартнойОбработки (это только для 8.2, кстати) не отменяет действие. Форма все равно будет открыта. Так что ВызватьИсключение().

Добавил, форма действительно открыта остается. Подскажиет как использовать ВызватьИсключение() ???

У меня сейчас вот такая процедура получилась:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	

	
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПродажаТоваров") Тогда
		// Заполнение шапки
		КонтактноеЛицо = ДанныеЗаполнения.КонтактноеЛицо;
		Покупатель = ДанныеЗаполнения.Покупатель;
		Телефон = ДанныеЗаполнения.Телефон;
		СуммаДокумента = ДанныеЗаполнения.Товары.Итог("Сумма");
		сообщить (СуммаДокумента);
		
		Если СуммаДокумента < 1000  тогда
			СтандартнаяОбработка = Ложь;
                        Возврат;
		Конецесли;
		
		
	КонецЕсли;
	//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254761
dimbasbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Результат получен, вот код обработки, насколько правильно сделал?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	
	
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПродажаТоваров") Тогда
		// Заполнение шапки
		КонтактноеЛицо = ДанныеЗаполнения.КонтактноеЛицо;
		Покупатель = ДанныеЗаполнения.Покупатель;
		Телефон = ДанныеЗаполнения.Телефон;
		СуммаДокумента = ДанныеЗаполнения.Товары.Итог("Сумма");
		
		Если СуммаДокумента < 1000  тогда
			
			ВызватьИсключение "Сумма < 1000, созадние на основании не возмонжо" ;
			
		Конецесли;
		
		
	КонецЕсли;
	//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254840
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimbasbear, для первого раза сойдет.
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #37254899
dimbasbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы!
Тема закрыта! :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
1c 8.2 - запретить создание документа на основании по условию
    #39022687
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1c 8.2
А можно как-то красиво перехватить событие "Ввод на основании" и проверить?
Т.е. до создания документа что-то проверить, если Да (условие выполняется) - тогда создавать документ.

ВызватьИсключение - это как-то не красиво.
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #39022694
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно дальше при создании на сервере перехватить . А можешь подписку сделать на ввод на основании.
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #39022712
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сМожно дальше при создании на сервере перехватить . А можешь подписку сделать на ввод на основании.
В подписке нет у документа ввода на основании.
"Можно дальше при создании на сервере перехватить" - это как, можно фрагмент кода?
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #39022801
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Отказ = Истина;

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Спасибо что пытались создать документ!";
Сообщение.Сообщить();


КонецПроцедуры
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #39022830
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ,

Спасибо, так и сделаю.
...
Рейтинг: 0 / 0
1c 8.2 - запретить создание документа на основании по условию
    #39022960
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trew[В подписке нет у документа ввода на основании.В подписке есть событие обработка заполнения.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
1c 8.2 - запретить создание документа на основании по условию
    #39682389
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitriyZТак что ВызватьИсключение().ВызатьИсключение покажет системное окно с ошибкой и с кнопкой "подробнее", откуда открыть конфигуратор.
Довольно топорно.

Для УФ уже написали, оставлю себе заметку на память:

в ДополнительныеСвойства добавить новый параметр и его потом проверять перед открытием. пример:

Модуль объекта:
Код: sql
1.
2.
3.
4.
5.
Процедура ОбработкаЗаполнения
...
ДополнителдьныеПараметры.Вставить("ТекстОшибкиЗаполнения", "А тут можно описать текстовое пояснение ошибки");
...
КонецПроцедуры



Модуль формы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Процедура ПередОткрытием
...
ТекстОшибкиЗаполнения = Неопределено;
ДополнительныеСвойства.Значение("ТекстОшибкиЗаполнения", ТекстОшибкиЗаполнения);
Если ЗначениеЗаполнено(ТекстОшибкиЗаполнения) Тогда
    ОбщегоНазначения.СообщитьОбОшибке(ТекстОшибкиЗаполнения, Отказ);
КонецЕсли
...
КонецПроцедуры
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1c 8.2 - запретить создание документа на основании по условию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]