diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" index 7c02eca..06de0aa 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" @@ -1,10 +1,15 @@ #Использовать asserts +Перем _ОтключитьВсеНапильники; Перем _ПрименятьТолькоНапильники; Перем _НеПрименятьНапильники; Функция НапильникПрименяется(ИмяНапильника) Экспорт + Если _ОтключитьВсеНапильники Тогда + Возврат Ложь; + КонецЕсли; + Если _ПрименятьТолькоНапильники.Количество() > 0 Тогда Возврат _ПрименятьТолькоНапильники.Найти(ИмяНапильника) <> Неопределено; Иначе @@ -15,6 +20,7 @@ &Аннотация("ОсобоеОбращение") Процедура ПриСозданииОбъекта( + ОтключитьВсеНапильники = Ложь, &Повторяемый ПрименятьТолькоНапильник = Неопределено, &Повторяемый НеПрименятьНапильник = Неопределено ) @@ -29,10 +35,19 @@ .ИмеетТип("Строка"); КонецЦикла; + Если ОтключитьВсеНапильники И ПрименятьТолькоНапильник.Количество() > 0 Тогда + ВызватьИсключение "Нельзя одновременно отключать все напильники и задавать ограничения ""только"""; + КонецЕсли; + + Если ОтключитьВсеНапильники И НеПрименятьНапильник.Количество() > 0 Тогда + ВызватьИсключение "Нельзя одновременно отключать все напильники и задавать ограничения ""не"""; + КонецЕсли; + Если ПрименятьТолькоНапильник.Количество() > 0 И НеПрименятьНапильник.Количество() > 0 Тогда ВызватьИсключение "Нельзя одновременно задавать ограничения ""только"" и ""не"""; КонецЕсли; + _ОтключитьВсеНапильники = ОтключитьВсеНапильники; _ПрименятьТолькоНапильники = ПрименятьТолькоНапильник; _НеПрименятьНапильники = НеПрименятьНапильник; diff --git "a/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" "b/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" index bf5cd2c..e711c94 100644 --- "a/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" +++ "b/tests/\320\237\320\276\320\264\320\265\320\273\320\272\320\260.os" @@ -920,3 +920,21 @@ .Равно(Неопределено); КонецПроцедуры + +&Тест +Процедура ОтключениеНапильниковНаЖелудеРаботает() Экспорт + + // Дано + Поделка = Новый Поделка; + Поделка.ЗапуститьПриложение(); + + // Когда + Желудь = Поделка.НайтиЖелудь("ЖелудьСОтключеннымиНапильниками"); + + // Тогда + Ожидаем.Что(Желудь.ЖелудьНижнегоУровня, "Желудь не должен внедриться в поле") + .Равно(Неопределено); + Ожидаем.Что(Желудь.ВторойЖелудьНижнегоУровня, "Желудь не должен инициализироваться в методе ФинальныйШтрих") + .Равно(Неопределено); + +КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272\320\260\320\274\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272\320\260\320\274\320\270.os" new file mode 100644 index 0000000..859e499 --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\201\321\213/\320\226\320\265\320\273\321\203\320\264\321\214\320\241\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272\320\260\320\274\320\270.os" @@ -0,0 +1,20 @@ +// BSLLS:MissingVariablesDescription-off +// BSLLS:ExportVariables-off + +&Пластилин +Перем ЖелудьНижнегоУровня Экспорт; + +Перем ВторойЖелудьНижнегоУровня Экспорт; + +&ФинальныйШтрих +Процедура Инит() Экспорт + ВторойЖелудьНижнегоУровня = ЖелудьНижнегоУровня; +КонецПроцедуры + +&Желудь +&ОсобоеОбращение( + ОтключитьВсеНапильники = Истина +) +Процедура ПриСозданииОбъекта() + +КонецПроцедуры \ No newline at end of file