Звездный рейтинг *****

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

Разработка - Работа с интерфейсом

Интерфейс Работа с формой

Ранее я представил подсистему «Управление состоянием». К подсистеме был проявлен интерес, однако в рамках одной статьи аспекты её использования были представлены недостаточно полно. Более подробное рассмотрение использования подсистемы я планирую продолжить через публикацию отдельных учебные примеров. Это первая статья из цикла таких примеров.

Оглавление

 

Введение

Описание интерфейса

Создание формы

Взаимодействие

Описание модели

Модуль модели

Модель формы

Инициализация подсистемы

Проверка работы формы

Добавление связи

Расчет модели

Функция значения

Вывод

Источники


В этой статье я рассмотрю пример использования подсистемы "Управление состоянием". Пример имеет учебный характер. В дальнейшем я планирую публиковать и другие учебные примеры. Целью каждого такого примера будет рассмотрение отдельных аспектов используемой подсистемы. Начну я с самого простого: отображение состояния формы с использованием функций состояния.

В этом примере мы рассмотрим основные шаги создания формы и построения её модели. Для начала мы используем один параметр состояния и зависимые от него элементы формы. Затем мы добавим еще один параметр состояния, зависимый от первого. Вначале мы будем использовать для его расчета выражение, а затем добавим функцию значения.

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

В итоге мы построим обработку, где основная форма будет управляться через подсистему "Управление состоянием". На форме будет реализован нестандартный элемент управления, отображение которого будет управляться через подсистему. Сама модель будет реализована в общем модуле. В нем будут располагаться функции состояния и значения.

В примере используется нестандартный элемент формы, составленный из элементов декораций звезд двух видов: закрашенные и незакрашенные. Звезды располагаются в одну строку и вместе составляют шкалу звездного рейтинга от 0 до 5 закрашенных звезд. Состояние формы описывается одним параметром - Рейтинг. Рейтинг - это целое число от 0 до 5.

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

Для начала создадим обработку "Звездный рейтинг". У обработки будет один реквизит - Рейтинг (Число (1,0, положительное)).

Добавим основную форму обработки. В форме отключим автозаголовок и добавим 10 декораций типа Картинка: 5 закрашенных и 5 незакрашенных звезд. Имя декорации звезды сделаем таким, чтобы из него можно было бы получить информацию о рейтинге звезды и её состоянии закрашенная/незакрашенная. Для этого будем использовать следующий шаблон: ДекорацияЗвезда[Номер звезды][Состояние], где [Номер звезды] будет соответствовать величине рейтинга, а [Состояние] равно 1 - для закрашенной, а 0 - для незакрашенной звезды. На этом визуальная часть подготовки формы завершена.

Продолжим работу с формой в ее модуле. Для начала скопируем область кода "УправлениеСостоянием" из модуля формы документа ЗаявкаНаОперацию, который можно найти в демо конфигурации. Далее создадим обработчик события формы ПриСозданииНаСервере. В этом обработчике мы создадим описание модели формы.

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

Поскольку элемент декорации звезды не является полем ввода, то стандартное взаимодействие с этим элементом не приведет к каким-либо изменениям данных. Исправим это, добавив в обработчик Нажатие код по изменению величины рейтинга в соответствии с нажатой звездой. Чтобы изменения отразились в модели используем функцию подсистемы РаботаСМодельюКлиентСервер.УстановитьЗначение для нового значения рейтинга. После внесения изменений нужно вызвать функцию УправлениеФормой, в которую необходимо передать массив измененных параметров состояния.

&НаКлиенте
Процедура ДекорацияЗвездаНажатие(Элемент)
  Перем ИзмененныеРеквизиты;
  //  Определение состояния звезды
  СоставИмениЭлементаЗвезды = СтрЗаменить(Элемент.Имя, "ДекорацияЗвезда", "");
  СостояниеЗвезды = Прав(СоставИмениЭлементаЗвезды, 1);
  РейтингЗвезды = Лев(СоставИмениЭлементаЗвезды, 1);
  //  Установка нового значения рейтинга по формуле: РейтингЗвезды - СостояниеЗвезды
  РаботаСМодельюКлиентСервер.УстановитьЗначение(ЭтотОбъект, "Рейтинг",, РейтингЗвезды - СостояниеЗвезды, ИзмененныеРеквизиты);
  //  Обновление формы
  УправлениеФормой(ИзмененныеРеквизиты);
  //  Возвращение фокуса на элемент звезды, которая была нажата
  ЭтотОбъект.ТекущийЭлемент = Элементы[СтрШаблон("ДекорацияЗвезда%1%2", РейтингЗвезды, ?(СостояниеЗвезды = "1", "0", "1"))];
КонецПроцедуры

Обратите внимание, что как такового расчета модели пока в нашем примере нет. Действительно, что рассчитывать, если параметр всего один? Однако обновление формы требуется. Может показаться, что передача единственного параметра в функцию УправлениеФормой не имеет смысла, однако есть смысл передавать в функцию список параметров, которые изменились фактически. Если изменения не произойдет, то и обновления формы не будет - в этом и заключается один из главных аспектов оптимизации работы с формой.

Использование модели состояний предполагает наличие общего модуля, функции которого могут быть доступны как в режиме сервера, так и клиента. Для нашего примера добавим такой общий модуль "МодельЗвездныйРейтинг". Установим признаки доступности модуля: Клиент, Сервер.

В модуль модели добавим функции состояния элементов формы. В нашем примере необходимо добавить функции состояния для всех звезд и одну для формы. Формат описания функции строго определен следующим образом: Функция Свойство[ИмяЭлемента](Свойства, Параметры) Экспорт ... КонецФункции. Для самой формы имя элемента используется следующее: "ЭтаФорма".

В функциях состояния необходимо задать свойства элемента по параметрам, переданным в функцию. Используем для определения видимости закрашенной звезды параметр Рейтинг по следующему условию: Рейтинг > (Рейтинг звезды - 1). Для незакрашенной звезды это условие будет таким: Рейтинг <  Рейтинг звезды.

Функция СвойстваЭтаФорма(Свойства, Параметры) Экспорт
  Свойства.Вставить("Заголовок", СтрШаблон("Выбран рейтинг %1", Параметры.Рейтинг));
  Возврат Истина;
КонецФункции
…
Функция СвойстваДекорацияЗвезда11(Свойства, Параметры) Экспорт
  Свойства.Вставить("Видимость", Параметры.Рейтинг > 0);
  Возврат Истина;
КонецФункции
…
Функция СвойстваДекорацияЗвезда10(Свойства, Параметры) Экспорт
  Свойства.Вставить("Видимость", Параметры.Рейтинг < 1);
  Возврат Истина;
КонецФункции
…

В этом примере в качестве объекта модели выступает форма. У формы единственный параметр состояния - Рейтинг. В системе нет необходимости описывать этот параметр отдельно. Также нет необходимости описывать какие-либо связи, т.к. других параметров просто нет.

Все что нам теперь остается - это добавить описание элементов формы в нашу модель. Формат описания предполагает перечисление элементов формы и параметров состояния, от которых они зависят.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
  //  Создание описания модели. Начало
  Модель = РаботаСМодельюКлиентСервер.Модель("МодельЗвездныйРейтинг", "Объект");
  //  Описание самой формы
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель,, "Рейтинг");
  //  Закрашенные звезды
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда11, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда21, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда31, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда41, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда51, "Рейтинг");
  //  Незакрашенные звезды
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда10, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда20, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда30, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда40, "Рейтинг");
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель, Элементы.ДекорацияЗвезда50, "Рейтинг");
  //  Создание описания модели. Конец
  РаботаСМоделью.Инициализировать(ЭтотОбъект, Модель);
  //  Отображение состояния формы
  УправлениеФормойНаСервере();
КонецПроцедуры

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

Вызов инициализации производится через единственную функцию подсистемы: Инициализация.

Для проверки работы полученной формы воспользуемся демо конфигурацией. Найти форму можно в меню Демо -> Сервис -> Звездный рейтинг. В конфигураторе это будет путь: Обработки->ЗвездныйРейтинг->ОсновнаяФорма.

Усложним наш пример. Введен еще один параметр состояния - Средний рейтинг. Пусть этот параметр условно рассчитывается по формуле: 0.5 * Рейтинг. Посчитанное значение будем отображать в заголовке формы.

…
  РаботаСМодельюКлиентСервер.Связь(ЭтотОбъект, Модель, "СреднийРейтинг", "Рейтинг");
  Модель.Параметры["СреднийРейтинг"].Выражение = "0.5 * Параметры.Рейтинг";
…

Для добавления параметра в нашу модель добавим новую связь Рейтинг -> Средний рейтинг. Отдельно описывать сам параметр обычно не требуется, и если в связи используется ранее неизвестный подсистеме параметр, то он автоматически добавляется в модель. Отдельно для нового параметра нам потребуется указать выражение его расчета.

На этом описание модели может быть завершено, однако, чтобы заголовок формы смог отображать его значение, нам необходимо в описание элемента ЭтаФорма добавить этот параметр.

…
  РаботаСФормойКлиентСервер.Элемент(ЭтотОбъект, Модель,, "Рейтинг, СреднийРейтинг");
…

Затем в модуле модели для функции состояния ЭтаФорма нужно использовать новый параметр при формировании заголовка формы.

Функция СвойстваЭтаФорма(Свойства, Параметры) Экспорт
  Свойства.Вставить("Заголовок", СтрШаблон("Выбран рейтинг %1, средний - %2", Параметры.Рейтинг, Параметры.СреднийРейтинг));
  Возврат Истина;
КонецФункции

Запустим нашу обработку, откроем её форму и убедимся в её НЕработоспособности.

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

Для исправления ситуации достаточно заменить вызов функции обновления формы УправлениеФормой на функцию расчета состояния: РассчитатьСостояние, определенной также в контексте модуля формы.

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

Если выражение расчета не удается представить в простом виде, то можно использовать функцию значения. Добавим в нашу модель в общем модуле новую функцию значения для параметра "Средний рейтинг". Формат такой функции следующий: Функция Значение[Имя параметра](Контекст, Объект, Модель, Параметры, СтандартнаяОбработка) Экспорт. В самом параметре для выражения установим значение "*", что означает использование функции значения.

#Если Сервер Тогда
Функция ЗначениеСреднийРейтинг(Контекст, Объект, Модель, Параметры, СтандартнаяОбработка, Отказ) Экспорт
  Запрос = Новый Запрос;
  Запрос.Текст =
  "ВЫБРАТЬ
  |  СУММА(РейтингБанков.Рейтинг) КАК СуммаРейтинга,
  |  КОЛИЧЕСТВО(РейтингБанков.Рейтинг) КАК КоличествоРейтинга
  |ИЗ
  |  РегистрСведений.РейтингБанков КАК РейтингБанков";
  Выборка = Запрос.Выполнить().Выбрать();
  Если Выборка.Следующий() И Выборка.КоличествоРейтинга > 0 Тогда
    Возврат Окр((Выборка.СуммаРейтинга + Параметры.Рейтинг) / (Выборка.КоличествоРейтинга + 1), 2);
  Иначе
    Возврат Параметры.Рейтинг;
  КонецЕсли;
КонецФункции
#КонецЕсли

Здесь проявляется еще один аспект работы подсистемы - требование контекста вычисления параметра состояния. Укажем этот контекст через признак параметра НаСервере = Истина.

...
  РаботаСМодельюКлиентСервер.Связь(ЭтотОбъект, Модель, "СреднийРейтинг", "Рейтинг");
  Модель.Параметры["СреднийРейтинг"].Выражение = "*";
  Модель.Параметры["СреднийРейтинг"].НаСервере = Истина;
...

Вывод

На достаточно простом примере был показан процесс создания модели работы формы и инициализации подсистемы Управление состоянием. Если процесс подключения подсистемы разложить на последовательность шагов, то это может выглядеть так:
  1. В модуль формы перенести область кода Управление состоянием из демо конфигурации
  2. Создать обработчик ПриСозданииНаСервере, в котором сделать описание модели формы. Добавить в обработчик:
    1. вызов инициализации подсистемы
    2. вызов обновления формы
  3. Добавить общий модуль модели, в котором разместить функции состояния и функции значения.

Вот так, на Раз, Два, Три мы подключили подсистему Управление состоянием к нашей форме.

Пример навеян следующими публикациями:

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. pm74 167 08.04.20 15:33 Сейчас в теме
хм, и ни одного отзыва . это очень демотивирует . Имо все выглядит слишком сложно ( на первый взгляд).
2. CyberCerber 489 09.04.20 11:54 Сейчас в теме
Прочитал полностью статью. Было сложно, но прочитал.
Если на этом простом примере вы хотели показать плюсы вашей системы, то у вас, к сожалению, не получилось... Очень, очень, сложно и не понятно даже в таком простом примере. Я не знаю, как сторонний разработчик сможет заставить себя такое сделать. Иногда, когда платформа не предоставляет каких-то средств и технологий с этим приходится просто смириться, а не достраивать сверху свое, ничего работоспособного может не получиться.

Конкретные замечания/вопросы по примеру:
1. Всю красоту сразу убивает дублирование кучи элементов. Когда есть такой однородный набор, то элементы создают программно динамически. У вас такое возможно? В модуле модели я увидел по методу на каждый элемент. Выходит, динамически создать и привязать не получится? И еще вы написали про 8 элементов, почему не 10?
2. Переменные РейтингЗвезды, СостояниеЗвезды - числового или строкового типа?
3. В чем смысл среднего рейтинга? Почему он просто делится на два от обычного, а на скрине они равны?
3. kalyaka 576 09.04.20 23:51 Сейчас в теме
(2)
показать плюсы вашей системы
Нет, цель этого примера в том, чтобы показать как начать работать с подсистемой. В примере последовательно вводятся основные понятия подсистемы: Функция состояния, Параметр состояния, Связи. Плюсы нужно искать в основной статье.
как сторонний разработчик сможет заставить себя такое сделать
Тут все очень просто: если усилия на изучение новой технологии меньше получаемых преимуществ от её использования, то есть смысл ее изучать. Я исхожу из того, что преимущества использования превышают затраты.
когда платформа не предоставляет каких-то средств и технологий с этим приходится просто смириться
Но тогда придется смириться и с тем, что у кого то будет получаться делать на платформе такие вещи, которые она сама делать не умеет и этот кто-то будет вашим конкурентом :)
1.
дублирование кучи элементов
Не понял, что вы имели в виду? Если то, что каждый элемент интерфейса описывается отдельно?
В модуле модели я увидел по методу на каждый элемент
Это заложено в архитектуре решения. Я об этом писал в основной статье в разделе Группировка данных и элементов В принципе, для приведенного здесь примера можно и одну функцию написать. Это будет тогда такой компонентный подход. Однако суть примера не в оптимизации, а в наглядном представлении использования основных понятий подсистемы.
Выходит, динамически создать и привязать не получится?
Я предполагаю в дальнейшем сделать конструктор кода, с помощью которого можно будет генерировать код модуля и просто вставлять в конфигурацию по аналогии как это сделано с правилами обмена в конвертации
вы написали про 8 элементов, почему не 10
Это просто опечатка :), исправил
2. РейтингЗвезды - это параметр состояния, значение которого сохраняется в реквизите формы. СостояниеЗвезды - это характеристика конкретной декорации, которую я использую для вычисления рейтинга звезды. Поскольку СостоянияЗвезды я нигде не храню, а вычленяю из имени декорации, то ее тип строковый.
3.
В чем смысл среднего рейтинга?
У этого параметра два смысла. 1-й - это показать как ввести в систему расчетный параметр, значение которого может определяться через выражение или через функцию значения. 2-й смысл для примера это средний рейтинг банков, который вычисляется как среднее значение рейтингов из данных регистра сведений
Почему он просто делится на два от обычного, а на скрине они равны
Для примера мне нужно было показать как значение параметра может задаваться выражением. Вот я и взял выражение перемножения некоторого числа, скажем 0.5 на значение параметра состояния Рейтинг. Далее в примере я уже выражение заменил на функцию значения и здесь мне уже потребовался контекст сервера.

А скрин - это просто иллюстрация формы с моделируемым интерфейсным элементом *****
Оставьте свое сообщение

См. также

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

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

19.06.2015    108616    0    ekaruk    127    

Перенос инструкций из word во встроенную справку 1С с сохранением картинок и форматирования

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Делюсь простым и удобным способом переноса справки/инструкций из ворда (и не только) во встроенную справку 1С с сохранением картинок и форматирования.

22.04.2020    3345    0    77dream77    21    

Управление состоянием для шаблона MVC и работы с данными объекта

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.03.2020    2544    2    kalyaka    33    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    3662    0    randomus    18    

Генерация кода управляемой формы (декомпиляция элементов) Промо

Инструментарий разработчика Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Изменение форм типовых конфигураций лучше выполнять программно. Эта обработка упрощает добавление элементов на форму, генерируя код создания элементов, реквизитов и команд формы.

29.09.2014    99088    0    ekaruk    127    

[Шпаргалка] Свой диалог выбора типа значения (элемента)

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Для реквизита составного типа необходимо ограничить список выбора типов.

18.02.2020    2368    0    rpgshnik    6    

Динамический список. Апгрейд справочника "Номенклатура" типовой конфигурации с помощью расширения

Практика программирования Работа с интерфейсом v8 УНФ Бесплатно (free)

В данной статье я приведу пример апгрейда справочника "Номенклатура" типовой конфигурации. В основе апгрейда лежат алгоритмы работы с динамическим списком на базе расширения конфигурации.

26.01.2020    6554    0    aximo    26    

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

В данной публикации рассмотрим базовый подход к использованию собственных макетов в СКД на примере формирования небольшого отчета.

13.01.2020    9665    0    aximo    13    

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    23637    0    Tatitutu    12    

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Практика программирования Работа с интерфейсом v8 ДО Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    3131    0    pavelpribytkin96    2    

[СКД] Вывод картинки в результат любого отчета на СКД

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    7190    1    John_d    16    

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом v8 Бесплатно (free)

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

03.12.2019    9331    0    VachKirp    13    

Видеодемонстрация применения Теста-центра для нагрузочного тестирования конфигураций Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Тест-центр – инструмент автоматизации многопользовательских нагрузочных испытаний информационных систем на платформе 1С:Предприятие 8. С его помощью можно моделировать работу предприятия без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях. В видео показан пример с внедрением конфигурации Тест-центра в произвольную информационную базу и создание простого сценария нагрузочного теста.

16.09.2012    34859    0    Aleksey.Bochkov    29    

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом v8 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    7660    0    Vlan    43    

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

12.11.2019    8958    0    John_d    24    

Локализация интерфейсов конфигураций. Практика и инструментарий 1Ci

Работа с интерфейсом Локализация решений v8 Бесплатно (free)

В последнее время компания 1С International все увереннее заявляет о себе на международном рынке. Но для успешного продвижения в этом направлении необходима локализация интерфейсов конфигураций 1С. О том, как выглядит процесс перевода, какие инструменты для этого есть, где брать переводчиков и как проверять их работу, на конференции Infostart Event 2018 Education рассказал руководитель группы локализации компании 1Ci Сергей Поликарпов.

05.11.2019    4118    0    user1069006    1    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

Работа с интерфейсом v8 БП2.0 УПП1 БУ Бесплатно (free)

Для начинающих. Как редактировать дополнительные параметры регламентированного отчета, изменив только модуль формы и модуль объекта. Как сохранить дополнительные параметры в данных отчета.

22.01.2014    19750    0    KapasMordorov    4    

ELK. Время изумительных историй!

Журнал регистрации Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    7503    0    slozhenikin_com    27    

Лайфхаки 1С (часть 2) Настройка работы интерфейса такси. Настройка и советы по работе

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Советы по настройке интерфейса Такси и особенности работы в этой среде.

24.10.2019    7316    0    VachKirp    7    

Создание асинхронных виджетов

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    10932    0    YPermitin    17    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В табличных документах 1С 8 имеется отличная возможность использования группировок, но управление уровнями группировок через контекстное меню не очень удобное. В своих отчетах для управления уровнями группировок я использую маленькие кнопочки на поле табличного документа - это намного удобнее и быстрее, чем через контекстное меню.

09.04.2011    44869    0    mtv:)    74    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Рассматриваем основные подводные камни, с которыми приходится сталкиваться при программной работе с формами, а также способы обхода самых частых проблем.

06.10.2019    10463    0    YPermitin    31    

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Статья рассчитана на пользователей или программистов, которые только начинают работать с 1С, для максимально быстрого ознакомления с интерфейсом программы. В статье приведены лайфхаки, которые позволят вам быстро и эффективно научиться настраивать отчёты и печатные в среде программных продуктов 1С. Полученные знания значительно упростят взаимодействие с интерфейсом 1С и повысят продуктивность работы оператора.

02.10.2019    10815    0    VachKirp    10    

Добавляем виджет "Задачи от меня" в Документооборот 2.1

Практика программирования Работа с интерфейсом v8 v8::Бизнес-процессы ДО Россия Бесплатно (free)

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    6170    0    Sergey_Borisovi4    3    

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.

27.07.2012    31316    0    milkers    10    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    34419    0    rpgshnik    59    

[Механизм интерфейса] Часы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    8812    0    rpgshnik    36    

Произвольная начальная страница через расширение (программно)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    8879    0    nagaitseff    15    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом v8 Розница Бесплатно (free)

Вашему вниманию предлагается текст одного из технических проектов «1С: Розница 8», он описывает процесс разработки интерфейса РМК, с которым, нынче, работают кассиры очень многих магазинов.

29.11.2012    45165    0    aavolkoff    50    

[Механизм интерфейса] Свой флажок (чекбокс)

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.08.2019    12460    15    rpgshnik    42    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    9539    0    IvanAT1981    14    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Практика программирования Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    8980    0    dsdred    9    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

Работа с интерфейсом v8 БП2.0 Россия Бесплатно (free)

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    36344    0    dour-dead    18    

Пользовательские настройки системы компоновки данных

Практика программирования Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

09.07.2019    19667    0    ids79    2    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    34080    0    YPermitin    52    

Выбор вариантов отчета в "Управление торговлей" ред. 11 Промо

Работа с интерфейсом Учет ТМЦ Учет ТМЦ v8 УТ10 Россия БУ Бесплатно (free)

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

27.05.2012    44977    0    1cUserAndrew    25    

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free)

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    16183    0    Viktor_Ermakov    6    

Свой макет оформления отчета

Работа с интерфейсом v8 v8::СКД Россия Бесплатно (free)

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    10772    0    olegpkc    5    

Практика регулярных выражений в 1С или "парсим неудобные форматы" Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В продолжение статьи Использование регулярных выражений (RegExp) в 1С8.х. Углубляемся в практику использования регулярных выражений в 1С. Основы работы с регулярными выражениями хорошо описаны в указанной публикации. А я попробую ответить на вопрос "почему именно регулярные выражения?" на примере конкретной рабочей задачи.

26.10.2011    28925    0    1cspecialist    33    

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

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Вывести на форму таблицу значений, а потом на её место другую, третью, четвёртую? Не вопрос.

11.01.2019    10468    0    Vlad1917    30    

Прикладной пример переработки стандартной формы РМК - Розница

Работа с интерфейсом Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 Розница УУ Бесплатно (free)

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

04.10.2018    17185    0    asdfgcom    58    

Cправочная информация. Картинки.

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    8972    0    aspirator23    2    

Допиливаем форму выбора серий номенклатуры для отображения остатков Промо

Практика программирования Работа с интерфейсом v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

В этой статье я хочу рассмотреть задачу, которая довольно часто возникает у начинающих (и не только) разработчиков, адаптирующих типовые конфигурации (УТ, КА, УПП) на предприятиях торговли. Речь пойдет про отображение остатков в форме выбора серий номенклатуры при подборе в документы. Это актуально в тех случаях, когда не ведется партионный учет по сериям, либо когда документы вводятся неоперативно и нет возможности воспользоваться волшебной кнопкой "Заполнить и провести". На первый взгляд задача банальна, но я хочу показать некоторые "грабли", на которые часто наступают новички в процессе ее реализации, а также сопоставлю алгоритмы решения на платформе 8.1 и 8.2.

20.01.2011    31099    0    practik1c    19    

Итоги в динамическом списке

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагаю вариант, как быстро сделать итоги в динамическом списке, например в форме списка журнала документов.

28.05.2018    13154    0    CXY    16    

Программное управление обычными формами документов и справочников в УПП/КА

Работа с интерфейсом v8 v8::УФ КА1 УПП1 Россия Бесплатно (free)

Если с программным изменением управляемых форм 1С все более или менее понятно, то с программированием обычных форм примеров не так уж много в сети. А уж примеров готовых решений совсем не видно. В данной статье я покажу, как можно реализовать аналог "управляемых" форм в своих конфигурациях с обычными формами и забыть о сложностях обновлений форм.

09.05.2018    11422    0    dima_home    9    

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением

Работа с интерфейсом v8 v8::УФ Беларусь Бесплатно (free)

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    12133    0    Drak87    18    

Красивые графики. Пошаговая инструкция (Highstock)

Работа с интерфейсом v8 Бесплатно (free)

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    16610    0    Degrement    20    

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом

Практика программирования Работа с интерфейсом v8 Россия Бесплатно (free)

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

30.09.2017    19370    0    ah7777777    24    

"Мигаем" интерфейсом, или цепочки асинхронных вызовов

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    15542    0    Chrizt    13    

Выделение строк мышкой (УФ)

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Выделение строк при помощи мышки.

06.06.2017    11573    0    HalfZer0    6