Действие (Ввести на основании) где поймать это действие???

1. andersss 21.10.13 16:17 Сейчас в теме
В списке документов кнопка Действие -> (Ввести на основании)открывается список доков где поймать это действие??? Мне по хорошему нужно поставить условие при выборе Ввести на основании РеализацияТоваровУслуг.
Подскажите как поймать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AllexSoft 21.10.13 16:19 Сейчас в теме
(1) andersss, список доков формируется платформой автоматически изходя из того что указано к конфе на закладке "ввод на основании"
ipoloskov; +1 Ответить
5. amaksimov 21.10.13 16:23 Сейчас в теме
(1) andersss, управляемый режим или обычные формы?
Нужно, думаю, в форме документа РеализацияТоваровУслуг такое условие делать
обработчик:

Процедура ПриОткрытии(...)
Если ЭтоНовый()
... // тут код разместить
13. Puzzle1 21.10.13 17:04 Сейчас в теме
(1) andersss,
Мне по хорошему нужно поставить условие при выборе Ввести на основании РеализацияТоваровУслуг.


1) Открываете в конфигураторе документ который вводим на основании двойным щелчком. На закладке "Ввод на основании" проверяете на основании каких документов он вводится. В модуле онного документа ищите процедуру "Обработка заполнения" в ней ветками условий обозначены документы-основания по типу. Ищите тот документ, ввод на основании которого необходимо ограничить условием и там дописываете что надо.

Например: ввод реализации на основании счета, необходимо ограничить по отдельным складам. В модуле Реализации товаров и услуг в обработке заполнения ищем строку наподобие:
Если ТипЗнч(ДокументОснование) = Тип(Документ.СчетНаОплатуПокупателю) тогда ...

В этой ветке прописываем нужное условие
Если ДокументОснование.Склад = НужныйСклад тогда...


З.Ы. Код приведен навскидку, возможны синтаксические ошибки, главное уловить суть того, что требуется сделать.
4. Alex_E 2374 21.10.13 16:21 Сейчас в теме
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) в модуле документа
ASKiselev; maksa2005; SvoyakMartin; tartaletka1990; +4 Ответить
7. AllexSoft 21.10.13 16:24 Сейчас в теме
(4) Alex_E, ему надо до заполнения... тоесть он хочет отредактировать список документов для ввода на основании
6. Puzzle1 21.10.13 16:23 Сейчас в теме
Указать нужный документ на закладке "Ввод на основании" и дописать обработчик "Обработка заполнения", в котором добавить ветку проверки условия по реализации и в ней необходимые действия для заполнения.
8. andersss 21.10.13 16:27 Сейчас в теме
AllexSoft вот и я про то же как поймать событие?
10. AllexSoft 21.10.13 16:40 Сейчас в теме
(8) andersss, никак) тот список формируется платформой автоматически.. изменить его возможности нет. Можно сделать так: Убираем вообще типовой ввод на основании, добавляем свою менюшку, пишем к ней обработчики создания и заполнения документов...ну и продцедурку которая будет строить менюшку динамически при открытии формы тоже, для универсальности. В принципе кода не так много
9. andersss 21.10.13 16:31 Сейчас в теме
Процедура ОбработкаЗаполнения не открывается при нажатии на кнопку "На основании"
11. andersss 21.10.13 16:42 Сейчас в теме
А можно например поставить условие не выбирая док котрый нужен, просто что бы условие отрабатывалось при нажатии кнопки (На основании)?
12. AllexSoft 21.10.13 16:48 Сейчас в теме
(11) andersss, на типовую кнопку - нельзя, на самописную как я описал в (10) можно все что угодно
14. andersss 21.10.13 17:27 Сейчас в теме
Если Ставишь условие в доке реализация то док не заполняется но создается а как сделать так что бы он не создавался у меня вот так в Документе РеализацияТоваровУслуг
Процедура ОбработкаЗаполнения(Основание)

ТипОснования = ТипЗнч(Основание);

Если ТипОснования = Тип("ДокументСсылка.ЗаказПокупателя")
ИЛИ ТипОснования = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
//_++
Если Основание.Контрагент.Родитель=Справочники.Контрагенты.НайтиПоКоду("0000002742") Тогда
Если ПустаяСтрока(Основание.ПаспортСделки) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не указан паспорт сделки в Заказе Покупателя!!!";
Сообщение.Сообщить();
Возврат

КонецЕсли;
15. Hitchenson91 13 18.09.14 14:53 Сейчас в теме
Решение:
1) добавить реквизит булевского типа в документ

2) при обработке заполнения менять реквизит при невыполнении твоих условий
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
  Если МоёУсловиеНеВыполнено Тогда    
     ЗапретитьВвод=Истина;
  КонецЕсли;
КонецПроцедуры


Добавить условие проверки реквизита в модуль объекта в начальные события типа:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
     Отказ = Объект.ЗапретитьВвод;
КонецПроцедуры
//либо перед открытием*
16. CatNotDog 17.02.17 19:53 Сейчас в теме
Поставили подобную задачу, чтоб было два разных ввода на основании и именно в этой менюшке.
Решил таким образом:
1. Добавил в конфигурацию документ.
2. Назвал его так, как должен называться пункт меню.
3. Указал, что он вводится на основании нужного документа.
в модуле нового создаем только обработку заполнения:
Процедура ОбработкаЗаполнения(Основание)

	Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
ПараметрыФормы = Новый Структура("Основание", Основание);
//--\/--
ПараметрыФормы.Вставить("КонтрольЦен",Истина);  
//--/\--
ОткрытьФорму("Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента", ПараметрыФормы);
	КонецЕсли;

КонецПроцедуры // ОбработкаЗаполнения()
Показать


А в форме нового, чтоб она не открывалась.
// Процедура - обработчик события "ПередОткрытием" формы
//
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
//--\/--	
Отказ = Истина; 
//--/\--
КонецПроцедуры;
Показать


Ну а далее - по Вашим задачам. В моем случае, “ловил” наличие “КонтрольЦен” в переданной структуре и реализовывал уже свой алгоритм заполнения.
17. slavyan_arena 06.08.21 09:25 Сейчас в теме
Моя реализация, в УТ11.4
в документе который создается на основании

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если не значениеЗаполнено(Объект.Ссылка) тогда
		 док = документы._ЗаданиеНаПроизводство.НайтиПоРеквизиту("НомерЗаказа",объект.НомерЗаказа);
		 Если не док.Пустая() тогда
			 отказ = истина;
			 Сообщить("Задание на производство по данному документу уже существует !!!");
		 КонецЕсли;	 
	КонецЕсли;	
КонецПроцедуры
Показать
ASKiselev; user705522_constantin_h; kazakkk; +3 Ответить
18. tango 546 17.08.23 13:02 Сейчас в теме
мир проще, чем нам кажется
Прикрепленные файлы:
19. user1826630 17.08.23 15:30 Сейчас в теме
(18) Ага. А если там нет ключа "Товары"? Или есть, но ни как не коллекция?
21. Tima97 11.11.24 17:57 Сейчас в теме
(18) Спасибо, наткнулся на твое фото, помогло ) + в карму спасибо
20. tango 546 17.08.23 23:43 Сейчас в теме
(19) извини, бро, ты поставил меня в тупик
22. tango 546 11.11.24 18:00 Сейчас в теме
(21) отлично. не зря шевелил мышой. попробуйте ещё моих пирожкофф:

https://terci-spy.livejournal.com/59962.html
Оставьте свое сообщение

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