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

Публикация № 983887

Программирование - Инструментарий

универсальный редактор реквизиты табличные части движения объектов движений

27
Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов, табличных частей и движений объектов информационной базы. Платформа 8.3, управляемые формы. Версия 1.1.0.27 от 21.04.2019 (обновление для версий 1.1.0.17 и старше 1 sm)

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

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

Для пользователей данной обработки (версия 1.1.0.017 и старше) буду выкладывать обновления по минимально возможной цене. Как применить обновление описано здесь.

Назначение:

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

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

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

 

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

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

 

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

 

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

 

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

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

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

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

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

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

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

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

 

Для пользователей обработок СДРНавигаторУпр и СДРКонсольЗапросовХ

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

Как применить обновление.

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

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

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

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

  • Платформа (8.3.10.2580, 8.3.13.1513) , на платформах ниже 8.3.6 работать не будет
  • 1С:ERP Управление предприятием 2 (2.4.6.85)
  • Управление холдингом, редакция 3.0 (3.0.3.17)
 
 Версия 1.1.0.15 от 25.01.2019
 
 Версия 1.1.0.16 от 31.01.2019
 
 Версия 1.1.0.17 от 02.02.2019
 
 Версия 1.1.0.21 от 17.02.2019
 
 Версия 1.1.0.23 от 23.02.2019
 
 Версия 1.1.0.25 от 06.04.2019
 
 Версия 1.1.0.27 от 21.04.2019
  •  реализован функционал для выгрузки и загрузки данных через XML

 

ВАЖНО

 

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

27

Скачать файлы

Наименование Файл Версия Размер
СДРОбъектУпр - Редактор объектов информационной базы 8.3
.epf 59,29Kb
22.01.19
80
.epf 1.1.0.27 59,29Kb 80 Скачать
Редактор объектов информационной базы 8.3 (обновление для версий 1.1.0.17 и старше)
.epf 45,79Kb
17.02.19
4
.epf 1.1.0.27 45,79Kb 4 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Vladimir Litvinenko 1669 23.01.19 14:36 Сейчас в теме
Рассмотрите в качестве идей для развития:

1) Чтение и запись всех движений документа сразу. Каждый набор записей при этом можно разместить на отдельной вкладке внутри страницы "Движения". Часто движения взаимосвязаны и лучше их отредактировать согласованно и только затем записать.
2) Часто требуется скопировать какое-то значение, пройтись по движениям и вставить его. В тех редакторах, которыми до сих пор пользовался, не было такой функции. Было бы хорошо её увидеть здесь. Частным случаем можно считать изменение периода для всех записей регистров.
3) Отличная возможность найти по GUID. В ряде редакторов также еще возможность получить объект по навигационной ссылке, полученной штатными средствами из формы объекта. Это проще, чем вытаскивать из ссылки GIUID. Хотелось бы увидеть такую возможность и в этом редакторе.
2. ROL32 106 23.01.19 18:06 Сейчас в теме
(1) Спасибо,
по 2) и 3) согласен - будет полезно
по 1) - рассматривал такой вариант, но посчитал очень громоздким, в отличии от табличных частей, регистров которые двигаются документом, может быть очень много - мне лично так не удобно
3. Vladimir Litvinenko 1669 23.01.19 18:40 Сейчас в теме
(2)
рассматривал такой вариант, но посчитал очень громоздким, в отличии от табличных частей, регистров которые двигаются документом, может быть очень много - мне лично так не удобно

Тогда может быть рассмотрите возможность выбирать не один регистр а список регистров для отображения? Это было бы крайне полезно.

Сейчас пользуюсь универсальным редактором как на скриншоте.


Он имеет возможность отображать только заполненные движения, а при необходимости переключиться к редактированию всех движений. Да, бывает неудобно работать с большим количеством вкладок. Было бы удобнее иметь возможность выбора, какие движения отображать.Также есть команда записи всех движений за раз.

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

Переход по навигационной ссылке добавлял в неё из другой обработки. Код простой и можно даже обойтись без COM-объекта, чтобы не нарушать универсальность редактора объектов :

&НаКлиенте
Процедура ВставитьИзНавигационнойСсылки(Команда)
	
	// сначала попробуем вставить из буфера обмена, так как наиболее вероятно ссылка уже скопирована в него
	СсылкаВставленаИзБуфераОбмена = Ложь;
	ОбъектХТМЛ = Новый COMОбъект("htmlfile");
	ТекстИзБуфера = ОбъектХТМЛ.ParentWindow.ClipboardData.Getdata("Text");
		
	Если Не ПустаяСтрока(ТекстИзБуфера) Тогда
		Попытка
			СсылкаИзБуфера = ПолучитьСсылкуИзТекста(ТекстИзБуфера);
			УстановитьИПрочитатьОбъект( СсылкаИзБуфера );
			СсылкаВставленаИзБуфераОбмена = Истина;
		Исключение			
		КонецПопытки; 
	КонецЕсли; 
		
	Если НЕ СсылкаВставленаИзБуфераОбмена Тогда
		ПоказатьВводСтроки(Новый ОписаниеОповещения("ВставитьИзНавигационнойСсылки_ОбработкаВводаСтроки", ЭтаФорма), "", "Укажите навигационную ссылку");
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте 
Процедура ВставитьИзНавигационнойСсылки_ОбработкаВводаСтроки(Результат, ДополнительныеПараметры) Экспорт
	Если Результат <> Неопределено Тогда
		Попытка
			СсылкаИзБуфера = ПолучитьСсылкуИзТекста(Результат);
			УстановитьИПрочитатьОбъект( СсылкаИзБуфера );
		Исключение			
			ПоказатьПредупреждение(,"Не удалось получить ссылку на объект из навигационной ссылки, убедитесь что она задана правильно");
		КонецПопытки; 		
	КонецЕсли;
КонецПроцедуры



&НаКлиенте
Функция ПолучитьСсылкуИзТекста(СсылкаТекст)	
	
	Результат			= Неопределено;
	ПерваяТочка			= Найти(СсылкаТекст, "e1cib/data/");
	ВтораяТочка			= Найти(СсылкаТекст, "?ref=");
	ПредставлениеТипа   = Сред(СсылкаТекст, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
	Если ПустаяСтрока(ПредставлениеТипа) Тогда
		Результат = Неопределено;
	Иначе
		Результат		= ПолучитьСсылкуИзНавигационнойСсылкиЭлементаСервер(ПредставлениеТипа, СсылкаТекст, ВтораяТочка);
	КонецЕсли; 	
	
	Возврат Результат	
	
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьСсылкуИзНавигационнойСсылкиЭлементаСервер(ПредставлениеТипа, ТекстИзБуфера, ВтораяТочка)
	ШаблонЗначения	= ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
	ЗначениеСсылки	= СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(ТекстИзБуфера, ВтораяТочка + 5));			
	Результат		= ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
	Возврат Результат;
КонецФункции

Показать
4. ROL32 106 23.01.19 21:23 Сейчас в теме
9. ROL32 106 03.02.19 10:07 Сейчас в теме
(3) Версия 1.1.0.17 включает "Редактор движений" документов - отдельная форма, позволяющяя в отдельном окне одновременно работать со всеми движениями документа
13. Vladimir Litvinenko 1669 03.02.19 13:39 Сейчас в теме
(9) Отлично! Спасибо за полезное обновление.
5. markers 236 24.01.19 06:20 Сейчас в теме
(0) Я правильно понял, что без "Запись в в режиме загрузки", объект записывается как обычно (надеюсь)? И ещё, не могли бы вы добавить возможность добавления дополнительных свойств объекта? Например:
Объект.ДополнительныеСвойства.Вставить("ЗагрузкаДанныхИзРабочегоМеста", Истина);
Дело в том, что иногда нужно записать как обычно (не в режиме загрузки), но надо отключить/включить какие-то проверки, которые реагируют на эти самые дополнительные свойства? В качестве примера, тот же ЧекККМ в Рознице, который если проведен, не дает с собой ничего делать, пока не передашь свойство показанное в примере или не включишь режим загрузки (что в некоторых ситуациях - вредно).
Заранее спасибо!
PS: Обработку не скачивал, возможно там такой функционал уже есть, но о нем не написано.
6. ROL32 106 24.01.19 08:38 Сейчас в теме
(5) Без флага "Запись в в режиме загрузки", объект записывается как обычно.
Возможность установки ДополнительныхСвойств добавлю в следующей версии
7. neuromancer_aza 46 31.01.19 15:08 Сейчас в теме
{ВнешняяОбработка.СДРОбъектУпр.Форма.ФормаОбъекта.Форма(630)}: Значение не является значением объектного типа (СортироватьПоЗначению)
Список.СортироватьПоЗначению();

На некторых документах такая ошибка выходит
8. ROL32 106 31.01.19 18:06 Сейчас в теме
(7) моя ошибка - возникает у документов, которые не двигают регистры
исправление: в модуле формы передвиньте строку 630 на строчку выше
10. leosoft 134 03.02.19 12:48 Сейчас в теме
Интересная разработка, спасибо! Подскажите, пожалуйста, где можно корректно увеличить шрифт у Ваших табличных частей?
11. ROL32 106 03.02.19 12:58 Сейчас в теме
(10) Спасибо, к сожалению только в конфигураторе - у нужных форм поставить требуемое значение для свойства "Вариант масштаба". Сейчас там стоит "Компактный"
12. leosoft 134 03.02.19 13:37 Сейчас в теме
(11) Спасибо, поправил - все отлично + заработала стандартная кнопка "Изменить масштаб"
14. ROL32 106 03.02.19 20:18 Сейчас в теме
(12)Думаю Вам понравится вот эта обработка СДРНавигаторУпр - для меня она более полезна, тем более что СДРОбъектУпр в нее встроен
15. leosoft 134 03.02.19 21:48 Сейчас в теме
(14) Да, я видел ее, спасибо. Пока скачал еще Вашу консоль запросов. Тоже интересно.
16. EvgenURNN 68 15.02.19 15:32 Сейчас в теме
прямо как мой менеджер данных)))
17. ROL32 106 15.02.19 15:52 Сейчас в теме
(16) Это хорошо или плохо?
Хотя мне показалось, что не очень похож
18. EvgenURNN 68 15.02.19 16:09 Сейчас в теме
(17) предназначение очень близкое
не вижу в этом ничего плохого
19. ROL32 106 15.02.19 21:59 Сейчас в теме
(18) я тоже не вижу, спасибо
кстати, у нас рейтинг тоже похож)))
Оставьте свое сообщение