Продвинутый курс. Занятие №2
Второе занятие по 0-му блоку продвинутого курса.
Необходимо изучить следующие главы текущего блока.
Глава 6. Технологический журнал.
Глава 7. Конфигурации в ИБ.
Глава 8. Поставка и поддержка конфигурации.
Глава 9. Обновление и модификация конфигураций.
Глава 10. Регламентные операции с ИБ.
Глава 11. Конфигурационные файлы.
Глава 12. Отладка прикладных решений.
Глава 13. Директивы компиляции, инструкции препроцессору и общие модули.
Глава 14. Показатели производительности.
Глава 15. Групповая разработка конфигурации.
— залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись —
напишите нам на e-mail поддержки.
Задание выполнено. Первую часть решил с помощью настройки техн. журнала, вторая и третья часть затруднений не вызвали, так как уже неоднократно работал с этим.
П.С. С решением домашнего задания разобрался – об опции запуска LogUI не знал.
Попробовал настроить работу технологического журнала с фильтрами по имени события (Name), пользователю (Usr) и контексту (Context). Получилось отфильтровать только по имени события.
Создал установочный дистрибутив. Установил его в каталог шаблонов. Создал новую базу на основании демоверсии шаблона.
Создал и настроил хранилище конфигурации.
Задание выполнил.
1)
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<log location=”C:\Temp\3″ history=”1″>
<event>
<eq property=”Name” value=”SDBL”/>
<eq property=”Func” value=”HoldConnection”/>
</event>
<property name=”Usr”>
</property>
<property name=”context”>
<eq property=”Func” value=”HoldConnection”/>
</property>
</log>
</config>
<config xmlns=”http://v8.1c.ru/v8/tech-log”> <log location=”C:\Temp\3″ history=”1″> <event> <eq property=”Name” value=”SDBL”/><eq property=”Func” value=”HoldConnection”/> </event> <property name=”Usr”> </property> <property name=”context”> <eq property=”Func” value=”HoldConnection”/> </property> </log></config>
Отбор по контексту настроить не сомг
2) установочный дистрибутив создал
3) с хралищем поработал
ДЗ выполнил
1. Попрактиковал с ТЖ.
сократить строки ТЖ не удалось .
2 и 3 без трудностей.
Задание выполнил
1. вот такая конфигурация:
<code> <config xmlns=”http://v8.1c.ru/v8/tech-log”>
<log location=”c:\temp\1″ history=”1″>
<event>
<eq property=”Name” value = “DBV8DBEng”/>
</event>
<property name = “usr”>
<eq property=”Name” value = “DBV8DBEng”/>
</property>
<property name = “context”>
<eq property=”Name” value = “DBV8DBEng”/>
</property>
</log>
</config></code>
по контексту отбор не работает, а вещь-то неплохая!
2 и 3 также сделал.
Задание выполнила. Были затруднения с настройкой технологического журнала.
Задание выполнено частично (пункты 2 и3).
Пункт один выполнить можно, используя технологический журнал. Конкретный документ можно выбрать из контекста
<?xml version=”1.0″ encoding=”UTF-8″?>
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<dump create=”false”/>
<log location=”d:\temp\logs\8″ history=”1″>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”BeginTransaction”/>
<like property=”context” value=”%Документ.РеализацияТоваров.Форма.ФормаДокумента%”/>
</event>
<property name=”all”/>
</log>
</config>
Нужные записи попадают. Но если указывать условия по контексту, то в журнал ничего не попадает.
Логирование открываемых форм сделал через техн. журнал.
<?xml version=”1.0″ encoding=”UTF-8″?>
<config xmlns=”http://v8.1c.ru/v8/tech-log“>
<dump create=”false”/>
<log location=”C:\1c82_Logs\” history=”1″>
<event>
<eq property=”name” value=”SESN”/>
</event>
<property name=”Context”>
<event>
<eq property=”name” value=”SESN”/>
</event>
</property>
<property name=”Usr”>
<event>
<eq property=”name” value=”SESN”/>
</event>
</property>
</log>
</config>
Далее можно написать обработку, которая проанализирует текстовый файл лога и выдаст статистику.
Дистрибутив сделал, однако есть вопрос (даже прям не удобно – вроде простая тема, но все же…).
Я не понял, зачем нужно делать “Конфигурация – Поставка конфигурации – Создать файлы поставки и обновления”.
Попробовал сделать сразу “Комплект поставки” и вроде все получилось…
Плюс еще не понял, как сделать setup, в котором будет только cfu – пробовал и с “Создать файлы поставки и обновления” и сразу “Комплект поставки” но в шаблоны cfu не устанавливается…
И если можно то хотелось бы в Мастер группе разобрать окошко “Комплект поставки” (которое открывается в самом конце) там есть какие-то “Базовые каталоги”, “Варианты поставки” (там не понятны свойства) ну и другие свойства элементов в этом окне…
Для решения задачи можно использовать следующие шаги:
– создать cfu с помощью “Создать файлы поставки и обновления конфигурации”
– Создать специальный новый комплект поставки, куда включить указанный файл (добавить элемент шаблона).
Вообще тему про комплекты поставки планируем расширять.
Если я правильно понял, то вроде получилось…
Сделал сначала только cfu через «Создать файлы поставки и обновления конфигурации».
Потом через “Создать комплект поставки” указал чтобы включились файлы из каталога, в котором мой cfu, а другие галочки снял. После этого получился setup.exe, который в шаблоны устанавливает только cfu.
Как сделать 2-ым способом (Создать специальный новый комплект поставки, куда включить указанный файл (добавить элемент шаблона)) не понял, но раз тема будет расширяться, потом посмотрю в будущих версиях курса…
Спасибо!
По сути Вы и сделали то, что я предлагал :)
Первую часть как надо работать заставить не получилось context, не хочет отбирать записи по маске на кириллице.
Можно как то заставить работать маску на кириллице?
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<log location=”C:\oleg\1cv81logs\3″ history=”1″>
<event>
<eq property=”Name” value=”DBV8DBEng”/>
</event>
<property>
</property>
<property>
<event>
<like property=”context” value=”%РеализацияТоваровИУслуг%”/>
</event>
</property>
</log>
</config>
Хорошо работает решение предложенное Laurus
<event>
<like property=»sql» value=»%Document12%»/>
</event>
С 2 и 3 все получилось.
>Можно как то заставить работать маску на кириллице?
Пока у нас тоже не получается этого сделать.
Однако, нужно провести еще ряд экспериментов.
Задание выполнено.
п.1. Анализ действий пользователя.
Была осуществлена попытка выполнить задачу с помощью
технологического журнала. Но в конечном итоге наложить условие на
контекст исполнения “context” не удалось. Как ни крути.
Задача решена с помощью синтаксического анализа текстового файла
логирования действий пользователя.
п.2-3 затруднений не вызвали.
С первой частью ДЗ к сожалению не справилась, не получилось настроить нужным образом технологический журнал.
Вторая и третья – затруднений не вызвала. С работой хранилища была знакома по версии 8.1, используем при групповой разработке.
Не смог справиться с пунктом 1. Условие на context не накладывается. Перечитал внимательно задание и решил, что тех. журнал лучше анализировать средствами 1с как текст во внешней обработке, тогда решение можно сделать более универсальным, например выводить отчет по любым пользователям и по любым документам, но на реализацию задумки сил не хватило
2 и 3 часть задания выполнены без особых проблем. С 1-м пришлось повозиться, получилось все, за исключением фильтра по реализациям. Жду решения домашки..
Задание выполнил, но частично.
По поводу второго и третьего пункта ДЗ, затруднений не возникло. По поводу первого пункта задания, решал с помощью технологического журнала, не удалось наложить условие на контекст с помощью инструкции like. При наложении условия, журнал перестает регистрировать события. Вообщем, жду решения ДЗ.
Задание выполнил.
Сначала установил логирование всех событий, затем в условии отбора события попытался использовать маску %РеализацияТоваровИУслуг%
Формирование логов прекратилось. После разбирательств оказалось, что файл logcfg.xml в обязательном порядке должен иметь кодировку UTF-8. Не помню говорилось об этом моменте в уроках или нет. После смены кодировки логирование началось, однако файл был пустым. Решил, что это все же как-то связано с неприятием системой кирилицы.
Затем еще раз внимательно просмотрев журнал всех событий решил воспользоваться идентификатором документа, который используется в тексте запроса.
В итоге получилось:
<log location=”D:\techzhurnal\logs30″ history=”1″>
<event>
<like property=”sql” value=”%Document12%”/>
</event>
<property name=”usr”>
<event>
<like property=”sql” value=”%Document12%”/>
</event>
</property>
<property name=”context”>
<event>
<like property=”sql” value=”%Document12%”/>
</event>
</property>
</log>
По второму и третьему пункту затруднений не было, уже использовал эти механизмы на практике.
1. Можно настроить файл технологического журнала на фиксацию нужных нам событий и подключить его на компьютерах пользователей:
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<log location=”F:\tmp\17″ history=”168″>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”Transaction”/>
<eq property=”usr” value=”Иванов” />
</event>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”Transaction”/>
<eq property=”usr” value=”Петров”/>
</event>
<property name=”context”>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”Transaction”/>
<eq property=”usr” value=”Иванов” />
</event>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”Transaction”/>
<eq property=”usr” value=”Петров”/>
</event>
</property>
<property name=”usr”>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”Transaction”/>
<eq property=”usr” value=”Иванов” />
</event>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”Transaction”/>
<eq property=”usr” value=”Петров”/>
</event>
</property>
</log>
</config>
Наложить фильтр на свойство “context” у меня не получилось. Можно ли это сделать?
Затем, используя средства 1С, прочитать полученные текстовые файлы и обработать их, например, так:
Текст=Новый ЧтениеТекста(Путь,КодировкаТекста.UTF8);
КоличествоВызовов=0;
СтрокаТЖ=Текст.ПрочитатьСтроку();
Пользователь=Сред(СтрокаТЖ, Найти(СтрокаТЖ,”Usr”)+4, (Найти(СтрокаТЖ,”Context”)-1)-(Найти(СтрокаТЖ,”Usr”)+4));
Пока СтрокаТЖ<>неопределено цикл
СтрокаТЖ=Текст.ПрочитатьСтроку();
Если Найти(СтрокаТЖ, “Система.ПолучитьФорму : Документ.РеализацияТоваровИУслуг.Форма”+ИмяФормы) тогда
КоличествоВызовов=КоличествоВызовов+1;
КонецЕсли;
КонецЦикла;
Сообщить(“Пользователь “+ Пользователь +”: количество вызовов формы “+ИмяФормы+ ” “+Строка( КоличествоВызовов));
пп.2 и 3 затруднений не вызвали.
>Наложить фильтр на свойство «context» у меня не получилось. Можно ли это сделать?
Ранее такая настройка не работала, в текущих релизах платформы появился шанс настроить фильтр.
Пробуем это сделать – можете почитать комментарии в этой ветке.
Задание выполнено.
Со второй и третьей частью каких-то сложностей не возникло.
Первую часть решал через использование технологического журнала. Настроил фильтр событий по пользователю (свойство Usr) и информационной базе (свойство IB). Соответственно, использую 2 события, для каждого из пользователей (Иванов, Петров). В такой конфигурации все работает, нужная информация сохраняется в ТЖ, и формально задача решена.
Но этом в ТЖ попадают лишние данные. Как только я пытаюсь настроить фильтр по свойству Context, так все перестает работать, события не регистрируются. Пробовал тег like cо значением маски, тег eq с полным значением контекста, экспериментировал с кодировками файла logcfg.xml, ничего не помогло, поэтому оставил без фильтра. Буду снова ждать решения.
Задание выполнил. Но все же осталось не совсем понятным как правильно настраивать логирование интерфейсных действий пользователя. Буду ждать решения ДЗ.
По др. пунктам проблем не было.
Дз выполнил, во втором и третьем задании проблем не возникло, вот в первом есть вопрос как фильтровать само значение свойства. Файл logcfg.xml следующий:
<?xml version=”1.0″?>
-<config xmlns=”http://v8.1c.ru/v8/tech-log”> -<log history=”1″ location=”C:\Temp\1cv8logs”> -<event> <eq value=”DBV8DBEng” property=”Name”/> </event> -<property name=”Context”> -<event> <eq value=”DBV8DBEng” property=”Name”/> </event> </property> -<property name=”usr”> -<event> <eq value=”DBV8DBEng” property=”Name”/> </event> -<event> <ne value=”” property=”context”/> </event> </property> </log> </config>
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<log location=”C:\Temp\1cv8logs” history=”1″>
<event>
<eq property=”Name” value=”DBV8DBEng”/>
</event>
<property name=”Context”>
<event>
<eq property=”Name” value=”DBV8DBEng”/>
</event>
</property>
<property name=”usr”>
<event>
<eq property=”Name” value=”DBV8DBEng”/>
</event>
<event>
<ne property=”context” value=””/>
</event>
</property>
</log>
</config>
Но хотелось бы подробнее рассмотреть возможности наложения фильтров в файле xml.
Попробуйте использовать такое условие на контекст:
Сделал домашнее задание, однако возникли затруднения с первым пунктом. Насколько я понял, необходимо использовать технологический журнал; причем нужно настроить его таким образом, чтобы он регистрировал открытие конкретных форм под конкретными пользователями.
Сначала я настроил регистрацию всех событий, однако в явном виде не обнаружил в журнале регистрацию интерфейсных действий пользователя. Но можно заметить, что при открытии формы платформа делает запрос к БД, при этом свойство “context” имеет вид “Система.ПолучитьФорму : <ИмяФормы>”. Получается, что если мы установим отбор по имени пользователя, по событию (например, “sdbl”), по действию (например, “BeginTransaction”) и по контексту (укажем интересующую нас форму), то мы получим нужный результат. Однако у меня почему-то не получается наложить условие на контекст. Пробовал сравнивать по eq и по like (пытался указать различные маски), но условие не срабатывало и событие не попадало в журнал. Может тут есть какой-то подводный камень? Также пробовал решить данную задачу с помощью параметра /Logui, но, как я понял, там нельзя настраивать фильтры, да и работает этот режим только под отладчиком. Подскажите, пожалуйста, в правильном направлении я двигаюсь, или есть гораздо более элегантное решение?
С остальными пунктами ДЗ сложностей не возникло.
Да, направления правильные:
– Использование ТЖ;
– Применять логирование действий.
Что касается использования like в ТЖ, то там действительно все не просто.
Есть один способ заставить его работать, но сейчас с ходу вспомнить не могу.
Нужно будет провести эксперименты, как будет результат напишу.
Спасибо! Буду ждать Ваших результатов и решения дз
Попробуйте использовать такое условие на контекст:
Не получилось. Файл у меня такой:
<?xml version=”1.0″ encoding=”UTF-8″?>
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<dump create=”false”/>
<log location=”c:\v82\logs” history=”168″>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”begintransaction”/>
<eq property=”usr” value=”администратор”/>
<like property=”context” value=”%Реализация%”/>
</event>
<property name=”all”>
<event>
<eq property=”name” value=”sdbl”/>
</event>
</property>
</log>
</config>
<?xml version=”1.0″ encoding=”UTF-8″?>
<config xmlns=”http://v8.1c.ru/v8/tech-log”>
<dump create=”false”/>
<log location=”c:\v82\logs” history=”168″>
<event>
<eq property=”name” value=”sdbl”/>
<eq property=”func” value=”begintransaction”/>
<eq property=”usr” value=”администратор”/>
<like property=”context” value=”%Реализация%”/>
</event>
<property name=”all”>
<event>
<eq property=”name” value=”sdbl”/>
</event>
</property>
</log>
</config>
Если убрать строку, выделенную жирным шрифтом, то все работает.
К сожалению, текст конфига задвоился, но вроде можно прочитать..
Прочитать можно, разбираемся..
Действительно, не работает.
Продолжим разбираться..
Задание выполнено.
Технологический журнал настроил через обработку с ИТС. Единственное, не получилось оставить только документ реализации. Т.е. при открытии рабочего стола имеем два списка: поступления и реализации. В журнал записывается одной строкой и как отсечь запись о поступлении – не понял. С условиями не получилось или я как-то не так указал.
Дистрибутив создан, установку произвел и базу создал. Единственное, непонятно какую базу нужно было создать: пустую или с данными? Я создал чистую. И в дальнейшем мы будем с ней работать или это только в качестве эксперимента?
На этой базе создал хранилище и добавил двух разработчиков. Администратором назначил “Администратора”. Поизменял конфигурацию, чтобы посмотреть историю. Все показывает.
> это только в качестве эксперимента
В дальнейшем комплект поставки не потребуется.