Универсальный редактор справочника

Иногда кое-что в справочнике хочется подправить ручками…

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

Данный инструмент позволяет:

— править любые реквизиты (и их историю) любых справочников;

— распечатывать содержимое и карту ссылок;

— просматривать и править подчиненные элементы;

— если для ввода поля в стандартной форме используется специальная обработка (как, например, для ввода адреса), ее можно описать и вызывать отдельной кнопкой.

Для удобства работы реквизиты имеют пометку изменения. Закрывание формы производится отдельной кнопкой «выход».

6 Comments

  1. warenic

    Видимо, вопросов ни у кого не возникло.

    Тогда расскажу как работает вызов стандартной формы ввода адреса (для ЗиК аналогично работает ввод документа, удостоверяющего личность).

    На вкладке «настройки» ставим галочку Использовать обработку («мастер ввода значений») и в поле вводим ее наименование



    теперь нам стала доступна кнопка вызова мастера



    При нажатии не нее откроется указанная нами форма и текущее значение будет передано в нее в качестве параметра.

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

    Reply
  2. dicwork

    А нет ли в этом редакторе возможности групповой обработки, например замена, в каком-то реквизите одного значения на другое?

    Reply
  3. warenic

    (2) dicwork,

    А нет ли в этом редакторе возможности групповой обработки, например замена, в каком-то реквизите одного значения на другое?

    В смысле для нескольких элементов установить однотипные значения?

    Если элементов не много, то можно поступить так:

    Вот ЭТОЙ обработкой открой нужный справочник.



    Кликаем на нужный — открывается этот редактор (обработка и редактор должны быть в одном каталоге).

    При редактировании значения (чтоб его каждый раз не искать), запиши в файл (я обычно пишу в «_Data», так найти проще) и из этого файла потом читай.



    Если нужно обработать много элементов. то можно воспользоваться редактором списков

    Сперва нужно отобрать в список нужные элементы, перебором или запросом типа такого



    новое значение выбрать в доп.реквизит («Значение» внизу на форме), отметить (если нужно обработать не все) нужные, а потом пробежаться по списку:

    Спр = СоздатьОбъект(«Справочник.Такой-то»);
    Для Ном = 1 по Данные.РазмерСписка() цикл
    Что=Данные.ПолучитьЗначение(Ном); // очередной элемент
    Если Данные.Пометка(Ном)=0 тогда
    Продолжить; // пропустим неотмеченный
    КонецЕсли;
    Спр.НайтиЭлемент(Что);
    Спр.НуэныйРеквизит=ДопЗначение; // Владелец — аналогично
    Спр.Записать();
    КонецЦикла;
    

    Показать

    Reply
  4. Twirus

    Спасибо, пригодилась.

    Reply
  5. dicwork

    А какой внутренний смысл заложен в том, что выходить нужно только кнопкой «Выход». Бывает немного неудобно, если открыто несколько таких обработок (например универсальный редактор документов и универсальный редактор справочников) и еще какие-то окна, а затем нужно закрыть польностью 1С. Выводится сообщение, сто из универсальных обработок, нужно выходить по кнопке «Выход» и приходится отдельно выходить из этих обработок, а потом только закрывать 1С.

    Reply
  6. warenic

    (5) dicwork,

    А какой внутренний смысл заложен в том, что выходить нужно только кнопкой «Выход».

    Смысл вот в чем. Допустим, редактируется какой-нибудь объект. Работа муторная и долгая. В какой-то момент мы открываем очередную форму для выбора, понимаем, что это не то и жмем «Esc». Если в этот самый момент что-то «переклинит» (не важно что: комп тормознет, отвлечет кто-то) и система считает несколько нажатий, то результат Вашей работы не будет утерян. Закроется все, кроме окна редактора. Не устраивает — закомментируйте в ПриЗакрытии(), код открытый 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *