Молочников Олег Spb. 2011.
Стандартные доработки. Запрет изменения документов “ЗаказовПокупателей”, по которым есть движения.
Эта статья описывает процесс доработки типовых 1С конфигураций, для добавления возможности запретить редактировать документы, на основании которых другими документами уже сделаны движения в регистрах накопления. Это позволяет предотвратить часть ошибок, возникающих из-за действий пользователя задним числом.
1. В Общий модуль ”Полные права” добавьте следующую функцию:
Функция ЗаказыПокупателя_СуществуютСсылки(ЗаказПокупателя) Экспорт
Если ЗаказПокупателя =Документы.ЗаказПокупателя.ПустаяСсылка() Тогда
Возврат Ложь;
КонецЕсли;
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя);
ТипЗначения = ТипЗнч(Документы.ЗаказПокупателя.ПустаяСсылка());
Счетчик=0;
Для Каждого РегистрНакопления Из Метаданные.РегистрыНакопления Цикл
Для Каждого РеквизитРегистра Из РегистрНакопления.Измерения Цикл
Если РеквизитРегистра.Тип.СодержитТип(ТипЗначения) Тогда
Если Счетчик>0 Тогда
Запрос.Текст = Запрос.Текст + "
|ОБЪЕДИНИТЬ ВСЕ
|"
КонецЕсли;
Запрос.Текст = Запрос.Текст + "
|ВЫБРАТЬ
| ИСТИНА
|ИЗ
| РегистрНакопления." + РегистрНакопления.Имя + " КАК " + РегистрНакопления.Имя + "
|ГДЕ
| " + РегистрНакопления.Имя + "." + РеквизитРегистра.Имя + " = &ЗаказПокупателя
| И " + РегистрНакопления.Имя + ".Регистратор <> &ЗаказПокупателя
|";
Счетчик=Счетчик+1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат НЕ Запрос.Выполнить().Пустой();
КонецФункции
2. В модуль формы документа в текст функции ”ПриОткрытии()” добавьте следующие строки:
Если ПолныеПрава.ЗаказыПокупателя_СуществуютСсылки(Ссылка) Тогда
ЭтаФорма.ТолькоПросмотр=Истина;
КонецЕсли;