Главная » Статьи » "1С" Предприятие

Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!

Через минуту Вы получите "Гостевой доступ"




Как забанить помеченные на удаление.
Андрей Морев (Z1)   апрель 2002
Предисловие

Надеюсь, данная статья поможет многим значительно улучшить свои конфирурации незначительными усилиями.

Постановка задачи

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

Например, если товар помечен на удаление, то его уже нельзя ни продавать, ни принимать. А отчет по остаткам этого товара сформировать можно.

При решении этой задачи исходили из следующих принципов:

  1. Сделать за короткие сроки
  2. Должны работать без изменений любые внешние отчеты, обработки
  3. Решение должно без особых проблем встраиваться в другие конфирурации
Решение

Один из способов решения задачи: написать для выбора элементов в документах свои формы и именно в этих формах запрещать/разрешать выбор элементов, помеченных на удаление. Этот путь не подошел, поскольку формы справочников были очень сложные пришлось бы их полностью продублировать, и в дальнейшем любое изменение в форме справочников вносить в несколько мест.

Вместо этого было сделано следующее.

Во все формы документов была вставлен следующий код

Процедура ОбработкаВыбораЗначения(ВыбЗнач,Идент,Флаг)
   Если ПустоеЗначение(ВыбЗнач) = 1 Тогда
      return;
   КонецЕсли;
   Если ТипЗначенияСтр( ВыбЗнач) <> "Справочник" Тогда
      Возврат;
   КонецЕсли;
   Если ВыбЗнач.ПометкаУдаления() = 1 Тогда
      Предупреждение("НИЗЯ!");
      Флаг = 0;
   КонецЕсли;
КонецПроцедуры

Также в документы, где используется подбор, добавили аналогичный код:

Процедура ОбработкаПодбора (ВыбЗнач)
   Если ТипЗначенияСтр(ВыбЗнач) = "Справочник" Тогда
      Если ВыбЗнач.Выбран() = 1 Тогда
         Если ВыбЗнач.ПометкаУдаления() = 1 Тогда
            Предупреждение("НИЗЯ!");
            Возврат;
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;

   // далее текст подбора

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

Таким образом поставленная задача была решена.

Дальнейшие усовершенствования

Каждый для себя сам сможет что-либо улучшить. Можно, например, разграничить право выбора по пользователям, по видам документов , по видам справочников. Можно разработать другие критерии "плохих элементов".

Замечания, пожелания, предложения можно высказать автору по электронной почте.

Категория: "1С" Предприятие | Добавил: c1 (2009 Январь 09)
Просмотров: 1017 | Теги: Как забанить помеченные на удаление | Рейтинг: 0.0/0

Выразить благодарность - Поделиться с друзьями!

 

Здесь все о технической стороне 1С!

 

Узнай, как правильно администрировать 1С Предприятие
Регистрируйся на бесплатный 7-ми дневный курс сейчас:

Ваш E-Mail в безопасности



Всего комментариев: 0
avatar