Гость
Форумы / [игнор отключен] [закрыт для гостей] / 1c 8.2 - запретить создание документа на основании по условию / 18 сообщений из 18, страница 1 из 1
11.05.2011, 12:39
    #37254620
dimbasbear
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1c 8.2 - запретить создание документа на основании по условию
Добрый день!

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


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


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

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

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

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

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

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

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

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

В модуле объекта Документ2 в предопределенной процедуре "ОбработкаЗаполнения".
...
Рейтинг: 0 / 0
11.05.2011, 13:07
    #37254725
dimbasbear
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1c 8.2 - запретить создание документа на основании по условию
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
11.05.2011, 13:18
    #37254761
dimbasbear
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1c 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  тогда
			
			ВызватьИсключение "Сумма < 1000, созадние на основании не возмонжо" ;
			
		Конецесли;
		
		
	КонецЕсли;
	//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
...
Рейтинг: 0 / 0
11.05.2011, 13:40
    #37254840
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1c 8.2 - запретить создание документа на основании по условию
dimbasbear, для первого раза сойдет.
...
Рейтинг: 0 / 0
11.05.2011, 13:54
    #37254899
dimbasbear
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1c 8.2 - запретить создание документа на основании по условию
Всем спасибо за ответы!
Тема закрыта! :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.08.2015, 15:41
    #39022687
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1c 8.2 - запретить создание документа на основании по условию
1c 8.2
А можно как-то красиво перехватить событие "Ввод на основании" и проверить?
Т.е. до создания документа что-то проверить, если Да (условие выполняется) - тогда создавать документ.

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

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

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


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

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

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

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

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



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


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