|
Просьба разобраться в передаче параметра. |
☑ |
0
kap-v-kstu
05.08.13
✎
09:27
|
Задание:
Доработать Процедуру ПроверитьТабличнуюЧастьНаДублиРБП() - Добавить в нее необязательный параметр Отказ = Ложь, и его же передавать в ОбщегоНазначения.СообщитьОбОшибке() .Эта проедура находится в модуле документа.
Процедура ПроверитьТабличнуюЧастьНаДублиРБП(Отказ = Ложь) Экспорт
ТаблицаНМА = НематериальныеАктивы.Выгрузить();
ТаблицаРБП = ТаблицаНМА.Скопировать();
ТаблицаРБП.Свернуть("РасходБудущихПериодов");
Заголовок = "По одному и тому же РБП есть несколько оборотов в Дт счета.";
Для каждого СтрокаРБП из ТаблицаРБП Цикл
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("РасходБудущихПериодов", СтрокаРБП.РасходБудущихПериодов);
НайденныеСтрокиПоРБП = ТаблицаНМА.НайтиСтроки(СтруктураОтбора);
Если НайденныеСтрокиПоРБП.Количество()>1 Тогда
СтрокаСообщения = "РБП " + "<" + "[" + СтрокаРБП.РасходБудущихПериодов.Код + "]" + СтрокаРБП.РасходБудущихПериодов + ">" + " встречается в нескольких строках №: ";
Для каждого ЭлементМассива из НайденныеСтрокиПоРБП Цикл
СтрокаСообщения = СтрокаСообщения + ЭлементМассива.НомерСтроки + "; " ;
КонецЦикла;
ОбщегоНазначения.СообщитьОбОшибке(СтрокаСообщения, Отказ = Ложь, Заголовок);
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
1
kap-v-kstu
05.08.13
✎
09:27
|
в форме документа В КоманднаяПанельНМАЗаполнитьНематериальныеАктивы() добавить вызов ПроверитьТабличнуюЧастьНаДублиРБП() и в случае ошибки - отменять выполнение процедуры
|
|
2
Cube
05.08.13
✎
09:28
|
ТЗ понятно. Сколько платишь?
|
|
3
kap-v-kstu
05.08.13
✎
09:28
|
Процедура КоманднаяПанельНМАЗаполнитьНематериальныеАктивы(Кнопка)
Если ...
ПроверитьТабличнуюЧастьНаДублиРБП();
Возврат;
КонецЕсли
.....
КонецПроцедуры
|
|
4
Ёпрст
гуру
05.08.13
✎
09:29
|
аминь
|
|
5
kap-v-kstu
05.08.13
✎
09:29
|
Как пердать в условие Если.... параметр Отказ = Истина??
|
|
6
Godofsin
05.08.13
✎
09:30
|
(4) правильно говорить "раминь!"
|
|
7
kap-v-kstu
05.08.13
✎
09:32
|
с функцией легко сделать. у меня по заданию именно с процедурой
|
|
8
Cyberhawk
05.08.13
✎
09:34
|
Отказ = Истина; ОбщегоНазначения.СообщитьОбОшибке(СтрокаСообщения, Отказ, Заголовок);
|
|
9
Сти
05.08.13
✎
09:49
|
(1) Параметры в 1С по умолчанию передаются по ссылке. То есть, меняя переменную параметра внутри процедуры, при возврате из нее переданная переменная будет иметь значение, определенное в процедуре.
ОтказВПроцедуре = Ложь; // обозвал так, чтобы как-то отличалось от параметра Отказ внутри процедуры, хотя это абсолютно неважно
ПроверитьТабличнуюЧастьНаДублиРБП(ОтказВПроцедуре);
Если ОтказВПроцедуре Тогда
// тут обработка отказа
Иначе
// а тут все нормально
КонецЕсли;
|
|
10
kap-v-kstu
05.08.13
✎
10:05
|
Сти, Огормное спасибо!!!!!!!!!!!!!!!!!!!1Получилось)
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший