Hare.ru @ Коллективный разум / Hare.ru @ Дикое место

Архив hare.ru 
Мысли, конвертированные в текст

Собственные руки TM


Все статьи раздела

Как забанить помеченные на удаление.

Андрей Морев (Z1) (апрель 2002)

Предисловие

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Партнеры:


Также может быть интересно:

Канал Россия 1 на http://spbtvonline.ru/
   
 Сайт поддерживается за счет партнеров:
:::... Сайт содержит архив двух версий hare.ru Карта сайта