Механизм оценки и получения информации публикуемых разработок на Инфостарте, для 1С 8.1-8.2

31.01.2012 16:22 [01.02.2012 16:46] Uncore 14 [+] [−] Перейти к комментариям (2)

Внешний отчет, обработка для 1С: Предприятие 8.1; 1С: Предприятие 8.2

Механизм оценки и получения информации публикуемых разработок на Инфостарте, для 1С 8.1-8.2

Простой механизм добавления информации о публикации, авторе и оценки публикации на Инфостарте в своих разработках.

или посмотреть и скачать все файлы (1)

Создавая публикации, столкнулся с тем, что неплохо бы было добавить кнопки на форму создаваемой обработки/отчета, нажав которые можно проголосовать за публикацию, посмотреть описание по ней или узнать данные автора. Тем более, что замечал у некоторых публикаций подобные кнопки, но совсем у незначительного количества. Сам столкнулся с тем, что скачал какую-нибудь обработку/отчет, проверил ее - понравилась, а чтобы проголосовать за нее или посмотреть описание, нужно заходить на сайт, снова искать публикацию... А так, все будет под рукой для пользователя и без затрат времени для разработчика.

В обработке показан пример двух механизмов оценки размещаемой на Инфостарте публикации, один из которых автор может использовать при разработке.

МЕХАНИЗМ ФОРМИРОВАНИЯ ПОДМЕНЮ ИНФОРМАЦИИ И ОЦЕНКИ ПУБЛИКАЦИИ  

Этот механизм позволяет программно создавать подменю с кнопками оценки публикации и информации о публикации и авторе.

ШАГ 1.   

Объявление переменных в разделе определения переменных:

// содержит номер публикации на Infostart
Перем НомерПубликации;

// содержит номер профайла автора на Infostart
Перем НомерПрофайлаАвтора
;

ШАГ 2. 

Заполнение переменных данными публикации в разделе основной программы:

// объявление пользовательских значений
НомерПубликации = "114938";

НомерПрофайлаАвтора = "121472";

Необходимо обязательно заменить параметры номера публикации и номера профайла автора публикации, показанные в обработке-примере. Информация необходима для перехода на страницы соответсвенно публикации и автора публикации.
Например, эта публикация имеет адрес http://infostart.ru/public/114938/, соответсвенно в переменную "НомерПубликации" нужно установить номер "114938"; страница автора http://infostart.ru/profile/121472/, поэтому у переменной "НомерПрофайлаАвтора" будет значение "121472". Номер публикации появляется после сохранения публикации как "Черновик".

ШАГ 3.

В процедуре "ПриОткрытии" формы создаваемой обработки/отчета вызвать процедуру генерации подменю: 

// формирование подменю
Процедура ПриОткрытии()
   
ГенерацияКнопокГолосования();
КонецПроцедуры

Процедура сформирует подменю с кнопками оценки публикации, перехода на страницы публикации и автора публикации.

У процедуры имеются параметры:
Сверху
   (необязательный)
   Тип: Булево
      Определяет расположение подменю с информацией о публикации в верхней или нижней панели формы. Значение по умолчанию: Истина
      Список используемых панелей:
      - "ДействияФормы" - верхняя панель;
      - "КоманднаяПанель1" - верхняя панель;
      - "ОсновныеДействияФормы" - нижняя панель;
      Они хранятся в таблице значений, куда пользователь может добавить название своей панели, если оно отличается от представленных.
      Если признак установлен в "Истина", тогда процедура попытается создать подменю на одной из верхних панелей, иначе создаст на нижней панели. В случае отсутствия панелей на форме, подменю создано не будет.
ВыводитьКартинки
   (необязательный)
   Тип: Булево
      Определяет необходимость вывода картинок кнопок. Значение по умолчанию: Истина. Причем для версий платформы 8.1 и 8.2 картинки разные.
УдалятьКнопкиПослеГолосования
   (необязательный)
   Тип: Булево
      Определяет признак вывода кнопок голосования за публикацию после голосования, при повторном открытии. Значение по умолчанию: Истина
      Т.е. если пользователь проголосовал за публикацию, то при следующем открытии формы кнопки голосования создаваться не будут.

Подменю сформируется только в том случае, если будет заполнена одна из переменных "НомерПубликации" или "НомерПрофайлаАвтора".

ШАГ 4.

Добавить основную процедуру генерации подменю и связанные с ней процедуры и функции в модуль обработки:

// основная процедура генерации подменю
Процедура ГенерацияКнопокГолосования(Сверху = Истина, ВыводитьКартинки = Истина, УдалятьКнопкиПослеГолосования = Истина)

// возвращает текущую версию платформы
Функция ПолучитьВерсиюПлатформы()

// проставление плюса за публикацию
Процедура ПроголосоватьЗа()

// проставление минуса за публикацию
Процедура ПроголосоватьПротив()

// оценка публикации на сайте
Процедура Проголосовать(За)

// переход на страницу автора
Процедура ОбАвторе()

// переход на страницу публикации
Процедура ОПубликации()

ШАГ 5.

В результате при открытии формы будет создано подменю с информацией о публикации (рис. 2):

Программное создание подменю информации о публикации

МЕХАНИЗМ ОЦЕНКИ ПУБЛИКАЦИИ ПЕРЕД ЗАКРЫТИЕМ С ВОЗМОЖНОСТЬЮ НАПОМИНАНИЯ

Этот механизм позволяет оценить публикации пользователю при закрытии формы.

ШАГ 1 и ШАГ 2. Аналогичны с предыдущим механизмом. 

ШАГ 3. 

В обработчике формы "ПередЗакрытием" нужно вызвать процедуру: 

// механизм вызова опроса о публикации
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
   
ПроголосоватьЗаПубликацию();
КонецПроцедуры

ШАГ 4. 

В модуль обработки скопировать саму процедуру опроса:

Процедура ПроголосоватьЗаПубликацию() 

В процедуре определяется, имеется ли в используемой конфигурации справочник "ВнешниеОбработки". Данный справочник имеется практически во всех типовых конфигурациях. Если он существует, то создается новый элемент справочника с пустым полем "ВидОбработки", поэтому пользователь открывая через "Сервис -> Дополнительные внешние отчеты и обработки -> ..." его не увидит, только через "Операции -> Справочники -> Внешние обработки". Если же справочник отсутствует, данные сохраняются через "СохранитьЗначение()".

ШАГ 5. 

В результате перед закрытием формы пользователю будет выведено диалоговое окно с предложением оценить публикацию (рис. 3). Нажав "Да", если публикация понравилась, пользователь ставит "плюс"; "Нет" - публикация не понравилась и пользователь ставит "минус";  

 Оценка публикации при закрытии

"Отмена" - будет выведен вопрос с текстом "Напомнить позже?" (рис. 4):

Напоминание об оценке позже 

Если пользователь нажмет "Нет, не напоминать" или проголосует, то при следующем закрытии обработка уже не будет предлагать пользователю оценить публикацию; если же будет нажата кнопка "Напомнить", то через несколько открытий пользователю вновь будет выведено диалоговое окно с предложением оценки публикации.

Так же, как и в первом механизме, необходимо заполнить переменные "НомерПубликации" и "НомерПрофайлаАвтора" данными создаваемой публикации. Если переменные будет пустыми, механизм не будет работать.

Сформированное подменю информации о публикации

Сформированное подменю информации о публикации

Состав подменю

Состав подменю

Оценка при закрытии формы

Оценка при закрытии формы

Напомнить об оценки позже

Напомнить об оценки позже

Публикация ссылается на:

Оценка сообщества

14

Поставьте плюс, если вы рекомендуете данную публикацию к прочтению и использованию.
Плюс добавляет публикацию в Мои рекомендации.

[+] Рекомендую   [−] Не тратить время
Если рейтинг упадет до -5, то публикация автоматически скроется.