Группирование элементов форм. Блокирование элементов форм

Здравствуйте уважаемые читатели . Сегодня я хотел бы поговорить о наборе очень интересных и полезных возможностей конфигурации ЗУП 3.0 на примере решения конкретной задачи. Набор инструментов, о которых пойдет речь, уже помогла многим моим клиентам автоматизировать довольно сложные вопросы учета . В предыдущей версии программы ЗУП, в редакции 2.5 для этого наверняка потребовалось бы осуществлять доработку типовой конфигурации (про отличия зуп 3.0 от зуп 2.5 можете почитать в ).

Чтобы у Вас сразу была возможность определиться стоит ли читать этот материал, я в этом вступлении приведу условия рассматриваемого примера. Мы рассмотрим ситуацию в некоторой организации, где работают водители. Их основная оплата осуществляется по часовой ставке за отработанное в месяце количество часов (т.е. по фактической Явке — Я). Также в месяце могут быть часы (а может их и не быть), отработанные на ремонте, которые оплачиваются по другой ставке в зависимости от сложности ремонта – 3 уровня сложности.

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

  • Только если введено значение показателя
  • Только если введен вид учета времени

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

Настройка и ввод значения постоянного показателя в 1С ЗУП 3.0. Что такое «Шаблон ввода исходных данных»?




Условия рассматриваемого примера я уже озвучил, поэтому сразу приступим к его решению. Итак, у нас есть сотрудник Фролов Иван Петрович, который является водителем и имеет плановое типовое начисление «Оплата по часовому тарифу» со ставкой 150 руб./час. Также стоит отметить, что сотрудник имеет в качестве основного графика стандартную пятидневку 40 часов в неделю.

Теперь нам необходимо настроить программу для оплаты сотруднику часов, проведенных в ремонте. Настроить наиболее удобным для расчетчика способом. Под наиболее удобным я понимаю такой способ, когда расчетчик вводит только количество часов в ремонте, а всё остальное программа делает сама. Начнем.

Во-первых, нам необходимо внести в программу сведения о размере ставок за 1 час работы в ремонте для каждого из 3-ех уровней сложности ремонта. Для этого откроем справочник «Показатели расчета зарплаты», который находится в разделе главного меню «Настройка».

При создании важно понимать настройки показателя. С названиями ничего сложного нет, вносим так как показано на рисунке ниже или придумываем своё более оригинальное название. Остальные поля рассмотрим подробнее:

  • Назначения показателя – в нашем случае часовые ставки по ремонту будут иметь отношения не к конкретному сотруднику, а действовать для сотрудников всей организации, поэтому выбираем значение «Для организации» ;
  • Тип показателя – часовая ставка — это «Денежный показатель» ;
  • Точность – если часовая ставка указывается с точностью до копеек, то надо указать цифру 2 (это означает два знака после запятой);
  • Является тарифной ставкой – да в нашем случае это так. В соседнем поле выбираем «Часовая тарифная ставка» ;
  • Используется – важно понимать, что данный показатель вводится не ежемесячно, он является условно-постоянной величиной. Почему условно? Потому что раз в год или в два эта ставка всё-таки может изменяться. Поэтому мы указываем переключатель «Во всех месяцах, после ввода значения (постоянное использование)» . Внизу появляется комментарий: «Изменяется периодически при изменении обстоятельств».

В таком же духе создаем ещё два аналогичных по настройкам показателя «Ставка (ремонт 2)» и «Ставка (ремонт 3)».

Теперь нам необходимо ввести конкретные значения по этим показателям. Мы создадим форму, с помощью которой и введем значения. Об этом механизме я уже писал в статье . Если пока не совсем понятно, о чем идет речь, то просто сделайте то, о чем я пишу и через несколько абзацев всё станет ясно.

В разделе главного меню «Настройка» выбираем пункт «Шаблоны ввода исходных данных» и создаем новый элемент этого справочника (другими словами нажимаем кнопочку «Создать»). В этом новом элементе задаем название , например, «Ввод часовых ставок по ремонту для водителей». Чуть ниже указываем, что с помощью этого шаблона мы будем вводить значения постоянных показателей – ставим галочку «Постоянно действующие» . Далее непосредственно выбираем по каким конкретно показателям будут вводиться значения этим шаблоном – ставим галочки напротив показателей, созданных на прошлом шаге. Этих настроек пока будем нам достаточно.

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

  • 1 уровень сложности – 120 руб./час
  • 2 уровень сложности – 130 руб./час
  • 3 уровень сложности – 140 руб./час

Данные показатели действуют с 01.04.2015. Принцип ввода показан на картинке.

Ежемесячные показатели в 1С ЗУП 3.0

Семинар «Лайфхаки по 1C ЗУП 3.1»
Разбор 15-ти лайфхаков по учету в 1с зуп 3.1:

ЧЕК-ЛИСТ по проверке расчета зарплаты в 1С ЗУП 3.1
ВИДЕО - ежемесячная самостоятельная проверка учета:

Начисление зарплаты в 1С ЗУП 3.1
Пошаговая инструкция для начинающих:

Теперь нам необходимо создать ещё 3 показателя, по которым будет вноситься информация о том, сколько часов на ремонте в текущем месяце провел водитель. Это уже будут показатели ежемесячные.

Итак, открываем справочник «Показатели расчета зарплаты». В ЗУП 3.0 он находится в разделе главного меню «Настройка». Создаем новый показатель. Название придумываете сами или заимствуете мой вариант названия. Пройдемся по остальным настройкам:

  • Назначения показателя – данный показатель уже является индивидуальным для конкретного человека, поэтому выбираем значение «Для сотрудника» ;
  • Тип показателя – дело в том, что нет такого варианта как время, поэтому придется выбрать тип «Числовой» , но для себя мы понимаем, что фактически в этом показателе хранятся значения отработанных часов;
  • Точность – теоретически с помощью этой настройки можно настроить ввод показателя с точностью до минуты. Для этого нужно выбрать точность 2, т.е. два знака после запятой. При этом не надо забывать, что 1 час 30 минут – это не 1.3, а 1.5.
  • Используется – во-первых, нам необходимо установить переключатель «Только в месяце, в котором вводится значение (разовое использование)» поскольку у нас показатель вводится ежемесячно. Во-вторых, поскольку мы собираемся вводить общее значение отработанных за месяц часов на ремонте документом «Данные для расчета зарплаты», то нам требуется установить переключатель «Вводится единовременно документом ввода данных для расчета зарплаты».

С точно такими же настройками надо ввести ещё два показателя «Часов на ремонте 2» и «Часов на ремонте 3».

Следующим шагом нам надо создать шаблон, с помощью которого расчетчик будет ежемесячно вводить информацию об отработанных часах на ремонте. В разделе главного меню программы «Настройка» выбираем пункт «Шаблоны ввода исходных данных» и создаем новый элемент, новый шаблон. Настройки будут следующие:

  • Название – например, «Ввод часов отработанных на ремонте» ;
  • Вводятся показатели расчета зарплаты – выбираем «Разовые (используется только в одном месяце) ;
  • Выбираем три показателя, которые мы создали на прошлом шаге . Кстати, обратите внимание, что показатели можно создавать не только из соответствующего справочника (так мы делали), но и непосредственно из документа «Шаблоны ввода исходных данных» — кнопка «Добавить показатель».

И последний штрих. Расчетчику скорее всего будет удобно вводить количество отработанных часов сразу для нескольких сотрудников, поэтому открываем вкладку «Дополнительно» и устанавливаем галочку «В документе используется несколько: сотрудников» . Если посмотреть внимательно, то на вкладке «Дополнительно» есть ещё несколько дополнительных настроек. В рамках этого примера нет повода их рассматривать, но если Вы считаете, что для Вашей ситуации они нужны, то можете , и мы их рассмотрим.

Ну а теперь давайте укажем сколько часов на ремонте отработал наш сотрудник Фролов в Апреле 2015 года. В разделе главного меню «Зарплата» выбираем пункт «Данные для расчета зарплаты» и вводим новый документ вида «Ввод часов отработанных на ремонте». Обязательно указываем месяц начисления «Апрель 2015» и указываем сколько часов наш сотрудник отработал на ремонте по каждому уровню сложности:

  • Ремонт 1 уровня – 2 часа;
  • Ремонт 2 уровня – 4 часа;
  • Ремонт 3 уровня – 0 часов (т.е. просто ничего не вводим, оставляем поле пустым).


Создание «Вида начисления» с произвольной формулой и использованием собственных показателей в 1С ЗУП 3.0

Семинар «Лайфхаки по 1C ЗУП 3.1»
Разбор 15-ти лайфхаков по учету в 1с зуп 3.1:

ЧЕК-ЛИСТ по проверке расчета зарплаты в 1С ЗУП 3.1
ВИДЕО - ежемесячная самостоятельная проверка учета:

Начисление зарплаты в 1С ЗУП 3.1
Пошаговая инструкция для начинающих:

Теперь нам требуется создать вид начисления, в котором будут использоваться данные, введенные через показатели на прошлом шаге. В разделе главного меню «Настройка» ищем пункт «Начисления» — это перечень всех видов начисления программы. В нем мы создаем новый вид начисления. Назовем его, например, «Оплата часов на ремонте» . Теперь давайте пройдемся по настройкам нашего нового вида расчета:

  • Назначение начисления – довольно сложно в нескольких строчках охарактеризовать назначение этого поля. Если коротко, то в данном поле можно выбрать предопределенные разработчиками варианты, которые влияют в целом на настройки, а иногда и на формулу конкретного вида расчета. Чтобы более полно понять это можете повыбирать по очереди каждое значение и посмотреть, как будут меняться настройки у вида начисления. Для нашего примера укажем значение «Прочие начисления и выплаты» .
  • Расчет и показатели – выбираем «Результат рассчитывается», т.е. мы будем вводить формулу;
  • Формула – в формуле мы будем использовать показатели, созданные на предыдущих шагах. Формула будет иметь вид: СтавкаРемонт1*ЧасовНаРемонте1 + СтавкаРемонт2*ЧасовНаРемонте2 + СтавкаРемонт3*ЧасовНаРемонте3 ;
  • Начисление выполняется – следует выбрать вариант «Только если введено значение показателя». Это означает, что начисление по этому способу расчета будет проводиться в текущем месяце только, если у сотрудника были в текущем месяце часы по ремонту, т.е. если введено значение хотя бы одного из показателей: ЧасовНаРемонте1 или ЧасовНаРемонте2 или ЧасовНаРемонте3. Чуть ниже надо обязательно поставить галочки напротив этих показателей.

Теперь мы можем пробовать начислить зарплату сотруднику Фролову за Апрель 2015. Напомню, что документом «Данные для расчета зарплаты» за Апрель были внесены сведения об отработанных часах на ремонте: 2 часа по ставке 1 уровня – 120 руб/час и 4 часа по ставке 2 уровня – 130 руб/час. Мы ожидаем следующей суммы по ремонту: 2*120 + 4*130 = 760 руб. Открываем документ «Начисление зарплаты» и подбором заполняем его сотрудником Фроловым. Мы видим, что помимо основной «Оплаты по часовому тарифу» у сотрудника появилась строчка с видом начисления «Оплата часов на ремонте» с той суммой, которую мы и ожидали.

Чтобы увидеть значения показателей, которые участвовали в расчете этих 760 руб. можно нажать на кнопку «Показать подробности расчета».

При этом хочу обратить Ваше внимание на 1 тонкий момент. Мы не назначали сотруднику начисление «Оплата часов на ремонте» в качестве планового. Программа сама отследила, что в базу за Апрель внесены показатели, используемые в этом виде расчета и при начислении создала нужную строчку. Это стало возможным благодаря настройки «Начисление выполняется: только если введено значение показателя» , которую мы делали в самом виде расчета.

Таким образом, если, например, в мае у сотрудника не было часов на ремонте, то мы и не будем вводить часы в ремонте документом «Данные для расчета зарплаты» и поэтому при заполнении документа «Начисление зарплаты» за Май 2015 будет только одна строка «Оплата по часовому тарифу».

В ЗУП 2.5 подобной возможности не было. Нам пришлось бы в любом случае назначать сотруднику это начисление как плановое и в случае отсутствия часов на ремонте была бы пустая строчка с видом начисления «Оплата часов на ремонте» (про другие отличия зуп 3.0 от зуп 2.5 можете почитать в ).

На этом сегодня всё! В одной из следующих статей я покажу ещё один очень интересный вариант решения этой же задачи, а именно покажу как в ЗУП 3.0 работает механизм использования нескольких видов времени в графике работы . Следите за обновлениями сайта.

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

«Защитой от дурака» называется комплекс мер по пресечению ввода неправильной информации в форме. Например, если в поле требуется ввести положительное число от 0 до 10, то следует проверить, чтобы пользователь не ввёл текст или число, которое не лежит в указанном диапазоне, т. е. число не должно быть меньше нуля и больше десяти.

Почему происходит ввод неправильной информации? Это в основном совершается по трём причинам.

  1. Пользователь ошибся случайно, например, невнимательно прочитал что ему требуется указать.
  2. На веб-странице неоднозначно просят ввести данные, поэтому пользователю приходится гадать и делать предположение, что же в действительности от него хотят. При этом не всегда происходит совпадение мнений разработчика и пользователя.
  3. Есть ряд людей, которые воспринимают инструкции как вызов и стараются поступить наоборот. Такие пользователи рассуждают примерно так: «Ага, меня просят ввести число. А что будет, если я укажу буквы?». После чего задают явно неправильную информацию и смотрят, к чему это приведёт.

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

Обязательное поле

Некоторые поля формы должны быть обязательно заполнены перед их отправкой на сервер. Это, к примеру, относится к форме регистрации, где требуется ввести логин и пароль. Для указания обязательных полей используется атрибут required , как показано в примере 1.

Пример 1. Атрибут required

Обязательное поле

Логин:

Пароль:

Обязательные поля должны быть заполнены перед отправкой формы, иначе форма на сервер не пересылается и браузер выдаст об этом предупреждение. Вид сообщения зависит от браузера (рис. 1).

Рис. 1. Обязательное поле не заполнено

Корректность данных

Исходно имеется два поля в котором вводимые пользователем данные проверяются автоматически. Это веб-адрес и адрес электронной почты. Для этих элементов характерны следующие правила.

  • Веб-адрес ( ) должен содержать протокол (http://, https://, ftp://).
  • Адрес электронной почты ( ) должен содержать буквы или цифры до символа @, после него, затем точку и домен первого уровня.

У браузеров несколько различается политика по проверке данных пользователя. Chrome и Opera требуют, чтобы в почтовом адресе была точка, для Firefox она не обязательна.

В примере 2 показана форма с обязательными полями, в которой два поля проверяется браузером.

Пример 2. Корректность данных

Корректность данных

Заполните форму (все поля обязательны)

Имя:

Email:

Сайт:

Что происходит в Opera при вводе неверных данных показано на рис. 2.

Рис. 2. Предупреждение о неправильных данных

Шаблон ввода

Некоторые данные нельзя отнести к одному из видов элементов формы, поэтому для них приходится использовать текстовое поле. При этом их ввод происходит по определённому стандарту. Так, IP-адрес содержит четыре числа разделённых точкой (192.168.0.1), почтовый индекс России ограничен шестью цифрами (124007), телефон содержит код города и конкретное количество цифр часто разделяемых дефисом (391 555-341-42) и др. Браузеру необходимо указать шаблон ввода, чтобы он согласно нему проверял вводимые пользователем данные. Для этого используется атрибут pattern , а его значением выступает регулярное выражение. Некоторые типовые значения перечислены в табл. 1.

Табл. 1. Регулярные выражения
Выражение Описание
\d Одна цифра от 0 до 9.
\D [^0-9] Любой символ кроме цифры.
\s Пробел.
Только заглавная латинская буква.
Только латинская буква в любом регистре.
[А-Яа-яЁё] Только русская буква в любом регистре.
Любая буква русского и латинского алфавита.
{3} Три цифры.
{6,} Не менее шести латинских букв.
{,3} Не более трёх цифр.
{5,10} От пяти до десяти цифр.
^+$ Любое слово на латинице.
^[А-Яа-яЁё\s]+$ Любое слово на русском включая пробелы.
^[ 0-9]+$ Любое число.

В примере 3 просят ввести шестнадцатеричное значение цвета (#ffcc00) и если оно не лежит в этом диапазоне, браузер выводит сообщение об ошибке.

Пример 3. Шаблон ввода

Ввод цвета

Введите шестнадцатеричное значение цвета (должно начинаться с #)

На рис. 3 показано предупреждение о неверном формате ввода.

Рис. 3. Введённые данные не соответствуют шаблону

Отмена валидации

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

. В примере 4 показано использование этого атрибута.

Пример 4. Отмена валидации

Атрибут novalidate

Для аналогичной цели применяется и атрибут formnovalidate , который добавляется к кнопке для отправки формы, в данном случае к . Тогда форма из примера 4 будет иметь следующий вид.

Для ускорения ввода данных на кассе придумано много технологий и устройств. Причём устройств существенно меньше. Фактически помимо клавиатуры данные можно вводить с помощью сканера штриховых кодов и считывателя магнитных карт. А вот технологий существенно больше и хоть все они базируются на штриховых кодах и магнитных картах, но сферы применения и задачи различаются очень сильно. С помощью штриховых кодов печатают номера чеков, подарочные купоны, коды товаров на этикетках, карточки персонала. Магнитные карты используются в качестве платёжных, скидочных, пропускных. И это только общеупотребительные, можно автоматизировать на их основе какие-то уникальные именно для вашего предприятия процессы.

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

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

Сопоставление

Рассмотрим простейший пример - штриховые коды используются только для маркировки товаров. Больше нигде технология не используется. Значит всё, что было считано сканером должно трактоваться как код товара. Это уже повод сформулировать первый шаблон.

Всё, что считано со сканера есть штриховой код товара .

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

Однако мы быстро выясним, что нам не хватает особой обработки весовых штриховых кодов. Система попросту трактует их как обычные коды. Для использования во внутренних целях (а весовой штриховой код это именно внутреннее использование) была выделены цифра 2 в начале кода. Если код начинается с 2 значит он используется уникальным для магазина способом. Допустим наши этикетки печатаются так, что первые два символа 22, затем идёт код товара и его вес в граммах и всё это печатается кодом EAN-13. И вот у нас появился второй шаблон ввода:

Всё, что считано со сканера и начинается с 22, содержит тринадцать символов есть весовой штриховой код .

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

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

Итог

  • Для сопоставления используются источники события - клавиатура, сканер и считыватель магнитных карт в любой комбинации;
  • Шаблон формируется из кусочков фиксированного текста и произвольного текста, размер которого можно ограничить;
  • Порядком сопоставления можно управлять.

События

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

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

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

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

И разобъём последний блок на четыре части - код товара (5 символов), килограммы (2), граммы (3) и контрольный разряд (1). 5 + 2 + 3 + 1 = 11.

Теперь мы настраивая поле артикул в качестве значения укажем $1, то есть не весь код целиком, а только пять символов, после префикса. Выберем поле "количество" и в качестве его значения укажем $3.$4. То есть возьмём килограммы, поставим точку и добавим граммы, таким образом мы превратим часть кода с весом в привычную числовую форму.

Применим к нашему шаблону код 2207150013502, по нашей схеме код будет расщеплён на 22 07150 01 350 2. В качестве артикула будет использовано 07150, в качестве количества 01.350.

Перечень событий

Обязательные поля выделены.

товар

  • артикул - штриховой или внутренний код товара;
  • количество - можно использовать количество, например для весового штрихового кода;
  • код EAN13 - возможность проверить, что указанное значение соответствует кодировке EAN13.

платёжное средство

  • 2-й трек магнитой карты - трек магнитной карты;
  • средство оплаты - средство оплаты, которое будет активировано прочитанной картой. Считанный номер использоваться для авторизации карты.

скидка

  • скидка - скидка которая будет активирована. Можно использовать только те скидки, которые активируются кассиром, а не автоматически;
  • номер карты - если скидка работает с картами, но можно сразу извлечь номер карты;
  • начальное значение даты - возможность указать или извлечь начальную дату действия. Дата ожидается в формате YYYY.MM.DD HH:MM:SS, разделители могут быть произвольными;
  • конечное значение даты - ограничение действия, формат даты как и в предыдущем поле.

дисконтная карта

клиент

  • номер карты - номер карты клиента заведённой в Маркетинг→Клиенты.

заказ

  • артикул - идентификатор заказа. Заказ формируется либо на ТСД либо конвертером "Стандартный импорт 4".

услуга

  • услуга - услуга заведённая в Администрирование→Оплата услуг;
  • код EAN13 - поле используется так же, как в событии товар;
  • 2-й трек магнитой карты - используется в НеттоПроцессинг .

подарочный сертификат

  • номер карты - номер сертификата для продажи.

продавец

  • код продавца

авторизация кассира

  • код кассира
  • пароль кассира

Итог

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

Примеры

Товар

Допустим, в магазине необходимо настроить Систему таким образом, чтобы на кассе с помощью сканера считывались товары с кодировками EAN-8 и EAN-13, а так же весовой товар. При необходимости, нужна возможность ввода кода товаров с клавиатуры.

Примечание:

Коды EAN-8 и EAN-13 содержат только цифры и никаких букв или других символов.

EAN-13

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

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

EAN-8

Примечание:

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

Шаблон для автоматизированного процесса приемки товаров для торговых объектов

После указания наименования шаблона необходимо сформировать структуру. Группа «Структура» далее «+ Добавить элемент» :

При создании структуры необходимо внести в интерфейс следующие значения:

  • «Произвольное содержимое указанной длины»;
  • «От …» - внести единицу «1»;
  • «До …» - оставить пустое значение.

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

При описании источника данных необходимо выбрать следующие параметры:

  • «Клавиатура»;
  • «Считыватель МК» - не используется;
  • «Сканер»;
  • «Приоритет» -100
  • «Событие» - товар.

В разделе «Поля» необходимо ввести фиксированное значение «$1» :

После сохранения шаблона ввода необходимо произвести привязку данного шаблона к действующим объектам:

В разделе «Шаблон используют магазины» по кнопке «Изменить» открывается список объектов. Администратор должен выбрать те объекты, для которых данных шаблон будет использоваться, и установить на данных объектах соответствующий флаг. После чего шаблон сохраняется и принимается в работу.

Весовой товар

Внимание!

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

Настроим приём весовых штриховых кодов исходя из того, что этикетки на вашем предприятии снабжают такие коды префиксом 22.

артикул - $2

Если в базе данных весовые товары заведены вместе в префиксом 22, то поле артикул должно иметь вид $1$2.

количество - $3.$4

где $3 - количество кг, $4 - количество г.

Если сканер настроен так, что контрольный разряд не передаётся, то последний блок $5 нужно удалить.

Платёжное средство

Настроим приём стандартных международных пластиковых карт.

средство оплаты - необходимо выбрать соответствующее платёжное средство, которым будет зарегистрирован платёж.

2-й трек магнитой карты - $0

Авторизация кассира

Внимание!

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

Для карты указываются поля "код кассира" и "пароль кассира" .

Возможны следующие ситуации:

1. Указан "код кассира" и "пароль кассира": Пользователь находится по коду, потому проверяется соответствие пароля.

2. Указан "код кассира": Пользователь находится по коду, проверки пароля нет.

3. Указан "пароль кассира": Пользователь находится по паролю.

Переход между полями с помощью табуляции

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

Блокирование элементов форм

У любого элемента формы есть два состояния, которые ограничивают доступ к элементу или ввод данных, - блокирование (disabled) и только для чтения (readonly)

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

Подсказывающий текст

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