Снегопат

Обсуждение Снегопата
Текущее время: 27 апр 2024, 22:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 14:22 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
А какой дискретности машина времени? Может быть банально сравнивать с модулем из конфигурации ИБ?

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 14:35 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
Это я шутя так назвал, на текущий момент идея такова: вывести список измененных объектов конфигурации в текущей сессии (Для объектов метаданных выводим названия, даже так полный путь Конфигурация.Справочники.Банки.Реквизиты.Реквизит1:добавление, для модулей формы, объекта, общего модуля дополнительно сохраняем предыдущие состояние), текущей сессией считается момент начала первого изменения и сохранения конфигурации. С конфигурацией ИБ думаю смысла нет, т.к. может быть ситуация, что 3 раза сохранил конфигурацию и только один раз применил ее для ИБ.

В дальнейшем можно показать и список "сессий" .

Жду
Цитата:
* новая ООП-модель по работе с формами скриптов, ее вы уже можете наблюдать в том же extSearch.js, класс ScriptForm.js уже опубликовал, а документацию к нему с примерами - нет. А его использование подход заметно сокращает объем кода (как минимум избавляет от бесконечных повторений prototype), и позволяет наследовать формы - причем как на уровне "диалога" (для ситуаций - "хочу такую же форму, но с другим функционалом"), так и наоборот (для ситуаций "функционал остается, а вот форму перерисую);


пока мой прототип выводить через Message список объектов измененных, а хотелось бы и переход к метаданным организовать и добавить для модулей "сравнить".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 14:44 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
А какое назначение механизма? Каков сценарий использования?
По формам - делаю, но времени очень мало свободного :(

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 14:44 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Для некоторых событий движок 1С генерирует два уведомления - в первый раз поле request == true, и установкой result в false можно отменить событие.
Во второй раз request==false, т.е. событие уже произошло. Но для многих событий запроса на изменение нет, и просто идет уведомление, что что-то изменилось.
Так работает движок 1С, и я вряд ли в этом вопросе выше него прыгну.
Просто я не смогу отловить все места, где генерятся уведомления, и корректно вставить там предуведомление.
Видимо эту задачу надо решать комплексно, отслеживая также события изменения текста, как SciColorer делает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 14:53 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
kuntashov писал(а):
А какое назначение механизма? Каков сценарий использования?

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

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

orefkov писал(а):
Просто я не смогу отловить все места, где генерятся уведомления, и корректно вставить там предуведомление.
Ок, в принципе при сравнении только один символ, показывает лишним, думаю это не страшно. Так, что не надо этим заморачиваться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 15:32 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
sosnae писал(а):
kuntashov писал(а):
А какое назначение механизма? Каков сценарий использования?

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


А, типа аналог команды fossil changes? В принципе, полезно было бы.
А что такое "текущая сессия"? От первого запуска конфигуратора и до его закрытия? Тут как раз проблема, определить "границы сессии". Например, Колорер показывает изменения между сохранениями. Это полезно только, если правок в модуле несколько (мало). Если модуль редактируется активно, то информация эта бесполезна.

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

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

Спасибо за катализацию идеи! :) Теперь только собраться сделать все это.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 16:00 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
Цитата:
типа аналог команды fossil changes?
да
Цитата:
А что такое "текущая сессия"?
от первого изменения и до сохранения или отменны сохранения конфигурации, если считать от открытия конфигуратора и до закрытия , думаю будет не рационально, как утром запустил, так вечером и закрыл... т.е. за день у нас будет n количество сессий для текущей базы, в идеале
Код:
Сессия 1
Сессия 2
Сессия 3 - обновили ИБ
Сессия 4
Сессия 5 - обновили ИБ, поместили в хранилище

Цитата:
Если модуль редактируется активно, то информация эта бесполезна
согласен полностью, но для небольших изменений думаю инструмент нужный.
Хранилище к сожалению не всегда возможно применить, допустим на выезде. (в последнее время пользуюсь fossil, очень удобно "микро" хранилище).

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

P.S. : Была бы возможность программно добавлять объекты метаданных, тогда может и хранилище не надо бы было, но ждем 8.3 .


Вложения:
Комментарий к файлу: пример разбора метаданных
test.zip [1.73 КБ]
Скачиваний: 399
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 26 июн 2012, 19:14 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
sosnae писал(а):
Александр Орефков выкладывал на форуме пример разбора и получения свойств объектов метаданных в прикрепленном файле, но у меня там кодировка побилась, этот же пример где-то на форуме есть, только вот не могу найти.

P.S. : Была бы возможность программно добавлять объекты метаданных, тогда может и хранилище не надо бы было, но ждем 8.3 .


Я имел в виду штатную возможность - отчет по метаданным, который выводится в текстовом виде. С его помощью задача сравнения значений свойств метаданных до и после изменений сводится к обычному диффу двух текстовых файлов. Конечно же, обойдя рекурсивно метаданные, можно самому такой отчет сформировать, но зачем, если 1С это уже нативно умеет делать.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 30 июн 2012, 08:42 
Не в сети

Зарегистрирован: 13 июн 2012, 21:26
Сообщения: 6
Можно пример: как открыть модуль внешней обработки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 30 июн 2012, 22:51 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
boggonzikov писал(а):
Можно пример: как открыть модуль внешней обработки?

Опиши подробнее - что хочешь.
Например, из окна одной из форм обработки открыть модуль.
Или из окна самой обрабтки (со списком форм) открыть модуль.
Или открыть обработку по имени файла и открыть модуль.
Немного разные действия будут.
Хотя все в итоге приведут к одному - найти объект метаданных этой обработки и вызвать
Код:
mdObj.editProperty("МодульОбъекта")


Например, если открыта сама обработка:
Код:
windows.mdiView.enumChilds().item(0).mdObj.editProperty("МодульОбъекта")

А если открыта одна из форм обработки, то будет
.....mdObj.parent.editProperty("МодульОбъекта")


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB