Редактор объектов информационной базы 8.3









Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов.
Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML.
Платформа 8.3, управляемые формы. Версия 1.1.0.37 от 14.12.2024

Работает с современными конфигурациями 1С: с запретом на использование модальности и синхронных вызовов (тонкий, толстый, web клиент).  Не зависит от конкретной конфигурации, никаких БСП.

Данная обработка реализована достаточно давно и интегрирована в такие продукты, как "Консоль запросов для управляемых форм 8.3" (СДРКонсольЗапрсовХ) и "Навигатор по конфигурации базы 1С" (СДРНавигаторУпр). Как самому обновить "Редактор объектов" в этих обработках написано здесь.

Назначение:

  • редактирование всех реквизитов объекта (в том числе стандартных)
  • редактирование табличных частей объекта (в том числе специальных, на пример "виды субконто" для счета)
  • редактирование движений документов

Основной сценарий работы

1. Выбираем объект, с которым собираемся работать (сначала выбирается тип, а затем из стандартной формы выбора сам объект). Выбор типа объекта, в отличии от мнгоих представленных здесь обработок организован более интеллектуально — типы объектов не сваливаются в одну кучу, а разбиты по категориям (справочник, документ и т.д.)

 

 Выбор типа объекта

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

Есть возможность выбрать битую ссылку (ссылку на удаленный объект), на пример: <Объект не найден> (769:b1390050568b35ac11e6e46fdd2c3861)

 

2. После выбора объекта нам доступны для редактирования как реквизиты объекта, так и его табличные части. Табличные части объекта отображаются на отдельных закладках. При записи  объекта сохраняются как реквизиты, так и табличные части.

 

 Окно редактирования реквизитов

 

 Окно редактирования табличной части

 

 Окно установки действий "ПередЗаписью"

 

3. Для объектов типа "Документ" становится доступна специальная закладка "Движения". На этой закладке можно выбрать (из предлагаемого списка) конкретный регистр, по которому документ может совершать движения, прочитать их, отредактировать и записать. Для работы с движениями документа реализованы отдельные команды: "Обновить", "Переключить активность" и "Записать".

 

 Закладка "Движения"

 

4. На закладке "Движения" расположена команда "Открыть редактор движений", по которой открывается отдельная форма для одновременной работы со всеми движениями документа.

 

 Окно редактора движеий документов

"Редактор движений" позволяет прочитать и записать как все движения документа, так и отдельные наборы записей. Флажок "Быстрый вызов сервера" влияет на скорость обновления отдельного набора записей при брльшом количестве записей во всех движениях документа. Стоит ли его использовать решайте сами, экспериментальным путем. Команда "Записать…" на панели списка движений документа, записывает те движения, у которых выставлен флажок "Записать".

Команда "Очистить движения…" очищает движения тех регистров, которые выделены в списке регистров. Команда "Загрузить движения…" позволяет выбрать документ и загрузить его движения в соответствующие регистры, открытые в редакторе движений (чтобы руками не набирать). При загрузке движений наборы записей не очищаются, к ним добавляются новые записи. Если Вы хотите очистить старые движения, то воспользуйтесь командой "Очистить движения…".

 

Важные особенности:

  • Интерфейс большинства моих обработок достаточно нагружен, поэтому в формах установлен вариант масштаба "Компактный". Если кому то это не нравится и хочестся использовать платформенную кнопку "Изменить масштаб", то надо в конфигураторе для всех форм обработок установить вариант масштаба "Авто".
  • Реализована команда "Записать как новый" — не перезаписывает объект, который редактируется, а создает новый с реквизитами, которые Вы отредактировали (движения естественно не переносятся в новый объект).
  • Реализована команда "Записать как новый с заданным UUID"
  • Есть возможность перед записью объекта или проведением документа установить различные значения в его ДополнительныеСвойства и выполнить произвольный алгоритм на языке 1С, см. закладку "Действия "ПередЗаписью""
  • На закладке "Движения" есть команда "Показать движения документа", которая отображает все регистры, по которым есть движения текущего документа
  • Реализована команда "Открыть объект" — если текушее поле (реквизит объекта, реквизит табличной части или поле записи регистра на закладке "Движения") содержит ссылку на объект, то по этой команде в новом окне откроется редактор этого объекта (откроется эта обработка с соответствующим значением "Объект ИБ")
  • Если выставить флажок "Запись в в режиме загрузки", то запись объекта и запись набора записей на закладке "Движения" будут производится в в режиме "ОбменДанными.Загрузка = истина", в этом случае все проверки обычно отключены
  • Реализована возможность поиска объекта в базе по UUID (уникальный идентификатор) и URL (навигационная ссылка 1С)
 

 Скриншот

  • Реализован функционал, позволяющий для выделенных строк заполнять значение текущей колонки таблиц Движений и Табличных частей заданными значениеми. Если установлен флажок "Обрабатывать только выделенные строки", то заполняются значения для выделенных строк, в противном случае — для всех строк таблицы
  • Реализована возможность сохранения/восстановления параметров — можно сразу открыть объект для редактирования, сохраненный в предыдущей сессии
  • Реализован функционал для выгрузки и загрузки данных через XML (можно перенести данные в другую базу или восстановить данные после неудачного редактирования). Загрузка данных производится в транзакции.

Команда "Открыть объект"

У меня сложилось впечатление, что на команду "Открыть объект" не обращают внимание (для меня она очень полезна). На представленном ниже рисунке показано, что если встать на любое поле формы, в котором содержится ссылочный объект и нажать на кнопку (или контекстное меню) "Открыть объект", то откроется новый экземпляр СДРОбъектУпр для редактирования этого объекта. Из него можно перейти к следующему и т.д.

 

 Иллюстрация работы команды "Открыть объект"

 

Действия, выполняемые при записи объекта:

  • получаем объект ( пОбъект = Ссылка.ПолучитьОбъект(); )
  • заполняем реквизиты и табличные части объекта данными из формы обработки
  • если указано, то заполняем дополнительные свойства объекта, см. закладку Действия "ПередЗаписью" ( пОбъект.ДополнительныеСвойства.Вставить(…); )
  • если указано, то выполняем алгоритм на языке 1С, см. закладку Действия "ПередЗаписью"
  • если указано, то отключаем проверки ( пОбъект.ОбменДанными.Загрузка = истина; )
  • записываем объект ( пОбъект.Записать(); )

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

  • получаем объект ( пОбъект = Ссылка.ПолучитьОбъект(); )
  • если указано, то заполняем дополнительные свойства объекта, см. закладку Действия "ПередЗаписью" ( пОбъект.ДополнительныеСвойства.Вставить(…); )
  • если указано, то выполняем алгоритм на языке 1С, см. закладку Действия "ПередЗаписью"
  • проводим документ ( пОбъект.Записать(РежимЗаписиДокумента.Проведение); )

Дополнительные движения документов (для современных типовых конфигураций)

Дополнительными движениями документа А будем называть движения, которые сделал другой документ Б, но с точки зрения логики конфигурации они относятся к документу А. Поясню на примере конфигурации ERP 2.4.

Если сформировать типовой отчет по движениям для документа РеализацияТоваровУслуг, то в отчете могут присутствовать движения по регистрам накопления РасчетыСКлиентамиПланОплат, РасчетыСКлиентамиПоСрокам, РасчетыСКлиентамиПланОтгрузок. Но для этих регистров документ РеализацияТоваровУслуг не является регистратором и эти движения сделал совсем другой документ, а именно — Документ.РегистраторРасчетов. Типовой отчет показывает эти движения для документа РеализацияТоваровУслуг на основании значения реквизита "ДокументРегистратор" в записях регистров.

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

 

Для пользователей обработок "Консоль запросов для управляемых форм 8.3" и "Навигатор по конфигурации базы 1С"

Редактор объектов встроен в эти обработки. Если у вас есть более новая версия редактора, то вы можете самостоятельно встроить ее. Для этого необходимо открыть обработки в конфигураторе и заменить формы "ФормаОбъекта", "ФормаВыбораОбъекта", "ФормаРедакторДвижений", "ФормаСпискаОбъектов" этих обработок на соответствующие формы из обработки СДРОбъектУпр, используя Copy-Paste. Операция займет меньше минуты.

Кому это нужно

  • программистам — для отладки и исследования механизмов конфигурации
  • грамотным пользователям — для обхода ошибок и недоработок в используемых конфигурациях 1С, для обработки особых случаев, которые невозможно реализовать типовыми механизмами конфигурации

Тестирование

  • Платформа (8.3.10.2580, 8.3.13.1513) , на платформах ниже 8.3.6 работать не будет
  • 1С:ERP Управление предприятием 2 (2.4.10.56)
  • Управление холдингом, редакция 3.0 (3.0.3.17)
 

 Версия 1.1.0.15 от 25.01.2024

 

 Версия 1.1.0.16 от 31.01.2024

 

 Версия 1.1.0.17 от 02.02.2024

 

 Версия 1.1.0.21 от 17.02.2024

 

 Версия 1.1.0.23 от 23.02.2024

 

 Версия 1.1.0.25 от 06.04.2024

 

 Версия 1.1.0.27 от 21.04.2024

 

 Версия 1.1.0.29 от 27.08.2024

 

 Версия 1.1.0.31 от 02.10.2024

 

 Версия 1.1.0.33 от 19.11.2024

 

 Версия 1.1.0.35 от 25.11.2024

  • добавлена возможность выбрать битую ссылку (ссылку на удаленный объект)
  • добавлена возможность заполнить реквизиты объекта по образцу (из другого объекта такого же типа)
  • добавлена возможность сохранить объект как новый с указанным уникальным идентификатором (UUID)
 

 Версия 1.1.0.37 от 14.12.2024

  • добавлен функционал для работы с уникальными идентификаторами (можно задавать значения в реквизитах объекта, реквизитах табличных частей, полях регистров движений)

 

ВАЖНО

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

28 Comments

  1. Vladimir Litvinenko

    Рассмотрите в качестве идей для развития:

    1) Чтение и запись всех движений документа сразу. Каждый набор записей при этом можно разместить на отдельной вкладке внутри страницы «Движения». Часто движения взаимосвязаны и лучше их отредактировать согласованно и только затем записать.

    2) Часто требуется скопировать какое-то значение, пройтись по движениям и вставить его. В тех редакторах, которыми до сих пор пользовался, не было такой функции. Было бы хорошо её увидеть здесь. Частным случаем можно считать изменение периода для всех записей регистров.

    3) Отличная возможность найти по GUID. В ряде редакторов также еще возможность получить объект по навигационной ссылке, полученной штатными средствами из формы объекта. Это проще, чем вытаскивать из ссылки GIUID. Хотелось бы увидеть такую возможность и в этом редакторе.

    Reply
  2. ROL32

    (1) Спасибо,

    по 2) и 3) согласен — будет полезно

    по 1) — рассматривал такой вариант, но посчитал очень громоздким, в отличии от табличных частей, регистров которые двигаются документом, может быть очень много — мне лично так не удобно

    Reply
  3. Vladimir Litvinenko
    Reply
  4. ROL32

    (3) Идею понял, подумаю

    Reply
  5. markers

    (0) Я правильно понял, что без «Запись в в режиме загрузки», объект записывается как обычно (надеюсь)? И ещё, не могли бы вы добавить возможность добавления дополнительных свойств объекта? Например:

    Объект.ДополнительныеСвойства.Вставить(«ЗагрузкаДанныхИзРабочегоМеста», Истина);

    Дело в том, что иногда нужно записать как обычно (не в режиме загрузки), но надо отключить/включить какие-то проверки, которые реагируют на эти самые дополнительные свойства? В качестве примера, тот же ЧекККМ в Рознице, который если проведен, не дает с собой ничего делать, пока не передашь свойство показанное в примере или не включишь режим загрузки (что в некоторых ситуациях — вредно).

    Заранее спасибо!

    PS: Обработку не скачивал, возможно там такой функционал уже есть, но о нем не написано.

    Reply
  6. ROL32

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

    Возможность установки ДополнительныхСвойств добавлю в следующей версии

    Reply
  7. neuromancer_aza

    {ВнешняяОбработка.СДРОбъектУпр.Форма.ФормаОбъекта.Форма(630)}: Значение не является значением объектного типа (СортироватьПоЗначению)

    Список.СортироватьПоЗначению();

    На некторых документах такая ошибка выходит

    Reply
  8. ROL32

    (7) моя ошибка — возникает у документов, которые не двигают регистры

    исправление: в модуле формы передвиньте строку 630 на строчку выше

    Reply
  9. ROL32

    (3) Версия 1.1.0.17 включает «Редактор движений» документов — отдельная форма, позволяющяя в отдельном окне одновременно работать со всеми движениями документа

    Reply
  10. leosoft

    Интересная разработка, спасибо! Подскажите, пожалуйста, где можно корректно увеличить шрифт у Ваших табличных частей?

    Reply
  11. ROL32

    (10) Спасибо, к сожалению только в конфигураторе — у нужных форм поставить требуемое значение для свойства «Вариант масштаба». Сейчас там стоит «Компактный»

    Reply
  12. leosoft

    (11) Спасибо, поправил — все отлично + заработала стандартная кнопка «Изменить масштаб»

    Reply
  13. Vladimir Litvinenko

    (9) Отлично! Спасибо за полезное обновление.

    Reply
  14. ROL32

    (12)Думаю Вам понравится вот эта обработка СДРНавигаторУпр — для меня она более полезна, тем более что СДРОбъектУпр в нее встроен

    Reply
  15. leosoft

    (14) Да, я видел ее, спасибо. Пока скачал еще Вашу консоль запросов. Тоже интересно.

    Reply
  16. EvgenURNN

    прямо как мой менеджер данных)))

    Reply
  17. ROL32

    (16) Это хорошо или плохо?

    Хотя мне показалось, что не очень похож

    Reply
  18. EvgenURNN

    (17) предназначение очень близкое

    не вижу в этом ничего плохого

    Reply
  19. ROL32

    (18) я тоже не вижу, спасибо

    кстати, у нас рейтинг тоже похож)))

    Reply
  20. Трактор

    Автор потратил много времени. Хорошо получилось.

    Reply
  21. ROL32

    (20) Спасибо

    Reply
  22. timeforlive

    Офигительная обработка. Много всего полезного в ней, но в ней НЕТ выгрузки и загрузки массива документов за период.

    На основе функционала автора доработал обработку.

    Важно, выгрузка по XML только между одинаковыми базами, потому что сопоставление по UID (ref).

    Ошибок в работе обработки не найдено.

    Рекомендую к скачиванию.

    Reply
  23. ROL32

    (22) Спасибо

    Выгрузку и загрузку делал в Консоли запросов для управляемых форм — там можно гибко подобрать объекты для выгрузки через запрос

    Reply
  24. timeforlive

    (23) я не стал лезть дальше ОписанияОповещения и назначил на клиенте свои оповещения для обхода выборки.

    в цикле создается файл xml.

    Диалог поменял на выбор каталога.

    Добавил создание имени файла по типу документа, номеру и даты.

    Добавил пару полей с датой и отбором по организации 🙂

    Загрузка также по каталогу 🙂

    Руководство как раз вчера поставили задачу обмен сделать между двумя КА1, выгрузить весь 2019 год.

    Reply
  25. timeforlive

    Автор, а ты можешь добавить для справочников такую функцию, как у документов — возможность редактировать «движения» по регистрам сведений?

    Полагаю, что у документов регистры показаны исходя из свойств метаданных — Движения по регистрам, поэтому для справочников такой же метод не применить.

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

    Reply
  26. ROL32

    (25) Вряд ли буду это делать.

    С моей точки зрения это красивый прибамбас, который в большинстве случаев особого практического смысла не имеет.

    Другое дело — отдельный редактор независимых регистров сведений.

    Reply
  27. timeforlive

    (26) Ну не знаю. Кому и примбамбас, а кому жизнь спасает =)

    Но без него, тоже жить можно: консоль запросов + ручная правка регистров.

    Reply
  28. ROL32

    (27) Возможно я неудачно сформулировал, попробую еще раз:

    1. Универсальный редактор независимых регистров сведений — это нужная вещь, но он к редактору объектов не имеет отношения

    2. Поиск записей регистров, где фигурирует конкретный элемент справочника (или другого объекта метаданных) напоминает «Поиск ссылок на объекты». Не вижу смысла прикручивать этот функционал к редактору объектов.

    Reply

Leave a Comment

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