1С Режим Конфигуратор

       

Вызывается при создании интерактивном создании




ВводНового(ПризнакКопирования, ОбъектКопирования)


Вызывается при создании интерактивном создании нового документа пользователем. Процедура обычно содержит предустановки значений некоторых реквизитов при создании нового документа или операторы управления видом экранной формы. ПризнакКопирования - имя переменной, которую система установит в "0", если введен просто новый документ, и в "1", если документ скопирован (через F9, например). При этом в Переменную ОбъектКопирования будет передан объект, с которого скопировали. Копирование не следует путать с вводом на основании.
Процедура ВводНового(Копирование)
Если ИмяПользователя() <> "Бухгалтер" Тогда
Предупреждение("Вам не позволено создавать этот документ!");
СтатусВозврата(0); Возврат; //Новый документ не будет создан
КонецЕсли;
Если Копирование = 1 Тогда
Возврат;


КонецЕсли;
КонецПроцедуры




ВводНаОсновании(Основание)


Выполняется при вводе нового документа на основании другого. В переменную Основание передается контекст документа-основания, т.е. теперь вы можете обратиться к его реквизитам через эту переменную:
СуммаДоплаты=Основание.СуммаСверху; //Свой реквизит принимает значение реквизита документа-основания.
Помните, что после обработки этой процедуры система не сохранит информацию о том, что новый документ введен на основании другого. Для реализации такой возможности вы должны иметь во вновь создаваемом документе реквизит типа "Документ", куда можно записать ссылку на документ-основание. Лучше сделать её доступной пользователю, чтобы он потом имел возможность выбрать другой документ-основание.




ПриЗаписи()


Выполняется при записи (перезаписи) документа. Имейте ввиду, что операторы этой процедуры выполняются ДО фактической записи документа в базу. Это, так сказать, подготовительная работа.




ПриВводеСтроки()


Вызывается при вводе пользователем новой стоки многострочной части документа. Такой операцией, например, можно отменить ввод новых строк, если в документе нельзя вводить строки вручную (можно добавить какое-либо условие):


Процедура ПриВводеСтроки()

.......СтатусВозврата(0);

КонецПроцедуры




ПриНачалеРедактированияСтроки()


Обрабатывает начало изменения существующей (!) строки ( когда пользователь ручками вводит или изменяет значения реквизитов табличной части). Исходя из примера, описанного выше для процедуры ПриВводеСтроки(), догадайтесь, как можно запретить редактирование стоки?




ПриРедактированииНовойСтроки()


Похожая на предыдущую, но с тем отличием, что вызывается только при редактировании ВНОВЬ созданной строки.




ПриОкончанииРедактированияСтроки (ФлагНовойСтроки)


ФлагНовойСтроки - имя переменной, в которую будет записана 1, если окончен ввод НОВОЙ строки, соответственно - 0, если закончено редактирование ИМЕВШЕЙСЯ. Процедура вызывается, когда пользователь "дезактивирует" строку мышкой, нажатием Enter, или Esc (кроме случая, когда отказываются от редактирования новой строки).




ПриУдаленииСтроки()


Действие, которое будет обработано данной процедурой, очевидно исходя из имени процедуры. Что еще добавить?




ПриИзмененииПорядкаСтрок (ФлагДействия)


ФлагДействия - имя переменной, которая станет "-1", если строка поднимается вверх, станет "1" при перемещении строки вниз, и станет "0", если изменяются номера строк, например, при сортировке. А что при этом сделать - это уже ваша фантазия (моей не хватает :).


Не забывайте о том, что имеются предопределенные процедуры, общие для любых форм системы 1С, такие как ПриОткрытии(), ПриЗакрытии() и т.д. Их подробное описание здесь не приводится, дабы не перегружать главу о документах.

Содержание раздела