Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8 ( Версия 8.1.0.23 ) (материал с диска ИТС за январь 2008 г.)
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8 ( Версия 8.1.0.23 ) (материал с диска ИТС за январь 2008 г.)

Общие сведения о редакциях и версиях конфигураций

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

Редакция - внесение существенных изменений в структуру учета, требующих преобразования данных.
Формальным, но не обязательным, признаком новой редакции является необходимость переноса данных путем конвертации.
При выпуске новой редакции желательно обеспечивать переход с сохранением данных. Если по каким либо причинам это невозможно, необходимо описать процедуру перехода на новую редакцию (начало работы, перенос начальных остатков и т.д.)

 

 





Полный номер версии

Номер версии конфигурации представляет собой строку символов следующего вида:

{РР}.{П|ПП}.ЗЗ.СС

где:
Р - номер редакции (2 цифры);
П - номер подредакции (минимум 1 цифра, может занимать и больше разрядов);
ЗЗ - номер версии (2 цифры);
С – номер сборки (минимум 1 цифра, может занимать и больше разрядов).

Пример
10.1.11.25 – 25-я сборка 11-ой версии редакции 10.1 типовой конфигурации «Торговля+Склад» для 1С:Предприятия 8.0.

 






Нумерация редакций

Нумерация редакций уже существующих конфигураций наследуется от 1С:Предприятия 7.7.
В этом случае номер очередной редакции конфигурации, но уже для платформы 1С:Предприятия 8.0, начинается со следующего целого номера.

Пример
Текущая редакция конфигурации «Торговля+Склад» для 1С:Предприятия 7.7 имеет номер 9.2.
Редакция этой конфигурации для платформы 1С:Предприятие 8.0 будет иметь номер 10.0.

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

Смотри так же: "Нумерация версий".

 




Нумерация версий

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

 

"Выходные данные" редакций и версий

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

Редакции конфигурации устанавливаются следующие свойства.

Свойства конфигурации

Имя образуется по правилам образования имен из синонима; слово «редакция», номер редакции и подредакции – не указываются
Краткая информация повторяет синоним
Подробная информация повторяет синоним
Поставщик указывается "Фирма "1С"
Номер версии указывается в соответствии с правилами нумерации версий (см. выше в этом же документе)


Номер версии указывается в соответствии с правилами нумерации версий.

 

 




Оформление модулей

 


Создание общих модулей

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

 

 

Правила образования имен переменных модуля приложения и внешнего соединения

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

Перем глДа Экспорт; // Перечисление.Булево.Да Перем глНет Экспорт; // Перечисление.Булево.Нет Перем глРубли Экспорт; // Справочник.Валюты.Рубли Перем глДоллары Экспорт; // Справочник.Валюты.Доллары Перем глРазделительДроби Экспорт; // Строка[1] (например ".") Перем глРазделительТриад Экспорт; // Строка[1] (например "'")

 

Количество пробелов подбирается "по месту".

 


Структура модулей

1. Модуль разделяется на условные секции:
- секция описания переменных (кроме общих модулей);
- секция «служебных» функций и процедур (не вошедших в другие секции);
- секция обработчиков событий, вызываемых из элементов форм (для модулей форм);
- секция обработчиков системных событий;
- секция тела модуля.

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

Разделение модуля на секции не обозначается комментариями.

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

3. Используемые обработчики событий описываются в порядке их описания в окне свойств формы, ЭУ и т.д.

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

Глобальный контекст
ПередНачаломРаботыСистемы()
ПриНачалеРаботыСистемы()
ПередЗавершениемРаботыСистемы()
ПриЗавершенииРаботыСистемы()
ОбработкаВнешнегоСобытия()

Справочники
ПриУстановкеНовогоКода()
ПриКопировании()
ОбработкаЗаполнения()
ПередЗаписью()
ПриЗаписи()
ПередУдалением()

Документы
ПриУстановкеНовогоНомера()
ПриКопировании()
ОбработкаЗаполнения()
ПередЗаписью()
ПриЗаписи()
ПередУдалением()
ОбработкаПроведения()
ОбработкаУдаленияПроведения()

 
































Блоки модуля

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

В случае необходимости обозначить блок модуля, это следует делать таким образом:
Пример обозначения блока модуля

//////////////////////////////////////////////////////////////////////////////// // ЗАГОЛОВОК БЛОКА // // Первый абзац описания блока модуля // продолжение первого абзаца описания блока модуля // продолжение первого абзаца описания блока модуля. // // Второй и последующие абзацы описания блока модуля // продолжение второго и последующих абзацев описания блока модуля // продолжение второго и последующих абзацев описания блока модуля. <пустая строка> Разбор примера //////////////////////////////////////////////////////////////////////////////// Обязательная строка. Разделитель блоков модуля. Всего 80 символов. // ЗАГОЛОВОК БЛОКА Название блока большими буквами. Впереди 1 пробел. // Если есть описание блока, добавляется обязательная закомментированная пустая строка. // Первый абзац описания блока модуля // продолжение первого абзаца описания блока модуля // продолжение первого абзаца описания блока модуля. Первый абзац описания блока модуля. Между символами «//» и началом строки описания вставляется 1 пробел. В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку. // Необязательный элемент - пустая закомментированная строка. При необходимости выделить крупные логические куски в описании, их следует разделять пустыми закомментированными строками. // Второй и последующие абзацы описания блока модуля Первая строка второго и последующих абзацев описания блока модуля. Между «//» и началом строки описания вставляются 2 пробела. В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку. // продолжение второго и последующих абзацев описания блока модуля // продолжение второго и последующих абзацев описания блока модуля. НЕ первая строка второго и последующих абзацев описания блока модуля. Между символами «//» и началом строки описания вставляется 1 пробел. В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку. <пустая строка> Обязательная пустая строка. В модулях могут быть назначены блоки с такими названиями: //////////////////////////////////////////////////////////////////////////////// // ЭКСПОРТНЫЕ ПРОЦЕДУРЫ // //////////////////////////////////////////////////////////////////////////////// // ПЕРЕМЕННЫЕ МОДУЛЯ // //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ // //////////////////////////////////////////////////////////////////////////////// // ОБРАБОТЧИКИ СОБЫТИЙ // //////////////////////////////////////////////////////////////////////////////// // ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ //


Могут быть добавлены и другие блоки.

 




Заголовок модуля

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

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

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

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

// Первый абзац описания модуля // продолжение первого абзаца описания модуля // продолжение первого абзаца описания модуля. // // Второй и последующие абзацы описания модуля // продолжение второго и последующих абзацев описания модуля // продолжение второго и последующих абзацев описания модуля. <пустая строка> Разбор примера // Первый абзац описания модуля // продолжение первого абзаца описания модуля // продолжение первого абзаца описания модуля. Первый абзац описания модуля. Между символами «//» и началом строки описания вставляется 1 пробел. В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку. // Необязательный элемент - пустая закомментированная строка. При необходимости выделить крупные логические куски в описании, их следует разделять пустыми закомментированными строками. // Второй и последующие абзацы описания модуля Первая строка второго и последующих абзацев описания модуля. Между «//» и началом строки описания вставляются 2 пробела. В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку. // продолжение второго и последующих абзацев описания модуля // продолжение второго и последующих абзацев описания модуля. НЕ первая строка второго и последующих абзацев описания модуля. Между символами «//» и началом строки описания вставляется 1 пробел. В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку. <пустая строка> Обязательная пустая строка.

 

 


Тексты модулей

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

А = 0; Б = 0; С = 0;


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

С крайней левой позиции должны начинаться только:
- операторы Процедура, КонецПроцедуры, Функция, КонецФункции;
- операторы предварительного объявления процедур и функций;
- заголовки процедур и функций;
- операторы объявления глобальных переменных модуля;
- операторы "раздела основной программы" (с учетом синтаксического отступа).

Внимание!
Функции НачатьТранзакцию() и ЗафиксироватьТранзакцию() не являются операторными скобками, поэтому текст «внутри» этих функций не сдвигается.

Ключевые слова пишутся канонически (как в документации или Синтакс Помощнике), например:
правильно:

КонецЕсли

неправильно:

конецЕсли, КОНЕЦЕСЛИ, конецесли, Конецесли.


При длине строки более 80 символов следует использовать переносы. Не следует делать строки длиннее 120 символов, за исключением тех случаев, когда перенос невозможен по каким-либо веским соображениям.
При переносах отступ от начала строки делается следующим образом:
- сначала ставится такое же количество табуляций, какое было использовано в первой строке для соблюдения синтаксического отступа;
- затем строка «отгоняется» на нужную позицию пробелами.

 

















Перенос выражений

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

Пример

ВременнаяСтрока = ВременнаяСтрока + ", НП (в т. ч.): " + обФорматСумм(Спецификация.Итог("СуммаНП"));

 

Оформление конструкций встроенного языка. Общие требования

Следует отделять друг от друг пробелами:
- ключевые слова;
- вызовы процедур и функций
- параметры процедур и функций внутри скобок;
- операторы;
- имена переменных;
- константы;
- знак "=", знаки арифметических операций "+", "-", "*"», "/"».

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

 

  Выравнивание операторов присваивания При следовании друг за другом нескольких "однотипных" операторов присваивания, допускается выравнивать их следующим образом:
Длг.ПолноеИмяФайла = ИмяФайла; Длг.Каталог = ИмяПути; Длг.Заголовок = "Выберите файл со списком запросов"; Длг.Фильтр = "Файлы запросов (*.sel)|*.sel|Все файлы (*.*)|*.*"; Длг.Расширение = "sel";


Еще пример:

ОбластьЗаголовка.Шрифт = Новый Шрифт(ОбластьЗаголовка.Шрифт, , , Истина, , ,); ОбластьЗаголовка.ЦветФона = Новый Цвет(255, 255, 0); ОбластьЗаголовка.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);


Однако не следует выравнивать операторы одинаково по всему модулю - вполне допустимо делать различное выравнивание для разных групп расположенных рядом операторов.

Неправильно:

//операторы в функции НайтиСоздатьЕдиницу(), выделенные жирным шрифтом, //не надо было выравнивать так же, как и аналогичные операторы в функции НайтиСоздатьВалюту(). Функция НайтиСоздатьВалюту(Код, Наименование, НаименованиеПолное, ПараметрыПрописиНаРусском) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; СправочникОбъект.ПараметрыПрописиНаРусском = ПараметрыПрописиНаРусском; … КонецФункции Функция НайтиСоздатьЕдиницу(Код, Наименование, НаименованиеПолное) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; … КонецФункции


Правильно:

Функция НайтиСоздатьВалюту(Код, Наименование, НаименованиеПолное, ПараметрыПрописиНаРусском) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; СправочникОбъект.ПараметрыПрописиНаРусском = ПараметрыПрописиНаРусском; … КонецФункции Функция НайтиСоздатьЕдиницу(Код, Наименование, НаименованиеПолное) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; … КонецФункции

 

 

Заголовки процедур и функций (кроме обработчиков)

Процедуры и функции (кроме обработчиков) должны предваряться заголовком.
Заголовок размещается перед объявлением процедуры (функции)и поясняет назначение и использование функции (процедуры).

Заголовок имеет следующий формат:

// Первый абзац описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции). // // Второй и последующие абзацы описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции). // // Параметры: // ПараметрОдин – Тип.Вид – описание параметра. // продолжение описания параметра. // ПараметрДва – Тип.Вид – описание параметра. // продолжение описания параметра. // // Возвращаемое значение: // Нет.


или

// Тип.Вид – описание возвращаемого значения // продолжение описания возвращаемого значения.


или

// Значение1 – описание случая 1 // продолжение описания случая 1. // Значение2 – описание случая 2 // продолжение описания случая 2. // <Функция (Процедура)> ИмяПроцедурыФункции(ПараметрОдин, Знач ПараметрДва, ПараметрТри=0,…) <пустая строка> Перем Переменная1; <пустая строка> Операторы; <пустая строка> КонецПроцедуры или КонецФункции // ИмяПроцедурыФункции() <пустая строка>

 

Секция «Описание»
Может присутствовать в заголовке функции (процедуры), если требуется дополнительное разъяснение назначения и принципов работы функции (процедуры), а комментариев, присутствующих в тексте функции (процедуры), недостаточно.

// Первый абзац описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции). // // Второй и последующие абзацы описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции).


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

Описание функции (процедуры) должно пояснять не только, ЧТО она делает, но и ЗАЧЕМ.
НЕ следует вставлять в описание рассказ про возвращаемое значение - для этого предназначена секция "Возвращаемое значение".

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

// Эта функция проверяет спецификацию документа на дубли товара Функция ПроверкаДублейСтрок(Конт) Экспорт СписокТоваров=СоздатьОбъект("СписокЗначений"); …


Пример хорошего описания функции

// Функция проверяет многострочную часть документа на наличие строк, // содержащих одинаковый товар, с целью последующего объединения. Такие строки // должны быть «слиты» в одну.

 

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

Секция "Параметры".
Обязательно должна присутствовать, если у процедуры или функции есть параметры. Если их нет, секция может быть пропущена.

// // Параметры: // <Параметр1> - тип и описание параметра 1 // продолжение описания параметра 1 // <Параметр2> - тип и описание параметра 2 // продолжение описания параметра 2 и так далее.

 

Ключевое слово "Параметры" должно оканчиваться двоеточием.
В секции "Параметры" описание собственно параметров должно начинаться со следующей строки после названия секции. Каждый параметр описывается на отдельной строке, между "//" и именем параметра вставляются 2 пробела, описание заканчивается точкой.

Если описание параметра или параметров занимает несколько строк, начало описания параметра выравнивается по 20 позиции (не считая тире, то есть тире начинается с 18 позиции строки).
Если имя параметра короче - описание все равно выравнивается по 20 позиции. Если имя параметра длиннее - первая строка пишется с той позиции, где получится, остальные выравниваются по 20 позиции. Выравнивание выполняется пробелами.
Пример:

// Параметры: // ПараметрСОченьДлиннымИменем - описание параметра с очень длинным именем, // которое может занимать одну и более строк, текст в этой // и последующих строках начинается с 20 позиции // КорИмя - имя этого параметра - короткое, поэтому выравнивать его // следует по 20 позиции.

 

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

// // Возвращаемое значение: // <Описание возвращаемого значения или слово "Нет">.

 

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

// Возвращаемое значение: // Истина - найден реквизит с переданным именем; // Ложь - не найден реквизит с переданным именем.


Расположение и выравнивание текста - как при описании параметров (см. выше).

Конец процедуры и функции
Если текст процедуры (функции) занимает более одного экрана, то в строке с операторами КонецПроцедуры, КонецФункции должен быть комментарий с именем процедуры (функции).
В конце процедуры (функции), после ключевого слова КонецПроцедуры (КонецФункции) после 1 пробела ставится символ комментария "//" и еще через пробел повторяется имя процедуры (функции), после имени процедуры (функции) ставятся пустые скобки.

КонецПроцедуры // ИмяПроцедуры() или КонецФункции // ИмяФункции()

 

После оператора КонецПроцедуры, КонецФункции должна оставляться пустая строка.

КонецПроцедуры // Сформировать() <пустая строка>

 

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

Например:
// Процедура назначается динамически действию кнопки командной панели КоманднаяПанельформы.КнопкиДействий.Кнопка
или
// Функция подключается в качестве обработчика ожидания для автополучения электронных писем

 












































Обработчики событий

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

// Обработчик события <имя события> <вид реквизита/объекта> <имя реквизита/объекта>.


Описание может пояснять выполняемые в обработчике действия.
Пример описания обработчика события

// Обработчик события ПриВыводеСтроки табличной части Спецификация. // Формирует данные в колонке "Всего". // Процедура СпецификацияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) <пустая строка> Перем Переменная1; <пустая строка> Операторы; <пустая строка> КонецПроцедуры // СпецификацияПриВыводеСтроки()

 





Комментарии в модулях

Тексты модулей должны содержать комментарии.
Комментарии могут быть:
- к модулю в целом - в этом случае они располагаются в начале модуля (заголовок модуля);
- к оператору (операторам).

Комментарии могут быть длинными и короткими.

Длинные комментарии.
Длинные комментарии занимают отдельную строку или несколько строк. Они должны располагаться ПЕРЕД комментируемым оператором или группой операторов. Длинные комментарии составляются по правилам русского языка, то есть должны начинаться с большой буквы и заканчиваться точкой. Следует проверять текст комментария на отсутствие грамматических и синтаксических ошибок.
Текст длинного комментария должен быть выровнен по левой границе комментируемого оператора (первого оператора группы операторов).
Межу символами комментария "//" и текстом комментария должен быть пробел.
При длине строки комментария более 80 символов можно начинать делать переносы. Строки не должны быть длиннее 120 символов.
Пример.

// комментарий // комментарий оператор; // комментарий // комментарий оператор; оператор; оператор;

 

Перед первой строкой комментария должна быть пустая строка и после последнего комментируемого оператора должна быть пустая строка. Это может быть одна и та же строка.
Пример:

<пустая строка> // комментарий // комментарий оператор; оператор; оператор; <пустая строка> // комментарий // комментарий оператор; оператор; … Короткие комментарии Короткие комментарии могут располагаться в той же строке, что и оператор. Короткий комментарий должен начинаться с маленькой буквы и не должен заканчиваться точкой. При длине строки более 80 символов можно начинать делать переносы. Строки не должны быть длиннее 120 символов. Пример: оператор; // комментарий

 

Как правило, короткий комментарий должен занимать одну строку. Если короткий комментарий занимает более одной строки, его можно переносить на следующую строку. Начало второй и последующих строк короткого комментария выравнивается по левой границе первой строки. Оператор, следующий за комментируемым оператором, в этом случае должен начинаться с первой свободной строки.
Пример:

оператор1; // комментарий // продолжение комментария // продолжение комментария оператор2; // комментарий

 

Содержание и оформление комментариев.
Комментарии должны быть достаточно пространными, чтобы пояснять работу комментируемого оператора (операторов) или назначение объявляемой переменной. Текст комментария должен быть формальным, не содержать эмоций и слэнга.
Например:
вместо «статиков» следует использовать «надписи» или «информационные строки»;
вместо «контрол» следует использовать «элемент управления».

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

Названия процедур и функций в комментариях приводятся так, как они написаны в коде.
Неправильно:

// Вызывается из "при открытии" этой формы и из "после записи" формы счета-фактуры.


Правильно:

// Вызывается из обработчика ПриОткрытии этой формы и из обработчика ПослеЗаписи формы счета-фактуры.

 

 




















Обработчики событий

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

 




Требования к реквизитам объектов метаданных и форм

 

 

Имя, синоним, комментарий

 

Имя

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

Для реквизитов объектов допускается переставлять слова из синонима местами, например: синоним «Полное наименование», имя «НаименованиеПолное». Для ведущих объектов подобное не допускается.

 



Синоним

Синоним объекта должен быть определен так, чтобы осмысленно описывать объект.
Сокращения допускаются только общепринятые, например, «ОКЕИ», «ИНН».
Следует избегать излишне длинных синонимов, но и укорачивать их с потерей смысла тоже плохо.

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

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

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

Для макетов унифицированных форм синоним должен состоять из названия формы, например: «ТОРГ-12».

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

 






Комментарий

Комментарий задается только в тех случаях, когда необходимы какие-либо пояснения.
Если в синониме использовано сокращение, в комментарии необходимо его расшифровать, например: «Общероссийский классификатор единиц измерения».

Для реквизитов объектов в комментариях в необходимых случаях должно содержаться уточнение, например: «Сумма со всеми налогами».

Комментарий начинается с большой буквы, точки ставятся только после сокращений




Общие положения работы с хранилищем конфигурации

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

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

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

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

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

 


Комментарии к версиям хранилища конфигурации

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

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

Если для учета ошибок и задач по разработке конфигурации ведется специализированная информационная база, то в первой строке комментария указывается код задачи (ошибка), изменения по которой вносятся в текущую версию хранилища конфигурации, в виде:
// NNNNN

Например: // 03032 Если необходимо указать несколько кодов задач, они указываются через запятую: // NNNNN, NNNNN, NNNNN


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

Ниже пишется сам текст комментария.

Никакой другой информации указывать не требуется.

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

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

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

Строки комментария, которые не должны включаться в отчет по хранилищу, выделяются символами // (два слеша) в начале строки.

Если символы // располагаются где-то в середине строки, в отчет по хранилищу не будет включаться часть строки от символов «//» до конца строки.

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

Например, неправильно: «Для текста в колонке «Всего» было ошибочно установлено выравнивание "влево", правильно - "вправо"». Правильно: «В табличных частях документа "Реализация товаров" для текста в колонке «Всего» было ошибочно установлено выравнивание "влево", правильно - "вправо"».


Если объектов не очень много, их названия следует давать так, как они указаны пользовательском интерфейсе.
Если объектов много, достаточно общее упоминание, например: «Для всех документов подсистемы «Заказы» сделано то-то и то-то».

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

 

 















Подготовка версий конфигураций

 

Подготовка отчета по комментариям

Отчет по комментариям представляет собой описанием изменений, внесенных в конфигурацию с момента выпуска предыдущей версии, с перечислением для каждого изменения объектов конфигурации, которые были изменены. Отчет по комментариям является «зеркальным» по отношению к отчету по измененным объектам.
1. Получение отчета по комментариям
Для получения отчета с группировкой «по комментариям» формируется отчет по истории хранилища с параметрами:

Отчет по – Комментариям к версиям хранилища
Выводить в - Табличный документ
Не выводить строки комментария, начинающиеся с «//..» - Да.

В диалоге «Отбор версий хранилища» указывается:

Диапазон версий хранилища: С версии <начальный номер> По версию <конечный номер>
Выводить метки - Нет
2. Оформление отчета по комментариям
Полученный отчет сохраняется с именем

<Название конфигурации>. Версия <номер версии>. Изменения в версии.mxl

Например:

Управление торговлей. Версия 10.2.3. Изменения в версии.mxl

Из отчета убирается служебная информация:
• путь к хранилищу;
• дата и время формирования отчета.

Вместо них в файл помещаются строки с указанием названия конфигурации и номера версии в виде:

1С:Предприятие 8.0 Конфигурация <Название конфигурации>, редакция <номер редакции> Версия <номер версии без номера сборки>


например:

1С:Предприятие 8.0 Конфигурация Управление торговлей, редакция 10.2 Версия 10.2.3

 











Подготовка отчета по измененным объектам

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

1. Получение отчета по измененным объектам
Для получения отчета с группировкой «по объектам» формируется отчет по истории хранилища с параметрами:

Отчет по - Объектам разработки
Выводить в - Табличный документ
Не выводить строки комментария, начинающиеся с «//..» - Да.

В диалоге «Отбор версий хранилища» указывается:

Диапазон версий хранилища: С версии <начальный номер> По версию <конечный номер>
Выводить метки - Нет

2. Оформление отчета по объектам
Полученный сохраняется с именем

<Название конфигурации>. Версия <номер версии без номера сборки>. Измененные объекты.mxl

например:

Управление торговлей. Версия 10.2.3. Измененные объекты.mxl

Из отчета убирается служебная информация:
• путь к хранилищу;
• дата и время формирования отчета.

Вместо них в файл помещаются строки с указанием названия конфигурации и номера версии в виде:

1С:Предприятие 8.0 Конфигурация <Название конфигурации>, редакция <номер редакции> Версия <номер версии без номера сборки>

 

например:

1С:Предприятие 8.0 Конфигурация Управление торговлей, редакция 10.2 Версия 10.2.3

 








Подготовка описания изменений в версии

Описание изменений в версии предназначено, в первую очередь, для конечных пользователей. Этот файл используется партнерами для доведения информации до своих клиентов.

Описание состоит из двух основных частей:
• «Новое в версии» - описание того нового, что появилось в версии;
• «Смотрите также…» - перечень дополнительной информации.

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

Подготовка раздела «Смотрите также…»
В разделе «Исправлено и изменено» приводится перечень того, где можно посмотреть дополнительную информацию.

Образец раздела «Смотрите также…»

Смотрите также 1. Версия предназначена для обновления с конфигурации версии (-й) <полный номер предыдущей версии [[, полный номер предыдущей версии [,полный номер предыдущей версии]]]>. 2. Порядок обновления версии и дополнительная информация приведена в файле ReadMe.txt. 3. Перечень изменений в версии и исправленные ошибки приведен в файле <Название конфигурации>. Версия <номер версии>. Изменения в версии.htm .

 

Именование файла
Файлу присваивается имя:

<Название конфигурации>. Версия <номер версии без номера сборки>. Новое в версии.htm ,

например: Управление торговлей. Версия 10.2.3. Новое в версии.htm


Для редактирование файла необходимо использовать HTML-редактор «1С:Предприятия 8.0».

 









Подготовка файла 1cv8upd.htm

Файл 1cv8upd.htm включает описание порядка обновления версии и другую дополнительную информацию, которую должен узнать пользователь до того, как он будет обновлять версию.

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

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

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

Образец раздела «Порядок обновления»

Порядок обновления конфигурации версии (-й) <полный номер предыдущей версии [[, полный номер предыдущей версии [,полный номер предыдущей версии]]]> на версию <полный номер текущей версии> ================================================================= Для обновления версии конфигурации следует использовать режим "Обновление конфигураций". Файл обновлений 1Cv8.cfu находится в подкаталоге tmplts\1c\<условное имя конфигурации\<номер версии>\ каталога установки 1С:Предприятия 8.0. 1. Запустите систему 1С:Предприятие в режиме "Конфигуратор". 2. Сделайте архивную копию вашей информационной базы. Для этого в меню "Администрирование" выберите пункт "Выгрузка информационной базы" и в открывшемся диалоге укажите имя файла, в который будут записаны данные. 3. Откройте конфигурацию, для этого в меню "Конфигурация" выберите пункт "Открыть конфигурацию". 4. Вызовите режим "Обновление конфигураций", для этого в меню "Конфигурация", подменю "Поддержка", выберите пункт "Обновить конфигурацию". 5. В диалоге выбора обновления в качестве источника обновления укажите "Доступные обновления", после чего выберите нужное обновление в соответствующем списке. 6. Если в списке обновлений необходимое обновление отсутствует, то в диалоге выбора обновления в качестве источника обновления укажите "Файл обновления", после чего выберите нужный файл обновления. 7. В окне "Обновление конфигураций" нажмите кнопку "OK" для продолжения обновления конфигурации. 8. После завершения будет открыто окно "Конфигурация", содержащее конфигурацию с внесенными изменениями. Выполните сохранение конфигурации.

 

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

Порядок обновления конфигурации версий 8.0.10.5, 8.0.10.4, 8.0.10.3 на версию 8.0.10.6 ----------------------------------------------------------------- Для обновления версии конфигурации следует использовать режим "Обновление конфигураций". Файл обновлений 1Cv8.cfu находится в подкаталоге tmplts\1c\trade\8_10_0_<номер сборки>\ каталога установки 1С:Предприятия 8.0. 1. Запустите систему 1С:Предприятие в режиме "Конфигуратор". 2. Сделайте архивную копию вашей информационной базы. Для этого в меню "Администрирование" выберите пункт "Выгрузка информационной базы" и в открывшемся диалоге укажите имя файла, в который будут записаны данные. 3. Откройте конфигурацию, для этого в меню "Конфигурация" выберите пункт "Открыть конфигурацию". 4. Вызовите режим "Обновление конфигураций", для этого в меню "Конфигурация", подменю "Поддержка", выберите пункт "Обновить конфигурацию". 5. В диалоге выбора обновления в качестве источника обновления укажите "Доступные обновления", после чего выберите нужное обновление в соответствующем списке. 6. Если в списке обновлений необходимое обновление отсутствует, то в диалоге выбора обновления в качестве источника обновления укажите "Файл обновления", после чего выберите нужный файл обновления. 7. В окне "Обновление конфигураций" нажмите кнопку "OK" для продолжения обновления конфигурации. 8. После завершения будет открыто окно "Конфигурация", содержащее конфигурацию с внесенными изменениями. Выполните сохранение конфигурации.

 

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

Пример.
Пример содержимого раздела «Порядок обновления конфигураций» в том случае, если конфигурация до текущей версии с разных предыдущих версий обновляется по-разному.

 

Порядок обновления конфигурации версий 8.0.10.5, 8.0.10.3 на версию 8.0.10.6 ----------------------------------------------------------------- Для обновления версии конфигурации следует использовать режим "Обновление конфигураций". Файл обновлений 1Cv8.cfu находится в подкаталоге tmplts\1c\trade\8_10_0_<номер сборки>\ каталога установки 1С:Предприятия 8.0. <описание порядка обновления> Порядок обновления конфигурации версии 8.0.10.4 на версию 8.0.10.6 ----------------------------------------------------------------- Для обновления версии конфигурации следует использовать режим "Обновление конфигураций". Файл обновлений 1Cv8.cfu находится в подкаталоге tmplts\1c\trade\8_10_0_<номер сборки>\ каталога установки 1С:Предприятия 8.0. <описание порядка обновления>

 





Подготовка файла ReadMe.txt

Файл ReadMe.txt содержит:
• список-описание дополнительных файлов дистрибутива;
• важную информацию, которую необходимо донести до пользователя.

Файл ReadMe.txt является текстовым файлом. Формат файла – текст Windows.
Длина строки и количество символов «=» в подчеркивании заголовков – 65 символов.

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

Все разделы, включенные в файл ReadMe.txt, в содержании перечисляются под номерами.

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

эта информация помещается сразу после заголовка файла до содержания.

Образец шапки файла ReadMe.txt

1С:Предприятие 8.0 <Наименование продукта в соответствии с приказом> Конфигурация <Название конфигурации>, редакция <номер редакции> Версия <номер версии> ================================================================= В этом файле содержится: 1. Смотрите также… 2. Важная информация Пример шапки файла ReadMe.txt 1С:Бухгалтерия 8.0 Конфигурация "Бухгалтерия предприятия", редакция 1.0 Версия 1.0.4 ================================================================= Внимание! Перед установкой конфигурации проверьте, чтобы на жестком диске было не менее 100 Мб свободного пространства! В этом файле содержится: 1. Смотрите также… 2. Важная информация


Каждый раздел начинается с заголовка, который повторяет строку из содержания файла, и подчеркивается строкой из 65 символов «-».

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

Раздел «Смотрите также…»
Этот раздел содержит ссылки и краткое описание других информационных файлов дистрибутива.

Пример раздела «Смотрите также…»
Информация – условная.

Смотрите также… ----------------------------------------------------------------- Файл Краткое описание конфигурации.htm содержит краткое описание основных функциональных возможностей конфигурации "Управление торговлей", редакция 10.2. Файл Новое в редакции.htm содержит описание новшеств, которые появились в редакции 10.2, по сравнению с редакцией 10.1. Файл Порядок перехода.htm содержит описание порядка перехода на версия 10.2.1 конфигурации "Управление торговлей", редакция 10.2, с версии 10.1.18 конфигурации "Управление торговлей", редакция 10.1. Ознакомится с этим файлом необходимо всем пользователям, которые переходят на редакцию 10.2 с редакции 10.1. Файл Addendum.doc содержит дополнения к описанию конфигурации "Управление торговлей", редакция 10.2, не вошедшие в печатное издание.


Раздел «Важная информация»
Раздел содержит любую важную информацию, которую необходимо довести до пользователей.

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

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

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

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

Файл шрифта EANG000.ttf после установки конфигурации размещается
в каталоге, куда был установлен шаблон информационной базы.

Для установки шрифта выполните следующие действия:
- откройте Панель управления (Control Panel) операционной
системы, для этого нажмите кнопку "Пуск", выберите команды
"Настройка" (Settings) и "Панель управления" (Control Panel);
- в Панели управления дважды щелкните значок "Шрифты" (Fonts);
- в меню "Файл" (FilE) выберите команду "Установить шрифт"
(Install New Font);
- в поле со списком "Диски" (Drives) выберите нужный диск;
- в поле "Папки" (Folders) откройте каталог, в котором находится
файл EANG000.ttf;
- в списке "Список шрифтов" (List of fonts) выберите строку
"EanGnivc (True Type)" и нажмите кнопку OK.

Пример раздела «Важная информация»
Информация – условная.

Важная информация ----------------------------------------------------------------- Внимание! Версия 10.2.1 конфигурации "Управление торговлей", редакция 10.2, предназначен для использования с версией системы 1С:Предприятие 8.0 не ниже 8.0.7! Прежде, чем начинать использование версии 10.2.1 "Управление торговлей", редакция 10.2, ознакомьтесь с файлом Порядок перехода.htm. Внимание! Для использования налоговых деклараций образца 2004 года необходимо, чтобы в операционной системе был установлен шрифт EanGnivc. Налоговые декларации, введенные для представления отчетности с 2004 года, на каждом листе содержат уникальный штрих-код листа. В формах регламентированной отчетности, распространяемых фирмой "1С", для отображения штрих-кода используется специальный шрифт EanGnivc, который должен быть установлен в операционной системе. Если этот шрифт не установлен, штрих-коды в налоговых декларациях отображаться не будут. Однако, если вы уже выполняли установки этого шрифта, повторно выполнять такую установку уже не надо, и расположенное ниже описание порядка установки шрифта можно пропустить. Файл шрифта EANG000.ttf после установки конфигурации размещается в каталоге, куда был установлен шаблон информационной базы. Для установки шрифта выполните следующие действия: - откройте Панель управления (Control Panel) операционной системы, для этого нажмите кнопку "Пуск", выберите команды "Настройка" (Settings) и "Панель управления" (Control Panel); - в Панели управления дважды щелкните значок "Шрифты" (Fonts); - в меню "Файл" (FilE) выберите команду "Установить шрифт" (Install New Font); - в поле со списком "Диски" (Drives) выберите нужный диск; - в поле "Папки" (Folders) откройте каталог, в котором находится файл EANG000.ttf; - в списке "Список шрифтов" (List of fonts) выберите строку "EanGnivc (True Type)" и нажмите кнопку OK.

 








































Введение

Все решения в интерфейсе пользователя нужно разрабатывать из расчета, что конфигурация используется при разрешении экрана не менее 1024х768 и цветовой глубины не менее 24 бита. Разработка форм ведется при размере шрифта 96 точек на дюйм.

Разработка решений по правилам стандарта направлена на то, чтобы самые часто повторяемые операции пользователя выполнялись быстро и без ошибок.

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

 

 

Интерфейсы

 

Главное меню конфигурации

Главное меню обеспечивает доступ ко всем формам, которые требуются пользователю для работы или сервисных функций. Главное меню не должно дублировать пункты главного меню из интерфейса «Общий».

Состав верхнего уровня главного меню определяется по функциональным направлениям в конфигурации. Например «Кадровый учет», «Банк и касса» и т. д.
Исключение составляют интерфейсы "Общий" и "Полный" - формируются по особым правилам.

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

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

Если подменю не разбивается на группы элементов, максимальное число элементов в подменю: не более 7.

При любом положении выбора действия из главного меню, его размер должен быть таким, чтобы полностью умещаться на экране при минимальном разрешении, из расчета на которое разрабатывается конфигурация( 1024*768 в текущей версии стандарта).

 


Панель инструментов

Расположение - сверху.
Максимальное общее количество действий и подменю в панели - не более 7.

Действие показывается как картинка.
Подменю показывается как текст, либо как текст и картинка.

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

 

Панель инструментов "Интерфейсы"

Предназначена для быстрого переключения на другой интерфейс.

Панель содержит одно подменю "Переключить интерфейс".
В подменю каждому интерфейсу, на который предусмотрено переключение, соответствует кнопка.
Имя кнопки совпадает с именем интерфейса, текст - с синонимом интерфейса.

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

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

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

 

 









Формы

 

Состав форм конфигурации

Общие формы

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

 

Критерии отбора

Форма списка ФормаСписка Не обязательна, используется только, если методикой работы с конфигурацией предусмотрена работа с общим списком отобранных по этому критерию объектов.

 

Планы обмена

Форма списка ФормаСписка Обязательна.
Форма выбора ФормаВыбора Не обязательна, используется только в случае, если способ выбора ИзФормы или ОбоимиСпособами и в конфигурации предусмотрен выбор плана обмена.
Форма узла ФормаУзла Обязательна, если способ редактирования ВДиалоге или ОбоимиСпособами.

 

Cправочники

Форма списка ФормаСписка Обязательна.
Форма выбора ФормаВыбора Обязательна.
Форма элемента ФормаЭлемента Обязательна, если способ редактирования ВДиалоге или ОбоимиСпособами.
Форма выбора группы ФормаВыбораГруппы обязательна для иерархических справочников.
Форма группы справочника ФормаГруппыСправочника Обязательна для иерархических справочников, редактируемых ВДиалоге или ОбоимиСпособами.

 

Документы

Форма списка ФормаСписка Обязательна
Форма выбора ФормаВыбора Обязательна
Форма документа ФормаДокумента Обязательна

 

Журналы документов

Форма списка ФормаСписка Обязательна

 

Перечисления

Форма списка ФормаСписка Не обязательна, используеся только, если специально предусмотрена методикой работы с конфигурацией.
Форма выбора ФормаВыбора Обязательна, если способ выбора ИзФормы или ОбоимиСпособами.

 

Отчеты

Форма Форма Обязательна
Форма настройки ФормаНастройки Не обязательна, используется только, если для отчета предусмотрена настройка и не используется общая форма настройки.

 

Обработки

Форма Форма Обязательна

 

Планы видов характеристик

Форма списка ФормаСписка Не обязательна, используется только, если специально предусмотрена методикой работы с конфигурацией.
Форма выбора ФормаВыбора Обязательна, если способ выбора ИзФормы или ОбоимиСпособами.
Форма элемента ФормаЭлемента Обязательна, если способ редактирования ВДиалоге или ОбоимиСпособами.
Форма выбора группы ФормаВыбораГруппы Обязательна для иерархических ПВХ
Форма группы ФормаГруппы Обязательна для иерархических ПВХ, редактируемых ВДиалоге или ОбоимиСпособами.

 

Планы счетов

Форма списка ФормаСписка Обязательна
Форма выбора ФормаВыбора Обязательна
Форма счета ФормаСчета Обязательна, если способ редактирования ВДиалоге или ОбоимиСпособами.

 

Планы видов расчетов

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

 

Регистры сведений

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

 

Регистры накопления

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

 

Регистры бухгалтерии

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

 

Регистры расчета

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

 

Бизнес процессы

Форма списка ФормаСписка Обязательна.
Форма выбора ФормаВыбора Обязательна.
Форма бизнес-процесса ФормаБизнесПроцесса Обязательна, если способ редактирования ВДиалоге или ОбоимиСпособами.

 

Задачи

Форма списка ФормаСписка Обязательна.
Форма выбора ФормаВыбора Обязательна.
Форма задачи ФормаЗадачи Обязательна, если способ редактирования ВДиалоге или ОбоимиСпособами.

 

Представления формы

 

Использование закладок

Запрещается делать несколько страниц у самой формы.
На форме с переключаемыми представлениями всегда различается неизменная часть и переключаемая. Переключаемая часть реализуется с помощью многостраничной панели.

Рекомендуется делать не более 5 одновременно видимых закладок у панелей в форме.
Расположение закладок – вверху.

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

 





Схема диалога формы

 


Размеры формы

Формы объектов метаданных типовых конфигураций разрабатываются из расчета, что конфигурация используется при разрешении экрана не менее 1024х768.

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


- разрешение экрана 1024х768;
- панель задач операционной системы – спрятана;
- окно 1С:Предприятия растянуто на весь экран;
- включено главное меню;
- включена одна строка панелей инструментов;
- включена панель окон;
- включена панель состояния.


Максимальная ширина формы - 1000 точек.
Максимальная высота формы – 580 точек.

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

 













Привязки

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

Если элемент входит в состав описанной в стандарте группы элементов управления, то его поведение определяется правилами группы; если правила специально для группы не определены, то действуют общие правила, приведенные ниже.
При горизонтальном растягивании формы

Не меняют размеров:


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


Изменяют размер:


- поля ввода, кроме случаев, когда они не изменяют размер,
- "информационные надписи",
- надписи с гиперссылкой,
- табличные поля,
- поля списка,
- полосы регулирования,
- командные панели,
- панели,
- рамки групп,
- индикаторы,
- поля HTML документов,
- диаграммы,
- диаграммы Ганта,
- дендрограммы,
- сводные диаграммы,
- поля картинок,
- поля табличных документов,
- поля текстовых документов.


Размер изменяется по правилам:


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


При вертикальном растягивании

Не меняют размеров и взаимного расположения:


- надписи,
- поля ввода, кроме полей с многострочным вводом,
- флажки,
- переключатели,
- кнопки,
- рамки групп с подчеркиванием или двойным подчеркиванием.


Изменяют размер:


- поля ввода с многострочным вводом,
- табличные поля,
- поля списка,
- панели,
- рамки групп, кроме рамок с подчеркиванием или двойным подчеркиванием,
- поля HTML документов,
- диаграммы,
- диаграммы Ганта,
- дендрограммы,
- сводные диаграммы,
- поля картинок,
- поля табличных документов,
- поля текстовых документов.


Размер изменяется по правилам:


- если в "столбце" диалога расположен один элемента - он растягивается вместе с формой;
- если в "столбце" диалога расположен не один элемента - они растягивается вместе с формой пропорционально.


Вертикальные разделители

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
























































Горизонтальные разделители

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

 


Выравнивающие линии

Для размещения элементов управления рекомендуется использовать выравнивающие линии.

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

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

 

Отступы

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

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

На текущий момент для формы рекомендуется устанавливать следующие отступы:
- сверху 8 или 33, если размещена верхняя командная панель;
- снизу 8 или 33, если размещена нижняя командная панель;
- справа 8;
- слева 8.

На текущий момент для панели рекомендуется устанавливать следующие отступы:
- сверху 6,
допускается делать нулевой отступ, если сверху размещается
командная панель, а ниже сразу расположено табличное поле;
- снизу 6;
- справа 6;
- слева 6.

 













Управление формой

 

Общие формы

 

Общая форма "НастройкаПараметровУчета"

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

Имя: НастройкаПараметровУчета.
Синоним: Настройка параметров учета.
В свойстве Подсистемы устанавливается принадлежность ко всем подсистемам конфигурации.

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

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

 

Общая форма "ФормаВводаКурсаИКратности"

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

Имя: ФормаВводаКурсаИКратности.
Синоним: Форма ввода курса и кратности.
В свойстве Подсистемы устанавливается принадлежность ко всем подсистемам конфигурации, где используется редактирование курса и кратности валюты.
Изменять размер: Не изменять.

Форма позволяет определить значение курса и кратности непосредственно на закладке "Вручную" или выбрать их из списка истории изменения курса и кратности на закладке "Из списка".

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

Реквизит Значение
Валюта валюта, по которой необходимо установить курс и кратность
ДатаУстановкиКурсаИКратности дата, на которую установлены переданные значения курса и кратности
КратностьВалюты начальное значение кратности валюты
КурсВалюты начальное значение курса валюты

 

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

Ключ Значение
КурсВалюты новое значение курса валюты
КратностьВалюты новое значение кратности валюты


Форма использует обращение к справочнику Валюты и регистру сведений КурсыВалют.

 

Общая форма "ХодВыполненияОбработкиДанных"

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

Имя: ХодВыполненияОбработкиДанных.
Синоним: Форма индикации хода выполнения обработки данных.
Изменять размер: Не изменять.
Положение окна: Центрировать.

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

Управление формой осуществляется через реквизиты:

Реквизит Значение
НаименованиеОбработкиДанных Название обработки данных (отображается в заголовке формы)
КомментарийОбработкиДанных Поясняет выполняемое в данный момент обработкой действие
КомментарийЗначения Поясняет значение, отображаемое индикатором
МаксимальноеЗначение Верхняя граница шкалы индикатора
Значение Текущее значение шкалы индикатора

 

Форма открывается не модально, так как служит только для отображения, а обработка данных производится в другом месте, как правило, в вызывающей её форме .
Реквизиты НаименованиеОбработкиДанных, КомментарийОбработкиДанных и КомментарийЗначения обязательны к заполнению.

Пример использования формы индикатора:

ФормаИндикатора = ПолучитьОбщуюФорму("ХодВыполненияОбработкиДанных"); ФормаИндикатора.НаименованиеОбработкиДанных = "Загрузка классификатора банков"; ФормаИндикатора.КомментарийОбработкиДанных = "Загружаются данные из классификатора"; ФормаИндикатора.КомментарийЗначения = "Загружено:"; ФормаИндикатора.Открыть(); /// ... Обработка данных ... ФормаИндикатора.МаксимальноеЗначение = КолСтрок; Для Сч = 1 по КолСтрок Цикл /// ... Обработка данных ... ФормаИндикатора.Значение = Сч; /// ... Обработка данных ... КонецЦикла; ФормаИндикатора.Закрыть();

 

Общая форма "ФормаРедактированияТекста"

Если редактирование текста непосредственно в форме затруднительно или не предусмотрено вовсе,
рекомендуется редактирование текста осуществлять в отдельной форме.

Общая форма "ФормаРедактированияТекста" предназначена для редактирования текста в отдельном окне.
Работа с текстом организована через поле текстового документа, что более удобно для работы с текстом, чем поле ввода.

Организовать работу с текстом в общей форме "ФормаРедактированияТекста" можно следующим образом:

1. Создать объект формы и установить заголовок
ФормаРедактирования = ПолучитьОбщуюФорму("ФормаРедактированияТекста");
ФормаРедактирования.Заголовок = "Редактирование важного текста";

2. Задать начальный текст
ФормаРедактирования.УстановитьРедактируемыйТекст("Важный текст");

3. Открыть форму для редактирования текста
Результат = ФормаРедактирования.ОткрытьМодально();

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

Если Результат = Истина Тогда
ВажныйТекст = ФормаРедактирования.ПолучитьРедактируемыйТекст();
КонецЕсли;



























Элементы управления

 

Общие требования к элементам управления

 

Использование свойства "Изменяет данные" для элементов управления формы объекта

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

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

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

 





Имя элемента управления

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

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

Для элементов управления, являющихся частью специально разработанных групп ЭУ, имена образуются по общим правилам, если особо не оговорено в описании группы ЭУ.

Если в форме в соответствии с правилом для нескольких элементов управления образуются одинаковые имена, один из элементов управления называется по правилу, а имена остальных образуются из имени по правилу с добавлением цифры, последовательно, начиная с "1".
Например, если поле ввода с данными Номер и подпись к нему отображаются на нескольких страницах панели в форме, то на разных страницах их нужно называть так:
"Номер", "НадписьНомер";
"Номер1", "НадписьНомер1";
"Номер2", "НадписьНомер2";
"Номер3", "НадписьНомер3";
и т.д.

 

 









Поле ввода

 

Поле выбора

 

Высота списка выбора

Если размер списка в поле выбора известен на стадии конфигурирования, то в свойстве "Высота списка выбора" поля выбора устанавливают его значение из расчета один элемент списка на одну единицу высоты.

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

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

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

 



Ширина списка выбора

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

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

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

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

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

 

 



Табличное поле

 

Командная панель

 

Действия "Заполнить..." в командной панели

В командной панели действия заполнения данных, к которым (к данным) эта командная панель относится, организуются в подменю "Заполнить".
В случае единственного способа заполнения действие (одно) все равно располагается в этом подменю.

Текст каждого действия содержит краткое название способа заполнения, например: "По счету...", "По ценам контрагентов", "Из р/с организации".
Если действие открывает форму, через которую осуществляется или уточняется заполнение, то текст действия должен заканчиваться многоточием "...".

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

 



Группы элементов управления

 

Группа ЭУ "Наименование с кодом"

 

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

Состав:

Надпись "НадписьНаименование".
Ширина: допускается любая, рекомендована 88.
Высота: 19.
Заголовок: "Наименование:".
Размеры надписи не меняются при изменении размеров формы.

Поле ввода "Наименование".
Данные: Наименование.
Ширина: На всю доступную ширину с учетом неизменяемых размеров надписи к коду и самого кода справа. Поле ввода растягивается до левого края надписи к коду.
Высота: 19.
Ширина поля меняется одинаково с изменением ширины формы.

Надпись "НадписьКод".
Ширина: 40.
Высота: 19.
Заголовок: "Код:".
Размеры надписи не меняются при изменении размеров формы.

Поле ввода "Код".
Данные: Код
Ширина: в зависимости от разрядности кода рекомендуется

Разрядность кода Ширина поля, не менее
1-4 40
5 44
6 48
7 56
8 60
9 64
10 72
11 76
12 80

 

Высота:19.
Размеры поля не меняются при изменении размеров формы.

 

Группа ЭУ "Номер и дата документа"



Назначение.
Предназначена для редактирования номера и даты документа.

Состав.

Надпись "НадписьНомер".
Ширина: допускается любая, кратная 4, рекомендована 88.
Высота: 19.
Заголовок: "Номер:".

Поле ввода "Номер".
Данные: Номер.
Ширина: 80. При длине номера, более 8, допускается большая ширина, кратная 4.
Высота: 19.

Надпись "НадписьДата".
Ширина: 16.
Высота: 19.
Заголовок: "от:".

Поле ввода "Дата".
Данные: Дата
Ширина: 120. При не пустом значении свойтва Формат у данного поля ввода, допускается меньшая ширина, кратная 4.
Высота:19.

Элементы управления расположены в одну строку и отстоят друг от друга по горизонтали на 2 точки.

Изменение размеров:
Вертикальный размер: не изменяется.
Горизонтальный размер:
При организации формы в один столбец размеры всех входящих в группу элементов не изменяются (правая и левая границы не привязаны).
При организации формы в два столбца:
- "НадписьНомер" левой и правой границей не привязана;
- "Номер" левой границей не привязано, правой привязано к левому краю формы, пропорционально правому краю формы;
- "НадписьДата" левой и правой границей привязана к правой границе "Номер";
- "Дата" левой границей привязано к правой границе "НадписьДата", правой привязано к левому краю формы, пропорционально правому краю формы.

 

Группа ЭУ "Фамилия, Имя, Отчество"

 

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

Состав.

Надпись "НадписьФИО".
Ширина: допускается любая, рекомендована 88.
Высота: 19.
Заголовок: "ФИО:".
Изменение размеров: при изменении размеров формы, размеры не изменяются.

Поле ввода "Фамилия".
Данные: Фамилия.
Ширина: допускается любая, рекомендована 120.
Высота: 19.
Изменение размеров: левая граница остается постоянной, правая граница привязана к левой границе "Фамилия" пропорционально правой границе формы.

Поле ввода "Имя".
Данные: Имя.
Ширина: допускается любая, рекомендована 100.
Высота: 19.
Изменение размеров: левая граница привязана к правой границе "Фамилия" , правая граница привязана к левой границе "Фамилия" пропорционально правой границе формы.

Поле ввода "Отчество".
Данные: Отчество.
Ширина: допускается любая, рекомендована 100.
Высота: 19.
Изменение размеров: левая граница привязана к правой границе "Имя" , правая граница привязана к правой границе формы.

 

Группа ЭУ "Поле списка с кнопками управления"

 

Назначение.
Предназначена для работы со списком значений.

Состав.

Командная панель "КоманднаяПанельСписка"
Ширина: равная ширине поля списка.
Высота: 24.
Источник действий: Список.
Рамка: Нет рамки.

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

Кнопка "УстановитьФлажки".

Заголовок: "".
Картинка: "УстановитьФлажки".
Действие: устанавливает флажки у всех элементов списка.

Кнопка "СнятьФлажки".

Заголовок: "".
Картинка: "СнятьФлажки".
Отображение:Картинка.
Действие: снимает флажки у всех элементов списка.

Кнопка "ПереместитьВверх".

Заголовок: "".
Картинка: "ПереместитьВверх".
Отображение:Картинка.
Действие: перемещает текущий элемент списка на одну позицию вверх.

Кнопка "ПереместитьВниз".

Заголовок: "".
Картинка: "ПереместитьВниз".
Отображение:Картинка.
Действие: перемещает текущий элемент списка на одну позицию вниз.

Кнопка "Подбор".

Заголовок: "Подбор...".
Картинка: нет.
Отображение: Надпись.
Действие: Открывает форму для подбора элементов списка.

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

Поле списка "Список".

Ширина: допускается любая, рекомендована 220.
Высота: допускается любая, рекомендуется подбирать высоту таким образом, чтобы видимым было наиболее ожидаемое число элементов.

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

 

Группа ЭУ "Список, формируемый из списка"

Для выбора (пометки) некоторых значений из списка, как правило,
используется поле списка с пометками.

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

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

При выборе в списке возможных, значение из списка возможных
исключается и добавляется в список выбранных. И, наоборот,
при выборе в списке выбранных значение из него исключается
и добавляется в список возможных.

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

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

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

С примером работы описанного здесь решения можно ознакомится в конфигурации
"Бухгалтерия предприятия" в форме "ФормаОчисткиРегионов" регистра сведений
"АдресныйКлассификатор".

 

 









































































































Оформление

 

Графический материал

 

Картинки

При разработке форм типовых конфигураций используются только стандартные картинки и картинки из конфигурации. Картинки из файла (файла-коллекции) не используются.

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

Для картинок кнопок выбора в полях ввода используются картинки размером 9х15.

Для картинок кнопок используются картинки размером 16х15 или стандартные картинки размером не более 16х16. Свойство кнопки РазмерКартинки устанавливается в значение "РеальныйРазмер".

Для картинок кнопок командных панелей (действий и подменю) используются картинки размером 16х16.

 

Сообщения

Конфигурация должна выдавать предупреждения с подробными пояснениями перед:
• выполнением действий, действие которых отменить потом невозможно;
• потенциально опасных действиях;
• массовой обработки информационной базы;
• длительных процедур (занимающих долгое время)

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

Нельзя выводить диалоговые окна и открывать формы в модальном режиме в процедурах и функциях, выполняемых в транзакции, например ОбработкаПроведения(), ПередЗаписью() и тому подобное.

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

Рекомендуется следующий стиль использования маркеров при выводе сообщений процедурой Сообщить():
• СтатусСообщения.Информация - контрольные сообщения об ошибках или незаконченных фрагментах в алгоритмах конфигурации, например «здесь обработка не доделана...»;
• СтатусСообщения.Внимание - предупреждения о некритических ошибках, на которые следует обратить внимание, но которые не мешают дальнейшему исполнению процедур;
• СтатусСообщения.Важное - сообщения о критических ошибках, из-за которых исполнение выполняемых процедур прекращается;
• СтатусСообщения.ОченьВажное - сообщения о фатальных ошибках;
• СтатусСообщения.Обычное - вывод информационных сообщений, например, сообщений о проведенных документах из обработки проведения, и т. д;
• СтатусСообщения.БезСтатуса - строки, содержание которых продолжает ранее выведенные сообщения, маркером не отмечаются, чтобы проще было отыскивать начало сообщений.

 













Вопросы

Ответом по умолчанию должен быть такой, который приносит наименьший вред. Для критических ситуаций ответом по умолчанию не должен быть «Да».


Общие рекомендации по интерфейсу

 


Оформление кнопок с часто употребимыми действиями (частотных кнопок)

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

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


Пример:
Форма реализации товаров и услуг, кнопка "Состав набора" ("Редактировать состава набора комплекта").

 





Обработка данных в формах

 

Общие положения

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

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

Интерфейс пользователя в решениях на платформе «1С:Предприятие 8» строиться на основе главного меню, панелей инструментов и форм.

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

Основные усилия при проверке форм тратятся на выполнение, как ни странно, простых проверок. Например, это:
- Размеры формы и элементов формы
- Имена элементов формы
- Привязки элементов формы

Если простые проверки научится выполнять автоматически, остается только проверять правила, формализация которых затруднительна, например, компоновку элементов управления в форме или управление доступом к форме и элементам формы.

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

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

- Проверяем значения свойств формы:
ЭтаФорма.Ширина
ЭтаФорма.ТолькоПросмотр

- Проверяем значения свойств элементов управления в форме:
ЭлементыФормы.Номер.АвтоОтметкаНезаполненого

- Проверяем значения свойств колонок табличного поля в форме:
ЭлементыФормы.Услуги.Колонки.Номер.Видимость

- Проверяем значения свойств кнопок командной панели в форме:
ЭлементыФормы.ДействияФормы.Кнопки.Сформировать.Имя

Таким образом, можно создать специальное инструментальное средство, которое будет проверять значения свойств формы и свойств элементов управления и при несовпадении с эталонным значением определять форму как несоответствующую стандарту. При этом, не составить труда сформировать сообщение о диагностированной причине несоответствия стандарту.
Первый доклад по этой теме был сделан на семинаре партнеров в октябре 2005 года.
АвтоПроверкаФорм.ppt (на диске в директории 1CIts\EXE\Razrabotka\АвтоПроверкаФорм)
(скопировать)

 














Примеры правил проверки

Примеры правил проверки:
1. Правильный размер
2. "Автовыбор незаполненного" / "Автоотметка незаполненного"
3. Ширина колонки "Сумма"

ПримерПравилПроверки.xml (на диске в директории 1CIts\EXE\Razrabotka\ПримерПравилПроверки)
(скопировать)

 







Работа с запросами

 

Оформление текстов запросов

1. Все ключевые слова языка запросов пишутся заглавными буквами.

2. Необязательные конструкции запроса желательно указывать в целях повышения наглядности текста запроса и «устойчивости» использующего его кода.
Например,
Если в алгоритме используется запрос с полем, объявленным как

Касса.Валюта


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

Касса.Валюта КАК Валюта


то изменение имени реквизита приведет только к изменению текста запроса.

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

4. Некоторые из необязательных конструкций в текстах запросов должны указываться обязательно:
- ключевое слово КАК перед псевдонимом поля, источника.

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

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

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

8. При программном "собирании" текста запроса необходимо комментировать все этапы его сборки.

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

10. Необходимо использовать синонимы полей запросов, в тех случаях, когда имя поля запроса не следует явно из имени поля таблицы. Другими словами не допускается автоматическая генерация имени поля, кроме явных случаев.
Так же не допускается автоматическая генерация имени поля типа «Номенклатура1», т.е. когда имя поля запроса не уникально ему тоже обязательно следует присвоить синоним.

 








Конструирование запросов

Выбрать
Не рекомендуется получать представление объекта ссылочного типа преобразованием ссылки к строке.
Если для объекта ссылочного типа планируется использовать его строковое представление (например, для визуализации в отчетах и элементах управления), в запросе следует выбирать предопределенное поле Представление, которое является готовым строковым представлением объекта ссылочного типа.

Из
1. В операторе ПО следует использовать внутреннее соединение с условием вместо использования двух таблиц с условием в предложении ГДЕ.
Неправильно:

ВЫБРАТЬ Организации.Ссылка, Подразделения.Ссылка ИЗ Справочник.Организации КАК Организации, Справочник.ПодразделенияОрганизаций КАК Подразделения ГДЕ Организации.Ссылка = Подразделения.Владелец


Правильно:

ВЫБРАТЬ Организации.Ссылка, Подразделения.Ссылка ИЗ Справочник.Организации КАК Организации ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК Подразделения ПО Организации.Ссылка = Подразделения.Владелец

 






Состав ролей конфигурации

Если в конфигурации предполагается разграничение прав доступа пользователей к данным, то должна быть обязательна определена роль ПолныеПрава:

Имя: ПолныеПрава
Синоним: Полные права
Роль должна иметь возможность использоваться самостоятельно.

При достаточно сложной системе разграничения прав доступа рекомендуется также создание ролей:

1. ПравоАдминистрирования
Имя: ПравоАдминистрирования
Синоним: Право администрирования
Роль может использоваться только вместе с ролями, самостоятельное использование которых разрешено.

2. ПравоВнешнегоПодключения
Имя: ПравоВнешнегоПодключения
Синоним: Право внешнего подключения
Роль может использоваться только вместе с ролями, самостоятельное использование которых разрешено.

3. ПравоЗапускаВнешнихОбработок
Имя: ПравоЗапускаВнешнихОбработок
Синоним: Право запуска внешних обработок
Роль может использоваться только вместе с ролями, самостоятельное использование которых разрешено.

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

 

 













Роль ПолныеПрава

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

 


Роль ПравоАдминистрирования

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

 

 


Получение пустой ссылки

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

Неправильно:

Запрос.УстановитьПараметр("ПустаяОрганизация", Новый(Тип("СправочникСсылка.Организации")));


Правильно:

Запрос.УстановитьПараметр("ПустаяОрганизация", Справочники.Организации.ПустаяСсылка());


Исключением могут быть случаи, когда значение соответствующего типа уже было получено ранее или применение первого метода обусловлено требованиями алгоритма выполнения.
Например:

ТипЗначенияСсылки = ТипЗнч(Ссылка); … … Запрос.УстановитьПараметр("ПустаяCcылка", Новый(ТипЗначенияСсылки));

 




Обработчики событий

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

Исключение составляют случаи вызова одного действия из кнопки командной панели и подменю. Такие действия можно завешивать на один обработчик

 




Требования к реализации обработчиков события ПередЗаписью() объектов конфигурации

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

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

Неправильно:

Если ЭтоНовый() Тогда Если ЗначениеНеЗаполнено(ЕдиницаХраненияОстатков) Тогда Отказ = Истина; КонецЕсли; мСсылкаНового = Справочники.Номенклатура.ПолучитьСсылку(); Если НЕ Отказ Тогда УстановитьСсылкуНового(мСсылкаНового); КонецЕсли; КонецЕсли;

 

Правильно:

Если НЕ ОбменДанными.Загрузка Тогда Если ЭтоНовый() Тогда Если ЗначениеНеЗаполнено(ЕдиницаХраненияОстатков) Тогда Отказ = Истина; КонецЕсли; мСсылкаНового = Справочники.Номенклатура.ПолучитьСсылку(); Если НЕ Отказ Тогда УстановитьСсылкуНового(мСсылкаНового); КонецЕсли; КонецЕсли; КонецЕсли;

 



Заполнение дерева значений

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

Для добавления новой строки к дереву используется функция, расположенная в общем модуле:
ДобавитьСтрокуВДеревоКнопок(СтрокаПодменю, Имя, ТипКнопки, Текст, Действие, Расшифровка, Пометка, Подсказка, Картинка)

Параметры:

 

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

Назначение следующих параметров описано в разделе "Инициализация дерева значений":

 

Имя (обязательный)
Тип: Строка, неограниченной длинны.

ТипКнопки (необязательный)
Тип: ТипКнопкиКоманднойПанели.
Значение по умолчанию: "Действие"

Текст (необязательный)
Тип: Строка, неограниченной длинны.
Значение по умолчанию: пустая строка

Действие (необязательный)
Тип: Действие.

Расшифровка (необязательный)
Тип: Произвольный.

Пометка (необязательный)
Тип: Булево.
Значение по умолчанию: "Ложь"

Подсказка (необязательный)
Тип: Строка, неограниченной длинны.
Значение по умолчанию: пустая строка

Картинка (необязательный)
Тип: Картинка. Картинка создаваемой кнопки.

 

Возвращаемое значение:
Тип: СтрокаДереваЗначений. Возвращает добавленную в дерево значений строку.
















Построение подменю

Для того, чтобы для кнопки командной панели было сформировано подменю, соответствующее строкам сформированного дерева значений, необходимо вызвать процедуру:
СформироватьПодменю (СтрокаПодменю, Подменю, Очищать, ДобавлятьРазделительВНачало)

Параметры:


СтрокаПодменю (обязательный)
Тип: Дерево или строка дерева значений, по данным которого необходимо построить подменю.

Подменю (обязательный)
Тип: Кнопка командной панели типа "Подменю", к которой необходимо добавить кнопки, состав и иерархия которых описан в параметре "СтрокаПодменю"

Очищать (необязательный)
Тип: булево. Определяет: следует ли перед построением подменю удалить все уже существующие кнопки. Используется, когда необходимо переформировать подменю новым составом кнопок.
Значение по умолчанию: "Ложь"

ДобавлятьРазделительВНачало (необязательный)
Тип: булево. Определяет: следует ли между существующими и создаваемыми кнопками подменю вставлять разделитель.
Значение по умолчанию: "Ложь"

 









Реализация механизма

В форме объекта, который использует данный механизм необходимо:


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


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


• При формировании дерева значений имена кнопок нумеровать по порядку (например: "Кнопка1", "Кнопка2"….)
• Идентификационные данные кнопки размещать в дереве значений в колонке "Расшифровка"
• Описать в модуле формы общую переменную, для хранения дерева значений. Хранение дерева значений необходимо для получения значения поля "Расшифровка" по имени нажатой кнопки в момент обработки события нажатия на кнопку подменю.
• В теле процедуры - обработчика события для поиска соответствующей строки дерева значений по имени нажатой кнопки использовать метод "Найти()" для строк дерева значений:
СтрокаДерева = ДеревоКнопокПодменюПерейти.Строки.Найти(Кнопка.Имя,"Имя", Истина);

Далее необходимо работать со значением поля "Расшифровка" найденной строки и по нему определять производимые программой действия.
Подробнее с описанной методикой можно ознакомиться на примере, приведенном в конце данного материала.
Инициализацию, заполнение и построение подменю необходимо вызывать каждый раз, когда состав подменю должен быть изменен. Если состав подменю не изменяется от данных в форме, то инициализацию, заполнение и построение подменю достаточно вызывать при открытии формы.

Следующий пример демонстрирует, как с помощью механизма "Формирование подменю кнопки командной панели" сформировать вместо привычного подменю "перейти" подменю, сгруппированное по видам движений для формы списка любого документа:

 

////////////////////////////////////////////////////////////////////////////// // МОДУЛЬ ФОРМЫ СПИСКА ДОКУМЕНТА ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // ПЕРЕМЕННЫЕ ФОРМЫ Перем ДеревоКнопокПодменюПерейти; // Процедура - обработчик события "ПриОткрытием" формы. // Процедура ПриОткрытии() Перем ПодменюРегистрыБухгалтерии; Перем ПодменюРегистрыНакопления; Перем ПодменюРегистрыРасчета; НомерКнопки = 0; ДеревоКнопокПодменюПерейти = ИнициализироватьДеревоДополнительныхКнопок(); Действие = Новый Действие("НажатиеНаКнопкуПодменюПерейти"); Для каждого Движение Из Метаданные.НайтиПоТипу(ТипЗНЧ(ДокументСписок)).Движения Цикл НомерКнопки = НомерКнопки + 1; Если Метаданные.РегистрыБухгалтерии.Содержит(Движение) Тогда Если ПодменюРегистрыБухгалтерии = Неопределено Тогда ПодменюРегистрыБухгалтерии = ДобавитьСтрокуВДеревоКнопок(ДеревоКнопокПодменюПерейти,"РегистрыБухгалтерии",ТипКнопкиКоманднойПанели.Подменю, "Регистры бухгалтерии"); КонецЕсли; Подменю = ПодменюРегистрыБухгалтерии; ИначеЕсли Метаданные.РегистрыНакопления.Содержит(Движение) Тогда Если ПодменюРегистрыНакопления = Неопределено Тогда ПодменюРегистрыНакопления = ДобавитьСтрокуВДеревоКнопок(ДеревоКнопокПодменюПерейти,"РегистрыНакопления" ,ТипКнопкиКоманднойПанели.Подменю, "Регистры накопления"); КонецЕсли; Подменю = ПодменюРегистрыНакопления; ИначеЕсли Метаданные.РегистрыРасчета.Содержит(Движение) Тогда Если ПодменюРегистрыРасчета = Неопределено Тогда ПодменюРегистрыРасчета = ДобавитьСтрокуВДеревоКнопок(ДеревоКнопокПодменюПерейти,"РегистрыРасчета" ,ТипКнопкиКоманднойПанели.Подменю, "Регистры расчета"); КонецЕсли; Подменю = ПодменюРегистрыРасчета; КонецЕсли; ДобавитьСтрокуВДеревоКнопок(Подменю, "Кнопка" + Формат(НомерКнопки, "ЧГ=") , ,Движение.Представление(), Действие, Движение); Сообщить(""+Движение.ПолноеИмя()); КонецЦикла; СформироватьПодменю(ДеревоКнопокПодменюПерейти, ЭлементыФормы.ДействияФормы.Кнопки.Перейти); КонецПроцедуры // Процедура - обработчик нажатия на любую из кнопок "перейти" // Процедура НажатиеНаКнопкуПодменюПерейти(Кнопка) ТекущиеДанные = ЭлементыФормы.ДокументСписок.ТекущиеДанные; Если ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; СтрокаДерева = ДеревоКнопокПодменюПерейти.Строки.Найти(Кнопка.Имя,"Имя", Истина); Движение = СтрокаДерева.Расшифровка; Если Метаданные.РегистрыБухгалтерии.Содержит(Движение) Тогда Форма = РегистрыБухгалтерии[Движение.Имя].ПолучитьФормуСписка(); ИначеЕсли Метаданные.РегистрыНакопления.Содержит(Движение) Тогда Форма = РегистрыНакопления[Движение.Имя].ПолучитьФормуСписка(); ИначеЕсли Метаданные.РегистрыРасчета.Содержит(Движение) Тогда Форма = РегистрыРасчета[Движение.Имя].ПолучитьФормуСписка(); КонецЕсли; Форма.ПараметрОтборПоРегистратору = ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка; Форма.Открыть(); КонецПроцедуры // () //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ДОПОЛНИТЕЛЬНЫМИ КНОПКАМИ РАСПОЛОЖЕННЫЕ В ОБЩЕМ МОДУЛЕ // Функция инициализирует дерево дополнительных кнопок Функция ИнициализироватьДеревоДополнительныхКнопок() Экспорт ДеревоКнопок = Новый ДеревоЗначений; //Если ИмяКнопки = Неопределено, создается разделитель //Если Дерево имеет подчиненные, то ДеревоКнопок.Колонки.Добавить("Имя"); ДеревоКнопок.Колонки.Добавить("ТипКнопки"); ДеревоКнопок.Колонки.Добавить("Текст"); ДеревоКнопок.Колонки.Добавить("Подсказка"); ДеревоКнопок.Колонки.Добавить("Картинка"); ДеревоКнопок.Колонки.Добавить("Действие"); ДеревоКнопок.Колонки.Добавить("Пометка"); //Остальные свойства кнопки ДеревоКнопок.Колонки.Добавить("Расшифровка"); Возврат ДеревоКнопок; КонецФункции // () // Функция добавляет новую строку в дерево кнопок Функция ДобавитьСтрокуВДеревоКнопок(СтрокаПодменю, Имя, Знач ТипКнопки = Неопределено ,Текст = "", Действие = Неопределено, Расшифровка = Неопределено, Пометка = Ложь, Подсказка = "", Картинка = Неопределено ) Экспорт Если ТипКнопки = Неопределено Тогда ТипКнопки = ТипКнопкиКоманднойПанели.Действие; КонецЕсли; СтрокаКнопки = СтрокаПодменю.Строки.Добавить(); СтрокаКнопки.Имя = Имя; СтрокаКнопки.ТипКнопки = ТипКнопки; СтрокаКнопки.Текст = Текст; СтрокаКнопки.Действие = Действие; СтрокаКнопки.Картинка = Картинка; СтрокаКнопки.Подсказка = Подсказка; СтрокаКнопки.Пометка = Пометка; СтрокаКнопки.Расшифровка = Расшифровка; Возврат СтрокаКнопки; КонецФункции // Процедура формирует подменю по дереву значений Процедура СформироватьПодменю(СтрокаПодменю, Подменю, Очищать = Ложь, ДобавлятьРазделительВНачало = Ложь) Экспорт Строки = СтрокаПодменю.Строки; Кнопки = Подменю.Кнопки; Если Очищать Тогда Кнопки.Очистить(); КонецЕсли; Если ДобавлятьРазделительВНачало и Строки.Количество() > 0 Тогда Кнопки.Добавить(,ТипКнопкиКоманднойПанели.Разделитель); КонецЕсли; Для каждого СтрокаКнопки Из Строки Цикл Кнопка = Кнопки.Добавить(СтрокаКнопки.Имя,СтрокаКнопки.ТипКнопки, СтрокаКнопки.Текст, СтрокаКнопки.Действие); Если СтрокаКнопки.Строки.Количество() > 0 Тогда СформироватьПодменю(СтрокаКнопки, Кнопка, Ложь, Ложь) КонецЕсли; Если Не СтрокаКнопки.Картинка = Неопределено Тогда Кнопка.Картинка = СтрокаКнопки.Картинка; КонецЕсли; Кнопка.Подсказка = СтрокаКнопки.Подсказка; Кнопка.Пометка = СтрокаКнопки.Пометка; КонецЦикла; КонецПроцедуры

 













Панель функций

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

Пользователь работает медленно прежде всего по двум причинам:
• ему трудно найти нужный пункт главного меню или кнопку панели инструментов
• он не знает что и в какой последовательности необходимо отражать в учетной системе для достижения требуемого результата.

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

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

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

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



Внутреннее устройство


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

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

Настройки запоминаются в настройках пользователя.

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


Настройка

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

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

При установленной настройке "Открывать при запуске" панель функций начинает работу непосредственно при запуске конфигурации". При сброшенной установке для начала работы с панелью функций её необходимо вызвать подменю "Помощь" главного меню.

Далее за разделителем расположена настройка базового размера шрифта. Он настраивается в соответствии с индивидуальными предпочтениями. Реальный размер шрифта определяется базовым размером с учетом установок размера шрифта в MS Internet Explorer.

Полная настройка панели функций производится в настройках пользователя в группе настроек "Панель функций".

Конфигурирование

Конфигурирование панели функций производится отдельно для каждого из вариантов. Для этого в режиме "1С:Предприятие" конфигурации, для которой производится конфигурирование с помощью специальной обработки загружается XML описание из макета варианта обработки с текущего содержанием панели функций

В обработке производится редактирование содержания варианта
Отредактированное содержание сохраняется в XML описание и помещается обратно в макет обработки, соответствующий требуемому варианту.

Обработка "Панель функций":
ПанельФункций.epf (на диске в директории 1CIts\EXE\Razrabotka\ПанельФункций)
(скопировать)


Обработка по конфигурированию панели функций:
РедактированиеПанелиФункций.epf (на диске в директории 1CIts\EXE\Razrabotka\РедактированиеПанелиФункций)
(скопировать)









Отчеты

 

Оформление макетов таблиц

 


Назначение макетов

Макеты предназначены для построения табличных документов, отображающих какую-либо информацию для пользователя (отчеты, печатные формы документов, результаты обработки и анализа информации). Представление информации именно в виде табличного документа позволяет не только посмотреть информацию на экране компьютера, но и распечатать ее, а так же сохранить в файл (в нескольких различных форматах).
При построении макетов надо учитывать не только удобство и наглядность информации на экране, но и удобство использования:
твердой копии отчета:
При проектировании макета следует учитывать тот факт, что на печать отчет может быть выведен в черно-белом виде. Следовательно, надо подбирать такое цветовое и графическое оформление отчета, при котором информация одинаково хорошо воспринимается как в цветном, так и в черно-белом варианте.
или сохраненного файла:
При сохранении в формат MS Excel-я может "потеряться" форматирование областей. Использование областей разной ширины надо крайне аккуратно использовать в тех отчетах, которые могут подвергаться дальнейшей обработке во внешних программах (по возможности следует вообще избегать секций разной ширины).

 

Общие требования

В рамках конфигурации все табличные документы должны быть оформлены единообразно. Рекомендуется разделять оформление печатных и непечатных табличных документов.
Табличные печатные документы должны иметь лаконично оформление.
Непечатные документы могут иметь цветовое (графическое оформление).

Для выделения цветом группировки верхнего уровня используется элемент ФонГруппировкиВерхнегоУровня стиля Основной.
Для выделения цветом группировки последующих уровней используется элемент ФонГруппировкиПромежуточногоУровня стиля Основной.

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

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

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

Имена макетам следует давать исходя из сути выходной формы. Например, имена макетов для построения регламентированных форм можно строить исходя из названия самой регламентированной формы: ТОРГ-12, ОС-6 и т.п.

 














Стандартные имена областей

В целях стандартизации шаблонов используются следующие типовые наименования для секций шаблонов:
Горизонтальные

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

 

Вертикальные

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

 


Стили

Для оформления элементов конфигурации используется стиль «Основной».
Стиль «Основной» включает оформление по умолчанию и 5 специальных элементов стиля:
• фон группировки верхнего уровня (используется в макетах отчетов);
• фон группировки промежуточного уровня (используется в макетах отчетов).

 




Стиль по-умолчанию

Для основного текста используется шрифт по умолчанию - Arial, 8.

Текст в ячейках:
размещение - переносить;
положение: лево, низ.

Текст в заголовках столбцов
размещение - переносить;
положение: центр и центр.

Подстрочные подписи («должность», «подпись», «сумма прописью» и т. д.):
шрифт по умолчанию, размер 7;
размещение - авто;
положение: по центру и верху.

Номера колонок:
шрифт по умолчанию, размер 7;
размещение - авто;
положение : центр и центр.

Цифры в ячейках:
размещение - забивать;
положение: право и низ.

 













Обрамление

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

Для обрамления используется рамка «Сплошная» толщиной 1 (по умолчанию).
Утолщенная рамка должна иметь толщину 2.

Рамка назначается той ячейке, которой она принадлежит.

 



Особые случаи

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

 





Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8 ( Версия 8.1.0.23 ) (материал с диска ИТС за январь 2008 г.)

Дата: 2018-11-18, просмотров: 449.