/
Теги: организация производства управление экономика предприятий программирование на эвм компьютерные программы экономика экономические науки
ISBN: 978-5-9677-1146-6
Текст
(ПРИЯТИЕ 8.2
О О ГЛАВНОМ
P<AWACft5rtei«
<»
Проакж» Aowwa
ЭДГЙКЛЛ
V\x патчи ховара
^Сознать £> ♦ *'
Howev
> да№®°'!
НОВЫЕ ВОЗМОЖНОСТИ
ВЕРСИИ 8.2
да№®л^>
^ооодада
оасДО’й'згь
дар®5®
\\^V\v*arc**wvft.
fc- <
cpwwc» ^Ч**
%c»f
Мвтазин“06увь"
Магязмн"06увь"
Мвгаам>»‘1\роач«ы“
УЛагъзил'Т\рйая»л»"
Мвгазмм’Ъыгся» aw
I Магазин "Ььпсвяяте*
'‘гпг® Маг азин "Орадяь'
'--зин'Ъъпсаа'
"АСЛИШинг
УДК 658.012.011.56:004.42
ББК 65.29
Р15
Радченко Максим Григорьевич
Р15 1С:Предприятие 8.2. Коротко о главном Новые возможности версии 8.2.
М.: ООО «1С-Паблип1инг». 2009. - 416 с.: ил.
ISBN 978-5-9677-1146-6
Книга адресована специалистам, разрабатывающим прикладные решения на
платформе 1С:Предприятие 8.1.
Она содержит сжатое описание наиболее важных новаций новой версии
технологической платформы системы 1С:Предприятие - 8.2.
Также в книге описаны не столь важные по своей сути, но заметные изменения, с
которыми придется столкнуться при переходе на новую версию платформы.
Основная цель книги помочь разработчикам максимально быстро начать
разработку с использованием 1С:Предприятия 8.2. Овладеть новыми инструментами,
методиками и при этом не упустить ничего важного.
Книга содержит значительное количество иллюстраций и ссылок на более подробные
описания. Сложные и важные изменения рассматриваются на практических
примерах. На приложенном компакт-диске содержатся демонстрационные
конфигурации, иллюстрирующие некоторые примеры книги.
Группа подготовки издания:
Дизайн обложки - Кира Федотова.
Литературное редактирование, корректура - Елена Семененко.
Верстка, препресс - Ольга Шестакова.
Все права защищены. Никакая часть данной книги
не может быть воспроизведена в какой бы то нн было форме
без письменного разрешения владельцев авторских прав.
Полное илн частичное копирование материалов книги
без письменного разрешения фирмы «1С-Паблишинг»
запрещается.
ISBN 978-5-9677-1146-6 © ООО «1С-Паблишинг», 2009
© Оформление. ООО «1С-Паблишннг», 2009
Подписано в печать 10.09.2009. Формат 60x84 1/16. Печ. л. 26,00. Тираж 1000 экз. Заказ
Налоговая льгота - общероссийский классификатор продукции ОК 005-93,
том 2; 95 3005 - литература учебная.
Отпечатано с оригиналов ООО «1С-Паблишинг».
Фирма «1С». 123056, Москва, а/я 64, Селезневская ул., 21. Тел.: (495) 737-92-57, факс: (495) 681-44-07,
e-mail: lc@lc.ru, URL: http://www.lc.ru
Издательство ООО «1С-Паблишинг». 127473, Москва, ул. Достоевского, 21/1, строение 1
Тел.: (495) 681-02-21, факс: (495) 681-44-07, e-mail: publishing@lc.ru
Казанский производственный комбинат программных средств. 420044, Казань, ул. Ямашева, 36.
Краткое оглавление
с------------------------------------------------\
Вступление..................................5
Основные изменения..........................7
Режим 1С:Предприятие.......................83
Разработка................................163
Разработка форм...........................397
1С:Предприятие 8.2. Коротко о главном. Новые возможности версии 8.2
Вступление
Новая версия платформы 1С:Предприятие 8.2 значительно отличается
от предыдущей. В ней реализовано много новых механизмов и новых
подходов к разработке.
Далеко не всегда у вас есть возможность спокойно и вдумчиво изу-
чить всю документацию. Чаще всего хочется сразу же попробовать
те или иные возможности новой платформы, о которых вы уже где-то
когда-то слышали. Именно для этого и предназначена книга, которую
вы держите в руках.
С одной стороны, не вдаваясь в подробности конкретных механизмов,
она рассказывает о наиболее важных нововведениях и изменениях.
С другой стороны, в книге описаны не столь важные по своей сути,
но заметные для разработчика изменения, с которыми вам придется
столкнуться буквально «с первых шагов» в новой версии платформы.
Таким образом, книга расставляет «контрольные точки», «маяки»,
которые не позволят вам запутаться в разнообразии новых возмож-
ностей платформы и не дадут упустить что-то важное.
Вся информация в книге сгруппирована по нескольким разделам:
«Основные изменения»,
«Режим 1С:Предприятие»,
«Разработка»,
«Разработка форм».
Порядок и состав этих разделов соответствуют тому, как в реальной
жизни будет происходить ваше знакомство с новой платформой.
Сначала идут сведения, которые необходимо получить перед тем, как
вы запустите что-либо на своем компьютере.
Затем рассказывается о том, как прикладные решения выглядят «сна-
ружи». Ведь бесполезно пытаться делать что-либо «внутри», если нет
представления о том, как это выглядит «снаружи».
И в заключение рассказывается о тех новациях, которые должны быть
интересны и полезны вам как человеку, который разрабатывает при-
кладные решения.
Ну а для того, чтобы наиболее подробно и полно познакомиться с воз-
можностями новой платформы, мы рекомендуем воспользоваться
документацией, которая теперь поставляется не только в печатном,
но и в электронном виде в составе выпусков информационно-техноло-
гического сопровождения (ИТС), стр. 81.
Основные изменения
Несколько дистрибутивов.................................8
Установка, обновление и запуск.........................10
Каталог шаблонов конфигураций и обновлений.............19
Конвертация............................................24
Конфигурацию можно переделывать частями................26
Новый интерфейс........................................27
Три клиентских приложения..............................40
Режим низкой скорости соединения.......................44
Многоплатформенность...................................49
Техническая архитектура клиент-серверного взаимодействия.52
Отказоустойчивый кластер...............................65
Oracle Database........................................76
С файловой базой можно работать не всегда..............79
Windows 98/Ме больше не поддерживаются.................80
Новая технология внешних компонентов...................80
Новый состав документации..............................81
Несколько дистрибутивов
Раньше существовал единственный дистрибутив платформы, который
включал в себя все необходимые компоненты.
Теперь существует два дистрибутива: «1С:Предприятие 8.2»
и «1С:Предприятие 8.2 Тонкий клиент».
Дистрибутив «1С:Предприятие 8.2» - это, как и раньше, полный дист-
рибутив платформы, который позволяет использовать все ее возмож-
ности.
Дистрибутив «1С:Предприятие 8.2 Тонкий клиент» - это только кли-
ентское приложение. Основной сценарий его использования - это
работа с клиент-серверной базой по локальной сети или по протоколу
HTTP. Возможность работы с файловой информационной базой непос-
редственно по сети у него отсутствует. Не у тонкого клиента вообще,
а у тонкого клиента, установленного из этого дистрибутива.
ПОДРОБНЕЕ
Раздел Три клиентских приложения, см. стр. 40.
Появление второго дистрибутива обусловлено тем, что в версии 8.2
1С:Предприятие умеет работать через Интернет по протоколу HTTP.
Поэтому к информационной базе могут подключаться клиенты, распо-
ложенные в разных странах и разных частях света.
В общем случае у таких клиентов существует две возможности: исполь-
зование веб-клиента либо тонкого клиента.
Для использования веб-клиента не требуется никакой предварительной
установки программного обеспечения на компьютер пользователя.
И это очень удобно. Однако использование веб-клиента может ока-
заться возможным не всегда.
Например, в силу особенностей самого прикладного решения. Потому,
что веб-клиент умеет не все то, что умеет тонкий клиент. Количество
таких отличий невелико, и большинство прикладных решений общего
назначения создаются так, чтобы они одинаково работали и в тонком
клиенте, и в веб-клиенте. Однако специализированные прикладные
решения могут использовать функциональность, доступную в веб-кли-
енте частично или недоступную совсем. Например, работа с файловой
системой, XML, электронной почтой и др.
Также невозможность использования веб-клиента может быть связана
с требованиями информационной безопасности. Например, органи-
зация не хочет «выставлять наружу» веб-сервер, а предпочитает рабо-
тать с удаленными клиентами через VPN. В этом случае использование
веб-клиента также будет невозможным, поскольку он умеет работать
с информационной базой только через веб-сервер.
Как раз для таких случаев и предназначен дистрибутив «1 (^Предпри-
ятие 8.2 Тонкий клиент». Он имеет небольшой размер, что удобно
для удаленных пользователей. Он реализует полную функциональ-
ность управляемого приложения и предназначен для таких пользова-
телей, у которых есть необходимость лишь в подключении к существу-
ющим информационным базам.
Установка, обновление и запуск
Запуск 10
Запуск с локального компьютера...........................12
Запуск по сети...........................................13
Различные сценарии установки и запуска...................14
Ключи командной строки...................................16
Установка 16
Обновление 18
Изменение установленной версии...............................18
Удаление 19
В версии 8.2 принципиально Переработан механизм установки, запуска
и обновления платформы. Предприняты существенные усилия для
повышения удобства развертывания системы в крупных организациях.
Новый механизм позволяет значительно упростить администрирование
системы в тех случаях, когда одновременно используются несколько
разных версий платформы. С его помощью автоматизируется их уста-
новка, выбор подходящей версии платформы и подходящего клиент-
ского приложения для запуска, а также процесс своевременного обнов-
ления платформы.
Рассмотрим, как в новой версии осуществляется запуск системы.
Попутно поговорим об установке и обновлении платформы.
Запуск
Раньше структура файлов 1С:Предприятия 8 на компьютере выглядела
следующим образом (рис. 1).
С: \Projyam Hes\1 cv81
v ei 1341
К/менпжое гриложеьые
1cvS еяв
Рис. 1.
Структура файлов 1С:Предприятия 8.1
В каталоге программных файлов находился каталог с некоторой вер-
сией 1С:Предприятия 8 (например, 8.1.13.41). Чтобы запустить сис-
тему, нужно было любым способом запустить клиентское приложение
этой версии (файл lcv8.exe).
Если на компьютер устанавливалась новая версия платформы
(например, 8.1.14.72), то файлы, находящиеся в каталоге C:\Program
Files\lcv81, обновлялись. Таким образом, на компьютере была установ-
лена всегда одна (последняя) версия платформы.
Одновременно «рядом» могли существовать только разные мажорные
версии платформы (версии, отличающиеся старшими разрядами,
первым или вторым). Например, 8.0.18.2 и 8.1.5.123, Минорные
версии платформы (отличающиеся младшими разрядами, третьим
или четвертым) не допускали одновременной установки на один ком-
пьютер (например, 8.1.12.101 и 8.1.13.41). Можно было только обно-
вить версию 8.1.12.101 до версии 8.1.13.41. В 1С:Предприятии 8.2 этот
подход изменен.
Рис. 2. Структура файлов 1С:Предприятия 8.2
Теперь на одном компьютере существует произвольное количество
одновременно установленных минорных версий 1С:Предприятия 8.2.
Структура каталогов 1С:Предприятия 8 представлена на рис. 2.
В корневом каталоге 1С:Предприятия 8.2 (C:\Program Files\lcv82)
находится некоторое количество каталогов установленных версий плат-
формы. Каждая из этих версий содержит свои версии клиентских при-
ложений (толстый и тонкий клиенты) и свою версию интерактивной
программы запуска (lcv8s.exe). Кроме этого, в корневом каталоге
1С:Предприятия 8.2 находится каталог common, в нем - программа
запуска ICEStartexe.
Запуск с локального компьютера
Если система запускается с локального компьютера, то стандартный
сценарий запуска такой:
Пользователь запускает программу запуска ICEStartexe (1).
Ссылка на эту программу всегда есть в меню Старт операционной
системы. При установке новых версий платформы существующая
программа запуска перезаписывается файлом из новой версии.
Программа запуска запускает интерактивную программу запуска
lcv8s.exe от последней версии (2). Она предлагает выбрать одну
из имеющихся информационных баз и запускает для этой базы
нужное клиентское приложение нужной версии платформы (3).
Интерактивная программа запуска показывает теперь общий список баз
для версий 8.0, 8.1 и 8.2. При первом запуске она может автоматически
импортировать списки информационных баз для версий 8.0 и 8.1.
ПОДРОБНЕЕ
Раздел Каталог шаблонов конфигураций и обновлений, см. стр. 19.
Для каждой информационной базы может быть указана минорная или
мажорная версия платформы, которой нужно запускать эту информаци-
онную базу. На основе этой информации интерактивная программа
запуска выбирает подходящую версию платформы. Если никакая
версия для информационной базы не указана, запускается клиентское
приложение последней версии 1С:Предприятия 8.2 или версии, ука-
занной по умолчанию.
Запуск по сети
Если пользователи работают в сети, то стандартный сценарий запуска
будет немного другим (рис. 3).
Рис. 3. Запуск системы 1С:Г1редприятие 8.2 по сети
Администратор 1С:Предприятия 8 создает сетевой каталог, в ко-
тором размещает программу запуска lCEStart.exe и структуру
каталогов, содержащих дистрибутивы версий платформы.
Пользователи запускают программу запуска не со своего локаль-
ного компьютера, а из сетевого каталога (1). Программа запуска
не требует компонентов 1С:Предприятия 8, поэтому ее можно ско-
пировать в произвольный каталог.
Программа запуска анализирует состав установленных у поль-
зователя версий платформы и автоматически устанавливает пос-
леднюю версию платформы, если ее нет на компьютере пользова-
теля (v. 8.2.9.216).
После этого, как и в ранее описанном сценарии, запускается ин-
терактивная программа запуска последней версии платформы
на компьютере пользователя (2), а затем клиентское приложение,
соответствующее выбранной информационной базе (3).
В сетевом каталоге также обычно размещается и список общих инфор-
мационных баз. Таким образом, администратор может полностью
управлять и составом информационных баз, доступных пользова-
телям, и информацией о том, какие базы какими версиями платформы
и какими клиентскими приложениями должны запускаться.
Различные сценарии установки и запуска
Нужно сказать, что описанный стандартный сценарий запуска по сети
не является обязательным. Новый механизм установки и запуска обла-
дает большой гибкостью и настраиваемостью. Он позволяет реализо-
вывать различные сценарии в зависимости от потребностей конкрет-
ного внедрения.
Во-первых, и программа запуска, и интерактивная программа запуска
имеют свои конфигурационные файлы (lCEStartcfg и ICESCmn.cfg).
С помощью этих файлов можно настроить расположение дистри-
бутивов, перечень компонентов системы, которые должны устанав-
ливаться, версию платформы, которая должна запускаться по умол-
чанию, и т.д.
ПОДРОБНЕЕ
Документация 1С:Предприятме 8.2. Руководство администратора,
Приложения 3.4 и 3.5 - Описание и расположение служебных файлов.
Во-вторых, и клиентские приложения, и кластер при запуске ищут
общие конфигурационные файлы платформы, которые описывают
особенности ее функционирования. В версии 8.2 это такие файлы, как:
logcfg.xml - конфигурационный файл технологического журнала;
nethasp.ini - конфигурационный файл системы защиты;
adminstall.cfg - конфигурационный файл установки с использова-
нием средств администрирования Windows;
inetcfg.xml - конфигурационный файл прокси по умолчанию;
debugcfg.xml настройка дополнительного диапазона портов,
используемого при отладке;
comcntrcfg.xml - настройка запуска внешнего соединения в отла-
дочном режиме.
Раньше все эти файлы должны были находиться в каталоге bin/conf
каталога установки 1С:Предприятия 8.
Теперь для каждой версии 1С:Предприятия 8 существует свой каталог
установки. И теоретически различных вариантов использования
этих файлов может быть много: все версии используют одни и те же
настройки, разные версии используют разные настройки и так далее.
Поэтому в версии 8.2 клиентские приложения и сервер 1 (^Предпри-
ятия при запуске ищут конфигурационные файлы по определенному
алгоритму.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство администратора.
Приложение 1.3 - Структура каталога установки и назначение каталогов
и файлов - Конфигурационные файлы: расположение и поиск.
При стандартной установке системы используется следующий способ
поиска конфигурационных файлов: сами файлы записываются в каталог
конфигурационных файлов C:\Program Files\lCv82\conf, и данный путь
записывается в файл conf.cfg устанавливаемой версии.
Таким образом, в каталогах конкретных версий платформы конфи-
гурационных файлов нет. В профилях пользователей их тоже нет.
А в каждом файле conf.cfg указано, что все они находятся в одном и том
же месте. Таким образом, стандартно используются единые конфигу-
рационные файлы для всех версий и компонентов 1С:Предприятия 8,
установленных на данном компьютере.
При необходимости администратор может использовать другие спо-
собы работы с конфигурационными файлами. Например:
Задать различные конфигурационные файлы для одной или
нескольких версий платформы. Такие конфигурационные файлы
должны располагаться в каталогах конкретных версий. Они будут
найдены первым способом.
Задать другие конфигурационные файлы для одного из компо-
нентов платформы (любой версии), работающей от имени некото-
рого пользователя (например, для кластера). Такие конфигураци-
онные файлы должны располагаться только в каталоге соответс-
твующего пользователя. Они будут найдены вторым способом.
Конечно, возможны и различные сочетания перечисленных способов.
Ключи командной строки
Обе программы запуска (как и клиентские приложения) поддерживают
одни и те же ключи командной строки.
В результате, например, программа запуска (кроме стандартного сце-
нария установки новой версии платформы и запуска интерактивной
программы запуска) может самостоятельно запустить указанную
информационную базу нужным клиентским приложением.
В то же время интерактивная программа запуска может самостоя-
тельно установить новую версию платформы на компьютер пользова-
теля.
Более того, клиентские приложения могут самостоятельно определять
версию платформы, необходимой для работы с конкретной информаци-
онной базой, и при необходимости устанавливать ее из сетевого ката-
лога дистрибутивов на компьютер пользователя.
Поэтому кроме стандартного сценария администратор может создавать
собственные сценарии запуска и обновления клиентских приложений.
Например, без использования программы запуска, расположенной
в сети, и даже без использования интерактивной программы запуска.
Установка
Установка платформы выполняется так же, как и раньше. В результате
установки создается структура файлов, показанная ранее на рисунке 2.
В меню Старт появляется программа запуска (1С:Г1редприятие) и под-
меню Дополнительно (рис. 4).
Рис. 4. Программа запуска в меню «Старт»
Теперь для пользователя запуск 1С:Предприятия 8 даже упростился.
Ему не нужно выбирать из нескольких пунктов меню. Есть один пункт
меню - 1С Предприятие, его и нужно выбирать.
Подменю Дополнительно позволяет перейти ко всем версиям плат-
формы 1 С:Предприятия 8.2, установленным на компьютере (рис. 5).
В Ужалеааю лрмарамщкгы Ш К Пре*гр»итие (тонкий клиент)
*1Г*Ч Установке ммЬарамщкты ш 1С Предонатиа (телствЛ клиент)
Ш 8.2.9.214 » pj] Серверы К Пвдяаипм
fl) 8.2.9.217 » Ю KoHiHypeTop
Re*J4t Допожаггегынвяинфораиция
Е5 Залуп сарвара 1СГрелприитн«
В Конвертор К 1С Грееприатга 7 7
Рис. 5. Интерактивная программа запуска в меню «Старт»
Для каждой версии верхняя команда (1С: Предприятие) запускает
интерактивную программу запуска этой версии. Также здесь сразу
можно запустить толстого или тонкого клиента.
Если администратор устанавливает платформу в организации, то пред-
полагается следующий стандартный сценарий:
прежде всего, администратор устанавливает платформу локально
на один любой компьютер и проверяет работоспособность имею-
щихся конфигураций на новой платформе;
после этого он копирует с этого компьютера в сетевой каталог
новую версию программы запуска (ICEStartexe), а также раз-
мещает в этом сетевом каталоге дистрибутив новой версии плат-
формы;
поскольку все пользователи запускают программу запуска, рас-
положенную в сетевом каталоге, то при очередном ее запуске на
компьютере пользователя автоматически будет установлена новая
версия платформы из дистрибутива, расположенного в сетевом
каталоге.
Как уже говорилось, такой сценарий не является единственным. Кроме
автоматической установки средствами 1С:Предприятия 8.2, админист-
ратор может использовать и средства операционной системы:
установка с помощью групповых политик Windows,
установка с помощью logon-скрипта.
В этих случаях он может полностью управлять всеми деталями
и особенностями установки для различных пользователей.
Обновление
Как можно заметить, понятие «обновление платформы», существо-
вавшее в версии 8.1, теперь фактически соответствует установке новой
версии платформы.
Изменение установленной версии
В некоторых случаях может возникнуть необходимость изменения уже
установленной версии, без участия администратора. Например, могут
понадобиться какие-то компоненты платформы, которые не были уста-
новлены с самого начала.
В этом случае нужно использовать компонент Установка и обновление
программ панели управления Windows. Он позволяет изменить уже
установленную версию платформы, добавить или удалить компоненты
платформы.
Если просто запускать файл setup.exe из дистрибутива платформы,
будут обновлены только те компоненты платформы, которые уже уста-
новлены. Выбор состава компонентов предлагаться не будет.
Удаление
Для удаления старых версий платформы нужно использовать компо-
нент Установка и удаление программ панели управления Windows.
Однако не нужно спешить удалять старые дистрибутивы из сетевого
каталога. Если для работы с какой-либо информационной базой поль-
зователю понадобится старая версия платформы, она будет автомати-
чески установлена из дистрибутива, находящегося в сетевом каталоге.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство администратора.
Каталог шаблонов конфигураций
и обновлений
Раньше существовал единственный локальный каталог шаблонов кон-
фигураций и обновлений. При создании новой информационной базы
пользователю предоставлялась возможность создать ее на основе
одного из шаблонов, находящихся в этом каталоге (рис. 6).
Рис. 6.
Список шаблонов
конфигураций
1С:Предприятия 8.1
Стандартно это был каталог C:\Program Files\lcv81\tmplts. Плат-
форма хранила этот путь в специальном служебном файле v8cscadr.lst.
Сам файл vBcscadr.lst располагался в каталоге перемещаемых слу-
жебных файлов в профиле пользователя C:\Documents and Settings\
<Имя пользователя>\АррНсайоп Data\lC\lCv81.
Путь к каталогу шаблонов конфигураций и обновлений можно было
изменить в настройке диалога запуска (рис. 7).
Путь к каталогу шаблонов
конфигураций
и обновлений
1С:Предприятия 8.1
В конфигураторе через меню Конфигурация - Поддержка - Шаб-
лоны конфигураций и обновлений... можно было открыть существу-
ющий каталог шаблонов и обновлений, посмотреть и отредактировать
его содержимое (добавить шаблоны из другого каталога или удалить
существующие шаблоны), рис. 8.
Теперь механизм шаблонов конфигураций сохранился, но претерпел
некоторые изменения.
во-первых, теперь может существовать сразу несколько каталогов
шаблонов конфигураций и обновлений;
во-вторых, изменено место хранения путей к этим каталогам.
й нфчгуратор Зарплата и Управление Персоналом, редакция 2.5 _ Xj
Рис. 8. Редактирование состава каталога шаблонов конфигураций
и обновлений 1С:Предприятия 8.1
В версии 8.2 файл v8cscadr.lst больше не используется. Пути к ката-
логам шаблонов конфигураций и обновлений хранятся в конфигура-
ционном файле программы запуска - lCEStart.cfg.
ПОДРОБНЕЕ
Документация ^Предприятие 8.2. Руководство администратора,
Приложение 3.5 Описание и расположение служебных файлов
lCEStart.cfg.
После установки платформы каталог шаблонов конфигураций и обнов-
лений не определен.
При первой установке какой-либо конфигурации программа уста-
новки будет предлагать установить ее в стандартный каталог
C:\Documents and Settings\<HMH пользователя>\АррНсайоп Data\
lC\lCv82\tmplts.
Если при первом запуске выполнялся еще и импорт списков информа-
ционных баз версий 8.0 и 8.1, то сначала добавляются существующие на
компьютере каталоги шаблонов конфигураций для этих версий, а затем
каталог C:\Documents and Settings\<HMfl пользователя>\АррНсабоп
Data\lC\lCv82\tmplts.
Соответственно, в настройке диалога запуска системы теперь указы-
ваются сразу несколько каталогов шаблонов конфигураций и обнов-
лений. При этом пользователь может добавить в этот список и свои
собственные каталоги (рис. 9).
Рис. 9. Пути к каталогам шаблонов конфигураций и обновлений
1С:Предприятия 8.2
Испольэдоые еерсис
©»* X
Е ОК .Ц о™»»
Если указано несколько каталогов шаблонов, то при установке новой
конфигурации платформа будет предлагать устанавливать ее шаблон
в тот каталог, который указан в этом списке первым.
По этой причине порядок следования каталогов имеет значение.
При необходимости его можно поменять, поставив нужный каталог
шаблонов на первое место.
В конфигураторе тоже доступны несколько каталогов шаблонов конфи-
гураций и обновлений. Но в перечне шаблонов для выбранного ката-
лога отображаются только те шаблоны, которые созданы для версии
платформы 8.2.
У таких шаблонов в манифесте есть специальная строка:
AppVersion=8.2 (рис. 10).
Закрыть Справка
Рис. 10. Состав шаблонов конфигураций и обновлений
1С:Предприятия 8.2
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство администратора.
Конвертация
Чтобы информационную базу версии 8.1 запустить под новой версией
платформы, ее нужно конвертировать. После конвертации не потре-
буется никакая доработка для того, чтобы информационная база пра-
вильно работала под новой версией платформы.
Стандартно новая функциональность задействована не будет, поэтому
внешне все будет выглядеть так же, как и раньше (рис. 11).
Рис. 11. Конфигурация 1С:Предприятия 8.1 после конвертации
Конфигурация будет находиться в режиме совместимости с вер-
сией 8.1 (свойство Режим совместимости Версия 8.1). Основной
режим запуска будет Обычный (свойство Основной режим запуска =
Обычный).
Режим совместимости с версией 8.1 означает, что никаких изменений
конфигурации для продолжения работы на новой платформе не пот-
ребуется, а внешний вид прикладного решения будет таким же, как
и раньше.
Обычный режим запуска в данном случае означает, что управляемый
интерфейс и управляемые формы использоваться не будут.
Для того чтобы появилась возможность использовать новую функци-
ональность, нужно предпринять специальные действия - выключить
совместимость с версией 8.1.
ПОДРОБНЕЕ
Раздел Отключение режима совместимости с версией 8.1, см. стр. 272.
Наличие режима совместимости с версией 8.1 позволяет «безболез-
ненно» перейти на новую версию платформы и продолжать работу уже
на ней, параллельно изучая новые возможности платформы.
Следующим этапом может быть отключение режима совместимости.
И, наконец, заключительным этапом может быть частичная или полная
доработка конфигурации для использования всех возможностей
управляемого приложения.
Каждый из этих этапов вносит положительные моменты в работу
существующего прикладного решения.
Конвертация конфигурации и работа в режиме совместимости позво-
ляют, например, использовать все новые возможности кластера сер-
веров, реализованные в платформе 8.2, и другие улучшения, не свя-
занные непосредственно с работой управляемого приложения.
Отключение режима совместимости и работа в режиме обычного при-
ложения позволяют, например, увеличить скорость работы приклад-
ного решения, потому что начинает использоваться новый механизм
работы с базой данных. А он значительно быстрее, чем тот, который
реализован в версии 8.1. Также после отключения режима совмести-
мости становится возможным, например, использование механизма
проверки заполнения объектов и других новых механизмов.
Ну а переход в управляемый режим работы и создание управляемых
форм добавляют к этому все визуальные и функциональные возмож-
ности нового, управляемого интерфейса.
Естественно, конвертация, как и любые другие действия, выполняемые
над всей информационной базой, требуют некоторых мер предосто-
рожности, подходящего времени и достаточных аппаратных ресурсов.
Поэтому настоятельно рекомендуется:
сделать резервную копию информационной базы и конвертиро-
вать именно ее, а не рабочую базу;
выбрать подходящее время для конвертации, т.к. при больших
объемах информационной базы этот процесс может занять дли-
тельное время;
выполнять конвертацию на компьютере, обладающем хорошей
производительностью и достаточным запасом свободного диско-
вого пространства и оперативной памяти;
строго следовать рекомендациям, содержащимся в сопроводи-
тельном файле комплекта поставки V8Update.htm.
ПОДРОБНЕЕ
При стандартной установке платформы файл V8Update.htm находится
в каталоге C:\Program Files\lcv82\< Номер версии >\docs\ru\.
Конфигурацию
можно переделывать частями
После конвертации конфигурации под новую версию платформы,
естественно, рано или поздно возникнет желание использовать новые
возможности платформы.
Приятным моментом является то, что не нужно переделывать всю
конфигурацию целиком. Версия платформы 8.2 позволяет работать
с разными частями конфигурации одновременно и в старом, обычном
режиме, и в новом режиме, режиме управляемого приложения.
Например, возможен такой вариант, когда большинство пользователей
остается работать в старом, привычном режиме, а для тех пользова-
телей, которые работают на удаленном складе, часть функциональности
конфигурации (некоторые справочники, документы) дорабатывается д ля
работы в режиме управляемого приложения. Например, потому, что уда-
ленному складу удобно работать с этой конфигурацией через Интернет.
В результате часть пользователей работает по-старому, а удаленный
склад - по-новому, в режиме управляемого приложения.
Таким образом, постепенно можно перевести всю конфигурацию
на работу в режиме управляемого приложения.
ПОДРОБНЕЕ
Раздел Постепенный перевод в режим управляемого приложения,
см. стр. 267.
Новый интерфейс
Работа конфигурации в режиме управляемого приложения визуально
отличается от старого интерфейса 1С:Предприятия 8.1. В этом режиме
пользователь взаимодействует с управляемым интерфейсом и управ-
ляемыми формами.
При создании платформы 1С:Предприятия 8.2 была проведена большая
работа по разработке нового интерфейса. Новый интерфейс ориен-
тирован на комфортную эффективную работу, соответствует совре-
менным тенденциям и в то же время учитывает сильные стороны пре-
жнего интерфейса.
Обзор интерфейса
При запуске системы открывается основное окно приложения. В нем
отображается основная структура прикладного решения (панель раз-
делов) и рабочий стол (рис. 12).
Рис. 12. Панель разделов и рабочий стол
Рабочий стол - это стандартный раздел приложения, содержащий часто
используемые документы, отчеты, справочники и т.п. Это своеоб-
разный «помощник» пользователя. Каждый рабочий день начинается
с «общения» с ним.
«й 2S Функциональные опции
® Параметры Функциона/ъных опций
{+ Храниташа настроек
tFI Обшие Формы
Ф Q Общие команды
Груты команд
' —П А । ш* wwervi
Рис. 13. Связь подсистем и панели разделов
Рабочий стол вводит пользователя в курс дел, отвечает на его вопросы.
Например:
Что нужно сделать сегодня?
Что появилось нового?
На что следует обратить внимание?
Каково состояние важных для меня сведений?
С точки зрения структуры конфигурации рабочий стол - это совокуп-
ность нескольких форм, одновременно отображаемых в основном окне
приложения. Каждой роли может соответствовать одна или более форм,
находящихся на рабочем столе. Так как пользователю обычно назнача-
ется несколько ролей, то рабочий стол будет состоять из комбинации
форм этих ролей.
Важным понятием в новом интерфейсе является точка навигации.
Точка навигации - это фрагмент интерфейса основного окна прило-
жения, в который можно перейти с помощью команд, расположенных
в основном окне. Таким образом, работа пользователя с системой всегда
начинается с одной и той же точки навигации - Рабочий сгол.
Как уже было сказано, в основном окне приложения пользователю пре-
доставляется главное, наиболее крупное разделение функциональности
прикладного решения. Это панель разделов, расположенная в самой
верхней части основного окна. Она соответствует верхнему уровню
подсистем конфигурации и позволяет переходить к другим точкам
навигации (рис. 13).
Рис. 14. Панель навигации и панель действий
При активизации раздела вся функциональность соответствующей
подсистемы, включая вложенные подсистемы, представляется поль-
зователю в виде команд в двух панелях: панели навигации (слева)
и панели действий (сверху), рис. 14.
При этом команды вложенных подсистем в панели навигации можно
скрывать/раскрывать нажатием мыши на заголовок группы команд
(рис. 15).
Рис. 15. Свернутые группы команд
Команды - это действия, которые может выполнить пользователь.
При вызове в панели навигации команд открытия списков соответс-
твующие им управляемые формы списков отображаются непосредс-
твенно в рабочей области основного окна приложения, замещая пре-
жнее содержимое рабочей области.
Тем самым осуществляется переход к очередной точке навигации
(рис. 16).
Рис. 16. Список товаров в рабочей области основного окна
Рис. 17. Список товаров в отдельном вспомогательном окне
Формы списков могут быть открыты и в отдельных вспомогательных
окнах. Для этого при вызове команды нужно удерживать нажатой кла-
вишу Shift (рис. 17).
При вызове команд ввода и редактирования объектов, а также при
открытии отчетов и обработок открываются вспомогательные окна
приложения, содержащие управляемую форму.
Вспомогательные окна приложения отображаются на экране компью-
тера независимо от основного окна, и, таким образом, не используется
классический многооконный интерфейс (MDI), рис. 18.
РабочА Закужн Продажи Тсеартые Финансы Предприятие
стол запасы
Рис. 18. Форма нового товара во вспомогательном окне
Для ввода объектов, содержащих небольшое количество реквизитов,
используются вспомогательные окна, открываемые в режиме блокиро-
вания окна владельца. Они блокируют работу окна владельца, чтобы
пользователь мог быстро ввести необходимые данные и закрыть окно
(рис. 19).
Рис. 19. Вспомогательное окно в режиме блокирования окна владельца
ПОДРОБНЕЕ
Раздел Не получается открыть два документа, см. стр. 157.
Точки навигации автоматически запоминаются платформой в истории
работы в основном окне, и по ним можно перемещаться, как по про-
смотренным страницам веб-браузера.
Любую точку навигации, а также объект информационной базы,
отчет или обработку, открытые во вспомогательном окне, можно
добавить в избранное, чтобы потом быстро вернуться к ней, при необ-
ходимости.
На любую точку навигации, объект информационной* базы, отчет
и обработку можно получить ссылку (строка текста) и, например,
передать ее коллеге, чтобы тот мог быстро перейти к этой же точке
навигации в своем сеансе работы.
ПОДРОБНЕЕ
Разделы: Область системных команд и главное меню, см. стр. 36, Ссылки,
см. стр. 90.
Вспомогательные окна так же, как и основное окно, могут иметь
панель навигации. В них может выполняться переход (без открытия
нового окна) к отображению управляемых форм, логически связанных
с основной формой этого вспомогательного окна.
Например, в форме элемента справочника можно перейти к спискам
подчиненных справочников (рйс. 20).
Рис. 20. Панель навигации во вспомогательном окне
Информационная панель
В нижней части основного окна приложения отображается информа-
ционная панель (рис. 21).
производительности
Рис. 21. Информационная панель
В основном она предназначена для отображения последних опове-
щений — действий, выполненных в системе. Если действие было свя-
зано с записью данных, то, нажав на соответствующее оповещение,
можно открыть форму, содержащую эти данные (например, форму
документа, который был проведен).
ПОДРОБНЕЕ
Раздел История, см. стр. 95.
Также в информационной панели содержится кнопка История, откры-
вающая историю работы пользователя с программой.
ПОДРОБНЕЕ
Раздел История, см. стр. 95.
Кроме перечисленных элементов в информационной йанели может
содержаться кнопка перехода к показателям производительности
и индикатор имитации задержек при вызове сервера.
ПОДРОБНЕЕ
Разделы: Показатели производительности, см. стр. 252, Имитация
задержек при вызове сервера, см. стр. 257.
Область системных команд и главное меню
В заголовке основного окна приложения расположена область сис-
темных команд (рис. 22).
Навигация
по текущему
сеансу
Рис. 22. Область системных команд
В левой ее части находится команда перехода к главному меню,
команды для перемещения по истории работы в основном окне
и меню избранное.
Главное меню содержит набор команд, относящихся к прикладному
решению в целом и не зависящих от прикладной специфики конфигу-
рации.
Например, команды пользовательской настройки интерфейса
и команды установки параметров системы в целом (рис. 23).
Файл
Правка
Перейти по ссылке.
Shift+Fli
Предприятие
Пол^*лъ ссылку
СЫП1
Добавить в избранное
CM+D
История,
CVI+Shift+H
£есеис
Скна
Справка
Ьвреме
Остановить программу работы оо сканером
Настроить сканер
► ®
► tr
П
| ВсеФунщии
Контрагенты' 1
Товары
И
S3
Калькулятор
Кале i-fl apt
CW*F2
чморасчетам
См текже ___
Регистр товарам запасов г
Сообщения
CtthSWfcZ
Настройка илерфейса
Все действия- ч»
Панель разделов
Ц* Параметры.
Пане лэ навигации.
Виа
, стает*
Панель аяйствчА.
Of
Услуги
“ Ремонт
История..
Услуг»
Услуга
Я Рабочий стол.
obot»W3ir""”
Рис. 23. Главное меню
Управляв АС
Закупки - Контрагенты
Закупки - Товары
Рабочий
Финансы
Предприятие
8
Закупки
Закупки
Контрагенты
Отчеты
Остатки товаров
| Отчет по взаиморасчетам
Сервис
Установить программу работы со сканером
Настроить сканер
Закупки
Предприятие
Финансы
Продажи - Продажи
См. Твкжв
Регистртсвармл
Продажи
Закупки - Товары
Закутки
Т сварные запасы - Т овары
Товарные запасы
Товартые запасы - Товары
Товарные запасы
Рабочий стол
000000038
&. Код Артикул
000000036
l) >Mi Найти Печать'
Все действия* «V
Поставит*
Виа
fifcqr*
Услуга
|В
Команды перемещения по истории работы в основном окне, подобие
веб-браузерам, позволяют последовательно перемещаться назад/впере;
по точкам навигации, с которыми осуществлялась работа. А в выпада-
ющем меню доступен полный список таких точек навигации для пря-
мого перехода к ним (рис. 24).
Меню избранного позволяет просмотреть и перейти к избранных
ссылкам пользователя, а также добавить текущую точку навигации
объект, отчет или обработку в избранное и управлять всем спискох
избранного (рис. 25).
Й
Настройка избранного.
Ctrt+Shdt*B
Оплети
Поступпеметдвнег
Контрагенты
Валюты
Ь»ж
Навет расчетные счет»
взаиморасчетам
оплатам
Предприятие Банки
Отчет по взаиморасчетам
Товарные запасы-Цеты Uet-w товаров
Товарные запасы - Характеристики Виды характеристик товаров
Магазм*Тытооая>»мнкаГ
Товарные запасы
СмЛакжв
Регистр »»**ювсчетое с контрагентами
Рис. 25. Избранное
ПОДРОБНЕЕ
Разделы: Избранное, см. стр. 99, Ссылки, см. стр. 90.
В правой части области системных команд находятся вспомога
тпельные команды, такие как переход по ссылке, калькулятор, кален-
дарь, информация о системе и другие. Пользователь может самосто
ятельно настроить состав этих команд, добавив имеющиеся командь
или удалив существующие (рис. 26).
Если вспомогательное окно открывается в независимом режиме
то оно содержит область системных команд, очень похожук
на область системных команд основного окна (рис. 27).
Посту
Добавить
* М*
Вычесть
Регистр тпвертм* загкюев
К
Рабоыы
Котмпн’ъ.
Товары
Новый
Сткрыть.
Вырезать
Калькулятор
Календарь
Коорсвять как число
вия-
3
Котировать
Вставить
♦ Стмеыть
+ Вернуть
Перейти по ссылав
Получить ссылку
Гфсцажи
Тоаарые
Финансы
иилигькмдгжи*
Сдавить
Поспжтл»** товара
бтчвйн
Остатки товаров
Отчет по ваанмор ,
Регистр товарных запасов
(н) С^Найти
Ларисе &
11 032009115214
11 03200911 5214
1103.200911.5214
11032009115214
11 032009115214
11 03200911 5214
- 11.03200311 5Э48
- 11.03.200911 5348
- 11.032009115348
“ 12.03 200910:35:33
- 1203.200910:3533
Регистратор
Поступление
Поступление
Поступление
Поступив»**
Поступле»**то-
Поступив»**
Продажа
Продажа
Продажа
Продажа
Продажа
Найти
С*
Поиск
Найти следующий
Найти предыдущий
Сброс панели
Есеркна.
Параметры
□ программе
Рис. 26. Вспомогательные команды
•К
з
*
№
и
Перейти
Домцангы
Расчетные счета
Рис. 27. Область системных команд во вспомогательном окне
Если же вспомогательное окно открывается в режиме Блокировать вла-
дельца, то в области системных команд присутствуют лишь самые эле-
ментарные команды (рис. 28).
Рис. 28. Область системных команд в окне, открытом
в режиме блокирования окна владельца
Три клиентских приложения
В 1С:Предприятии 8.1 было одно клиентское приложение - lcv8.exe.
Это программа, которая работала на компьютере пользователя и обес-
печивала интерактивное взаимодействие системы 1С:Предприятие 8
с пользователем.
Теперь, в версии 8.2, клиентских приложений три:
толстый клиент («старый») - lcv8.exe;
тонкий клиент - lcv8c.exe;
веб-клиент.
Все эти программы, за исключением веб-клиента, находятся в каталоге
исполняемых файлов конкретной версии платформы.
Стандартно - C:\Program Files\lcv82\< Номер версии >\bin.
ПОДРОБНЕЕ
Раздел Запуск, см. стр. 10.
Толстый клиент - это аналог клиентского приложения, существовав-
шего в версии 8.1. Аналог потому, что он умеет делать то, что делал
раньше, и еще умеет работать в режиме управляемого приложения -
с управляемым интерфейсом и с управляемыми формами.
«Толстым» клиент называется потому, что может исполнять прак-
тически всю функциональность, предоставляемую встроенным
языком, в том числе умеет работать с прикладными типами данных
СправочникОбъект. <имя>, ДокументОбъект. <имя> и т. д.
Но по этой же причине он требует значительного количества аппа-
ратных ресурсов на компьютере пользователя и может «общаться»
с базой данных или с сервером 1С:Предприятия только посредством
файлового доступа или по локальной сети.
Тонкий клиент - это новое клиентское приложение. Он умеет работать
с информационной базой только в новом режиме управляемого прило-
жения (управляемый интерфейс и управляемые формы).
Тонкий клиент гораздо «легче», чем старый, толстый клиент, требует
значительно меньше аппаратных ресурсов на пользовательском ком-
пьютере. Он умеет «общаться» по локальной сети (ТСРЛР) с кластером
серверов (рис. 29) и через Интернет (HTTP) в реальном режиме времени
с клиент-серверной или файловой информационной базой (используя
специальным образом настроенный веб-сервер); рис. 30.
Рис. 29. Подключение тонкого клиента по локальной сети
Тонкий клиент
Рис. 30. Подключение тонкого клиента через Интернет
Также тонкий клиент умеет работать и с файловой ’ базой данных
(рис. 31).
Рис. 31.
Подключение тонкого клиента
к файловой информационной
базе
«Тонким» клиент называется потому, что умеет исполнять ограни-
ченный набор функциональности встроенного языка. В частности,
на тонком клиенте недоступны все прикладные типы данных. Вместо
этого тонкий клиент оперирует ограниченным набором типов встро-
енного языка, предназначенным лишь для отображения и изменения
данных в памяти. Вся работа с базой данных, объектными данными,
исполнение запросов выполняются на стороне сервера. Тонкий клиент
только получает готовые данные, подготовленные для отображения.
Веб-клиента вы не найдете ни в меню, ни среди исполняемых файлов.
Потому он и веб-клиент, что ему для начала работы не нужно иметь
никаких файлов на компьютере пользователя.
Веб-клиент, в отличие от толстого и тонкого клиентов, исполняется
не в среде операционной системы компьютера, а в среде интернет-бра-
узера (Microsoft Internet Explorer или Mozilla Firefox). Поэтому любому
пользователю достаточно всего лишь запустить свой браузер, ввести
адрес веб-сервера, на котором опубликована информационная база, и
веб-клиент «сам приедет» к нему на компьютер и начнет исполняться.
Веб-клиент использует DHTML, HTTPRequest и элементы технологии
AJAX (Asynchronous JavaScript and XML - «асинхронный JavaScript
и XML»). Вся функциональность клиента в этом режиме исполняется
системой автоматически с помощью языка JavaScript (рис. 32).
Раньше, запуская клиентское приложение, не приходилось задумы-
ваться о том, какой режим работы системы будет использоваться
дальше: Конфигуратор или 1С:Предприятие.
Теперь же нужно помнить, что, как и раньше, конфигурирование воз-
можно с помощью толстого клиента. А вот тонкий клиент и веб-клиент
не предоставляют такой возможности. Они работают с информаци-
онной базой только в режиме 1С:Предприятие.
Эта особенность не проявляется в стандартных сценариях запуска
системы. Интерактивная программа запуска предоставляют возмож-
ность запустить систему и в режиме Конфигуратор, и в режиме ^Пред-
приятие. Однако когда возникает необходимость запустить, например,
клиентское приложение какой-то определенной версии непосредс-
твенно из меню Старт, об этой особенности нужно помнить.
При работе веб-клиента клиентские модули, разработанные в конфигу-
рации, транслируются автоматически из встроенного языка [(^Пред-
приятия 8 в JavaScript. Таким образом, независимо от режима работы
(толстый, тонкий, веб-клиент) вся разработка прикладного решения
ведется полностью в конфигураторе 1С:Предприятия, серверный
и клиентский код пишется на встроенном языке 1С:Предприятия.
В сводном виде отличия всех трех клиентов представлены
в таблице 1.
Таблица 1. Сравнение клиентских приложений
Толстый клиент Тонкий клиент Веб-клиент
Разработка прикладных решений Да Нет Нет
Работа в локальной сети Да Да Да
Работа через Интернет Нет Да Да
Необходимость предва- рительной установки Да, большой дистрибутив Да, маленький дистрибутив Нет
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Клиент-серверный вариант. Руко-
водство администратора, Глава 5 Клиент-серверный вариант работы.
Режим низкой скорости соединения
В 1С:Предприятии 8.2 для тонкого клиента и веб-клиента реализован
режим низкой скорости соединения. Этот режим предназначен для тех
случаев, когда работа с информационной базой выполняется по про-
токолу HTTP через низкоскоростное интернет-соединение (например,
через GPRS-соединение).
Основная цель этого режима - уменьшение издержек за счет мень-
шего количества обращений к серверу. Для этого несколько запросов к
серверу объединяются в один пакет, выполняется упреждающий сбор
данных, которые могут понадобиться, и не получается с сервера неко-
торая незначительная информация.
Если говорить о работе пользователей 1С:Предприятия, то режим
низкой скорости соединения может быть задан в списке информаци-
онных баз для каждой базы отдельно при ее создании или при изме-
нении существующей записи об информационной базе (рис. 33).
Рис. 33. Установка скорости соединения
в свойствах информационной базы
Возможны три значения: Обычная, Низкая или Выбирать при запуске.
Если установлено Обычная или Низкая, то именно так и будут работать
клиентские приложения, подключающиеся к этой базе.
Если для информационной базы установлено Выбирать при запуске,
это означает, что скорость соединения может быть изменена пользова-
телем в диалоге выбора информационной базы (рис. 34).
Рис. 34. Установка скорости соединения
в диалоге выбора информационной базы
Кроме этого, при любых установках информационной базы скорость
соединения можно указать с помощью параметра в командной строке.
Для тонкого клиента используется параметр командной строки /О Low
(листинг 1).
Листинг 1. Установка скорости соединения тонкого клиента
в командной строке
•C:\Pr04ram Files\lcv82\lcv8c.exe" /F D:\myBase /О Low
Здесь:
"C:\Prograin Files\lcv82\lcv8c.exe"-путь к исполня-
емому файлу 1С:Предприятия;
/F D: \myBase - ключ F указывает, что файловая база данных
располагается в каталоге D: \myBase;
/О Low - ключ О указывает режим низкой скорости соединения
(Low).
Для веб-клиента и тонкого клиента, подключаемого по HTTP, использу-
ется параметр командной строки 0=Low (листинг 2).
Листинг 2. Установка скорости соединения веб-клиента
в командной строке
http* /demo-ma.lc.ru/demo M?N=Admiplstrator60eLow
Здесь:
http://demo-ma.lc.ru/demo_ma URL веб-сервера,
на котором опубликована информационная база;
N=Administrator - ключ N указывает пользователя 1 (^Пред-
приятия (Administrator);
0=Low - ключ О указывает режим низкой скорости соединения
(Low);
символ ? отделяет адрес от параметров, а символ & отделяет один
параметр от другого.
ПОДРОБНЕЕ
Встроенная справка в режиме Конфигуратор: Справка - Содержание
справки - Запуск 1С:Предприятмя 8 и параметры запуска - Общие
параметры запуска, а также Параметры командной строки в режиме веб-
клиента.
Теперь обратимся к деятельности разработчика.
Работая в конфигураторе, ему часто приходится запускать систему
в пользовательском режиме, например, для отладки. Поэтому режим
низкой скорости соединения может быть установлен также и в конфи-
гураторе, для запуска сеанса 1С:Предприятия.
Он задается в параметрах конфигуратора: Сервис - Параметры - Запуск
1С:Предприятия - Основные - Низкая скорость соединения (рис. 35).
ПРИМЕЧАНИЕ
Заметим еще раз, что установка этого параметра имеет смысл только
для тонкого клиента и веб-клиента. Потому что толстый клиент
не умеет работать через Интернет.
Режим низкой скорости соединения, естественно, накладывает неко-
торый «отпечаток» на внешнее функционирование тонкого клиента
и веб-клиента:
автоматически не отображается рабочий стол при старте, для его
отображения нужно нажать на ссылку Показать рабочий стол;
не отображаются картинки разделов (рис. 36);
^Конфигуратор Демонстрационная конфигурация ' Управляемое приложение" !- ||П| X
Рис. 35. Установка скорости соединения в параметрах конфигуратора
в периоды паузы между вводом текста автоматически не форми-
руется список выбора при вводе по строке. Для его формирования
нужно нажать клавишу «Стрелка вниз»;
информация, необходимая для быстрого выбора, ввода по строке
и автодополнения, кешируется на клиенте;
о закрытии формы сервер уведомляется пакетным образом, после
накопления 20 событий или по истечении 20 секунд;
при запросе данных формы происходит упреждающий сбор пред-
ставлений ссылок и данных через точку.
Рис. 36. Рабочий стол в режиме низкой скорости соединения
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика,
Приложение 7.1 Особенности поведения системы в различных режимах -
Особенности режима низкой скорости соединения.
Скорость соединения можно установить один раз, до старта клиент-
ского приложения. После того как оно стартовало, скорость соединения
изменить уже нельзя.
Для того чтобы разработчик мог визуально оценить скорость работы
своего прикладного решения на плохом канале связи, в платформе
существует возможность имитации задержек при вызовах сервера.
ПОДРОБНЕЕ
Раздел Имитация задержек при вызове сервера, см. стр. 257.
Многоплатформенность
Использование веб-клиента позволяет всем элементам 1С:Предпри-
ятия 8.2 работать, например, только под управлением операционной
системы Linux (рис. 37).
Пользователь 1
Рис. 37. Работа системы под управлением операционной системы Linux
На этой схеме в качестве клиентских приложений используется веб-
клиент, исполняемый в браузере Mozilla Firefox под Linux.
Кластер серверов использует версию сервера 1С:Предприятия под
Linux.
С одной стороны кластер серверов взаимодействует с веб-сервером
Apache под Linux.
С другой стороны кластер серверов взаимодействует с СУБД PostgreSQL
также под Linux.
Другим возможным вариантом является работа системы только под
управлением операционной системы Windows (рис. 38).
На этой схеме в качестве клиентских приложений используется
веб-клиент,, исполняемый в браузере Microsoft Internet Explorer
под Windows.
Пользователь 1
Рис. 38. Работа системы под управлением операционной
системы Windows
Кластер серверов использует версию сервера 1 С:Г1редприятия для
Windows.
С одной стороны кластер серверов взаимодействует с веб-сервером IIS
под Windows.
С другой стороны кластер серверов взаимодействует с СУБД Microsoft
SQL Server также под Windows.
В общем случае архитектура 1С:Предприятия 8 позволяет смешивать
в одной системе элементы, работающие под управлением различных
операционных систем (рис. 39).
На этой схеме в качестве клиентских приложений используется веб-
клиент, исполняемый в браузерах Microsoft Internet Explorer под Windows
и Mozilla Firefox под Linux.
Кластер серверов использует версию сервера 1С:Предприятия под
Linux.
С одной стороны кластер серверов взаимодействует с веб-сервером
Apache под Linux.
С другой стороны кластер серверов взаимодействует с СУБД IBM DB2
под Windows.
Рис. 39. Работа системы под управлением различных
операционных систем
ПОДРОБНЕЕ
Документация 1С: Предприятие 6.2. Клиент-серверный вариант.
Руководство администратора, Глава 5.3 Клиент-серверный вариант
работы - Работа под управлением различных операционных систем.
Техническая архитектура
клиент-серверного взаимодействия
Устойчивость клиентских приложений..........................51
Использование протокола HTTP................................53
Безопасность................................................55
Многоуровневая аутентификация...........................56
Шифрование передаваемых данных..........................58
Особенности файлового варианта работы.......................62
L_________________________________________________________. .
В 1С:Предприятии 8.2 присутствует значительное архитектурное мно-
гообразие:
есть различные клиентские приложения: толстый клиент, тонкий
клиент, веб-клиент;
веб-клиент может работать в различных браузерах: Microsoft
Internet Explorer, Mozilla Firefox;
информационная база может располагаться в файле или на сер-
вере СУБД;
клиентские приложения могут работать с информационной базой
напрямую, через кластер серверов или через кластер серверов
и веб-сервер;
существуют версии сервера 1С:Предприятия для Windows,
для Linux, 32-битная, 64-битная.
могут использоваться различные веб-серверы: Apache, IIS.
Такое многообразие, естественно, требует унификации взаимодейс-
твия клиента и сервера в различных вариантах их совместного исполь-
зования.
Устойчивость клиентских приложений
Чтобы лучше понять произошедшие изменения, рассмотрим общие
схемы построения системы 1С:Предприятие 8.2 в клиент-серверном
и в файловом вариантах работы.
В клиент-серверном варианте работы кроме собственно компонентов
1С:Предприятия 8.2 принимают участие программные продукты
других производителей. Это веб-сервер и сервер СУБД (рис. 40).
Рис. 40.
Общая схема клиент-серверного
варианта работы
На этой схеме стрелками показано направление вызовов. Прерывис-
тыми линиями показаны те соединения, которые могут обрываться
«безболезненно» для пользователя. То есть в случае физического
обрыва и последующего его восстановления пользователь в боль-
шинстве случаев ничего не заметит. Клиентское приложение само вос-
становит соединение и продолжит работу «с того места», на котором
она была прервана, без повторного запуска клиентского приложения
и подключения к информационной базе.
Исключение составляет лишь толстый клиент, работающий в режиме
обычного приложения. Он далеко не всегда умеет восстанавливать
соединение так, как это делают тонкий клиент и веб-клиент. В ряде слу-
чаев после разрыва соединения потребуется перезапуск клиентского
приложения и повторное соединение с информационной базой.
В файловом варианте работы разнообразия меньше. Однако и в этом
случае могут присутствовать программные компоненты других произ-
водителей - веб-серверы Apache или IIS (рис. 41).
Рис. 41.
Общая схема файлового
варианта работы
Таким образом, если говорить о системе в целом, то можно сказать,
что тонкий клиент и веб-клиент практически нечувствительны к потере
соединения.
Использование протокола HTTP
В 1С:Предприятии 8.2 в качестве транспортного протокола использу-
ется TCP/IP. Он используется и в файловом варианте работы через веб-
сервер, и в клиент-серверном. Он используется при взаимодействии
клиентского и серверного приложений. Этот же протокол используется
при взаимодействии элементов кластера между собой (рис. 42).
Рис. 42.
Транспортные протоколы
в 1С:Предприятии 8.2
В качестве прикладного протокола при взаимодействии с веб-сервером
используется HTTP (рис. 43).
Рис. 43.
Прикладные протоколы
а 1С:Предприятии 8.2
Протокол HTTP был выбран для унификации взаимодействия клиентов
с веб-сервером потому, что он достаточно хорошо проработан и развит.
Это открытый протокол, без каких-либо специальных доработок.
К тому же данный протокол стандартно поддерживается браузерами,
что значительно облегчило реализацию веб-клиента.
Протокол HTTP предоставляет достаточно много стандартных возмож-
ностей, которые используются в 1 (^Предприятии 8.2.
Например, для того, чтобы клиент сообщил серверу, какой тип данных
нужно получить, в каком формате, используются стандартные заго-
ловки HTTP. В этих же стандартных заголовках передается инфор-
мация о языке содержания и о том, поддерживает ли клиент сжатие
данных при передаче. Если поддерживает, то сервер возвращает ему
содержимое ответов в сжатом виде.
Другая стандартная возможность - механизм Cookie. Он используется
как в браузерах, так и в тонком/толстом клиентах. Правда, использу-
ется он несколько ограниченным образом. В частности, в Cookie хра-
нится идентификатор сеанса, по которому клиента узнают на сервере
при каждом сообщении. Также посредством Cookie клиент оповеща-
ется, что для него есть некоторое сообщение. Клиент обращается по
определенному адресу на сервер и получает те сообщения, которые
предназначены ему.
Последняя стандартная возможность HTTP, о которой следует сказать,
это кеширование запросов. Оно существенно снижает трафик и повы-
шает производительность, особенно на тонких каналах. 1С:Предпри-
ятие 8.2 использует все стандартные возможности кеширования, пре-
доставляемые HTTP.
Безопасность
Так как протокол HTTP является открытым, в 1С:Предприятии 8.2
значительное внимание уделяется безопасности приложения от вне-
шнего воздействия. Для этого используются два механизма:
многоуровневая аутентификация,
шифрование передаваемых данных.
Многоуровневая аутентификация
Многоуровневую аутентификацию можно использовать при работе веб-
клиента или при работе тонкого клиента через веб-сервер (рис. 44).
Рис. 44.
Многоуровневая
аутентификация
Первый уровень аутентификации организуется на веб-сервере средс-
твами самого веб-сервера. И Apache, и IIS обеспечивают различные
виды аутентификации. Таким образом, пользователь, еще только соеди-
няясь с веб-сервером, будет вынужден каким-либо образом аутентифи-
цировать себя.
Если подключение выполняется с помощью веб-клиента, то можно
использовать любые виды аутентификации, которые поддерживает бра-
узер пользователя.
Если подключение выполняется с помощью тонкого клиента, то тонкий
клиент поддерживает только два вида аутентификации:
Basic,
аутентификация посредством пакета Negotiate.
Basic-аутентификация - это самый простой вид аутентификации. Поль-
зователь должен будет ввести имя пользователя и пароль.
Аутентификация посредством пакета Negotiate - более сложная. Она
позволяет сопоставить подключающегося клиента одному из доменных
пользователей. При использовании IIS такой вид аутентификации назы-
вается интегрированная аутентификация Windows. При использовании
Apache это аутентификация с использованием протокола Kerberos.
Чтобы не углубляться в тонкости, можно сказать, что если пользова-
тель находится в том же домене, что и веб-сервер, то эта аутентифи-
кация будет для него «прозрачной». Она будет выполнена автомати-
чески, незаметно для пользователя.
Если же пользователь подключается к веб-серверу и хочет аутентифи-
цироваться на нем не как текущий пользователь операционной сис-
темы, а как пользователь того домена, в котором находится веб-сервер,
то для этого потребуется небольшая «хитрость». В этом случае необ-
ходимо «сказать» тонкому клиенту, чтобы он не использовал текущую
аутентификацию пользователя в операционной системе, а вывел диалог
для ввода имени пользователя и пароля вручную.
Для этого можно использовать настройки информационной базы
(рис. 45) или параметр командной строки WSA-.
Рис. 45.
Установка способа
аутентификации в настройках
информационной базы
ПОДРОБНЕЕ
Встроенная справка в режиме Конфигуратор: Справка - Содержание
справки - Запуск 1С: Предприятия 8 и параметры запуска - Параметры
командной строки в режиме веб-клиента.
Как формируется командная строка, можно посмотреть в разделе Режим
низкой скорости соединения, см. стр. 43.
Второй уровень аутентификации - это аутентификация, выполняемая
средствами 1С:Предприятия при установке соединения с информаци-
онной базой. Тут тоже возможны два вида:
аутентификация с помощью имени пользователя и пароля,
аутентификация средствами операционной системы.
В первом случае от пользователя будет требоваться явное указание
имени пользователя и пароля.
Во втором случае аутентификация средствами операционной системы
будет «прозрачна» для пользователя. Если кластер серверов работает
на компьютерах под управлением операционной системы Windows, то
будет использоваться NTLM-аутентификация. Если же кластер рабо-
тает под управлением Linux, то будет использоваться аутентификация
по протоколу Kerberos.
Шифрование передаваемых данных
Шифрование передаваемых данных позволяет защитить систему от
несанкционированного доступа к информации со стороны посторонних
программных средств.
В различных участках передачи информации могут быть использованы
разные алгоритмы шифрования (рис. 46).
Рис. 46.
Шифрование данных
в 1С:Предприятии 8.2
Для защиты канала между веб-клиентом и веб-сервером или между
тонким клиентом и веб-сервером используются криптографические
протоколы SSL или TLS (рис. 47).
Поддержку этих протоколов обеспечивает HTTPS соединение с веб-
сервером. Для этого на сервере должен находиться действительный
серверный сертификат; который гарантирует клиенту подлинность
открытого ключа сервера, используемого для шифрования данных.
При подключении по HTTPS веб-клиентом можно использовать любые
возможности этого протокола, поддерживаемые браузером. Например,
можно использовать клиентские сертификаты, гарантирующие серверу
подлинность клиента.
Рис. 47.
Шифрование данных между
клиентом и веб-сервером
При подключении по HTTPS тонким клиентом набор возможностей
несколько ограничен.
Во-первых, использование клиентских сертификатов не поддержи-
вается.
Во-вторых, соединение с веб-сервером может быть установлено только
в том случае, если сертификат службы сертификации, подписавшей
серверный сертификат, присутствует в списке доверенных служб сер-
тификации тонкого клиента. Если его нет в этом списке, тонкий клиент
завершит свою работу, в отличие от браузера, который в этой ситуации
предложит пользователю самостоятельно принять или отклонить сер-
тификат, полученный от сервера.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство администратора.
Глава 7.3.3.2 Настройка веб-серверов для работы с 1С:Предприятием -
Настройка поддержки Web-сервисов Безопасность Web-сервисов -
Работа по защищенному каналу.
Для защиты каналов между кластером серверов и клиентами, между
кластером серверов и веб-сервером и для защиты каналов внутри
самого кластера используются алгоритмы шифрования данных, реали-
зуемые 1С:Предприятием 8.2: RSA и Triple DES (рис. 48).
Рис. 48.
Шифрование данных между
клиентом, кластером
и веб-сервером
Они присутствовали и в версии 8.1, поэтому здесь мы не будем оста-
навливаться на них подробно.
Единственное, что нужно сказать, что взаимодействие клиентов с сер-
вером может быть защищено по инициативе клиента или по инициа-
тиве кластера (на основании свойств информационной базы, с которой
соединяется клиент).
Соединение между кластером и веб-сервером защищается только клас-
тером на основании свойств информационной базы, к которой выпол-
няется подключение.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Клиент-серверный вариант. Руко-
водство администратора, Глава 5.1.12.1 Клиент-серверный вариант ра-
боты -Устройство кластера серверов - Безопасность кластера серверов -
Безопасность данных, передаваемых между клиентом и кластером
серверов.
Защита канала между кластером серверов и СУБД осуществляется
средствами той СУБД, которая используется. Все поддерживаемые
СУБД позволяют настроить свои клиентские компоненты, находя-
щиеся в кластере, так, чтобы трафик между ними и самой СУБД был
зашифрован. Все поддерживаемые СУБД могут использовать протокол
SSL, a IBM DB2 может использовать, помимо этого, еще и алгоритм
AES (рис. 49).
Кластер
серверов
Рис. 49.
Шифрование данных между
кластером и СУБД
Особенности файлового варианта работы
Существуют две особенности, связанные с работой системы в фай-
ловом варианте.
Первая особенность связана с доступом к файловой базе через веб-
сервер. Эта особенность сильно влияет на производительность файло-
вого варианта.
В клиент-серверном варианте работы, когда доступ к информационной
базе осуществляется через веб-сервер, в контексте веб-сервера рабо-
тает специальный модуль - модуль расширения веб-сервера.
Он является не более чем ретранслятором вызовов. Никакой актив-
ности в веб-сервере он не ведет. Внутри него существует пул соеди-
нений. Сообщение от клиента, приходящее в веб-сервер, просто рет-
ранслируется. При этом нагрузка на веб-сервер минимальна (рис. 50).
Если же доступ через веб-сервер осуществляется к файловой базе, то
все обстоит по-другому (рис. 51).
Рис. 50.
Веб-сервер
в клиент-серверном
варианте работы
Рис. 51.
Веб-сервер
в файловом
варианте работы
Модуль расширения веб-сервера создает изолированную среду испол-
нения для каждой информационной базы. Прямо в адресное про-
странство веб-сервера загружается компонент для работы с файловой
базой данных и сами данные информационной базы. При этом нагрузка
на веб-сервер сильно возрастает, а для пользователей одной информа-
ционной базы параллельности нет никакой. Все их запросы выстраива-
ются в очередь.
Поэтому такой вариант работы является скорее тестовым, чтобы просто
попробовать, как информационная база работает через веб-сервер,
например, с веб-клиентом. В качестве рабочего такой вариант, наверное,
можно использовать в особенных случаях для очень небольших рабочих
групп.
Вторая особенность связана с работой тонкого клиента с файловой
базой данных без использования веб-сервера. Ее влияние на произ-
водительность не такое существенное, как в предыдущем случае.
Однако эту особенность также нужно учитывать.
В клиент-серверном варианте работы взаимодействие между клиентом
и СУБД осуществляет кластер серверов 1С:Предприятия. Это типичная
3-уровневая архитектура клиент-сервер (рис. 52). При работе тон-
кого клиента в файловом варианте работы на компьютере, где запущен
сам тонкий клиент, организуется специализированная серверная среда
(рис. 53).
Рис. 52.
Трехуровневая архитектура
клиент-сервер
Файловая
информационная база
Рис. 53.
Тонкий клиент в файловом
варианте работы
СЛИЧИЛИ серверная среде
ТсмиЛюмант
В рамках этой специализированной среды выполняются:
загрузка необходимых для работы системы серверных компо-
нентов;
загрузка прикладной конфигурации;
другие действия, необходимые для организации нормальной
работы системы с информационной базой.
Таким образом, с точки зрения тонкого клиента данная среда выступает
в роли сервера.
С точки зрения операционной системы данная специализированная
среда не выделена в отдельный процесс и выполняется в рамках про-
цесса тонкого клиента.
Отказоустойчивый кластер
Масштабируемость менеджера кластера.................................66
Отказоустойчивость кластера.........................................69
Отказоустойчивость рабочих процессов................................72
Устойчивость к обрыву канала связи..................................73
Динамическое распределение нагрузки.................................75
Развитие кластера серверов 1С:Предприятия выполнено сразу
по нескольким направлениям.
Масштабируемость. Можно управлять распределением нагрузки,
которая раньше приходилась на единственный менеджер кластера.
Теперь эта нагрузка может быть распределена между несколькими
менеджерами кластера, что позволяет «разгрузить» главный менеджер
кластера.
Отказоустойчивость. Обеспечена бесперебойная работа пользо-
вателей при программных и аппаратных сбоях в кластере серверов.
Такие события, как выход из строя рабочего сервера (в том числе
и центрального сервера), аварийное (или плановое) завершение рабо-
чего процесса или менеджера кластера, не влияют на работу пользо-
вателей. Пользователи продолжают работать так, как будто ничего
не произошло. В случае физического разрыва соединения пользователя
с кластером (например, уборщица выдернула провод) и последующего
его восстановления пользователь может продолжить работу без повтор-
ного соединения с информационной базой и без потери своих текущих
данных.
Динамическое распределение нагрузки. Загруженность рабочих
процессов анализируется динамически. При необходимости клиент
автоматически переключается на более производительный рабочий
процесс. Такое переключение происходит совершенно незаметно для
пользователя.
Теперь рассмотрим каждое из этих улучшений более подробно.
Масштабируемость менеджера кластера
Напомним прежнюю структуру кластера. Кластер мог располагаться
на нескольких компьютерах, один из них - центральный сервер клас-
тера, остальные -рабочие серверы.
Все общие данные кластера и общие данные, связанные с работой поль-
зователей с теми или иными информационными базами, располагались
в отдельном процессе. Этот процесс назывался менеджер кластера,
и он работал на центральном сервере кластера.
На каждом рабочем сервере работали специальные процессы - агенты
сервера. Они отвечали за выполнение административных функций и
запуск рабочих процессов на компьютерах.
На каждом рабочем сервере могло быть запущено несколько рабочих
процессов, которые непосредственно связаны с клиентскими приложе-
ниями. Эти рабочие процессы отвечали за исполнение кода конфигу-
рации, предназначенной для работы на сервере (рис. 54).
Рис. 54. Схема кластера 1С:Предприятия 8.1
Рис. 55. Сервисы в кластере 1С:Предприятия 8.2
В версии 8.2 все функции менеджера кластера, которых накопилось
довольно много, были разделены на отдельные, относительно незави-
симые сервисы (рис. 55).
Появилась возможность наряду с основным, главным менеджером
кластера, создавать дополнительные менеджеры и распределять
между главным и дополнительными менеджерами эти отдельно выде-
ленные функции кластера (рис. 56).
Рвбоч»й сервер
Рис. 56. Распределение сервисов между менеджерами кластера
Получилось 12 штук различных сервисов.
Из них три могут использоваться только на главном менеджере:
сервис конфигурации кластера - хранит все настройки кластера;
сервис блокировок кластера - хранит блокировки информаци-
онных баз, сведения об активных процессах и другую динами-
ческую информацию о работе кластера;
сервис управления предметами отладки - управляет подсоеди-
нением отладчика к серверным предметам отладки.
Эти сервисы не создают большой нагрузки на главный менеджер
кластера.
Другие сервисы допускают назначение на произвольные менеджеры
кластера:
сервис журналов регистрации - поддерживает доступ к журналу
регистрации;
сервис полнотекстового поиска выполняет полнотекстовый
поиск и осуществляет индексирование;
сервис заданий - управляет запуском и отслеживанием времени
жизни фоновых и регламентных заданий;
сервис нумерации - обеспечивает генерацию уникальных номеров
и кодов объектов;
сервис пользовательских настроек обеспечивает доступ
к файлам, в которых размещаются некоторые пользовательские
настройки;
сервис времени - поддерживает получение оперативной отметки
времени и некоторые вспомогательные функции;
сервис блокировки объектов - хранит объектные блокировки;
сервис сеансовых данных - обеспечивает хранение сеансовой
информации, в том числе данных временного хранилища-,
сервис транзакционных блокировок - содержит транзакционные
блокировки управляемого режима блокировки данных.
Например, на рисунке 57 показан кластер 1541, состоящий из
двух серверов: srvrl и srvr2. На сервере srvrl существует главный
менеджер кластера и создан один дополнительный менеджер кластера.
На сервере srvr2 создано еще два дополнительных менеджера кластера
(рис. 57).
n 1CV8 Servers [Con<ole Rootleнтральнь e серверы IC Предприятия 8 2\(*)srvr1\Kn , теры\1 Ь411Менеджеры кластера]
н» мт им wmk» ннр
* - ©я а®&
£3 Console Root
Центральные серверы 1С ГЬедпоиятия 8.2
eifco™'
-ЙКластеры
-I5fcis«
’« Информационные базы
Г- Рабочие серверы
ь Л srvri Иринам
- Ъ МенедЖры кластера
=5 5RVR1
=f SRVR1
&Л Процессы
- > s,y,z МЬиеииее
S 4> МенегЛЬры кластера
Г wvr2
t. =s srvr2
L & Процессы
S Ддигмктраторы
[^йвсанне jptD } IP Порт |синхПорт [
SRVRI Главный менеджер кластера 1160 1541 1560
SRVRI Дополнительньм менеджер кластера (srvrl) 1480 1562 1563
=- srvr2 Дополнительньм менеджер кластера (srvr2-l) 1824 1564 1565
—jsrvr2 Дополнительный менеджер кластера (srvr2-2) 1780 1566 1567
| Менеджеры к ла», repa |
♦; SRVRI
-H =* SRVRI
? =* srvr2
=* wvr2
!±1- Процессы
Рис. 57. Менеджеры кластера
Сервисы распределены следующим образом (рис. 58). На главном
менеджере кластера исполняется большинство сервисов. На допол-
нительном менеджере сервера srvrl исполняется сервис сеансовых
данных. На дополнительных менеджерах сервера srvr2 исполняются
сервис нумерации и сервис блокировки объектов.
Важно, что только сервис сеансовых данных может исполняться
на нескольких менеджерах кластера (в данном случае на менеджере
сервера srvrl и менеджере сервера srvr2).
Рис. 58. Распределение сервисов по нескольким менеджерам кластера
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Клиент-серверный вариант.
Руководство администратора, Глава 5.1.3 Клиент-серверный вариант
работы - Устройство кластера серверов - Сервисы кластера
Отказоустойчивость кластера
Бесперебойная работа при выходе из строя одного или нескольких
компьютеров с менеджерами кластера достигается за счет того, что
несколько кластеров могут быть объединены в группу резервирования.
Пользователей обслуживает только один кластер из группы - первый
в группе работоспособный кластер. Он считается активным. Осталь-
ные кластеры группы считаются резервными и обеспечивают синхро-
низацию наиболее важных данных в актуальном состоянии (рис. 59).
На рисунке 59 показаны два кластера (srvrl и srvr2), объединенные
в группу резервирования. В каждом кластере, входящем в группу,
создается такой список - список резервирования. Списки должны быть
одинаковыми как по составу кластеров, так и по их порядку. После
этого кластеры автоматически синхронизируются, и первый из них ста-
новится активным. В этом можно убедиться, открыв его список блоки-
ровок (рис. 60).
и 1 VSSeivers [Console RootU^eнтра ть-
‘Зд Rh Acton Vfew Window Hdp
О Console Root
В ЦР Централы*» серверы 1С Предприятия 6 2
Е >(*)srvrl
if Л Информационные базы
V Рабочие серверы
Л Администраторы
f. =1 Менеджеры кластера
Б Процессы
Ч £ SRVR1
Сеансы
i*J & блокировки
Щ р Соединения
й €13 Реэереировамте кластеров
&-О srvrl
i±l- Адмгмктраторы
Е ||srvr2
- Кластеры
5fcis«
Й Информационные ба»
У Рабочие серверы
t) J Администраторы
Л) ~ Менеджеры кластера
<+ Л Процессы
й Др Сеансы
<+i & блокировки
Й) fl Соединения
*S СЗ srvrl
Адмгмктраторы
Рис. 59.
Группа резервирования
tm 1CV8 Servers [Con oIe Rootle игральные серверы К Предприятия 8 21(*)sгvr!Шла теры\1
j'JJl Ffe АсЦсл Wew Window Hefc»
।» EHM| g| Eg
Рис. 60.
Список
блокировок
активного
кластера
Cl Console Root
)-J Цр Центральные серверы 1С:Г|редлриятия8.2
ifcOsrvrl
‘11Й Кластеры
5fc is«
й* Информационные базы
l±i Рабочие серверы
из Администраторы
₽ Ъ; Менеджеры кластера
“ Процессы
F Д Сеансы
t Блокировки
sWia
IffПо сеансам
И fl Соединения
Й О Резервирование кластеров
Блокххдка
ft CoeflMHeHHe(Server3obExecutorContextJSRVRl,Job5cheduier)
ft CoeflMHBHHe(5erver3obExeQjtorCorfext,SRVRl,3oti5chedJet)
ft Рабочий nxjuectfSRVRI, 1564,1565)
ft Менеджер кластера^VP 1, 1541,1560)
ft Менеджер mwcTepa(5RVR2,1566,1567)
й Менеджер Knacrepa(SRVRl, 1562,1563)
й Менеджеркласт^а(5РУР2,1564,1565)
Й Администраторы
й |J|srvr2
При выходе из строя активного кластера активным становится следу-
ющий работоспособный кластер группы. При восстановлении работос-
пособности кластера, который находится в группе раньше активного,
активность передается ему после синхронизации данных.
При первом обращении к кластеру на клиента передается список клас-
теров, входящих в группу резервирования, поэтому в случае выхода из
строя кластера, указанного в свойствах этой информационной базы,
на клиенте автоматически будет выполнена попытка подключения к
другим кластерам из списка резервирования.
Однако есть ситуации, когда в списке информационных баз требуется
в явном виде перечислять все возможные кластеры, к которым может
быть осуществлено подключение еще до того, как первый раз выполня-
лось успешное подключение.
Например, это может потребоваться для списка общих информаци-
онных баз. Этот список создается администратором. Необходимо,
чтобы любой новый пользователь в любой момент времени мог первый
раз подключиться к тем базам, которые указаны в этом списке.
Поэтому добавлена возможность указания для одной информационной
базы сразу нескольких адресов кластеров через запятую (рис. 61),
например:
Serveri, Server2,
Serverl:1741,Server2:1741.
Рис. 61.
Указание нескольких адресов
кластеров для одной
информационной базы
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Клиент-серверный вариант.
Руководство администратора Глава 5.1.7.1 Клиент-серверный вариант
работы - Устройство кластера серверов - Отказосустойчивый кластер -
Резервирование кластеров.
Отказоустойчивость рабочих процессов
Бесперебойная работа при аварийном или плановом завершении рабо-
чего процесса обеспечивается за счет резервирования рабочих про-
цессов. Каждому рабочему процессу можно указать вариант его исполь-
зования: Использовать, Использовать как резервный или Не использо-
вать (рис. 62).
Рис. 62. Варианты использования рабочего процесса
Агент центрального сервера запускает все используемые (Использо-
вать) рабочие процессы. Если рабочий процесс завершился (аварийно
или планово), кластер запускает его повторно.
Если запуск процесса закончился с ошибкой, то кластер запускает
вместо него один из неактивных резервных процессов. Если все резер-
вные процессы уже используются или их не назначено совсем, система
попытается перераспределить нагрузку по оставшимся рабочим про-
цессам.
При этом попытки запуска используемого процесса продолжаются до
тех пор, пока не увенчаются успехом. Тогда самый «старый» резервный
процесс, используемый системой, выключается и будет остановлен.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Клиент-серверный вариант.
Руководство администратора. Глава 5.1.7.2 Клиент-серверный вариант
работы - Устройство кластера серверов - Отказоустойчивый кластер -
Резервирование рабочих процессов.
Устойчивость к обрыву канала связи
Бесперебойная работа пользователей при разрыве соединения с кластером
обеспечивается за счет того, что наряду с существовавшими ранее соеди-
нениями в кластере серверов реализована новая сущность - сеансы.
Не вдаваясь в технические подробности, можно сказать, что сеанс
является отражением активного пользователя в кластере серверов.
При этом в процессе «жизнедеятельности» пользователя соединения
могут устанавливаться, могут разрываться, но сеанс продолжает сущес-
твовать (рис. 63).
Рис. 63. Сеансы в кластере серверов
Под активным пользователем в данном случае понимается один из сле-
дующих объектов:
конфигуратор;
толстый клиент;
СОМ-соединение;
консоль кластера;
соединение в пуле модуля расширения веб-сервера;
тонкий клиент;
веб-клиент;
фоновое задание.
Сеанс начинается тогда, когда начинается работа конечного пользо-
вателя. Сеанс заканчивается, когда пользователь завершил работу
(закрыл клиентское приложение) или когда администратор принуди-
тельно завершил работу этого сеанса.
Если пользователь не закрыл клиентское приложение, но по каким-
то причинам не проявляет активности (например, ушел обедать), то
клиентское приложение будет периодически опрашивать сервер, тем
самым давая знать, что оно «живо». Все это время соответствующий
сеанс будет существовать на сервере.
Если же клиентское приложение перестает «подавать признаки жизни»
(например, уборщица случайно выдернула сетевой кабель из розетки),
то сервер будет поддерживать «жизнеспособность» сеанса еще 20
минут в надежде на то, что пользователь восстановит соединение и
продолжит работу.
Таким образом, разрыв соединения с тонким клиентом или веб-кли-
ентом теперь не является причиной «гибели» этого клиента. После вос-
становления соединения пользователь сможет продолжить работу.
Что касается толстого клиента, то в подавляющем большинстве слу-
чаев он тоже не погибнет, особенно если работает в режиме управляе-
мого приложения.
Однако при работе толстого клиента в обычном режиме существует
ряд ситуаций, когда разрыв соединения может привести к гибели тол-
стого клиента. Это связано с тем, что, в отличие от тонкого клиента и
веб-клиента, толстый клиент может «на себе» исполнять функциональ-
ность, критичную к такого рода «неожиданностям» (например, работа
с транзакциями и др.).
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Клиент-серверный вариант.
Руководство администратора, Глава 5.1.5 Клиент-серверный вариант
работы - Устройство кластера серверов - Сеансы и соединения.
Динамическое распределение нагрузки
Для каждого рабочего процесса платформа автоматически оценивает
его фактическую производительность доступную производитель-
ность. Доступная производительность показывает, насколько быстро
этот рабочий процесс может выполнить вызов сервера (рис. 64).
Рис. 64. Доступная производительность рабочего процесса
Клиенты распределяются между рабочими процессами так, чтобы
сделать доступную производительность всех рабочих процессов
примерно одинаковой.
Переключение клиента с данного рабочего процесса на другой рабочий
процесс выполняется в двух случаях:
в случае выключения этого рабочего процесса,
в случае появления рабочего процесса, доступная производи-
тельность которого в 2 и более раз выше, чем у этого рабочего
процесса.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Клиент-серверный вариант.
Руководство администратора, Глава 5.1.8 Клиент-серверный вариант
работы Устройство кластера серверов - Балансировка нагрузки
Oracle Database
В новой версии платформы реализована поддержка новой СУБД
Oracle Database. Теперь платформа 1С:Предприятия 8 поддерживает
работу с пятью СУБД:
файловая,
Microsoft SQL Server,
PostgreSQL,
IBM DB2,
Oracle Database.
Подробную информацию о возможностях Oracle Database можно полу-
чить на официальном сайте корпорации Oracle http://www.oracle.com/
global/nj/database/index.html.
Если вы не знакомы с этой СУБД, то несколько слов нужно сказать
о том, какие термины Oracle Database соответствуют понятиям, при-
нятым в 1С:Предприятии.
понятию «сервер баз данных» из 1С:Предприятия соответствует
термин database;
понятию «база данных» в 1С:Предприятии соответствует термин
schema; Schema содержит такие объекты, как таблицы, индексы
и др.; Schema неразрывно связана с одним из пользователей
database и имеет его имя;
логически database состоит из нескольких tablespace; таблицы,
содержащиеся в базе данных, могут относиться к одному или
к разным tablespace;
физически database представляет собой набор специальных
файлов datafile; для каждого tablespace создается один или
несколько datafile.
Теперь совсем кратко опишем действия, необходимые для создания
информационной базы на Oracle Database.
1С:Предприятие 8.2 поддерживает две версии Oracle Database:
10g Release 2 и 11g Release 1.
После установки программного обеспечения Oracle на сервере нужно
создать database.
При создании database необходимо установить для нее параметр
CHARACTER SET = AL32UTF8.
Затем нужно установить порядок сортировки, отличающийся от стан-
дартного, на основе специального файла, Ix327c5.nlt, поставляемого
в комплекте 1С:Предприятия 8.2.
Чтобы создать информационную базу 1С:Предприятия 8, использу-
ющую для хранения данных Oracle Database, в диалоге добавления
информационной базы нужно выбрать Тип СУБД - Oracle Database,
(рис. 65).
Рис. 65.
Добавление информационной
базы, использующей
Oracle Database
В качестве имени сервера баз данных нужно указывать TNS тюте.
Это может быть строка вида //имя_сервера_БД/имя_сервиса,
но возможны и другие вариации написания TNS пате.
В качестве имени пользователя можно указать суперадминист-
ратора database (SYSMAN) и его пароль (этот пароль задается
в процессе создания database).
При создании информационной базы 1С:Предприятие 8 создает
в database пользователя. В качестве имени пользователя будет исполь-
зовано имя базы данных, указанное в диалоге 1С:Предприятия 8.
Все таблицы 1С:Предприятия 8 будут расположены в schema создан-
ного пользователя.
Также будут созданы стандартные для 1С:Предприятия 8 tablespace
(если их еще не существует; при этом datafile будут иметь пути по
умолчанию):
для данных - V81C_DATA;
для индексов - V81CJNDEX;
для LOB -V81C_LOB.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Клиент-серверный вариант.
Руководство администратора, Глава 5.5.4 Клиент-серверный вариант
работы - Установка серверов баз данных - Установка Oracle Database.
Стандартным режимом работы с Oracle Database для 1С:Пред-
приятия 8 является режим управляемых транзакционных блокировок.
Если же в 1С:Предприятии 8 используется автоматический режим
управления блокировками, то тогда Oracle Database использует таб-
личные блокировки. Это значит, что транзакция, читающая данные из
некоторой таблицы, исключает возможность одновременной записи в
ту же таблицу другой транзакцией. Такую же гранулярность блоки-
ровок (гранула - таблица) использует PostgreSQL в автоматическом
режиме и файловый вариант работы 1С:Предприятия 8.
Как и в других СУБД, используемых 1С:Предприятием 8, в Oracle
Database есть некоторые особенности, связанные с порядком сорти-
ровки и с выполнением запросов:
при сортировке по возрастанию поля со значениями NULL оказы-
ваются последними в выборке (аналогичным образом ведет себя и
PostgreSQL);
в запросе внутри оператора В нельзя использовать вложенный под-
запрос, который обращается к полям внешнего запроса и при этом
содержит ключевое слово ПЕРВЫЕ и раздел УПОРЯДОЧИТЬ ПО.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Приложение 8.5 Особенности работы с различными СУБД-Сервер Oracle
Database.
С файловой базой можно работать
не всегда
В версии 8.2 есть две ситуации, в которых не поддерживается работа
системы 1С:Предприятие в файловом режиме работы.
Первый случай - когда тонкий клиент или веб-клиент работают с базой
данных через веб-сервер. Не всегда, а только в том случае, когда на ком-
пьютере веб-сервера установлена 64-битная операционная система Linux
и сам веб-сервер является 64-битным приложением. В такой ситуации
работа с файловой информационной базой будет невозможна (рис. 66).
ИнФормакмонная
база
♦MMcsma вариант
Рис. 66. Работа с файловой базой через веб-сервер
Рис. 67. Создание начального образа клиент-серверной
информационной базы
Второй случай - это создание начального образа клиент-серверной
информационной базы. Если на компьютере сервера 1 (^Предпри-
ятия установлена 64-битная операционная система Linux и сам сервер
1С:Предприятия является 64-битным приложением, то тогда начальный
образ информационной базы может быть создан только в клиент-сер-
верном варианте работы (на этом же сервере 1С:Предприятия или
другом). Создать файловый начальный образ на компьютере кли-
ента или на другом компьютере в локальной сети будет невозможно
(рис. 67).
Windows 98/Ме больше
не поддерживаются
В версии 1С:Предприятия 8.2 все компоненты платформы являются
полностью Unicode-приложениями. Взаимодействие с операционной
системой Windows теперь происходит с использованием Unicode
версий API.
Следствием этого является невозможность работы компонентов
платформы на не-Unicode версиях Windows, таких как Windows 98
и Windows Me.
Новая технология внешних компонентов
Существовавшая ранее технология внешних компонентов была осно-
вана на технологии СОМ. По этой причине внешние компоненты могли
работать только в операционных системах Microsoft Windows.
Для 1С:Предприятия 8.2 разработана новая технология внешних ком-
понентов.
С одной стороны, она сохранила возможность создания и ограничен-
ного использования COM-компонентов для того, чтобы обеспечить
работу компонентов, написанных ранее.
Однако теперь основной технологией, которая используется для
создания внешних компонентов, является не технология СОМ, а тех-
нология Native API - собственный интерфейс системного программиро-
вания 1С:Предприятия 8.
Она поддерживает операционные системы Windows и Linux и дает воз-
можность создавать внешние компоненты для каждой из них. Компо-
ненты, созданные по технологии Native API, могут быть подключены
в толстом клиенте, в тонком клиенте, в веб-клиенте, внешнем соеди-
нении и в сервере приложений.
Теперь внешние компоненты могут храниться в макетах конфигу-
рации, в информационных базах (в объектах базы данных), в файлах
на диске.
При работе через веб-клиента внешний компонент подключается
к веб-браузеру в виде расширения. Расширение - это сам компонент
и адаптер для браузера, который скрывает эту тонкость работы с брау-
зерами. В целях безопасности сделано так, что один адаптер работает
только с одним компонентом, который задан на этапе компиляции.
ПОДРОБНЕЕ
ИТС: Технологическая поддержка - Методическая поддержка 1С:Пред-
приятия 8 - Платформа 1С:Предприятие 8.2 - Технология создания
внешних компонент.
Демонстрационная конфигурация Управляемое приложение. В форме
документа ПриходТовара демонстрируется методика работы с собы-
тиями внешних компонент на клиенте. Установка внешней компо-
ненты выполняется обшей командной УстановитьСканерШтрихкодов.
В справочнике Товары на примере печати штрихкодов демонстрируется
работа с внешними компонентами на сервере.
Новый состав документации
В 1С:Предприятии 8.2 значительные изменения произошли в докумен-
тации к технологической платформе.
Были две книги:
1С: Предприятие 8.1. Руководство по установке и запуску,
1С: Предприятие 8.1. Конфигурирование и администрирование.
Теперь существуют две другие:
1С: Предприятие 8.2. Руководство администратора,
1С: Предприятие 8.2. Руководство разработчика.
В первой книге собрана информация из руководства по установке
и запуску, и часть информации из книги Конфигурирование и адми-
нистрирование, которая касается именно администрирования системы.
Такое разделение этих книг поможет более эффективно использовать
имеющуюся информацию. Как правило, администратор и разработ-
чик - это разные люди. Теперь у каждого из них есть «своя» книга.
Во-вторых, документация к технологической платформе теперь
доступна в электронном виде в составе ежемесячных выпусков ИТС.
Это значительно упрощает пользование документацией и поиск в ней
нужной информации.
ПОДРОБНЕЕ
ИТС: Технологичеогая поддержка - Методичеогая поддержка 1С:Пред-
приятия 8 - Платформа 1С:Предприятие 8.2 - Документация.
Режим
1 С:Предлриятие
Нет меню «Операции»....................................84
Где управление итогами?................................88
Ссылки.................................................90
История................................................95
Избранное..............................................99
Редактирование только в диалоге.......................103
Список, иерархический список, дерево 105
Поиск в списках - это отбор...........................108
Списки можно группировать по значению.................111
Отбор в списках 115
Сортировка списка по нескольким колонкам .............121
Условное оформление списков...........................126
Множественное выделение в списках используется
стандартно ...........................................132
Варианты отчетов 134
Пользовательские настройки отчетов....................139
Настройки вариантов отчетов...........................145
Новые объекты можно создавать, не пользуясь списками 148
Предупреждения при изменении кода/номера в форме......153
Не получается открыть два документа...................157
1С:Предприятие 8 в Интернете..........................158
Наше «1С».............................................161
Нет меню «Операции»
Раньше можно было создать объект конфигурации и в режиме 1С:Пред-
приятие получить к нему доступ, не включая его в интерфейс, через
меню Операции (рис. 68).
Рис. 68.
Меню «Операции»
Теперь такой команды - Операции - нет.
Но это не значит, что теперь нельзя получить доступ к аналогичному
списку объектов конфигурации. Просто он имеет другое назначение
и другое название.
В версии 8.1 пункт меню Операции был, что называется, «на глазах».
Это было не всегда хорошо. Потому что он содержал структуру при-
кладного решения в терминах разработчика, а они далеко не всегда
были понятны и, что самое главное, нужны пользователю.
В версии 8.2 этот список стандартно «спрятан» от пользователя.
Он уже не «маячит» перед глазами и не вызывает желания посмотреть,
что в нем. В то же время пользователю (разработчику, администратору,
специалисту по внедрению) не запрещено обращаться к этому списку
в режиме 1С:Предприятие.
Если нужно, можно его включить. Но назначение его очень узкое -
только для разработчика. Если разработчику нужно открыть объект
конфигурации, который он еще не включил в интерфейс. Или если раз-
работчик, например, забыл, куда он включил тот или иной объект.
Чтобы появилась команда перехода к этому списку, нужно вклю-
чить флажок Отображать команду «Все функции» в параметрах сис-
темы: Главное меню - Сервис - Параметры... - Отображать команду
«Все функции» (рис. 69).
SMteHI
Перейти по ссылке.,
Получить ссылку.
Добавить в иэбраыюе
История
Файл
Правка
► Я
кна ► gj
Справка >
о.
DM11
Финансы
Предприятие
DM
CW+ShHt-Ж
калькулятор
DM2
Календарь
Сообщения
DMh'ft+Z
«4
Все действия - Ф
Текущие вэаимора...
Все действия - &
Настройка интерфейса
к-онтраг Вал машдш
угель
ин "Обувь"
"Обувь"
Продукты"
Склад
Большой
Малый
Средний
Ч
О)
0-
—
000000015
Корнет Рубли 7 685
। Магази. Рубли
Параметры
14.04.2008 14.1214
^16.04.200810:48:32
^1804.2008130511
^1804.2008140820
^ 25.04.200810:45:37
.^28.04.200810:5424
15.01.200912:0000
^02.02.20091200:00
J 0502.2009120000
2302.200910:5042
J 11 03.200911 53:48
( JОтображать показатели произердитехъности
Г~! И вотировать задержку грн вызова* сервера
Задержка при вызове (с(
Задержка грн передаче дата«< (с/Кбайг!
Задержка при получении датеък (с Лбайт)
0.45
0,15
С Й*' ~1 Г Отмена
[ Сгргежа
п
Рис. 69. Включение команды «Все функции» в режиме 1С:Предприятие
После этого в главном меню станет доступна команда Все функции
(рис. 70).
Рис. 70.
Команда «Все функции»
в главном меню
В окне Все функции будут отображены все объекты конфигурации,
которые доступны пользователю, исходя из его прав. Функциональные
опции на этот список не влияют (рис. 71).
Все функции
Q ГО Справочники
ГО Банки
ГО Валюты
ГО Варианты отчетов
ГО Вилы пен
ГО Значения характеристик товаров
ГО Контрагенты
ГО Настройки торгового оборудования
ГО Организации
ГО Расчетные счета
ГО Расчетные счета контрагентов
ГО Регионы
ГО Склады
ГО Товары
ГО >фанимые файлы
Ф L1 Документы
ft 0 Журналы документов
(? Й Отчеты
* Обработки ▼
Рис. 71.
Окно «Все функции»
Кроме описанного способа, и в тонком клиенте, и в веб-клиенте
для включения команды Все функции можно использовать параметр
командной строки DisplayAllFunctions.
ПОДРОБНЕЕ
Встроенная справка в режиме Конфигуратор: Справка - Содержание
справки - Запуск 1С: Предприятия 8 и параметры запуска - Общие
параметры запуска.
Как формируется командная строка, можно посмотреть в разделе
Режим низкой скорости соединения, см. стр. 43.
При отладке конфигураций разработчику также может понадобиться
команда Все функции. Поэтому в конфигураторе есть возможность по
умолчанию включить эту команду при запуске сеанса из конфигура-
тора: Сервис - Параметры... - Запуск 1С: Предприятия - Дополнитель-
ные - Отображать команду «Все функции» (рис. 72).
Рис. 72. Включение команды «Все функции» в параметрах конфигуратора
а8 I 1 С:Предприятие 8.2. Коротко о главном. Новые возможности версии 8.2
J___________________________________________________________
Кроме объектов конфигурации, в самом низу списка (риС. 70) в ветке
Стандартные будут показаны стандартные функции системы. Здесь
собраны такие функции, как управление итогами, проведение доку-
ментов и др.
ПОДРОБНЕЕ
Раздел Где управление итогами?, см. стр. 88.
Где управление итогами?
Различные системные команды, отображавшиеся раньше в нескольких
пунктах меню 1С:Предприятия, собраны теперь вместе.
Рис. 73.
Системные команды
в меню «Операции»
Это все команды, существовавшие ранее в меню Операции (рис. 73):
Удаление помеченных объектов;
Поиск ссылок на объекты;
Управление итогами...;
Проведение документов...;
Управление полнотекстовым поиском...
Часть команд, существовавших в меню Сервис (рис. 74):
Активные пользователи,
Журнал регистрации.
Рис. 74.
Системные команды
в меню «Сервис»
Все перечисленные команды собраны теперь в окне Все функции,
в ветке Стандартные (рис. 75).
Ы Отчеты *
£ Обработки
— Tl) Планы видов характеристик
fj" Планы счетов
♦ Планы видов расчета
% Регистры сведений
jail Регистры накопления
5"] Регистры бухгалтерии
Регистры расчета
Бизнес процессы
I 'i 3«ач4
Рис. 75.
Стандартные функции
ПОДРОБНЕЕ
Раздел Нет меню Операции, см. стр. 84.
Стандартные функции ориентированы прежде всего на разработ-
чиков и специалистов по внедрению. Предполагается, что даже адми-
нистратор прикладного решения будет пользоваться не этими стан-
дартными функциями платформы, а их адаптациями, созданными
в конкретной конфигурации. Потому что применительно к конкретной
конфигурации эти универсальные механизмы могут быть сделаны
«лучше» и понятнее.
Например, список активных пользователей может показывать не только
то, что платформа «знает» про активных пользователей, но и то, что
сама конфигурация «знает» про своих пользователей. Ведь, как пра-
вило, в конфигурациях пользователь системы ассоциирован с неко-
торым пользователем конфигурации, о котором есть дополнительная
прикладная информация.
Ссылки
В 1С:Предприятии 8.2 реализован механизм ссылок. Значительная часть
этого механизма реализована в режиме 1С:Предприятие и доступна
пользователю интерактивно. В полном же объеме механизм доступен
из встроенного языка.
Общий смысл этого механизма заключается в том, что теперь в режиме
1С:Предприятие можно получать текстовые ссылки на данные, храня-
щиеся в информационной базе, на точки навигации и на отчеты и обра-
ботки.
Условно разделим такие ссылки на два «вида» — интерактивные и неин-
терактивные:
интерактивные ссылки:
о на объекты информационной базы — на элементы справоч-
ников, на документы и т. д.;
о на отчеты;
о на обработки;
о на точки навигации - на разделы, на формы списков, открыва-
ющиеся в основном окне;
неинтерактивные ссылки:
о на реквизит объекта информационной базы (например, рек-
визит элемента справочника);
о на реквизит табличной части объекта информационной базы;
о на запись регистра информационной базы;
о на реквизит записи регистра информационной базы;
о на временное хранилище.
Интерактивные ссылки
Эти ссылки можно запоминать для дальнейшего использования,
например, чтобы быстро перейти к определенному документу.
Этими ссылками можно обмениваться, например, передать сотруднику
ссылку на неправильно оформленный документ.
Раньше нужно было передать название документа и его номер; сотруд-
нику сначала пришлось бы найти список этих документов и затем
в списке по номеру искать конкретный документ.
Теперь сотрудник может просто ввести текстовую ссылку, и нужный
документ сразу откроется.
Например, ссылка может выглядеть следующим образом (листинг 3).
Листинг 3. Навигационная ссылка
1С1Ь/баЪа/Докумен’Г.Пр«ходТовара?геГ="а9Ь800055с14 9b45elldbb50561cf0dac’
В рамках этой книги мы не будем рассматривать правила, по которым
формируются ссылки, они описаны в документации. Заметим только,
что формат ссылок соответствует стандартам RFC 1738, 1808, 2368,
2396, и для того чтобы отличать ссылки 1С:Предприятия 8 от других
(например, http или file), используется идентификатор схемы elc.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Приложение 2 Форматы навигационных ссылок.
Важным для нас является то, что одна и та же ссылка может быть пред-
ставлена как внутренняя (относительно какой-то информационной
базы), или внешняя, то есть включающая-в себя сведения о конкретной
информационной базе. Пример внутренней и внешней ссылки при-
веден в листинге 4.
Листинг 4. Внутренняя и внешняя ссылка
/,• Внутренняя ссылка
»1сГЬ/|1аса/Документ.ПриходТовара?геГ«”а9Ь8С0055б49Ь45е11с1ЬЬ50561сГ0с1ас"
// Внешняя ссылка
etc://filev/C/Bases/Platfoxm82Demo#elcib/data/
Документ. ПриходТовара?геГ="а9Ь800055<И9Ь45е11с1ЬЬ505б1сГС<1ас"
Как мы видим, разница только в начальной части ссылки. У внешней
ссылки добавляется идентификатор конкретной базы данных. В при-
мере это файловая база данных (elc://filev/), расположенная в каталоге
C/Bases/Platform82Demo.
С точки зрения пользователя существует три способа использования
таких ссылок.
Любые ссылки (и внешние, и внутренние) можно добавлять
в избранное, чтобы затем, при необходимости, быстро вернуться
к этому документу или списку.
ПОДРОБНЕЕ
Раздел Избранное, см. стр. 99.
Внутренние ссылки можно использовать внутри конкретной
информационной базы. При этом не важно, каким клиентом поль-
зователи подключены к этой информационной базе. Один пользо-
ватель может получить внутреннюю ссылку, передать ее другому
пользователю. Например, по электронной почте. Другой пользова-
тель может перейти по этой ссылке.
Внешние ссылки задуманы для использования вне 1С:Предпри-
ятия. В настоящий момент внешние ссылки имеет смысл исполь-
зовать только для веб-клиента. Один пользователь, подключенный
к информационной базе веб-клиентом или тонким клиентом по
протоколу HTTP, может получить внешнюю ссылку и передать
ее другому пользователю. Другой пользователь может ввести эту
ссылку в строку веб-браузера. В результате будет запущен веб-
клиент, выполнено соединение с нужной информационной базой
и выполнен переход по ссылке.
В режиме 1С:Предприятие ссылку можно получить по команде Полу-
чить ссылку в основном или во вспомогательном окне (рис. 76).
Рис. 76. Команда «Получить ссылку»
В диалоге получения ссылки можно сразу же скопировать ее в буфер
обмена или переключить представление ссылки с внутренней на вне-
шнюю.
Чтобы перейти по полученной ссылке, нужно выполнить команду
Перейти по ссылке в основном или во вспомогательном окне (рис. 77).
Рис. 77. Команда «Перейти по ссылке»
Встроенный язык поддерживает работу со ссылками. Для этого в гло-
бальном контексте есть ряд методов:
ПолучитьНавигационнуюСсылку();
ПолучитьНавигационнуюСсылкуИнформацион-
нойБазы();
ПолучитьПредставленияНавигационныхСсылок();
ПерейтиПоНавигационнойСсылке();
НайтиОкноПоНавигационнойСсылке().
Неинтерактивные ссылки
Неинтерактивные ссылки предназначены для использования во встро-
енном языке. Например, они могут использоваться для отображения
картинок в форме, когда нужная картинка находится во временном хра-
нилище или в реквизите объекта информационной базы.
История
Новая версия платформы умеет сохранять историю работы пользова-
теля. При интерактивном добавлении или изменении объектов инфор-
мационной базы (например, документов, элементов справочников)
информация об этом автоматически сохраняется системой.
Пользователь всегда может открыть список этих изменений и перейти
к любому из объектов, перечисленных в этом списке. Например, для
того, чтобы уточнить, правильно ли он изменил данные (рис. 78).
История
Открыть
«0
Ндаменоыние
Постчпле^етор^ЭД0000019отгЭ01 200811 23 56
Пиаэуз DQQOQQOT* от 02,03.200? 5; 452S
Дега
года ie43.i4
02.07 200918.43:02
02.07 20091842:50
02.07 2009 7 41 13
02.0720097:41.01
0107 2009 1 2:25:43
Рис. 78.
История работы
пользователя
Босоножки
Поицугааатгеаа 000000034 ст 25 СП 20Q8111 £59
Рис. 79. Переход к истории работы пользователя
Перейти к окну История можно с помощью кнопки История в инфор-
мационной панели или через Главное меню - Сервис История
в основном или вспомогательных окнах приложения (рис. 79).
Кроме этого, последние оповещения об изменении объектов информа-
ционной базы отображаются в правой части информационной панели
для быстрого доступа к ним (рис. 80).
Закуки
Предприятие
Продажи
Финансы
Рабочий
стоя
Товарные
запасы
Регистр томртъ* запас»
Все действия»
Вид цен
000000006
000000005
000000011
Контрагенты
Товары
“ Пантера АО
“ Скороход АО
ЭлетроБыт ЗАО
а. Код
000000001
000000009
000000010
Создать
Постутление товара
Контрагент
Товар
Отчеты
Остатки товаров
Отчет по взаиморасчетам
Сереж
Остановить грограмму работы со сканером
Настроить сканер
Контрагенты
Создать £ & X] Найти Создать на основании
Рис. 80. Последние измененные объекты в информационной панели
Наименование
□ Поставщики
“ Животноводство ООО
“ Корнет ЗАО
Оптовая
Закупочная
Оптовая
Закупочная
Закупочная
Розничная
История хранится в служебной таблице информационной базы.
Если один и тот же объект информационной базы изменялся несколько
раз, то в истории будет храниться только одна запись о последнем изме-
нении этого объекта.
Если изменялись необъекгные данные (например, запись регистра све-
дений), то история будет хранить записи о каждом изменении данных
в ключевых полях этой записи.
История хранит не более 200 записей. При добавлении новых записей
в историю старые записи автоматически удаляются.
Автоматически записи в историю попадают только при интерактивном
изменении объектов. Если объекты изменяются программно (например,
средствами встроенного языка с помощью внешней обработки),
то стандартно при этом не появляется оповещение в правом нижнем
углу основного окна приложения и не появляется записи в истории.
Но разработчик может, при необходимости, принудительно вызвать
появление оповещения и может занести запись в историю работы поль-
зователя.
Во встроенном языке для работы с историей используется менеджер
истории работы пользователя. Его можно получить с помощью
свойства глобального контекста ИсторияРаботыПользователя.
Для показа оповещения используется метод глобального контекста
ПоказатьОповещениеПользователя().
ПРИМЕР
В качестве примера рассмотрим программное изменение элементов
справочника. При программном изменении автоматически записи
в историю не добавляются. Поэтому мы будем добавлять их
самостоятельно, из встроенного языка. А при завершении работы
выведем оповещение о том, что элементы справочника были изменены.
ПОДРОБНЕЕ
Этот пример можно посмотреть в демонстрационной конфигурации
Работа с историей.
В новой информационной базе добавим в конфигурацию справочник
Товары и создадим его форму списка. Расположим ее на рабочем
столе.
В эту форму добавим команду ИзменитьТовары. В обработчике дейс-
твия команды напишем следующий код (листинг 5).
Листинг 5. Обработчик команды ИзменитьТовары
►НаКлиенте
Процедура ИзменитьТовары(Команда)
Количество ИзменитьЭлементыI. •
Элемента.Список.Обновить(>;
ПоказатьОповещениеПользователя("Обработано " + Количестве
+ " элемента",
"elelt >7 navlgationpaint .desktop" t
"Список т< аров") ;
КонецПродег/оы
Сначала вызовем функцию ИзменитьЭлементы () Ее пока нет, мы
ее напишем позже. Она будет изменять наименование элементов спра-
вочника Товары и вернет нам количество измененных элементов.
После этого мы обновим список справочника, расположенный в форме,
чтобы увидеть новые наименования Элементы.Список.Обно-
вить ()
И в заключение мы выведем оповещение, которое сообщит поль-
зователю количество измененных элементов и будет содержать
ссылку на рабочий стол elcib/navigationpoint/desktop.
Это нужно, чтобы пользователь, если он находится в другом раз-
деле программы, мог быстро перейти к рабочему столу и посмотреть
выполненные изменения.
ПОДРОБНЕЕ
О ссылках можно прочитать в разделе Ссылки, см. стр. 90.
После этого добавим недостающую функцию ИзменитьЭлементы ()
(листинг 6).
Листинг 6. Функция ИзменитьЭлементы()
yta Сервере БеэКонтекста
Функция Изменить элемента () Экспорт
Кияичч» >**
Выборка » Справочники. Товары.Выбрать (. , , , "Koe"i;
Пока Выборка.Следующий() Цикл
Об'ьектТовар = Рыб ,рка.Получитьобъект<);
ОбъектТовар.Наименование •• "Новый joaap " • Ивт^чество •
ОбъегтТовам.Записать О )
историяРаботалольэователй .Добавить (Выборка '.рылка) <
Количество * Количество +
КомецЦикла:
Возврат Fer -гтвк>
конецфункции
Функция очень простая. Выбираются все элементы справочника
Товары. Каждому элементу изменяется наименование, и он записыва-
ется.
После этого в историю добавляется запись об изменении этого эле-
мента справочника ИсторияРаботыПользователя.Доба-
вить (Выборка.Ссылка).
Функция возвращает количество измененных элементов.
Теперь, в результате выполнения команды ИзменитьТовары в списке
справочника Товары, наименования всех товаров будут изменены.
Запись об изменении каждого товара будет добавлена в историю,
а в конце работы будет выведено одно оповещение.
Можно было бы выводить оповещения каждый раз после изменения
очередного элемента справочника, но это бессмысленно, так как визу-
ально все эти оповещения «сольются» в одно. Поэтому выводится одно
«итоговое» оповещение в конце работы.
Избранное
Новая версия платформы позволяет пользователю вести собственный
список избранных ссылок. В этот список пользователь самостоятельно
может добавить ссылки на точки навигации: на разделы программы,
на списки, открывающиеся в основном окне, на отчеты, обработки и на
объекты информационной базы - на элементы справочников, на доку-
менты и т.д.
Предполагается, что пользователь будет добавлять в этот список важные
для него ссылки или ссылки, которыми он часто пользуется, для быст-
рого перехода к ним.
ПОДРОБНЕЕ
Раздел Ссылки, см. стр. 90.
Чтобы увидеть список избранного, нужно открыть меню Избранное
в основном или во вспомогательном окне приложения (рис. 81).
Ссылки в избранное можно добавить с помощью команды Добавить
в избранное.,Эта команда находится в меню Избранное в области сис-
темных команд в основном и во вспомогательных окнах приложения
(рис. 82).
Рис. 81. Список избранного
Предприятие - Банки
Товарные запасы
Добавить в йзбрагмМ
Рабоый
Регистр товарных sanaRF
Активные пользователи
Отчет по взаиморасчетам
Товарные запасы Иены Иены товаров
Товарные запасы - Характеристики - Виды характерней* товаров
Магазин Ъытовая техника”
Контрагенты
Ctrt+Shrft-r-O
Сервис
гь грсграмму работы со сканером
ь сканер
^Создать Сд Нейти Создать на основании
I
II
Наименование & Кед
даЗ Поставшрки 000000001
“ Животноводство ООО 000000003
“ Корнет ЗАО 000000010
<9> ЗКЗ'^В^НВИИ^НИНВ 000000012
“ Пакт ера АО 000000006
“ Скороход АО 000000005
“ ЭлетрбБытЗАО СЮ0000011
Виацен
Оптовая
Закупочная
(tarteet
Закупочная
Закупочная
Розничная
В се действия'
Рис. 82. Добавление ссылок в избранное
Также ссылки в избранное можно добавить с помощью команды глав-
ного меню - Сервис - Добавить в избранное (рис. 83).
►на
Контрагенты
Справка
Регистр тоеошм запас
Поставщики
Животноводство ООО
- Корнет °
Финансы Предприятие
Установить программ работы со сканером
Настроить сканер
Создать на основании -
Все действия- и»
Виа иен
000000001
000000009
000000010
•“ Пантера АО
" Скороход АО
•“ ЭлетроБыт ЗАО
00000СЮ06
000000005
000000011
Оптовая
Закупочная
С111ЧЩ
Закупочная
Закупочная
Розничная
п
in
Ш
Рис. 83. Добавление ссылок с помощью команды главного меню
Еще один способ добавления ссылок - с помощью кнопки Добавить
в избранное, которая есть в диалогах получения ссылки и перехода
по ссылке (рис. 84).
Пользователь имеет возможность управлять списком избранного
менять ссылки местами, удалять ненужные ссылки.
Это возможно в окне настройки избранного, которое открывается
по команде Настройка избранного из меню избранного основного или
вспомогательного окна приложения (рис. 85).
Избранное хранится в хранилище системных настроек.
ПОДРОБНЕЕ
Раздел Настройки пользователей хранятся в информационной базе,
см. стр. 324.
Документация 1С:Предприятие 8.2. Руководство разработчика:
Раздел 5.5.10 Объекты конфигурации
Ветвь конфигурации
«Общие» - Хранилища настроек,
Приложение 4 Перечень автоматически сохраняемых настроек.
Рис. 84. Добавление ссылки из диалога получения ссылки
Рис. 85. Настройка избранного
Содержимым избранного можно управлять программно с помощью
объекта встроенного языка ИзбранноеРаботыПользователя. Осо-
бенностью является то, что доступ к этому объекту не предоставля-
ется через свойство глобального контекста, как, например, к истории
работы пользователя.
Для того чтобы получить доступ к избранному, нужно прочитать из
системного хранилища настроек избранное, добавить в него новый
элемент с нужной ссылкой и сохранить избранное обратно в системное
хранилище настроек.
Редактирование только в диалоге
В версии 8.1 у ссылочных объектов конфигурации и у регистра све-
дений существовало свойство Способ редактирования (рис. 86).
Рис. 86. Свойство «Способ редактирования»
Одноименное свойство было и у табличных полей, источником данных
которых были списки этих объектов.
Это свойство определяло, каким образом должны редактироваться
данные объекта: в отдельной форме (рис. 87) или прямо в списке
(рис. 89).
Рис. 87.
Редактирование в отдельной
форме в 1С:Предприятии 8.1
Рис. 88.
Редактирование в списке
в 1С:Предприятии 8.1
Продажи
Предприятие
Товарные
Финансы
Закупки
Рабочл
ски
Контрагенты
ТоЫюы
Рагиегртоварнш запасов
(лмддть
Поспрюение Товара
Контрагент
Товар
Остатки товаров
Отчет по взаиморасчет вы
ъчреыс
Установить грограмг^ работы со Сканерам
Настроить сканер
Товары
^Создать L& & у, Q Найти Печать-
Все действия-' ф
Артжул
Поставщик
Виа
000000030
Код
Наименование Колбаса
Вин
Им
КоЕ7
Артикул
Поставщик.
Штрихкод
Товар
Том»
Товар
Товар
ЖгвотиоеодствоООО
Животноводство ООО
Животноводство ООО
• Товар
3 Услуга
Наименование
1 taj Продукты
" Йогурт
Масле
Колбаса (Товар)
QI
Животноводство ООО
Перейти_____
Файлы
Характеристики товаров
Цыъч товаров
Л К»
000000011
000000035
оооооооэо
000000021
000000026
S564
КсвГ
ПРД-0002
Mol 34
В се действия- 1»
Грута:
Продукты
Изображение Хасвоедиетжи
Картжжа:
Если был выбран режим Обоими способами, то пользователь мог
в форме списка самостоятельно переключать способ редактирования.
В версии 8.2 не поддерживается режим редактирования ссылочных
данных информационной базы в списке. Данные можно редактировать
только в форме.
При работе в режиме управляемого приложения свойство объекта кон-
фигурации Способ редактирования игнорируется, и данные редактиру-
ются всегда в отдельной форме (рис. 89).
Это относится ко всем таблицам, источником данных которых является
динамический список.
Если же таблица имеет другой источник данных (табличная часть,
дерево значений, таблица значений и т. д.), то ее данные редактируются
непосредственно в списке.
Список, иерархический список, дерево
В версии 8.1 в табличном поле могли отображаться иерархические
данные. Например, список иерархического справочника.
В этом случае платформа предоставляла пользователю возможность
Рис. 90.
Переключение между
иерархическим
представлением
и линейным списком
самостоятельно переключать
вид табличного поля между
иерархическим представле-
нием и представлением в
виде линейного списка. В том
случае, конечно, если разра-
ботчик не отключал эту воз-
можность (рис. 90).
Кроме этого, разработчик имел возможность показать Тот же самый
список в виде дерева. Это можно было сделать в отдельном табличном
поле или в том же самом табличном поле с помощью встроенного языка
(рис. 91).
Рис. 91.
Представление данных
в виде дерева
Теперь, в версии 8.2, пользователь может самостоятельно выбирать
режим просмотра списка: Список, Иерархический список, Дерево
(рис. 92,93,94).
Нанменомже Л. Кев Артикул
™ Йогурт 000000035 S564
" Колбаса 000000030 КоК7
" Кроссовки 000000024 KrosOOI
" Масло 000000021 ПРД-0002
“ Молоко 000000026 M6I34
LJ Обувь 000000001
— Пинетки 000000025 Pin23
LJ Продукты 000000011
ЕЗ Пылесосы 000000014
“ Ремонт 000000038
" Ряженка 000000027 R45
“ Сапоги 000000002 0Б-001
"Длинны 000000007 ПБЛ0С65
Поставщик Вид
Товар
Животноводство ООО Товар
Корнет ЗАО Товар
Животноводство ООО Товар
Животноводство ООО Товар
Пантера АО Товар
Услуга
Животноводство ООО Т овар
Пантера АО Товар
Рис. 92.
Список
Наименован* ‘Код Артикул Поставщик Вид
[ ЕЗ Злетротовары 000000012
И Q3 Чайники 000000013
Ж2НЯИ1 000000017 Ч-OOGl ЭлетроБытЗДО Тоеф
- BoschlS 00000001В 4-0002 ЭлетроБыгЗАО Товар
— Veko67NE 000000022 Ч-СООЗ ЭлетроБыгЗАО Товар
— VekoNT02 000000033 NT02 ЭлетроБыгЗАО Товар
Рис. 93.
Иерархический
список
Наиненоваже А. Код Арткул Поставщик
— Товары
® ЙЙ Обувь
% & Продукты
3 ЁВ Услуги
000000001
000000011
000000038
- Доставка 000000037
Услуга
— Ремонт 000000038
з 6Э Злетротоеары 000000012
9 ЁЗ Пылесосы 000000014
» Й Телевизоры 000000033
Услуга
— 8опуК3456Р 000000040 Н657 ЭлетроБыт ЗАЛ Товар
© Чайник 000000013
"• JKBT 000000017 МИИ ЭлетроБыт ЗАО Тсмр
— Лдя±15 000000018 ЧЖ__________ ЭлятюБыт ЗАЛ Тлвах
Рис. 94.
Дерево
Выбор режима производится по команде Режим просмотра, доступной
из меню Все действия формы (рис. 95).
Продаж Товарные Фтыасы Предприятие
Остатки товар»
Отчет по взаиморасчетам
Товары
©Создать QНайти. Печать
Артикул
1
Слисок
000000011
000000036
000000012
EJLJ Продукты
ГЛ [а? Услуги
ГЯ ЬЗ Злетротоеары
Скогнроватъ
Изметмъ
Пометить на удаление 7 Снять пометку
Удалить
ереместить в гругтту
Перейти на уровень гмже
Перейти на уровень выше
Найти
Отменить поиск
Настроить стысок
Вь«всти список.
Изменить Форму.
Печать
Поставио*
Ins
Иерархический список
Создать грутту
Обновить
CN1+F9
F9
F2
De!
SWt+Del
ChMJown
СЫ*ир
Ctrf*F
OikQ
*
•ис. 95. Изменение режима просмотра списка из меню «Все действия»
ПОДРОБНЕЕ
Раздел Нет просмотра групп и элементов, см. стр. 411.
Поиск в списках - это отбор
В версии 8.1 поиск в списках можно было осуществлять вводом с кла-
виатуры. Например, находясь в списке товаров, можно было начать
вводить на клавиатуре эл, и система автоматически искала это начало
строки в той колонке, по которой отсортирован список. Когда нахо-
дила - устанавливала курсор на найденную строку (рис. 96).
Рис. 96.
Поиск в табличном поле
вводом с клавиатуры
В версии 8.2 точно так же можно начать вводить название с клавиатуры.
Но при этом будет автоматически открыто окно поиска, в котором отоб-
разится введенная подстрока (рис. 97).
После нажатия кнопки Найти будет осуществлен поиск, который рабо-
тает как отбор по вхождению введенной строки (если поле типа Строка).
В данном случае по вхождению в название товара (рис. 98).
Если поле имеет не строковый тип, а другой, то отбор будет произво-
диться по введенному значению. В том числе и для полей, имеющих
ссылочные типы.
Чтобы вернуться к полному списку, нужно нажать кнопку Отменить
поиск в списке.
Какие есть особенности у нового поиска?
Во-первых, можно искать по всем колонкам списка, не заботясь о том,
как он сейчас отсортирован или в какой колонке находится курсор.
В окне поиска можно выбрать колонку, по которой должен произво-
диться поиск (рис. 99).
Рис. 97. Поиск в списке вводом с клавиатуры
Рабочий Закупки Продажи Товартые Финансы Предприятие
стоя запасы
Поетцллвнмя товаров
Контрагенты
Темпы
См ТВКЖВ
Регистр товарный запасов
Постутаание товара Остатки товар»
Контрагент Отчет га взаиморасчетам
Товар
Товары
©Создать ЕЭ JSl Найти Печать -
Все действия *
Рис. 99.
Выбор КОЛОНКИ,
в которой будет
производиться поиск
Стандартно поиск выполняется во всех группах, но можно ограничить
его только текущей группой или текущей группой и подчиненными
группами (рис. 100).
Рис. 100.
Выбор области
иерархии,
в пределах которой
будет производиться
поиск
Также следует сказать, что поиск вызывается не только при начале
ввода текста. Его можно вызвать командой Найти из панели управления
списка или контекстного меню списка (рис. 101).
Также поиск можно вызвать и командой Все действия - Найти (рис. 102).
сварные
Гкмдтюнепв
Прсивжн
1*4 Печать
Артикул
Поставив*
Создать группу
Скопфоватъ
Измектть
Поступление томра
Контрагент
Товар
Товары
@Соэдатъ Ei eO # Wl Q Найти
000000001
000000011
000000036
Остатки товаров
Отчет по взаиморасчетам
Наименование
Обувь
Пропусти
Настроить сканер
1ns
CtrUFS
I*
О
Пометить на удаление i Снять пометку
Удалить
Обносить
Del
Shtfl+Del
F5
4
Режим гросмотро
Переместить в группу
Перейти не уровень гмжв
Перейти на уровень вьаие
Я1 rtWCI
Ctf+Down
Chi+Up
СН*О
Настроить список
В ьвести список.
ЗТ Мзмететть Форму
Печать
Рис. 102. Команда «Все действия - Найти»
Списки можно группировать по значению
В версии 8.1 отсутствовала возможность какой-либо иной группировки
списков, кроме как по иерархии. Если список был неиерархическим, то
единственным его представлением был линейный список (рис. 103).
Рис. 103.
Линейный список
В версии 8.2 динамические списки можно группировать "по значению
какого-либо поля. Например, этот же самый список можно сгруппиро-
вать сначала по поставщику, а затем - по складу (рис. 104).
Дата
- Ш Большой
Поставщик
Склад
Валюта взимор
J 05.05.20006:52:32 000000016 Жквотноводств Большой
® 10 Малый
® Ы» Корнет ЗАО
*' 10 Магазин "Продукты"
0 МосхлебОАО
|0 Склад отдела продаж
4 10 Средний
-^ 23.01200014:0357 000000035 МосхлебОАО Средней
21 022000103818 000000030 МосхлебОАО Средний
10 Пакт ера АО
Цф Скороход АО
Руб/и
Рубли
Рубли
Рис. 104. Список, сгруппированный по значениям полей
«Поставщик» и «Склад»
При этом значения, по которым осуществляется группировка, сортиру-
ются в порядке возрастания их строкового представления.
Группировку может задать разработчик в конфигураторе, а может поль-
зователь в режиме 1С:Предприятие. При этом пользователю доступны
группировки, заданные разработчиком в конфигураторе, и пользова-
тель может их отключить.
В конфигураторе группировка списка задается в свойствах реквизита
формы, являющегося динамическим списком. Для этого нужно нажать
на ссылку Настройка списка - Открыть (рис. 105).
Будет открыто окно настройки списка. В этом окне нас интересует
закладка Группировка (рис. 106).
Рис. 106.
Группировка
динамического списка
в конфигураторе
В режиме 1С:Предприятие настройка списка выполняется командой
Все действия - Настроить список (рис. 107).
При этом система открывает для настройки списка окно, практически
такое же, как и в режиме Конфигуратор (рис. 108).
Группировка по дате выполняется без учета времени, потому что груп-
пировать в течение секунды было бы, наверное, неудобно (рис. 109).
Сгруппированный список всегда отображается в виде дерева, и его
нельзя переключить ни в иерархический, ни в простой список - ко-
манда Режим просмотра отсутствует.
Группировка, установленная разработчиком в конфигураторе, будет
видна и доступна для изменения пользователю в режиме ^Пред-
приятие.
Продажи
Финансы
Предприяти!
Настроить сканер
Ins
'• Поставщк.
Схл«
Дата
Скопировать
F9
Изменить
F2
000000016
Животноводств
Бо/ъшой
Пометить на удаление Z Снять пометку
Del
Shft+Dd
Удалить
Обновить
Установить интервал дат.
Провести
Поступленыетоеара
Контрагент
Товар
Поступления товаров
| Создать ф # |м] С^Найти Создать на основами
Товарные
запасы
Остатки товаров
Отчет г взаиморасчетам
05.0520086:5232
V Л Малый
Си Ь£> Корнет ЗАО
4» ® Магазин ’Продукты"
fc Й£> МосхлебОАО
ь Ю Склад отдела продаж
&S> Средний
23.01.200814.0357
21.02200810381В
Я ПангераАО
♦ is> Скороход АО
000000035
000000030
МосхлебОАО
МосхлебОАО
Средний
Средний
Я
ч
проведения
Найти.
СЫ+F
CM+Q
Отменить поиск
Создать на осноеанк*
Справка
F1
Рис. 107. Вызов настройки списка в режиме 1С:Предприятие
да Номер Поставщик
<_J 1501.2008140741
1501.20081035:04
& to 22.01 2008
LJ 22.01 200812:4406
а to 23.01.2008
Ф to 25.01 2008
fi to 01.02.2008
б № 06.02.2006
& to 12022008
й 21022008
000000033 ЗлетроБытЗАО
000000001 Скором» АО
000000036 ЗлетроБытЗАО
Склад отделе пр. Рубги
Средний Рубл4
Склад отдела пр. Рубги
& to 19032008
Рис. 109.
Группировка
списка по дате
Платформа не сохраняет группировку списка, выполненную пользова-
телем в режиме ЮПредприятие. Поэтому даже если пользователь что-
то изменил в группировке списка, то при очередном открытии списка
он снова увидит его в том виде, как его настроил разработчик.
Если же в конфигурации разработан отдельный механизм сохранения
настроек пользователя, который в том числе позволяет сохранять
и группировку списков, то для восстановления исходного вида списка
нужно просто удалить настройки, выполненные пользователем.
Во встроенном языке группировка доступна как свойство объекта
ДинамическийСписок.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В форме
списка документа ПриходТовара демонстрируется возможность груп-
пировки данных в динамическом списке. Документы сгруппированы
по реквизиту Поставщик.
Отбор в списках
Раньше для выполнения отбора в списке нужно было вызвать диалог
отбора и сортировки либо командой из командной панели табличного
поля, либо командой из его контекстного меню (рис. 110).
Стандартно отбор можно было задать не для всех полей табличного
поля и только по одному значению для каждого поля. Отдельные
условия отбора объединялись по условию И.
Например, если мы указывали условия Поставщик Равно Поставщик 3,
Комментарий Содержит фон (рис. 111), то это означало, что будут отоб-
раны документы поставщика 3, в которых комментарий содержит под-
строку фон (рис. 112).
Рис. 110. Диалог отбора и сортировки
Рис. 111. Условие отбора по двум полям
В новой версии платформы выполнение отбора стало более простым.
В то же время возможности отбора значительно расширились.
Во-первых, теперь, если нужен простой отбор по значению одного
из полей, для этого можно воспользоваться обычным поиском.
Можно просто начать вводить на клавиатуре нужное значение
и затем выполнить поиск. Поиск теперь работает как отбор.
ПОДРОБНЕЕ
Раздел Поиск в списках - это отбор, см. стр. 108.
Во-вторых, и пользователь, и разработчик могут теперь настраивать
сложные отборы в списках, используя для этого возможности, предо-
ставляемые системой компоновки данных.
Отбор задается в настройках списка. Их можно открыть по команде
Все действия - Настроить список... на закладке Отбор (рис. 113).
Продажи
Томршв
Фммнсы
Яйздгфмпи
Постутлемие товара
Контрагент
•вж-
Остатки товар»
Отчет по взаиморасчетам
Настроить сканзд
Контрагенты
Ф Создать gjj & д, С^Найти Создать на основании
*0
Вишен
Ins
Корнет ЗАО
Магазин 'Бытовая техника"
Магазин ‘Мясная лавка"
Магазин Обувь"
000000010
000000014
000000016
000000015
Закуюетая
Мелкооптовая
Мелкооптовая
Розничная
Создать труту
Скопфовать
Изменить
Пометить на удаление / Снять пометку
CH+F9
F9
F2
Del
“ МосклебОАО
— ПантераАО
ЙЫ Покупатели
— ПоповБВ.ИЧП
ЬО Поставщши
Скороход АО
Шлюзовая ООО
ЭлетрсБытЗАО
000000012
000000006
000000002
000000007
000000001
000000005
000000004
000000011
Оптовая
Закуюетая
Мелкооптовая
Уда/мгь
Shrft+Dd
Обновить
Режим тздосмогра
Перемостить в труту
Перейти на уровееь ниже
Ctrf*Dcwn
Перейти на уровееь вшив
Drf+Up
CtrUF
Найти
Отменить поиск
СьМЭ
Закуюетая
Оптовая
Розничная
) Изменить ферму.
1А
а
J
Создать на осноемм
V Справка
Для отбора теперь доступны все поля списка, в том числе поля стан-
дартных реквизитов, такие как Проведен или Пометка удаления
у документов (рис. 114).
ПОДРОБНЕЕ
Раздел Стандартные реквизиты, см. стр. 186.
Рис. 114. Настройка отбора в режиме 1С:Предприятие
Можно формировать сразу несколько условий отбора и объединять их в
группы И, ИЛИ, НЕ. Если специально не указано, то отдельные условия
отбора объединяются по И.
Например, можно отобрать всех контрагентов, в наименовании которых
содержится либо подстрока Магаз, либо подстрока ООО (рис. 115,
116).
Наименование . Код Вод цен
Животноводство ООО 000000009 Оптовая
*• Магазин'Ъыговаятвхнка" 000000014 Мелкооптовая
Магазин "Мясная лавка* 000000016 Мелкооптовая
“ Магазин ’Обувь" 000000015 Розтатчная
"" Магазин ’Продукты" 000000013 Оптовая
" Шлюзовая ООО 000000004 Оптовая
•1
Рис. 116. Результат отбора по двум полям
Добавление нового элемента отбора выполняется командой Добавить,
а новая группа условий добавляется командой контекстного меню Доба-
вить новую группу (рис. 117).
€
е
Выбрать
Все действия
yi G Грута Или
ООО
Поле
Наименование
t
Настройка стека
5 Отбор J Сортировка
ПОлЧ
Виа иен
Город
Грута контрагентов
Дом
Дополгагтегъмая инФорм
Индекс
Код
Наименование
Пометка удаления
Предопределег»*>гй
Регион
Ссылка
Страна
Содержит
Аналогичными возможностями по установке отбора обладает и разра-
ботчик в конфигураторе.
В конфигураторе отбор настраивается в свойствах реквизита формы,
являющегося динамическим списком. Для этого нужно нажать
на гиперссылку Настройка списка - Открыть. Далее - закладка Наст-
ройки - Отбор (рис. 118).
W
Конфигуратор -
Демонстрационная
KOI
• нфигурация
'Управ1
пяемое
приложе!
ние'
£айл
Правка
конфигурация
Отладка
^шмистрцхзванйе
Окна
Сг^авка
•JVS 10 X e
и
X
’ Основные
Ксмананая!
- Г Слисок
। панель
Имя
Сгысси
Заголовок
«в Кометная панель
Наименование
Ж Код
КОД
Регион
Индекс
Страна
Город
Улица
Дом
Злемен
X!
ХЗ
ЕЕ
г»
tn.
в
в
Ж
Ж
зе
Ж
Слравочник.Коитраге»
I Создать
Форма
Репки
Найти
ним
Рис. 118. Настройка отбора списка в режиме Конфигуратор
Отбор, установленный разработчиком в конфигураторе, будет виден
и доступен для изменения пользователю в режиме 1С:Предприятие.
Платформа не сохраняет отбор списка, выполненный пользователем
в режиме 1С:Предприятие. Поэтому даже если пользователь что-то
изменил в отборе списка, при очередном открытии списка он снова
увидит его в том виде, как его настроил разработчик.
Если же в конфигурации разработан отдельный механизм сохранения
настроек пользователя, который в том числе позволяет сохранять
и отборы списков, то для восстановления исходного вида списка нужно
просто удалить настройки списка, выполненные пользователем.
Во встроенном языке отбор доступен как свойство объекта Дина-
мическийСписок.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение.
В форме списка журнала ФинансовыеДокументы демонстрируется
возможность программной установки отбора списка. При этом
отключается доступность редактирования этого отбора пользователем.
Для форм списков документов ПриходТовара и РасходТовара в
свойствах динамического списка в форме задано несколько элементов
отбора с отключенным использованием. Это позволяет пользователю
сразу вводить отбор при настройке списка, не добавляя его из списка
полей.
Сортировка списка
по нескольким колонкам
В прошлой версии платформы для сортировки списка можно было
нажать мышью на заголовок колонки, по которой хотелось отсортиро-
вать. Повторное нажатие на заголовке этой же колонки переключало
порядок сортировки (по убыванию, по возрастанию). Таким образом
можно было отсортировать табличное поле по одной колонке.
Кроме этого, можно было вызвать диалог отбора и сортировки либо
командой из командной панели табличного поля, либо командой из
его контекстного меню. В этом диалоге на закладке Сортировка можно
было задать условия сортировки табличного поля уже по нескольким
колонкам (рис. 119).
Рис. 119. Настройка сортировки в диалоге отбора и сортировки
В новой версии платформы можно быстро сортировать списки, не поль-
зуясь отдельным диалогом.
Как и раньше, щелкая на заголовке колонки, можно задать порядок
сортировки по этой колонке. Затем, удерживая клавишу Ctrl, можно
щелкнуть на заголовке другой колонки и задать порядок сортировки
уже для нее. Таким образом можно сразу же отсортировать список по
нескольким колонкам (рис. 120).
Номер Поспит»* А Склад 1 ' Важл-веэимсрасч
kJ 06.02.2008 1245:23 000000003 Пантера АО Большой Рубли
17.0420» 8:06:53 000000005 Пантера АО Большой Рубли
kJ 2803.200820:35:17 000000012 Пантера АО Большой USD
|LJ 2703.20082211.56 000000013 Пантера АО Большой EUR
| - J 15.01 20» 183504 000000001 Скороход АО Средгмй Рубли
j 1 m rtc O.-1C -ус 000000021 Скороход АО Малый USD
11 01 ЛЮ11>Г<Ч6 M 000000004 Скоротав АО Большой
1 J 25.04.2008 85232 000000003 Скороход АО Богъшой Рубли
LJ 22.04.20082345:20 000000010 Скороход АО Большой EUR
LJ 27.03.20082211:24 000000008 Шлозовая ООО Малый Рубли
LJ 2201.20» 12:44:06 000000036 ЗлетроБытЗАО Склад отдел. Рубли
Il J 15.01.200814-07:41 000000033 ЗлетроБытЗАО Склад отдел Рубли
Аналогичных результатов можно добиться и через настройки списка,
которые можно открыть по команде Все действия - Настроить список...
на закладке Сортировка (рис. 121).
Продажи Товарные Финансы Прадлриягие
запасы
-Саваж*.'
Продажа
Квитраген*
Джаника продаж Отчет по взаиморасчетам
Остался товаров
Продажи товара
^Создать Найти Создать на основании-
Печать- ДВсе действия ф
Дата
J 03.01 200814:31 41
J 05.01200814:25:53
J 23.01 200814:36:09
I? 10502.200813:47-09
J 27.02.200810:4301
J 27022008130426
J 02.03.20085:45:26
J 05.03.200814:47-38
, 20.03.20081О521В
'?J 21.03.20081303:11
^25.03.20081321.56
1 J 1204.200818:36:49
lK I 14.04 200814:1214
ll «1,1004 200810.4*32
000000001
000000002
000000020
000000003
000000005
000000006
000000004
000000029
000000011
000000013
000000014
000000007
000000015
оттают
Покупатель
Полов Б В ИЧП
Полов Б В ИЧП
Магазин "Продукты"
Полов Б В МЧП
Магазин Юбувь"
Магазин 'Продукты'"
Полов Б В ИЧП
Магазин "Бытовая т.
Магазин "Обувь"
Магазин "Мясная ла
Магазин "Обувь"
Магазин "Обувь"
Магазин "Продукты"
Ыаглчмн Ппгмшсты"
Склеп
Большой
Малый
Создать
Скопировать
Изменить
Ins
F9
F2
Малый
Малый
Малый
Малый Р
Малый Р ’
Склад отдела продаж Р
Средний
Малый
Большой
Малый
Средний
Пометить на удаление I Снять пометку
Удалить
Обновить
Установить интервал дат
Провести
Найти
Отменить поиск
Настроить список
Вывести список.
Изметвяь форму
Создать на основании
Печать
Справка
Del
Sbift+Del
F5
Ctri+F
CUI+Q
F1
i.' Номер
В
Р
р
Е
р
о
£
ы
Q
Рис. 121. Вызов настройки списка в режиме 1С:Предприятие
Для сортировки теперь доступны все поля списка, в том числе поля
стандартных реквизитов, например, Проведен или Пометка уда-
ления.
Поэтому, пользуясь этим диалогом, можно, например, установить
сортировку по полю Пометка удаления, несмотря на то, что это поле
в списке не отображается (рис. 122).
ПОДРОБНЕЕ
Раздел Стандартные реквизиты, см. стр. 186.
Настройка списка
’ Отбор
Сорпфовка УГрдодоекц ^Условное оформление
Выбрать
^Добавить & X ♦ ♦
Состнхяжа
Поле
Доступные поля
“ Валота взиморасчетое
*** Виа цен
— Дата
Номер
— Обоснование отгрузки
“ Организация
я Покупатель
Проведен
Склад
Ссылка
ОК Отмена
эис. 122. Условие сортировки
Дата Нем®
j * 02 022009120000 000000031
-J 1501 2009120000 000000032
<. 05.02.20091200.00 000000033
J 03.01 200814.31 41 000000001
0501.200814:25:53 000000002
02.03.20085:45:26 000000004
Lj 2702.20081043:01 000000005
.*270220081304 26 000000006
* 1204200816:3649 000000007
5j210320081303.il 000000013
*J 1404 200814:1214 000000015
L J 050220081347 09 000000003
ПокумгеА । Склад
Магазин'Бытовая т Большой
Мосхлвб ОАО Бсмьцюй
ПантераАО Магьй
п— и*—
Попсе 6.В ИЧП Бсгьиюй
Попсе Б.В.ИЧП МалЛ
Попсе Б В ИЧП Матьй
Магазин "Обдаь" МалЛ
Магазин "Продукты" Малл
Магвэд 'Юбувь" МалЛ
Магазин ‘Мясная ла МалЛ
Магазин "Продукты" CpeuTMd
Поп® Б В ИЧП МалЛ
Рубл<
Рубл<
Рубл<
Рубл<
Рубл<
Рубли
Рубли
Рубли
Рубли
Рубл<
EUR
Рис. 123.
Результат
сортировки
Останавливая сортировку, можно добавлять только отдельные элементы
юртировки, которые объединяются вместе по условию И. Создавать
руппы, как в отборе, нельзя.
Аналогичными возможностями сортировки обладает и разработчик
। конфигураторе.
J конфигураторе сортировка списка настраивается в свойствах рекви-
зита формы, являющегося динамическим списком. Для этого нужно
шжать на гиперссылку Настройка списка - Открыть. Далее - закладка
<астройки - Порядок (рис. 124).
1орядок. установленный разработчиком в конфигураторе, будет виден
[ доступен для изменения пользователю в режиме 1С:Предприятие.
Конфигуратор
Демонг грационная конфигурация Упрто яемос при ю+с ние
£аял цраека КонФи^раиия Отмаха даминистрцмваннв де*с цкма ивама
•айЫ X ««• «Ж ♦ * ____„ — Q SPBW.
а «з w.
Рис. 124. Настройка сортировки списка в режиме Конфигуратор
Платформа не сохраняет сортировку списка, выполненную пользова-
телем в режиме 1С:Предприятие. Поэтому даже если пользователь что-
то изменил в сортировке списка, то при очередном открытии списка он
снова увидит его в том виде, как его настроил разработчик.
Если же в конфигурации разработан отдельный механизм сохранения
настроек пользователя, который в том числе позволяет сохранять и сор-
тировку списков, то для восстановления исходного вида списка нужно
просто удалить настройки, выполненные пользователем.
Во встроенном языке порядок доступен как свойство объекта Дина-
мическийСписок.
Условное оформление списков
В версии 8.1 существовала возможность условного оформления
отчетов, выполненных с использованием системы компоновки данных.
Суть условного оформления заключалась в том, что разработчик/поль-
зовагель мог описать правила, по которым будут оформлены отдельные
ячейки отчета в зависимости от того, какие значения в них будут выве-
дены.
Например, зеленым фоном можно выделить суммы, значения которых
превысили 10 000. Желтым фоном выделить строки номенклатуры,
объем продаж которой превысил 30 000. А красным текстом выделить
в отчете строки, содержащие услуги (рис. 125).
Рис. 125. Условное оформление отчета в 1С:Предприятии 8.1
Теперь, в версии 8.2, аналогичные возможности доступны для оформ-
ления любых списков.
Однако есть разница в том, каким способом оформлять те или иные
списки. Это зависит от того, что является источником данных для таб-
лицы.
Если источник данных - динамический список, то условное офор-
мление выполняется одним способом. Если другой тип данных, то
другим способом.
Динамические списки
Условное оформление динамических списков можно задать и в режиме
Конфигуратор, и в режиме 1С:Предприятие, и из встроенного языка.
В конфигураторе условное оформление настраивается в свойствах рек-
визита формы, являющегося динамическим списком. Для этого нужно
нажать на гиперссылку Настройка списка - Открыть. Далее - закладка
Настройки - Условное оформление (рис. 126).
Рис. 126. Условное оформление списка в режиме Конфигуратор
В режиме 1С:Предприятие условное оформление задается в настройках
списка, которые можно открыть по команде Все действия - Настроить
список... на закладке Условное оформление (рис. 127,128).
Товары
^Создать Найти Печать
Ire
Поставил*
Артикул
Ctrl+F8
F9
F2
Del
Shift+Е’е!
F5
CtrkDown
Chl+Up
Ctrf*F
СЫ+Q
.±3 Продукты
aS Услуги
Злетротовары
Изменить
Обновить
Отменить поиск
Изметель Форму
о
Режим просмотра
Переместить в грутлу
Перейти на уровень ниже
Перейти на уровень выше
Найти
Пометить на удаление I Снять пометку
Мдатмть
Справка
Кее
000000011
000000036
000000012
Создать группу
Скопировать
Рис. 127. Настройка условного оформления списка в режиме
1С:Предприятие
а
t
ч
Рис. 128. Условное оформление динамического списка
в режиме 1С:Предприятие
Настройка этого условного оформления полностью аналогична
настройке условного оформления в системе компоновки данных,
поэтому останавливаться на ней мы не будем.
Условное оформление, установленное разработчиком в конфигура-
торе, будет видно и доступно для изменения пользователю в режиме
1 СПредприятие.
В отличие от отбора, группировки и порядка платформа автоматически
сохраняет настройку условного оформления, выполненную пользова-
телем.
Сохраняется она при нажатии кнопки ОК в диалоге настройки динами-
ческого списка. Даже в том случае, если пользователь ничего не менял
в настройках разработчика, они будут сохранены как настройки поль-
зователя.
Если после этого в конфигураторе разработчик задаст другое условное
оформление, то оно может не отобразиться в пользовательском режиме,
так как имеется сохраненная настройка пользователя. Чтобы вернуться
к настройкам разработчика, необходимо в режиме 1С:Предприятие
открыть настройку условного оформления, удалить из нее все элементы,
нажать ОК и закрыть форму. После следующего открытия формы будет
установлено условное оформление, заданное в конфигураторе.
Во встроенном языке условное оформление доступно как свойство
объекта ДинамическийСписок.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В форме
ФормаСпискаСОстатками справочника Товары демонстрируется
возможность работы со сложным запросом в динамическом списке и
возможности условного оформления. В списке отображаются только
товары, по которым есть остатки на складах. Если остаток меньше нуля,
то строка отображается красным цветом. Синим цветом выделяются
услуги. Эта форма используется для выбора товара в документе
РасходТовара. Она задана как форма выбора у поля Товар. В модуле
формы полученный параметр (Склад) устанавливается как параметр
запроса. Передача параметра осуществляется за счет установки
в метаданных для реквизита Товар свойства СвяэиПараметровВыбора.
Прочие списки
Условное оформление списков, источник данных которых - не динами-
ческий список (например, табличная часть документа), можно задать
только в режиме Конфигуратор и из встроенного языка. Для оформ-
ления таких списков используется механизм условного оформления
формы.
Пользователю платформа не предоставляет стандартных возможностей
оформления таких списков. Но такие возможности может предоставить
разработчик, используя встроенный язык. Для этого можно использо-
вать свойство управляемой формы УсловноеОформление.
В конфигураторе условное оформление формы настраивается в свойс-
твах формы. Для этого нужно нажать на гиперссылку Условное оформ-
ление - Открыть (рис. 129).
Ql°i®
V* Конфигуратор Демонстрационная ион фи г у рация "Управляемое приложение"
Дляполвчвпвооа! — — ------ — | HUM <и-
"***"*’1 । Отмена j j Спраем J Г'""'
Рис. 129. Настройка условного оформления формы в конфигураторе
__________НМ
Условное оформление формы позволяет оформлять все элементы
юрмы, кроме кнопок командной панели и таблиц, связанных с дина-
шческими списками. Поэтому условное оформление списков в данном
лучае является частным случаем условного оформления формы
«обще.
1апример, для формы документа (для табличной части) можно задать
акое условное оформление, что цена товаров больше 20 будет выво-
[иться на желтом фоне (рис. 130).
*ис. 130. Условное оформление формы
Гроцесс настройки условного оформления формы практически в точ-
гости повторяет условное оформление в системе компоновки данных.
1о есть некоторые различия.
ак, например, в условном оформлении компоновки данных можно не
адавать оформляемые поля. В этом случае оформление будет приме-
[ено ко всем полям строки. В условном же оформлении формы обяза-
ельно нужно указать те поля, которые подлежат оформлению.
хть и еще одно отличие условного оформления динамического списка
[ условного оформления списка, которое задано в форме. При выводе
аких списков на печать командой Все действия - Вывести список
словное оформление динамического списка будет сохранено в резуль-
ирующем табличном документе, в то время как условное оформление
юрмы будет проигнорировано.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В форме
документа РаосодТовара демонстрируется использование условного
оформления формы и включение в данные, связанные с таблицей,
дополнительных колонок. Для данных формы, отображающих таблицу
Товары, добавлена колонка СуммаИзменена. в которой в различных
обработчиках проставляется признак - отличается ли сумма строки
документа от произведения количества и цены. В условном оформлении
формы установлено выделение поля Сумма для таких строк цветом
текста и жирным шрифтом.
Множественное выделение в списках
используется стандартно
В версии 1С:Предприятия 8.1 в формах списков, генерируемых сис-
темой или создаваемых с помощью конструктора, стандартно исполь-
зовалось одиночное выделение в списке. То есть можно было выделить
только одну строку.
Документ Накладная ФормаЬписка
П х
О
MOW»
I
Рис. 131.
Свойство табличного поля
«РежимВыделения»
[тобы добиться множественного выделения, нужно было у табличного
юля, расположенного в форме, установить свойство Режим выделения
значение Множественный (рис. 131).
1осле этого в режиме 1С:Предприятие появлялась возможность,
гспользуя клавишу Ctrl или другие клавиатурные команды, выделять
разу несколько строк в табличном поле (рис. 132).
Рис. 132.
Множественное
выделение в табличном
поле
Товарные
запасы
Финансы Предприятие
СаядвтШ
Постутлен* товара
Контрагент
Товар
Отчеты Серене
Остатки товаров Установить грсграмиу работы со сканером
Отчет по взаиморасчетам Настроить сканер
Поступления товаров
^Создать I'j^ & да] С4Найти
Создать на основж.
&
’Дата
fl .©1
J 15.01.200814:07 41
U«m.2ooswsM
I <2201200812:4406
, 2301.4)0811:2396
;-4П2Ооемщ57
J 25.01 200813:16:59
J ft 022088114540
06.02 2008556 44
06.0220081245 £3
1202.2008 9 56:48
Л. Номер
Поставщик
0OOQ0Q0O4 CwwAO
000000038 ЗлетроБытЗАО
ВДйЗХКЙ СмрмэдАб
000000036 ЗлетроБытЗАО
000000019 ЖиМгнсаддстя
000000035 МоилебОАД
000000034
ПантераАО
000000002 fWfc.A6
000000027 Корнет з*О
000000002 П~-
Склад
0>
Склад отдела прод< &
0*«**
Склад отдела грод
Cpwa*
Большой
Мал*
Большой
Скопировать
Изменить
Пометить на удаление > Снять пометку
Удалить
Обновить
*4
Остановить интервал дат
Лроевстм
Нвити
к
2102200810 3816
000000032 Животновлдств Мал*
О00ИЮЩЗ Жисопежаетв Мел*
000000030 МосхлебСАО Срвхкий
Отменить пою
Справка
Настроить список
Вывести список
Изменить Форму
Создать на основании
F9
Def
bhitt+Del
Ctd+F
Ctrt+Q
F1
Таким образом можно было, например, «одним махом» установить/
снять пометку удаления с нескольких документов, стартовать несколько
бизнес-процессов или выполнить несколько задач.
В 1 (^Предприятии 8.2 режим множественного выделения стандартно
используется во всех формах и во всех списках.
В дополнение к существовавшим ранее возможностям теперь прямо
в списке можно провести или отменить проведение сразу для нескольких
документов (рис. 133).
Варианты отчетов
В версии 8.1 работа с разными вариантами одного и того же отчета
вызывала определенные трудности.
В конфигураторе разработчик создавал стандартные настройки отчета
(рис. 134).
Рис. 134. Настройки отчета в конфигураторе
Именно эти настройки содержал отчет, когда его запускал пользователь
(рис. 135).
*ис. 135. Готовый отчет
Тользователь мог настроить отчет по-другому (рис. 136).
Отчет по номенклатуре
Остатки номенклатуры
Настройки отчета Отчет по н менкл<
В' Отчет
О«еп Номенклатура
оменклагура
Клавиатура Appte Pro Keyboaros
Клавиату - LK-601 КВ-2000 PS/2
в
в
Копировальный аппарат Omega
Мониторы
МОТЫТОР151 LG Studioworks S7SN
Монитор 1T PhBps 107S20
Монитор 19' Hitachi CM715ET
Маытор LCD 22' M8537B4/A
Мышь 2-КНОГ1 A4Tech PS/2
Мышь GENIUS “EASY- (3 киоски).
МышьIceMouseMUS-2
hfeni/ь LOGITECH M-S48 PS/2
Мышь OK-720 Mouse A4Tech PS/2
• ’-a.—- —•—
©"Строки
[!•}-Коротки
©"□Л Диаграмма
[ Й- Точки
i --Серии
ЁН/]Щ Диаграмма
©-Точки
©Серии
•ис. 136. Настройка отчета пользователем в режиме 1С:Предприятие
Трудности заключались в том, что использовать эту настройку в даль-
нейшем было не так-то просто. Элементарным решением было сохра-
нить измененные настройки в xml-файл, а затем, при следующем
открытии отчета, открыть его настройки, загрузить сохраненные
настройки из файла (рис. 137) и снова выполнить отчет.
Рис. 137. Загрузка и сохранение настроек отчета
Понятно, что такой сценарий, во-первых, неудобен для пользователя,
а во-вторых, ненадежен, т.к. xml-файлы с сохраненными настройками
не хранятся в информационной базе и могут быть потеряны.
С помощью встроенного языка можно было создавать более удобные
и надежные сценарии работы, но это требовало уже дополнительных
усилий от разработчиков и реализовывалось далеко не всегда.
В версии 8.2 появилась возможность создавать несколько вариантов
для одного и того же отчета стандартными средствами системы.
Каждый вариант отчета - это некоторый вариант настроек схемы ком-
поновки с привязкой к конкретному отчету и пользователю.
При этом для пользователя обеспечивается понятный и простой сце-
нарий работы с вариантами отчета, а сами настройки хранятся в инфор-
мационной базе, что гарантирует их наличие при любых операциях
с информационной базой (резервное копирование, перевод из файло-
вого варианта работы в клиент-серверный и т.д.).
При создании отчета в конфигураторе разработчик имеет возможность
сразу же создать необходимое количество различных вариантов одного
и того же отчета (рис. 138).
Рис. 138. Варианты отчета в режиме Конфигуратор
В режиме 1С:Предприятие пользователь просто выбирает один из
нужных ему вариантов отчета и выполняет отчет (рис. 139).
Как и раньше, в режиме 1С:Предприятие существует возможность
изменить настройки отчета и создать собственный новый вариант этого
отчета.
Но эта возможность предназначена для разработчиков и специалистов
по внедрению. Именно они должны создавать новые варианты отчетов
или изменять существующие. А пользователь будет только выбирать
один из имеющихся вариантов отчета.
Изменение и сохранение вариантов отчетов выполняется командами
Все действия - Изменить вариант... и Все действия - Сохранить вариант...
(рис. 140).
Рис. 139. Выбор варианта отчета в режиме 1С:Предприятие
Динамика продаж
Вариант отчете [Продажитоваров по покупателям
J Фырротъ Bapnatr
iT?l Группировка
Г овар. Покуйте/»!
Настройка
Выбрать настройку.
Параметры данных Период = 01 01 2009 - 31 1
овар
Покупателе
е
Магазин "Бытовая техника”
Магазин "Обувь"
vetatMSMO
Пантера АО
УВкобЭТС
Магазин "Бытовая техника”
Пантера АО
Vrtt087eN
I Магазин "Бытовая техника*
|VateNTQ2
Магазин "Бытовая техника’
Ботжки
Рис. 140.
Изменение
и сохранение
варианта отчета
Магазин ЧЭбувь"
МосхлебОАО
Пантера АО
е
L
е
МосхлебОАО
асфь
Магазин "Бытовая технква"
Достами
Сумме
Оборот
UIOOJOO’
S600JD0
4 500,00!
SCOOXJC
5 000J00
57000,00
36 000JOO!
21 OOOJDOj
3600000*
36 000 joo]
2250000!
22500,00?
540000
25000JDO'
8 400J001
2 000JOO
7200,00
7 200,00
21000,00
21 OOOJDO
езоодр
Сохранить настройку.
Стандартные настройки
Новое окно
И
Г»| Изменить Форму
Справка
F1
ПОДРОБНЕЕ
Раздел Варианты отчетов и пользовательские настройки отчетов,
см. стр. 327.
Демонстрационная конфигурация Управляемое приложение. В отчете
ДинамикаПродаж определено два стандартных варианта.
Пользовательские настройки отчетов
В версии 8.1 разработчик мог создать нестандартную форму отчета
и вывести на нее параметры, которые пользователь настраивает часто
(рис. 141).
Рис. 141. Настройки отчета в форме отчета
Теперь, в версии 8.2, такая возможность - размещать в форме отчета
часто используемые настройки - стандартно предоставляется сис-
темой.
Еще в конфигураторе разработчик может указать, какие элементы
отчета пользователю понадобится настраивать в принципе (пользо-
вательские настройки) и какие из них понадобится настраивать осо-
бенно часто (быстрые пользовательские настройки).
Быстрые пользовательские настройки система отобразит прямо
в форме отчета (рис. 142).
Рис. 142.
Быстрые
пользовательские
настройки в форме
отчета
Пользовательские настройки, то есть то, что пользователю может
понадобиться настраивать «в принципе», система будет стандартно
отображать в отдельном окне при нажатии кнопки Настройка...
(рис. 143).
Состав пользовательских настроек может быть задан как на этапе кон-
фигурирования, так и в режиме 1С:Предприятие, при редактировании
варианта отчета или при создании нового варианта отчета.
ПОДРОБНЕЕ
Раздел Варианты отчетов, см. стр. 134.
В конфигураторе пользовательские настройки могут быть описаны
двумя способами.
Во-первых, для каждого элемента структуры настроек отчета (груп-
пировки, таблицы, диаграммы и т.д.) существует фиксированный
набор настроек, которые могут быть включены в пользовательские
настройки.
Рис. 143.
Пользовательские
настройки отчета
Рис. 144. Настройки, доступные для включения
в пользовательские настройки отчета
Например, для всего отчета целиком это выбранные поля, отбор,
порядок, условное оформление и группировки (рис. 144).
Для элемента Диаграмма состав возможных пользовательских настроек
будет уже другим (рис. 145).
Настройки
Имя варианта
ПродажиТовароеЛоПокупателям Продажи товаров по покупателям
Диагоа маПоЛмзиидтм
Отчет
Представлен*
Диаграмма по периодам
Иаборьша<«*>е< Смай «мвммд.. Вычислять», х Рбедхр Парамечш
59
зная ф
Серии
Рис. 145. Настройки диаграммы, доступные для включения
в пользовательские настройки отчета
Свойство Режим редактирования определяет; как именно будут до-
ступны эти настройки пользователю. Если выбрано Быстрый доступ,
они будут доступны прямо в форме отчета (быстрые пользовательские
настройки). Если выбрано Обычный, они будут доступны в отдельном
окне при нажатии кнопки Настройка...
Настройки, выбранные описанным выше образом, позволяют пользо-
вателю настраивать тот или иной элемент «вообще», без каких-либо
ограничений.
Например, выбрав на рис. 130 Отбор, мы тем самым предоставили
пользователю настраивать любые произвольные отборы: создавать
собственные элементы отборов, по любым доступным полям, объеди-
нять их в группы и т. д.
Но наряду с этим существует и другой, более «точный» способ задания
пользовательских настроек. Если, для примера, обратиться к тому же
самому отбору отчета в целом, то схема компоновки может содер-
жать конкретные элементы этого отбора. И именно для этих элементов
отбора (а не для всего отбора целиком) можно указать, будут ли они
входить в состав пользовательских настроек (рис. 146).
От ДюмиижаПродаж
Наборы,. Связи наборов вычисляемые по. Ресурсы . еты
Рис. 146. Включение в состав пользовательских настроек
отдельных элементов отбора
В этом случае пользователю будет доступна возможность настраивать
только конкретные элементы отбора, а не вообще все отборы, какие
возможны.
Для того чтобы в конфигураторе узнать, что уже включено в пользова-
тельские настройки, а что - еще нет, можно нажать кнопку Предвари-
тельный просмотр пользовательских настроек (рис. 147).
Флажок Показывать только быстрые элементы позволит понять,
какие настройки будут отображены непосредственно в форме отчета,
а какие - в отдельном окне пользовательских настроек.
Следует помнить, что пользовательские настройки задаются для каж-
дого из вариантов отчетов отдельно. Поэтому если в конфигураторе
у вас есть два варианта отчета, то и пользовательские настройки
для каждого из этих вариантов будут свои собственные.
Рис. 147. Предварительный просмотр пользовательских настроек
। , г
(Параметры данных Период = 01 01 2009 31
Товар
R BtotcMS
Г Магазин Бытовая техника"
[ Г Магам "Обувь*
v«ko345MO
Пантера АО
VekoCTNE
t Магам "Бытовая техника"
Пантера АО
Магам "Бытовая технике"
Магам* "Бытовая техника"
Г Магам "Бытовая техника’
Ботин»
fMaraM^Q6y>b“
МосхлебОАО
Пантера АО
Ъалвнкм
I МосхлебОАО
Сумма
Оборот
141ОЦЮ
9600.00
4500.00!
5000,00
___ 5000JDO.
57000Д)!
ЗбООСубо]
21НЮ£0>
3600Ц00
36000.00
~ 22500JQ0
_ 22500.00
35400,00
25000.00;
6400,00
2000,00
7200,00
7 200.00
змомцю.
__ 21000№
S2W/30
(£ Выбрать настройку
Соирагапь настройку
Стандартные настрой^
Т*| Новое окно
^SSiiS3i*
Сохрмпъ вариант
Я Изменить Форму.
Справка F1
I
Рис. 148.
Изменение
варианта отчета
в режиме
1С:Предприятие
Все те же самые способы указания пользовательских настроек дос-
тупны и в режиме 1С:Предприятие при изменении варианта отчета
(Все действия - Изменить вариант...), рис. 148.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В отчетах
этой конфигурации демонстрируется работа с пользовательскими
настройками отчетов и вариантами отчетов. Настройки, которые
предполагается редактировать пользователем, отмечены как поль-
зовательские.
Настройки вариантов отчетов
В версии 8.1 разработчик мог создать нестандартную форму отчета
и вывести на нее параметры, которые пользователь настраивает часто
(рис. 149).
Рис. 149. Настройки в форме отчета
Используя команды сохранения и восстановления значений, пользо-
ватель мог сохранить установленные значения параметров для того,
чтобы использовать их при последующих запусках этого отчета (рис.
150).
Рис. 150. Сохранение настроек отчета
Основным недостатком являлось то, что сохраненные таким образом
параметры не являлись частью информационной базы, а значит, могли
быть потеряны при резервном копировании базы и других аналогичных
действиях. Кроме этого, механизм сохранения значений не всетда был
прост и удобен для пользователя.
В версии 8.2 аналогичную задачу выполняют настройки варианта
отчета.
Создавая отчет, разработчик может определить несколько настроек,
которые предназначены для частого изменения их пользователем,
пользовательские настройки.
ПОДРОБНЕЕ
Раздел Пользовательские настройки отчетов, см. стр. 139.
Изменяя значения этих настроек, пользователь может получить отчет
в том или ином виде. Если полученный вид отчета требуется для час-
того периодического использования, все выполненные изменения
можно сохранить как настройку варианта отчета.
Таким образом, для каждого варианта отчета пользователь может
сохранить несколько настроек (рис. 151).
Рис. 151. Варианты отчета и настройки вариантов отчета
Они так же, как и варианты отчета, будут храниться в информационной
базе (рис. 152).
Рис. 152.
Сохранение настроек
вариантов отчета
F1
В дальнейшем, при следующих запусках отчета, пользователю оста-
нется только выбрать вариант отчета и к нему - одну из сохраненных
ранее настроек (рис. 153).
Динамика продаж
Вариант отчете. Проаажм товаров по псжупвтелжи _| В^^рвтъвфианг J
. Настройса
Группировка
_ ...I _______ _
I [ Параметры данных Период - 01 01 2009
Товар
nOKjftWBAfe
R BoschlS
Магваы "Бытовая техгмка’
Стандартные настройки
2 Новое окно
Иэмет*<гь вариант
Товар. Пог, утзп
Сумма
Оборот’
4«1оодз
у 9600.00
Выбрать вариант
За текший месяц
За пр шль месяц
[_ МосхлебоАФ
Пантера АО
Вмемсн
Moor пей ОАО
Софагмть варианг
Га! Изменить форму.
Справка
Выбор настроек отчета
ПЩо
2000.00!
гадодо
7200.00
21000Д»
21 000.00
лХ
Магазин "бытовая техника"
'Доставка __________~______
•й
Рис. 153. Выбор настроек варианта отчета
Новые объекты можно создавать,
не пользуясь списками
Для того чтобы создать новый элемент справочника или новый доку-
мент в версии 8.1, нужно было открыть список этих объектов, а затем
выполнить команду Добавить, расположенную в командной панели
формы списка. Таким было стандартное поведение системы.
Конечно, разработчик мог добавить в произвольное место конфигу-
рации кнопку и программно создавать новые объекты, не привязываясь
к их списку, но, как правило, этим почти не пользовались, а полагались
на стандартное поведение.
Можно сказать, что такой подход в какой-то степени «потворствовал»
любви пользователей работать через списки. Пользователь создает
новый элемент, закрывает форму и видит, что этот элемент появился
в списке. Пользователь спокоен, что он все сделал правильно и данные
не пропали.
На самом деле в этом сценарии работы наличие списка не является
главным. Самое главное для пользователя - легко понять и убедиться в
том, что система записала новый объект, который он создал. И поэтому
он использует список лишь для того, чтобы не пугаться, что данные не
записались. Сами же данные, содержащиеся в списке, ему не нужны
(а их может быть очень много). Ему надо лишь убедиться в том, что
в списке появилась новая запись.
В версии 8.2 такое «расточительное» отношение к клиент-серверному
взаимодействию может приводить к проблемам с быстродействием,
особенно на медленных каналах связи. Действительно, лишь для того,
чтобы пользователь убедился, что данные записаны, придется выпол-
нить открытие списка, а это непростая операция.
Данные нужно прочитать, подготовить, передать с сервера на кли-
ента, отобразить на клиенте... И не просто так, а с учетом всех прав,
функциональных опций, настроек списка, сделанных разработчиком,
настроек списка, сделанных пользователем... И это не считая кода,
который может исполняться при открытии списка... В общем случае
при большом количестве одновременно работающих пользователей это
может быть значительной нагрузкой и на канал, и на трафик.
Поэтому в версии 8.2 реализован новый подход к созданию объектов
информационной базы. Он не является обязательным (можно работать
и «по-старому»), но он является рекомендуемым с точки зрения макси-
мальной производительности системы.
Для реализации этого подхода задействована целая совокупность новых
механизмов.
Прежде всего, у объектов конфигурации появились стандартные
команды создания новых объектов. Эти команды могут отображаться
в панели действий тех разделов, которым принадлежат объекты (рис.
154).
Таким образом, теперь пользователю нет нужды вызывать список
и в нем нажимать кнопку Добавить. Он сразу же (не имея списка)
может выполнить команду создания нового элемента, и система откроет
форму нового объекта.
Рис. 154. Команды создания новых объектов
Когда ввод новых данных закончен, пользователь нажимает Записать
и закрыть (или Провести и закрыть), форма закрывается, а в правом
нижем углу экрана появляется оповещение. Это еще один новый меха-
низм, созданный для того, чтобы информировать пользователя об изме-
нении данных.
ПОДРОБНЕЕ
Раздел История, см. стр. 95.
Платформа автоматически вызывает оповещения при записи или уда-
лении объектов информационной базы. При необходимости разработчик
может формировать оповещения самостоятельно из встроенного языка.
Оповещение отображается в постепенно затухающем окне. Если выпол-
нялась запись объекта, то окно оповещения будет содержать ссылку,
нажав на которую можно открыть форму этого объекта (рис. 155).
Таким образом, пользователь информируется о том, что данные, ко-
торые он ввел, записаны и сохранены в информационной базе.
«Для пущей важности» последние оповещения, формировавшиеся
системой, отображаются в информационной панели. Таким образом,
пользователь всегда видит последние объекты, которые он изменял
(рис. 156).
Рис. 155. Окно оповещения
Рабочй» Закупки Пропажи Товарные Финансы Првоприягне
стол запасы
Поступления томфое
Контрагенты
Товары
Поступление товара
Контрагент
Товар
Остатки товаров
Отчет по взаиморасчетам
.Сервис
Остановить программа работы со сканером
Настроить сканер
См также
Регистр товарных запасов
Рис. 156. Оповещение в информационной панели
Кроме этого, существует еще история работы пользователя.
Это третий новый механизм, помогающий избавиться от списков
при создании новых элементов.
ПОДРОБНЕЕ
Раздел История, см. стр. 95.
В истории хранятся последние записи об изменениях данных, сде-
ланных пользователем. В информационной панели есть кнопка История,
которая позволяет все их просмотреть.
Таким образом, совокупность этих трех механизмов (команды создания
новых объектов, оповещения и история) должна обеспечить пользо-
вателю комфортное добавление новых элементов без использования
списков.
Понятно, что предлагаемый подход потребует определенной «борьбы»
со старыми привычками пользователей. Поэтому в платформе присутс-
твует возможность работы и «по-старому», через списки.
В связи с появлением команд создания объектов следует сказать
об одной особенности. При автоматическом формировании команд-
ного интерфейса платформа включает в него все стандартные команды
для создания объектов. Однако не все из них она делает видимыми
по умолчанию.
При этом команды перехода к спискам объектов, как правило, всегда
видимы в интерфейсе по умолчанию. А вот команды создания новых
объектов, наоборот, невидимы.
Может возникнуть естественный вопрос: если создание новых объ-
ектов без использования списков является рекомендуемым, почему
система автоматически не делает эти команды видимыми?
Ответ достаточно прост. В подавляющем большинстве случаев пользо-
вателю могут требоваться различные списки для поиска информации
в них. Например, менеджеру необходимо просматривать не только
списки приходных и расходных документов, но и список товаров, кон-
трагентов, валют и т.д.
Однако в массовом порядке (выполняя свою типичную работу) созда-
вать новые элементы он будет далеко не во всех списках. Наверняка
он будет создавать новые приходные и расходные документы, новые
товары. А вот создание новых контрагентов или ввод новых цен вполне
может относиться к задачам бухгалтерии.
Поэтому стандартно система старается формировать командный интер-
фейс таким образом, чтобы разработчику приходилось выполнять
минимальный объем доработок: убрать несколько ненужных команд
открытия списков и добавить несколько нужных команд создания
новых объектов.
Обратите внимание, что наличие или отсутствие команды создания
нового объекта в интерфейсе пользователя не ограничивает его в воз-
можностях. Даже если такой команды у него нет, он может создавать
новые элементы, пользуясь списком.
Поэтому наличие команды создания нового объекта - это лишь вопрос
удобства выполнения частых ежедневных операций, но не вопрос огра-
ничения прав пользователя. Ну а с точки зрения разработчика это еще
и вопрос эффективности работы системы.
Предупреждения при изменении
кода/номера в форме
В 1С:Предприятии 8.2 ввод новых элементов справочников
и документов сделан более удобным для пользователя.
Обычно для большинства справочников и документов в 1 (^Предпри-
ятии используется режим автонумерации. Это значит, что номер для
нового элемента или документа платформа формирует автоматически.
В стандартном сценарии ввода данных от пользователя не требуется
изменение полей Код или Номер.
Однако в 1С:Предприятии 8.1 автоматически генерируемые формы и
формы, создаваемые конс-
труктором, предоставляли
пользователю любые воз-
можности по изменению
данных в форме, ничем его
не ограничивая (рис. 157).
Рис. 157.
Активный элемент -
поле «Код»
1ри открытии стандартных форм активным элементом являлось поле
год. Это провоцировало пользователя на то, чтобы изменить значение,
[аходящееся в этом поле. Хотя на самом деле этого делать не нужно.
1 результате в прикладных решениях приходилось создавать специ-
льные алгоритмы, удерживающие пользователя от редактирования
голей, которые платформа заполняет автоматически.
1 1С:Предприятии 8.2 такая механика реализована на уровне плат-
формы. Если посмотреть на аналогичную форму в новой версии плат-
формы, то можно заметить два важных отличия (рис. 158).
Рис. 158.
Активный элемент -
поле «Наименование»
Во-первых, при открытии стандартной формы активным является поле
Наименование. То есть именно то поле, которое в большинстве случаев
I будет изменять пользователь.
Таким образом, платформа, с одной стороны, уберегает пользователя
тг редактирования кода элемента, а с другой стороны - сразу же под-
талкивает к изменению нужных данных. При этом пользователю
ie нужно совершать лишние действия для перехода к тому полю,
соторое требует редактирования.
Во-вторых, если все же пользователь решит ввести какие-то данные
} поле Код, платформа выдаст предупреждающее сообщение (рис.
L59).
Рис. 159.
Предупреждающее
сообщение
при изменении поля
«Код»
Это результат работы новой механики предупреждений при редактиро-
вании автоматически заполняемых полей.
Рис. 160. Свойства поля, отвечающие за формирование предупреждений
У элемента управляемой формы есть два свойства (рис. 160):
ОтображениеПредупрежденияПриРедактировании,
ПредупреждениеПриРедактировании.
Первое свойство определяет необходимость показа предупреждения,
второе задает текст, который будет показан пользователю.
При создании форм для объектов конфигурации, использующих авто-
нумерацию, платформа устанавливает значения этих свойств следу-
ющим образом.
ОтображениеПредупрежденияПриРедактировании уста-
навливается в значение Авто. Это означает, что если у объекта кон-
фигурации этот реквизит заполняется автоматически (использу-
ется автонумерация), то предупреждение будет показано пользо-
вателю.
Свойство ПредупреждениеПриРедактировании не запол-
няется. Это значит, что при отображении предупреждения будет
показан стандартный текст, генерируемый платформой (рис. 161).
Рис. 161.
Стандартный текст предупреждений,
генерируемый платформой
Стандартное поведение платформы разработчик может переопреде-
лить.
Во-первых, можно указать, что предупреждение будет выдаваться
всегда или не будет выдаваться никогда. Для этого у свойства Отоб-
ражениеПредупрежденияПриРедактировании есть значения
Отображать и Не отображать.
Во-вторых, разработчик может задать собственный текст для этого
предупреждения.
Все это можно сделать в конфигураторе или из встроенного языка.
Не получается открыть два документа
В версии 8.1, когда форма списка генерировалась системой автома-
тически или когда разработчик не предпринимал специальных запре-
тительных действий, всегда можно было одновременно открыть,
например, два (или более) документов из какого-нибудь списка.
В версии 8.2 это стандартное поведение было изменено. Теперь, если
не предпринимать специальных действий, из формы списка можно
открыть форму только одного документа, например одного товара.
Чтобы посмотреть другой товар, нужно закрыть первый, и после этого
открыть второй.
Так происходит потому, что стандартно система генерирует формы
объектов, у которых свойство Режим открытия окна установлено
в значение Блокировать окно владельца. Это значит, что пока открыта
форма объекта, список, из которого она была открыта, просто недо-
ступен. Точно так же ведет себя система и тогда, когда новая форма
создается конструктором.
Поэтому если возникает необходимость в прежнем поведении (чтобы
одновременно открывались формы сразу нескольких документов),
нужно создать собственную форму объекта и ее свойство Режим
открытия окна установить в значение Независимый. Если форма уже
существует, то просто изменить в ней значение этого свойства (рис.
162).
Автоматический заголовок «И
Доступность *
Разрешить изменять Форму «И
Группировка Вертикальная
Ширина подчиненных элементов Авто
_ ___ Использование:
— Элементы | Команд Положеке командной панели ’Авто
I Состав команд Открыть
1ИИ тп^ытия окна____________________Н,,» v г
Записатьымкрить
Проверять заполнение автомата V
Код
Н аименование:' Сохранение данных Формы в нас- Це использовать
। Автоматическое сохранение дани Не использовать
Выбор групп и элементов - Для элемента
Рис. 162.
Свойство «Режим
открытия окна»
формы
1С:Предприятие 8 в Интернете
В 1С:Предприятии 8.2 в интерфейсе платформы размещен ряд ссылок
на интернет-ресурсы, связанные с системой 1С:Предприятие 8.
Эти ссылки доступны из главного меню системы, в пункте Справка
(рис. 163).
АЙ+П
Индекс стревки Al+Shdt+F1
Поиск по справке
W Огрограмме.
000000007
000000015
J 000000009
J 000000026
J 000000027
J 000000008
000000012
^1000000032
000000031
000000033
000000010
(ЮОООГ^
RI8BJBF Uim
Магазин "Обу
Магазин ’Про
Магазин Тею
Магазин Быт
Магазин Быт
Магазин Тро
Магазин ’Быт
МосхлебОАО
Магазин ’Быт
Пантера ДО
Магазин Обу.
Магазин "Мя.
1.
ал. Нащдсмг ДС
Рубли 2303ИВ ’
рубли 7685.71
Рубли ?
Магази Рубли
Магази... Рубли 69 297.86 *
пие взаиморасчеты |
L Все действия • @
Средний
Склад от
Склад сп-
Малый
Большой
Большой
Большой
Малый
Большой
Малый
Большой
Рубли
Рубли
Рубли
Рубли
Рубли
Рубли
Рубли
Рубли
Рубли
Рубда
Опто.
Опто.
Опто.
Опто.
Me лк
Опто.
Мелк
Заку.
Розн
Мелк.
Курсы валют
О Обновить
Валюта
О SO
EUR
Все действия'
Курс
л. J
Рис. 163. Ссылки на информацию по 1С:Предприятию
1С:Предприятие 8 - ссылка на сайт 1С:Предприятия 8:
http://v8.lc.ru.
Фирма «1С» - ссылка на сайт фирмы «1С»: http://www.lc.ru.
Информация по 1С: Предприятию 8 - ссылка на сводную страницу,
представляющую наиболее важную информацию по ^Пред-
приятию 8 для разных категорий посетителей: пользователей,
IT-специалистов, разработчиков, партнеров: http://v8.lc.ru/AIIInfo
(рис. 164).
•ис. 164. Сводная информация по 1С:Предприятию 8
)ти три пункта меню присутствуют всегда.
гели платформа запущена с русским, украинским или казахским языком
штерфейса, то они будут вести на русскоязычные страницы.
гели платформа запущена с другим языком интерфейса, то эти ссылки
>удут вести на англоязычные страницы (рис. 165):
About lC:Enterprise 8 - http://v8.lc.nj/eng/AIIInfo.
lC:Enterprise 8 - http://v8.lc.nj/eng.
Corporation «1С» - http://www.lc.ru/eng.
Рис. 165.
Ссылки
на информацию
по 1С:Предприятию 8
в англоязычном
интерфейсе
Кроме этих пунктов меню в конкретном прикладном решении могут
присутствовать еше два пункта меню, ссылающиеся на информацию
о прикладном решении и поставщике этого прикладного решения
(рис. 166).
Мновкс справки АЙ+Shift+F 1
Поиск ло сгравке AIUF1
11 Текущие взаиморасчеты
Все действия * &
|7 Информация в Интернете
Информация гю 1 С: Предприятию в
W О программе.
1 JIJJUUUJUI4
< 000000007
J 000000015
< 000000009
000000026
.< 000000027
< 000000008
000000012
^000000032
< 000000031
* 000000033
J 000000010
J 000000030
вявли ииу.
Магазин Пбу.
Магазин "Про.
Магазин "Про.
Магазин "Быт
Магазин "Быт
Магазин "Про.
Магазин "Быт
М ос хлеб ОАО
Магазин "Быт
Пантера АО
Магазин Пбу
Магазин "Мя
Маль
Среда
Среда
Склад от
Склад от.
Малый
Большой
Большой
Большой
Малый
Большой
Малый
&ОММОА
Название нашего пмжладного ।
Название нашей «рирмы
ШГМВЖ -ШКНГДЬ
1С Предприятие 8
Наш долг Да
2302QXC
768571
Фирма "1С
Рубли
Рубли
Рубли
Рубли
Рубли
Рубли
ЙгТГО
Опто.
Опто.
Мелк
Опто.
Мелк
Заку
Розн
Мелк
| ‘Мядэи. 69297J86 J
Курсы валют
О Обновить
Все действия'
Курс
Валюте
USD
Рубли
Рубли
Рис. 166. Ссылки на информацию о прикладном решении и о поставщике
Ссылка на описание прикладного решения:
о в качестве названия этой ссылки берется синоним конфигу-
рации;
о в качестве гиперссылки берется значение свойства конфигу-
рации Адрес информации о конфигурации. Если это свойство
не заполнено, ссылка в меню отсутствует.
Ссылка на сайт поставщика конфигурации:
о в качестве названия этой ссылки берется значение свойства
Поставщик конфигурации;
о в качестве гиперссылки берется значение свойства Адрес
информации о поставщике конфигурации. Если это свойство
не заполнено, ссылка в меню отсутствует.
Чаше «1 С»
1аше «1С» (nashelc.ru) - это интернет-ресурс, созданный фирмой
<1С». Основная его цель предоставить пользователям системы
1С:Предприятие 8 возможность обмениваться профессиональным
>пытом (рис. 167).
Н ше IC Windows Ini гл I Expl гсг
Имя ' .
Пцнл,
{ Вейтм». ]
Последние публикации
И
Самые популярные
материалы
04 07 2009 Андрей Крутских
Загрузка информации из внешних
данных с помощью конфигурации
Конвертация данных"
Обработка, позволяющая создавать
правила обмена в конфигураш и
"Конвертация данных 2“ и загружать
данные из файлов Excel, DBF, CSV м
любых источников, поддерживающих
интерфейс ADO.
0704 2009 Фирма "1С“
** ** * (16 голосов)
MtCICtllC
Настройка веб-серверов для работы с
1 С: Предприятием 8 / Версия 3
Данная статья описывает настройку веб-
серверов для работы 1С:Предприятия 8
(веб-клиент и тонкий клиент).
Эта информация актуальна только для
бета-версии платформы 8 2.8.256
03.07 2009 Наталья Нестерова
Отчет ПечатьДокументов ' Версия 2
Отчет на системе компоновки данных, по
14 02 2009 Павел Чистов
***** (17 голосов)
К1С1С1С1С
Подписка на новост
! iEJ
Авторизуйтесь. чтобы
опубликовать свой материал
Категории
• Рабочие инструменты (46)
• Обучение (11)
» Методики (17)
• Дипломные проекты (3)
♦
Рис. 167. Интернет-ресурс Наше «1С»
Этот ресурс не имеет прямого отношения к новой версии платформы
1С:Предприятие 8.2. Он появился раньше финальной версии 8.2.
Эднако он может быть полезен для освоения и эффективного использо-
вания новой версии платформы и новых прикладных решений.
Управляемый интерфейс, реализованный в 1С:Предприятии 8.2, предо-
ставляет пользователю и разработчику много возможностей как визу-
альной, так и функциональной настройки. Далеко не всегда по всем
вопросам можно найти подробную информацию, представленную
в удобной и легкой форме.
По этой причине возможность обмениваться собственной инфор-
мацией по этим вопросам приобретает важное значение для пользова-
телей и разработчиков. На этом ресурсе всегда можно самостоятельно
опубликовать свои методики, наработки, приемы эффективной работы -
любые материалы, имеющие отношение к программам системы
1С:Предприятие 8.
Эти материалы будут доступны всем пользователям системы, благо-
даря чему пользователи смогут работать более эффективно и профес-
сионально.
На этот ресурс можно перейти из интерфейса платформы (со стра-
ницы http://v8.lc.ru/AIIInfo). Информация об этом ресурсе публику-
ется в материалах фирмы «1С», книгах, выпускаемых издательством
«1С-Паблишинг», и в других источниках.
Разработка
Объект «Интерфейс» не используется 164
Подсистемы...........................................165
Нет корневой подсистемы..............................171
У объектов конфигурации нет свойства «Подсистемы» 173
Новые объекты конфигурации...........................178
Стандартные реквизиты 186
Интерфейсные свойства объектов конфигурации..........190
Новые модули.........................................223
Новые права..........................................249
Права на реквизиты объектов конфигурации.............250
Показатели производительности........................252
Имитация задержек при вызове сервера.................257
Конструктор запроса с обработкой результата..........261
Синтакс-помощник можно отобрать по контексту.........265
Постепенный перевод в режим управляемого приложения....267
Управляемые блокировки данных используются стандартно..298
Почему мой справочник не виден в интерфейсе?.........299
Проведение документа - новая методика................311
Настройки пользователей хранятся в информационной базе.324
Работа в разных часовых поясах.......................351
Агрегаты.............................................355
Безопасный и привилегированный режим исполнения кода...375
Пессимистическая блокировка..........................378
Доступ к версии объекта во встроенном языке..........383
Получение предопределенных значений по строковому
имени................................................384
Представления чисел, дат и значений Булево...........386
Обработка заполнения вызывается при создании
нового документа.....................................392
События «При установке нового кода» и «При установке
нового номера» вызываются только в транзакции записи.394
Объект «Интерфейс» не используется
В версии платформы 8.1 для формирования интерфейса прикладного
решения использовались объекты конфигурации Интерфейс.
Каждый такой объект описывал главное меню и набор панелей инстру-
ментов (рис. 168).
Рис. 168. Объект конфигурации «Интерфейс»
После запуска прикладного решения пользователь видел на экране
главное меню и панели инструментов, состоящие из назначенных ему
интерфейсов (рис. 169).
Рис. 169. Главное меню и панели инструментов
Такой интерфейс представлял собой по сути статический набор кар-
тинок, с которыми были связаны некоторые действия. Можно было
выбрать тот или иной интерфейс (тот или иной набор картинок),
но не было возможности динамически формировать интерфейс в зави-
симости от каких-то условий, связанных с функционированием при-
кладного решения.
В версии 8.2 интерфейс формируется по другим принципам.
Существуют команды, поставляемые платформой. Существуют
команды, созданные разработчиком. И для тех, и для других разработчик
описывает возможность их отображения в заранее определенных эле-
ментах интерфейса прикладного решения: в панели разделов, в панели
действий, в панели команд, в командных панелях форм и т.д.
Примечательным является то, что разработчик лишь задает возмож-
ность отображения тех или иных команд. Окончательное же форми-
рование командного интерфейса для конкретного пользователя берет
на себя платформа. При этом она учитывает роли пользователя, права
пользователя, функциональные опции, настроенные в прикладном
решении, и настройки, выполненные самим пользователем.
В результате для каждого пользователя формируется собственный
индивидуальный интерфейс, содержащий только необходимые пользо-
вателю команды.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 6.2 Командный интерфейс - Построение глобального командного
интерфейса.
Подсистемы
В версии 8.1 подсистемы имели чисто «утилитарное» назначение. Они
были предназначены для того, чтобы разделить всю функциональность
прикладного решения на отдельные части. Это облегчало разработку
сложных прикладных решений. Например, каждый разработчик мог
заниматься только своей подсистемой, отфильтровав по ней дерево
объектов конфигурации (рис. 170).
И Подсистемы
В- * ПодсмстемаПолученияДиалямческойИнформации
’ Ь СтанмргкйеОтчеты
В Ъ УнирврсальньиМемнмэмы
|- ОбноелениеКонФмгурации
t * ЗлектроннаЛочтв
* Дополнительна^нформацияОбъектое
’*• МнтврнетПоадержкаПользователвй
П * КонтактнайИнформация
| Анкетирование
• СвойстваИКатегсрииОбьектов
н ПраваДостута
; - риб
: 'и ПоисхДанных
I —- АетоматическийОбменДанными
I ь * ОбменДа»****<
I * Шаблон
*- w Пользователи
цЭ- » РасчетЗарллаты
ф * Регламенгирова»+»аяЗарплата
Е * УпраеленческаяЗарплатэ
РегламентирсеатаяОтчетность
Й -* Управлвн«Пврсоналом
ф--" РегламенгцюванчяЙУчет
Й- * ИнструментьЫправленл
Рис. 170.
Подсистемы в версии 8.1
Как правило, на внешний вид прикладного решения подсистемы ника-
кого влияния не оказывали. «Теоретически» можно было создавать
интерфейсы на основе имеющихся подсистем, включая в них только те
объекты, которые относятся к данной подсистеме.
Однако на практике так поступали редко. Пользовательские интер-
фейсы создавали исходя из того, как лучше представить это прикладное
решение пользователю. А подсистемы проектировали исходя в первую
очередь из удобства разработки и поддержки прикладного решения
(рис. 171).
М Интерфейсы
)—Я Адмитстрапвный
-Д КадроеьЛУ
~Я ЛинейшйР^оешите/ъ
-Я НаборПарсонала
~Я Общий
Д] ОбщийАдьиештратора
Д ОбщийВнешшеОфабатки
Я Общй!₽вгламенпфованный
Я ОбщИОлектроннаяПочта
Я По/ыый
рЯ1 РасчвтЗарплвтыОргамвашй
- Я РвсчетыСПерсоналом
~Я УправлениеПерсоналом
Рис. 171.
Интерфейсы в версии 8.1
Таким образом, жесткой связи между подсистемами и интерфейсом
прикладного решения не существовало.
В версии 8.2 все ровно наоборот. Теперь структура подсистем и вне-
шний вид прикладного решения жестко связаны. Разделы приклад-
ного решения, по которым пользователь осуществляет основную нави-
гацию, однозначно соответствуют первому уровню подсистем конфи-
гурации (рис. 172).
W Конфигуратор Демонстрационная конфигурация 'Управляемое приложение
пне
$аАл Правка Ксмфмгдаащ» Отладка Адмаастрнрованиа Сервис Окна Спсввка
С ЙИ X «Ж * * £i ft! .Ч-g“К Q
® ЛЭ
Рис. 172. Связь подсистем и разделов прикладного решения
Из подсистем второго уровня формируются заголовки групп команд
панели навигации (рис. 173).
Из этого следует несколько важных выводов.
Во-первых, теперь проектирование прикладного решения нужно начи-
нать именно с проектирования состава подсистем. То есть с проектиро-
вания внешнего вида прикладного решения.
Во-вторых, если раньше имена подсистем могли быть совершенно про-
извольными, так как не отображались в интерфейсе, то теперь следует
внимательно и вдумчиво относиться к именованию подсистем.
Л____________________________________________________
** Конфигуратор Демонстрационная конфигурация ' Управляемое приложение" |
Виоышн
Ценытомров
Рис. 173. Заголовки групп команд панели навигации
Теперь подсистемы ориентированы на пользователя, а не на разработ-
чика. Они должны предоставить ему всю информацию о прикладном
решении в той классификации, которая будет ему понятна. И слова,
используемые для именования подсистем, должны быть не «техноген-
ными», а предметными, отражающими предметную область приклад-
ного решения.
При этом остается возможность создавать служебные подсистемы,
которые не будут отображены в интерфейсе прикладного решения.
Для этого у подсистем есть свойство Включать в командный интерфейс
(рис. 174).
Для подсистем верхнего уровня сброс этого свойства означает, что
в интерфейсе будет отсутствовать соответствующий раздел приклад-
ного решения (рис. 175).
Разработка ifeg
------------ИКи
Рис. 174. Свойство «Включать в командный интерфейс» подсистемы
Рис. 175. Скрытие раздела в интерфейсе
Соответственно, стандартные команды для работы с объектами кон-
фигурации, входящими в эту подсистему (и в дочерние), также будут
недоступны в интерфейсе.
Для подсистем, начиная со второго уровня, сброс свойства Включать
в командный интерфейс означает, что в панели навигации будет отсутс-
твовать соответствующая группа команд и все команды, входящие в нее
и в дочерние группы (рис. 176).
Рис. 176.
Скрытие группы команд
Для простых прикладных решений, не имеющих разнообразной и раз-
ветвленной функциональности, в 1С:Предприятии 8.2 реализован
режим работы без подсистем.
В этом случае команды всех объектов конфигурации отображаются
в панели навигации и панели действий рабочего стола, а панель раз-
делов просто отсутствует (рис. 177).
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение.
Для формирования командного интерфейса в этой конфигурации
создан ряд подсистем.
Объекты конфигурации отнесены к подсистемам в соответствии
со своим прикладным смыслом.
Для большинства подсистем внесены изменения во фрагменты
командного интерфейса. Изменен порядок следования команд и
установлены признаки видимости для команд, видимость которых
не устанавливается системой по умолчанию, но которые могут часто
использоваться.
ВжамжагрОДеж
Активные пользователи
Журнал ретмстрвше*
АдмитстрапвньЛ t
Банки
Ваяоп»
Варианты отчетов
Виды характеристик товаров
Виды цен
Остатки товаров Журнал регистре*»»
Отчет по жмиморас. * Настроить сканер *
Пугевэдигел по конфигурации
Контрагенты
каррекпфожиостатмв
Курсы валет
Hatau расчетные счета
Оплаты
Организации
Поиск вм**а
Поступления денег
Поступления товаров
Продажи
Расчетные бчет»
Регион*
Склады
Оплаты товаров и услуг
{^Создать ^5 & 1*1 Н Q Найти
Все действия ▼ 0
Дате
А номер
Постает*».
4 09.01 200812:20:14
^11-01.2008931:27
> 09.02.2008121950
.от 07032008121903
1 .J (В ОЗ 20061220 32
J 16.0320061257.57
1003200014:29:35
1 27.0320061320:03
11 ^07.04.200612:16:23
1 .J 15.04200014:10:36
230420061314:40
2904200614.06:12
000000007
000000002
000000006
000000004
000000000
оооосшй
000000014
000000010
000000003
000000013
000000012
000000011
ЗлетроБытЗАО
Скороход АО
ПантераАО
Корнет ЗАО
ЗлетроБытЗАО
Животноводство ООО
Животноводство ООО
Пантера АО
Животноводство ООО
ЗлетроБытЗАО
ЗлетроБытЗАО
Мосхлеб ОАО
Моск леб ОАО
Расчетный счет пост. ! Расчетные а
Файлы
Фмнанмвые «клиенты
Карактаристжитрввров
Рис. 177. Режим работы без панели разделов
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Основной
Дополните
Основной1
Вспомогв]
Основной I
Основной'
Основной
Основной
Основной,
Основной
Основной
Вспомог^
Основной'
Основной!
v^pfflv^KsQEIQ Qtwmpfl
Нет корневой подсистемы
Теперь нет понятия корневой подсистемы.
Раньше если объекты конфигурации не привязывались к какой-либо
подсистеме, они автоматически включались в состав корневой подсис-
темы (рис. 178).
Рис. 178.
Корневая подсистема
конфигурации
Теперь корневой подсистемы нет (рис. 179).
Правами
- 5b финансы
& банк
. 5ъ ТоефныеЗанасы
5s.Uew
& Характеристики
I
Рис. 179.
Подсистемы 1С:Предприятия 8.2
Если в конфигурации не определено ни одной подсистемы, то команды
объектов конфигурации автоматически включаются в состав рабочего
стола. Однако если подсистемы в конфигурации определены, то сущес-
твование объектов, не привязанных ни к одной подсистеме, считается
«нестандартной» ситуацией.
Поэтому если в такую конфигурацию добавляется новый объект и он не
привязывается ни к одной подсистеме, то платформа, при сохранении
конфигурации базы данных, будет выдавать напоминающее сообщение
о том, что этот объект не входит ни в одну подсистему (рис. 180).
Рис. 180. Напоминающее сообщение о том,
что объект не включен в подсистему
Отсутствие корневой подсистемы может иметь и другое проявление,
связанное с конфигурациями, созданными в прошлой версии плат-
формы.
При конвертации конфигурации из старой версии в новую платформа
стремится не вносить в нее никаких изменений, связанных с управля-
емым приложением. Поэтому после конвертации свойство конфигу-
рации Режим совместимости будет иметь значение Версия 8.1, а при-
вязка объектов конфигурации к подсистемам останется без изменений.
То есть если в ней были объекты, привязанные к корневой подсистеме,
все так и останется.
Но когда вы решите установить режим совместимости в значение
Не использовать, платформа проверит, есть ли объекты, привязанные
к корневой подсистеме. Если такие объекты обнаружатся, она очистит
это свойство, предварительно предупредив об этом (рис. 181).
Рис. 181.
Предупреждение
об очистке свойства
«Состав» конфигурации
У объектов конфигурации
нет свойства «Подсистемы»
Раньше у объектов конфигурации было свойство Подсистемы, в котором
можно отметить те подсистемы, в которые входит данный объект
(рис. 182).
Рис. 182.
Свойство «Подсистемы» объекта
конфигурации
Теперь взаимоотношения подсистем и объектов конфигурации измени-
лись. У объектов конфигурации нет такого свойства. Для каждой под-
системы указывается, какие объекты конфигурации в нее входят.
По большому счету это изменение не повлияло на те способы, кото-
рыми раньше устанавливалось соответствие подсистем и объектов кон-
фигурации.
Раньше в окне редактирования объекта конфигурации можно было
отметить подсистемы, в которые входит этот объект. Это можно сде-
лать и теперь (рис. 183).
Рис. 183. Подсистемы в окне редактирования объекта конфигурации
Подсистемы в которых участву
Предприятие]
ы)3ак<джи
[Ы_; Продажи
«0 I ] Финансы
S У ! Г сварные Заласы
Основные
ункциональные спцмг
Мерара*»
Владельцы
Данные
Нумерация
Фтзргыя
Команд
Макеты
Вводив
Права
Обмен дат**»*
Раньше можно было отметить подсистемы в окне Дополнительно.
Это можно сделать и сейчас (рис. 184).
Рис. 184. Подсистемы в окне «Дополнительно»
Однако теперь появился еще один способ установить соответствие
между подсистемами и объектами конфигурации- Раньше для редакти-
рования подсистемы открывалась палитра свойств (рис. 185).
Рис. 185.
Свойства подсистемы
в 1С:Предприятии 8.1
Теперь же для редактирования подсистемы вызывается окно редакти-
рования объекта конфигурации. В этом окне на закладке Состав можно
указать, какие объекты конфигурации входят в состав этой подсистемы
(рис. 186).
Рис. 186. Окно редактирования подсистемы в 1С:Предприятии 8.2
Причем в верхнем списке отображаются все объекты конфигурации,
а в нижнем - только те, которые входят в эту подсистему.
Есть и еще один способ для редактирования состава подсистем.
В версии 8.2 появился новый редактор - Все подсистемы. Он вызыва-
ется из контекстного меню ветки дерева конфигурации Подсистемы
(рис. 187).
W Конфигуратор Демонстрационная конфигурация "У|
- Общие
Jfceta &МВКВ Конфнпранж Отладка Адмигилрмрсвание £
□ Lie еж - *
Рис. 187.
Вызов редактора
«Все подсистемы»
Лмп»- О * ♦
♦ Пд|
f Рс<
L j Планы обмена
Ф 35 Критерии отбора
Ш Подписки на события
О Регламентные задания
*’ Е~ *Р9*циональные опции
* ЬН Параметры Функциональны
Храни^ща настроек
Основное назначение этого редактора - изменение состава командного
интерфейса прикладного решения и редактирование стандартной види-
мости команд и видимости команд по ролям (рис. 188).
Но, кроме перечисленного, этот редактор позволяет также изменять и
состав объектов, входящих в подсистемы.
В верхнем левом списке отображаются все подсистемы, в нижнем
левом списке - состав выбранной подсистемы (рис. 189).
Рис. 189. Изменение состава подсистемы в редакторе «Все подсистемы»
Кнопка Редактировать состав подсистемы позволяет открыть отдельное
окно, в котором можно изменить состав объектов конфигурации, вхо-
дящих в выбранную подсистему.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8. Руководство разработчика, Глава 21.7
Инструменты разработки - Редактор «Все подсистемы».
Новые объекты конфигурации
Функциональные опции..............................178
Хранилища настроек................................180
Команды...........................................181
Управляемые формы.................................184
В версии 8.2 реализован целый ряд новых объектов конфигурации.
Больше всего изменений произошло в ветке Общие.
Функциональные опции
Появились функциональные опции и параметры функциональных
опций (рис. 190).
Рис. 190.
Функциональные опции
и параметры функциональных
опций
Функциональные опции позволяют разработчику выделить функци-
ональность конфигурации, которую можно оперативно включать или
выключать на этапе внедрения и/или в процессе работы системы,
не изменяя при этом саму конфигурацию.
Функциональная опция связывается с нужными объектами конфи-
гурации. В режиме 1С:Предприятие задается значение этой функци-
ональной опции, и система автоматически показывает или скрывает
в интерфейсе все объекты, команды, реквизиты, колонки, поля и т.д.,
связанные с данной функциональностью.
Например, в такую отдельную функциональность можно выделить
работу с дополнительными свойствами товаров. Тогда если органи-
зация, в которой выполняется внедрение, не использует дополни-
тельные свойства товаров, достаточно в режиме 1С:Предприятие
просто выключить эту функциональную опцию, и из интерфейса
исчезнет все, что связано с этой функциональностью.
Существуют ситуации, когда одного постоянного значения функцио-
нальной опции для работы всей конфигурации недостаточно. Например,
есть функциональная опция, включающая/выключающая ведение
валютного учета. Но в информационной базе ведется учет сразу для
нескольких организаций. Некоторые из них используют валютный
учет, некоторые - нет. И когда вводятся документы одной организации,
колонка Валюта должна присутствовать. Для другой организации она,
наоборот; должна быть скрыта.
В таких ситуациях используют функциональные опции с параметром -
параметризованные функциональные опции. Параметром функци-
ональной опции является организация, а значение параметра определя-
ется значением реквизита ВалютныйУчет, который есть у этой органи-
зации.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В конфи-
гурации реализовано несколько функциональных опций.
Функциональные опции УчетПоСкладам и РаботаСГорговымОборудо-
ванием действуют на всю систему. Они связаны с соответствующи-
ми константами, в которых хранятся значения этих функциональных
опций. Для различных объектов конфигурации функциональные опции
выбраны в свойстве ФункциональныеОпции. Например, для справочни-
ка Склады, реквизитов документов Склад и т.д.
Функциональная опция ВалютныйУчет задается отдельно для каждой
организации. Ее значения хранятся в реквизите справочника Органи-
зации. В конфигурации заведен параметр функциональных опций Ор-
ганизация, который связан со справочником Организации. Состав фун-
кциональной опции включает реквизиты ВалютныйУчет различных
объектов, а также справочник Валюты и регистр сведений КурсыВалют.
В формах документов, в которых выбирается валюта, заданная поль-
зователем организация устанавливается в качестве значения парамет-
ра функциональных опций Организация. Это позволяет определить
текущее значение функциональной опции для открытой формы.
Справочник Валюты и регистр сведений КурсыВалют, а также колонки
Валюта списков документов отображаются, если есть хотя бы одна ор-
ганизация, для которой включен валютный учет.
После изменения констант, а также организации для применения но-
вых значений функциональных опций вызывается метод ОбновитьИн-
терфейс.
В обработчиках документов ОбработкаПроверкиЗаполнения отклю-
чается проверка заполнения валюты для организаций, по которым
не ведется валютный учет.
Хранилища настроек
Еще один новый вид объектов конфигурации это Хранилища
настроек. Они тоже располагаются в ветке Общие дерева конфигу-
рации (рис. 191).
Рис. 191.
Хранилища настроек
В процессе работы пользователь выполняет различные настройки в сис-
теме: создает варианты отчетов, сохраняет настройки отчетов, вводит
какие-то данные в формы и т. д. Кроме этого, в конкретном прикладном
решении могут существовать собственные настройки, определяемые
логикой работы этого решения, которые делают работу пользователя
более удобной. Эти настройки сохраняются платформой в системных
таблицах информационной базы.
ПОДРОБНЕЕ
Раздел Настройки пользователей хранятся в информационной базе,
см. стр. 324.
Однако не во всех случаях системные механизмы сохранения настроек
могут на 100 % удовлетворить потребности разработчика.
Хранилища настроек как раз позволяют разработчику хранить поль-
зовательские настройки не в системных таблицах, а в объектах кон-
фигурации (например, в специальных справочниках, в регистрах све-
дений). Благодаря этому разработчик может реализовать собственный
формат хранения этих настроек и собственные алгоритмы работы
с этими настройками.
ПОДРОБНЕЕ
Раздел Когда нужно создавать собственные хранилища настроек,
см. стр. 343.
Демонстрационная конфигурация Управляемое приложение. Для хра-
нения вариантов отчета в конфигурации создано хранилище настроек
ХранилищеВариантовОтчетов, которое сохраняет настройки в спра-
вочнике. Данное хранилище используется для хранения вариантов
всех отчетов конфигурации. Созданные варианты отчетов могут быть
выбраны всеми пользователями. Редактирование вариантов доступно
администратору.
Команды
Команды - это новая сущность, реализованная в версии 8.2. Команды
появились во многих местах конфигурации.
Во-первых, в ветке Общие появились Общие команды и Группы команд
(рис. 192).
Кроме этого, команды появились у всех прикладных объектов конфи-
гурации (рис. 193).
Наличие команд как раз и позволяет декларативно описывать коман-
дный интерфейс системы.
Известно, какие команды есть, известно, где и по каким правилам они
должны отображаться. В результате система может автоматически
сформировать командный интерфейс для конкретного пользователя,
учитывая его настройки, его права и функциональные опции.
Рис. 192.
Общие команды
и группы команд
€ Ш Спраео**мки
6 ПП Товары
S> « Реквизиты
03 Табличные части
® В Формы
® ® Макеты
в й ДокулвНГЫ
3^ Нумераторы
Последовательности
® ПриходТовара
6 £2 РасмэдТоеара
® ” Реквизиты
® '= Таблмные части
® Е Форе»
Казани
асходнойНакладной
® П*1 Макеты
С» н Отчеты
® Н ОстаткиТовароеНаСклэдах
« Реквизиты
ЕЗ Табтмчные части
Е Формы
# Обработки
& Поиск8Еаннь»
“ Реквизиты
Щ Табличные части
Ф Макеты
® й Формы
® Макеты
Рис. 193. Команды
прикладных объектов
конфигурации
Система оперирует большим набором различных команд.
Есть команды, которые система формирует автоматически, исходя
из состава объектов конфигурации и их настройки (стандартные
команды).
А есть команды, которые разработчик может создавать сам и сам может
описывать алгоритмы их работы. Именно для этого и созданы объекты
конфигурации Команда.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Создание
команд, открывающих формы в основном окне, демонстрируется на
примере команды обработки ПоискВДанных. Для этой обработки от-
ключено стандартное включение в командный интерфейс и создана
команда, которая открывает форму обработки в основном окне прило-
жения.
У отчета ОстаткиТоваровНаСкладах создана команда ОстаткиПоСкладу.
Для нее определен тип параметра СправочникСсылка.Склады и задана
группа по умолчанию. Команда ОстаткиПоСкладу добавлена в команд-
ную панель документа РасходТовара с привязкой к полю формы Склад.
Также данная команда автоматически добавляется в форме списка и в
форме элемента справочника Склады.
В модуле команды значение параметра передается в открываемую фор-
му отчета, в значении параметра Отбор. Форма отчета анализирует дан-
ный параметр и автоматически добавляет в отбор отчета значения из
данной структуры. Кроме отбора в форму отчета передается параметр
КлючНазначенияИспользования, позволяющий отчету, открываемому
по данной команде, иметь собственные пользовательские настройки.
Таким образом, пользователь будет иметь возможность модифициро-
вать открываемый отчет, и его настройки будут использоваться при сле-
дующем открытии отчета с помощью данной команды. Также в форму
отчета передается параметр СформироватъПриОткрьггии, при помощи
которого указывается, что отчет должен быть сразу сформирован, т.е.
пользователю не придется при открытии отчета формировать его при
помощи команды Сформировать.
Система предоставляет стандартные команды с параметрами, которые
можно использовать в формах. Например, критерий отбора Докумен-
тыКонтрагента предоставляет команду для открытия списка докумен-
тов. Она доступна в командном интерфейсе формы контрагента, так как
параметр команды соответствует по типу, ссылке основного реквизита
этой формы. Команда по умолчанию невидима, но в конфигурации она
включена в режиме редактирования командного интерфейса формы.
Некоторые команды, например, открытия подчиненных справочников,
по умолчанию видимы. В форме контрагента такой командой является
команда открытия списка расчетных счетов контрагента.
У документа РасходТовара реализована параметризованная команда
ПечатьРасходнойНакладной. Она автоматически включается в форму
документа и в форму списка. Для команды установлен множественный
режим использования параметра. В форме списка при вызове команды в
ее параметр будут передаваться ссылки, соответствующие выделенным
строкам. В обработчике команды вызывается серверная функция, ко-
торая выполняет формирование печатных форм. Табличный документ
возвращается функцией в клиентское приложение и открывается.
Управляемые формы
В версии 8.2 используются новые, управляемые формы. Наряду с этим
поддерживаются и продолжают существовать старые формы, хорошо
знакомые нам по версии 8.1.
Внешне в дереве объектов конфигурации старые и новые формы ничем
не отличаются друг от друга. Понять, какая форма старая, а какая -
новая, управляемая, можно лишь открыв форму в редакторе (рис. 194).
Рис. 194.
Обычная форма
Для новых форм используется новый редактор, который имеет другую
структуру и другой внешний вид (рис. 195).
Возникает естественный вопрос: какие из этих форм и для чего нужно
использовать?
Короткий ответ такой: для создания новых прикладных решений нужно
использовать новые, управляемые формы. Старые формы поддержи-
ваются только для того, чтобы могли работать прикладные решения,
созданные в предыдущей версии платформы.
Этот ответ будет правильным, но не совсем точным.
Рис. 195. Управляемая форма
Помимо того что версия 8.2 может работать со старыми конфигура-
циями без их переделки, она позволяет еще частично дорабатывать их
для работы в новом режиме управляемого приложения. То есть одна
часть конфигурации выглядит и работает как раньше, а другая часть -
по-новому.
ПОДРОБНЕЕ
Раздел Постепенный перевод в режим управляемого приложения,
см. стр. 267.
«Глубина» такой переделки может быть разной. Могут быть добавлены
лишь несколько управляемых форм, или, наоборот, почти все при-
кладное решение может быть переведено на работу в режиме управ-
ляемого приложения и оставлено лишь несколько старых форм. В этом
случае старые и новые формы будут существовать равноправно и необ-
ходимость их одновременного присутствия будет определяться лишь
практическими задачами конкретного внедрения.
Другой случай - когда при разработке нового прикладного решения
по каким-то очень веским причинам функциональности новых управ-
ляемых форм оказывается недостаточно. В этом случае также могут
использоваться старые, неуправляемые формы.
Но все это «экзотические» или, так скажем, переходные случаи.
Основной же принцип был изложен ранее. Повторим его еще раз: все,
что может быть реализовано с помощью управляемых форм, должно
быть реализовано с их помощью.
Стандартные реквизиты
У объектов конфигурации существуют стандартные реквизиты и рек-
визиты, созданные разработчиком. Стандартные реквизиты платформа
создает автоматически, исходя из свойств объекта конфигурации.
Например, для справочника всегда будут созданы реквизиты Ссылка,
ПометкаУдаления и Предопределенный. Если длина кода и длина наиме-
нования справочника не равны нулю, то будут созданы стандартные
реквизиты Код и Наименование. Если справочник иерархический, то
будут созданы реквизиты Родитель и ЭтоГруппа. Если справочник под-
чинен другому справочнику, то будет создан реквизит Владелец. Ана-
логично обстоит дело и с другими объектами конфигурации.
Раньше стандартные реквизиты объектов конфигурации были недо-
ступны разработчику. Он не мог задать какие-либо свойства для
этих реквизитов. Ну, может быть, за исключением длины и типа кода
и наименования.
В версии 8.2 появилась необходимость многие интерфейсные свойства
описывать не в формах, а непосредственно в самих объектах конфигу-
рации, для того чтобы платформа могла по этому описанию правильно
сконструировать управляемую форму. А поскольку в формах зачастую
присутствуют не только реквизиты, добавленные разработчиком, но
и стандартные реквизиты, эти стандартные реквизиты теперь стали
доступны в конфигураторе. Для них можно задавать целый набор раз-
личных свойств.
ПОДРОБНЕЕ
Раздал Свойства стандартных реквизитов, см. стр. 220.
Получить доступ к стандартным реквизитам объектов конфигурации
можно тремя способами.
Во-первых, из контекстного меню в дереве объектов конфигурации
с помощью команды Стандартные реквизиты (рис. 196).
Конфигуратор Демон грационная конфигурация 'Управляемое л
£айл Правке Конфигурация Отладке Администрирование Сервис Дина
о йа к%••*** к <г ~1
< ® «а «
Действия • ф ф X ♦♦ й
W ДемонстрационнаяКонФигурацияУправляе
£> *• Общие
И Справочники
® от
~ ОТ Контр!
ОТ
® ОТ
® ОТ
& от
► ОТ
® от
Валют
Ретив
ВиЫ
Расче
Открыть модуль объекта
Открыть модуль менеджера
Открыть предопределенные данные
<?/ ОТ Банки
t ОТ Настри
t ОТ
& ОТ Орган]
?•' Щ Документ
Р У Журналы .
t {.J Передел
Стандартные реке* ц
в
о
Del
F3
Открыть основную Форму объекта
Открыть основную Форму грутпы
Открыть основную Форму списка
Открыть осноенуо форму для выбора
Открыть основную Форму для выбора группы
Открыть
Конструкторы
Добавить
Иэмовпъ
Скопировать
Удалить
CtrkSMUJp
Ctrl+Shft+Down
Переместить вверх
Переместить вниз
Сортировать.
Поиск ссылок в объекта
^5 Дополнительно
АЙ+Ertei
Рис. 196.
Команда «Стандартные
реквизиты» в контекстном
меню
Склад] ""*>
К
Во-вторых, из окна редактирования объекта конфигурации. На закладке
Данные расположена кнопка Стандартные реквизиты (рис. 197).
В-третьих, из палитры свойств с помощью гиперссылки Стандартные
реквизиты - Открыть (рис. 198).
Основные
Длина кода
Подсистемы
»Строка
Длина наименования
Тип кода- — -
Число
Иврарии»
Ёлштыиы
> В виде наименования
Фаоы
Команды
Макеты
[ Далее> | «закрыть 11 Справка
Т абличные чаги i
-Основное представление-—
( В виде кода
Права
Обмен данным
Прочее
ECi
25 Cj
Артикул
Поставщик
в ФайлКартинки
Вид
Рис. 197.
Команда
«Стандартные
реквизиты» в окне
редактирования
объекта
конфигурации
-------------Il---1
Платформа показывает все стандартные реквизиты, которые могут
быть у выбранного объекта конфигурации (рис. 199).
Рис. 199.
Стандартные реквизиты
При этом те реквизиты, которых в данный момент у объекта конфи-
гурации нет, отмечены серым шрифтом и точкой вместо пиктограммы
реквизита.
По двойному щелчку мышью на реквизите открывается палитра
свойств, содержащая свойства этого реквизита (рис. 200).
Интерфейсные свойства объектов
конфигурации
Основная идеологическая новация платформы версии 8.2 заключается
в максимальном облегчении клиентских приложений и автоматическом
формировании интерфейса прикладного решения.
Поэтому многие свойства, определяющие внешний вид обрабатыва-
емых данных, перекочевали из форм объектов в сами объекты конфи-
гурации. Наряду с этим в управляемых формах осталась возможность
изменения этих же свойств.
Теперь при разработке прикладных решений следует придерживаться
следующей методики.
Прежде всего, стараться максимально использовать свойства объектов
конфигурации. Если какое-то свойство можно задать в самом объекте
конфигурации, делать это нужно именно там. В этом случае система
автоматически будет применять его ко всем формам этого объекта - как
к формам, автоматически генерируемым платформой, так и к формам,
созданным разработчиком.
Если же для какой-то отдельной формы требуется иметь поведение,
отличное от того, которое установлено в самом объекте конфигурации,
тогда уже нужно пользоваться аналогичным свойством формы этого
объекта.
Дальше перечислим свойства, которые теперь следует задавать, прежде
всего, в объектах конфигурации. Отдельно рассмотрим свойства, поя-
вившиеся у самих объектов конфигурации и отдельно, - те свойства,
которые появились у их реквизитов.
Свойства объектов
Здесь мы перечислим свойства, которые появились у справочников,
документов и других объектов конфигурации.
Быстрый выбор
В версии 8.1 у ссылочных объектов конфигурации существовало
свойство Способ выбора. Оно могло принимать одно из трех значений:
Из формы, Быстрый выбор и Обоими способами (рис. 201).
Рис. 201.
Свойство «Способ
выбора» в версии 8.1
Теперь это свойство тоже осталось, но наряду с ним у справочников,
перечислений, планов видов характеристик, планов счетов и планов
видов расчета появилось отдельное свойство Быстрый выбор (рис. 202).
Это свойство устанавливает режим выбора по умолчанию. Оно
доступно только в том случае, если свойство Способ выбора установ-
лено в значение Обоими способами (рис. 203).
Основные:
Имя Склады
Синоним Склады
Комментарий
Модуль объекте Открыть
Модуль менеджера Открыть
► Данные'
•» Представление
Использовать стандартные команды
Л* 4-г- рый выбор
1 Способ въбора ! Обоими способами
Основная Форма объекта | ,,„х Q
£ HOBi*.m форм - группы . X
Основная форма списка .. X Q
Основная Форма выбора „ X Q
Оплечия форма еыЬ труппы X Q
Представление объекта | Склад
Расширенное представление объекта
Рис. 203.
Свойства «Способ выборе»
и «Быстрый выбор»
в версии 8.2
В результате если быстрый выбор установлен, то, например, ссылка
на элемент справочника будет выбираться из небольшого выпадающего
списка (рис. 204).
Если свойство Быстрый выбор сброшено, ссылка будет выбираться
из отдельной формы (рис. 205).
Пост» Поступление товара (создание)
Рис. 205. Выбор ссылки на справочник из отдельной формы выбора
На пути к пользователю это свойство может быть переопределено
дважды.
Рассмотрим пример, котда ссылка справочник Склады - это реквизит
документа ПриходТовара.
Как мы уже выяснили, быстрый выбор можно задать для самого спра-
вочника Склады. Тотда в этом режиме он будет выбираться в любых
формах любых объектов.
Первый раз быстрый выбор можно переопределить у реквизита доку-
мента ПриходТовара (рис. 206).
В этом случае, например, во всех формах всех других объектов будет
быстрый выбор справочника Склады, а во всех формах документа
ПриходТовара будет выбор из формы.
Рис. 206. Свойство «Быстрый выбор» реквизита объекта конфигурации
Второй раз быстрый выбор можно переопределить уже непосредс-
твенно в форме документа ПриходТовара. В свойствах того элемента,
который отображает этот реквизит (рис. 207).
В заключение следует заметить, что список, формируемый платформой
для быстрого выбора, можно программно переопределить в обработ-
чике события Обработка получения данных выбора в модуле менеджера
объекта конфигурации.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8. Руководство разработчика,
Раздел 5.6.11 Объекты конфигурации-Общие свойства объектов конфи-
гурации - Быстрый выбор.
Демонстрационная конфигурация Управляемое приложение. У спра-
вочников, в которых предполагается небольшое количество элементов,
в метаданных установлено свойство БыстрыйВыбор. Это обеспечи-
вает выбор из выпадающего списка в полях ввода там, где этот режим
не отменен явно для реквизита или поля формы.
Методика изменения стандартной обработки быстрого выбора и ввода
по строке демонстрируется на примере справочника складов. Алгоритм
реализован в модуле менеджера справочника.
Для ввода по строке добавляется отбор, исключающий элементы, для
которых установлен реквизит НеИспользоватъ.
Для быстрого выбора в список включаются все элементы, но
элементам, у которых установлен реквизит НеИспользоватъ, назначается
предупреждение, которое будет выводиться при выборе.
^Конфигуратор )рмон грационная конфигурация Управзяемое причо>кение' I* |О X
Рис. 207. Свойство «Быстрый выбор» элемента формы
Представления
В версии 8.1 командный интерфейс представлял собой, грубо говоря,
набор фиксированных картинок с кнопками - интерфейсов. Каждый
интерфейс разработчик создавал самостоятельно и называл команды
так, как ему было необходимо. В тех случаях, когда никаких «указаний
от разработчика» не было, система использовала синоним объекта кон-
фигурации.
В версии 8.2 командный интерфейс формируется системой автомати-
чески, поэтому система изначально должна знать, как назвать ту или
иную команду. И в этой ситуации одного синонима становится недо-
статочно.
В 1С:Предприятии 8.2 у объектов конфигурации появился целый набор
представлений (рис. 208).
Рис. 208. Представления объекта конфигурации
Представление объекта (у независимых регистров сведений такое
свойство называется Представление записи) используется в командах
создания нового объекта. Поэтому оно всегда должно быть в единс-
твенном числе, и заполнять его нужно тоща, когда синоним - во мно-
жественном числе.
Например, для справочника Товары нужно задать представление объ-
екта Товар, чтобы команда создания нового элемента этого спра-
вочника выглядела читаемо: Создать - Товар, а не Создать - Товары
(рис. 209).
Рис. 209. Использование свойства «Представление объекта»
Представление списка используется в командах перехода к списку этого
объекта. Поэтому оно всегда должно быть во множественном числе,
и заполнять его нужно тогда, когда синоним - в единственном числе.
Например, для документа Оплата нужно задать представление списка
Оплаты (рис. 210).
Расширенное представление объекта (у независимых регистров све-
дений такое свойство называется Расширенное представление записи)
используется в заголовке форм объекта. Задавать его нужно тогда, когда
синоним и представление объекта недостаточно точно описывают
назначение объекта.
Например, для документа Оплата можно задать расширенное представ-
ление объекта Оплата товаров и услуг (рис. 211).
Рис. 210. Использование свойства «Представление списка»
Рис. 211. Использование свойства
«Расширенное представление объекта»
При этом у документов есть особенность: расширенное представление
объекта используется в заголовке формы только у новых объектов.
У существующих объектов используется представление объекта (рис.
212).
Рис. 212. Заголовок формы существующего документа
Расширенное представление списка используется в заголовке форм списка
объекта. Задавать его нужно тогда, когда синоним и представление списка
недостаточно точно описывают всю совокупность этих объектов.
Например, для документа ОперацияПоУчетуТоваров можно задать
расширенное представление списка Корректировки остатков товаров
(рис. 213).
Рис. 213. Использование свойства «Расширенное представление списка»
У отчетов и обработок вместо этих четырех представлений имеется
единственное Расширенное представление. Оно используется для фор-
мирования заголовка формы отчета или обработки (рис. 214).
Рис. 214. Использование свойства «Расширенное представление»
Пояснение
Свойство Пояснение есть у всех прикладных объектов (рис. 215).
Это свойство используется для формирования подсказки к стандар-
тным командам (рис. 216).
Рис. 215. Свойство «Пояснение»
Рис. 215. Использование свойства «Пояснение»
Использовать стандартные команды
Это свойство управляет тем, попадут ли стандартные команды объ-
ектов конфигурации в командный интерфейс, или нет. Стандартные
команды - это команды перехода к списку объектов, создания нового
объекта и т.д. (рис. 217).
Рис. 217. Свойство «Использовать стандартные команды»
Если свойство установлено в значение Истина, то система включит
стандартные команды в интерфейс. Они появятся в редакторах коман-
дного интерфейса, можно будет управлять их видимостью по умол-
чанию и настраивать видимость по ролям.
Если свойство установлено в значение Ложь, то стандартных команд
не будет в интерфейсе. Это может понадобиться в двух случаях:
в для служебных объектов конфигурации, работа с которыми выпол-
няется только из встроенного языка;
для «особенных» объектов, для работы с которыми разработчик
хочет создать собственные команды и самостоятельно разместить
эти команды в нужных частях интерфейса.
Свойства реквизитов объектов
Режим пароля, Многострочный режим, Расширенное
редактирование, Выбор групп и элементов, Выделять
отрицательные
В версии 8.1 свойства Режим пароля, Многострочный режим, Расши-
ренное редактирование, Выбор групп и элементов, Выделять отрица-
тельные (для ссылок на справочники и характеристики) были свойс-
твами поля ввода (рис. 218).
Рис. 218.
Свойство «Режим пароля»
поля авода
Теперь, в версии 8.2, это свойства реквизита объекта конфигурации
(рис. 219).
Рис. 219. Свойство «Многострочный режим»
реквизита объекта конфигурации
Устанавливать эти свойства нужно для реквизита объекта конфигу-
рации, а в конкретной форме, если есть необходимость, их можно пере-
определить (рис. 220).
Возможны два варианта: выбрать одно из возможных значений или
выбрать Авто. Авто означает, что будет использовано то значение,
которое указано в реквизите объекта конфигурации.
Рис. 220. Свойство «Многострочный режим» элемента формы
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Для рек-
визита ДополнительнаяИнформация справочника Контрагенты в мета-
данных задано значение свойства МногострочныйРежим. Используя эту
информацию, форма элемента справочника автоматически отображает
поле ввода этого реквизита в виде многострочного поля.
Подсказка, Маска
В версии 8.1 свойство Подсказка было у многих элементов управления,
а свойство Маска было у поля ввода (рис. 221).
Теперь, в версии 8.2, это свойства реквизита объекта конфигурации
(рис. 222).
Рис. 221.
Свойство «Подсказка»
поля ввода
Устанавливать эти свойства нужно для реквизита объекта конфи-
гурации, а в конкретной форме, если есть необходимость, их можно
переопределить.
Если в форме не указывать ничего, то будет использоваться то значение,
которое указано в реквизите объекта конфигурации. Если в форме ука-
зано какое-то значение, будет использовано именно оно (рис. 223).
Рис. 223. Свойство «Подсказка» элемента формы
Форма выбора
Вспомним, как в версии 8.1 осуществлялся выбор ссылочного значения
в поле ввода. Стандартно система открывала основную форму выбора
того объекта, ссылку на который требовалось выбрать.
Если разработчику по каким-то причинам требовалось использовать
для этого другую форму, не основную, приходилось вызывать ее про-
граммно в обработчиках события Начало выбора или Начало выбора
из списка.
Если речь шла о форме, генерируемой системой автоматически, то воз-
можности переопределить форму, вызываемую для выбора, не было.
В версии 8.2 у реквизита объекта конфигурации появилось свойство
Форма выбора, которое позволяет указать, какая именно форма будет
использована при выборе значения этого реквизита в любых формах
(рис. 224).
Рис. 224. Свойство «Форма выбора» реквизита объекта конфигурации
Устанавливать это свойство нужно для реквизита объекта конфигу-
рации, а в конкретной форме, если есть необходимость, его можно
переопределить.
Если в форме ничего не указывать, будет использоваться форма,
выбранная для реквизита объекта конфигурации. Если в форме указать
какую-нибудь форму, будет использоваться именно она (рис. 225).
Рис. 225. Свойство «Форма выбора» элемента формы
Проверка заполнения
В версии 8.1 не существовало механизма автоматической (без напи-
сания кода) проверки интерактивного заполнения реквизитов объ-
екта. Такую проверку нужно было выполнять из встроенного языка,
например в обработчике события формы Перед записью.
Единственная похожая возможность, которая существовала ранее, -
это свойство Запрет незаполненных значений, существовавшее у изме-
рений регистров.
В версии 8.2 такой механизм реализован. Это механизм проверки
заполнения.
Здесь мы только заметим, что свойство Проверка заполнения
это часть этого механизма. Свойство Проверка заполнения существует
у многих объектов конфигурации: у табличных частей и реквизитов
табличных частей, у констант, у измерений, реквизитов, ресурсов,
у реквизитов адресации, признаков учета - одним словом, везде, где
возможен интерактивный ввод данных пользователем (рис. 226).
Рис. 226. Свойство «Проверка заполнения» реквизита объекта
конфигурации
Как и для других интерактивных свойств конфигурации, это свойство
можно переопределить. Но делается это не интерактивно в конфигу-
раторе, а из встроенного языка. В обработчиках событий Обработка
проверки заполнения на сервере и Обработка проверки заполнения
можно исключить реквизиты из проверки или, наоборот, добавить.
Значение заполнения,
Заполнять из данных заполнения
В версии 8.1 не существовало возможности автоматического (без напи-
сания кода) заполнения значений реквизитов добавляемых объектов.
Для решения этой задачи приходилось писать обработчик события
Обработка заполнения. При вводе на основании этот обработчик вызы-
вался системой автоматически. В других случаях нужно было вызывать
этот обработчик самостоятельно, из кода.
В версии 8.2 реализован механизм, позволяющий, во-первых, визуаль-
ными средствами описать простейшие случаи начального заполнения
реквизитов объектов, а во-вторых, описать правила, по которым такое
заполнение будет выполняться в более сложных случаях.
Здесь мы только заметим, что у реквизитов объектов конфигурации
появилось два новых свойства: Значение заполнения и Заполнять из
данных заполнения (рис. 227).
Рис. 227. Свойства «Значение заполнения» и «Заполнять из данных
заполнения» реквизита объекта конфигурации
Свойство Значение заполнения позволяет в явном виде задать значение,
которым будет заполнен этот реквизит при создании нового объекта.
Для примитивных типов это может быть некоторое число или строка.
Для ссылочных типов можно выбрать одно из предопределенных зна-
чений (рис. 228), а для перечислений - существующие в конфигурации
значения перечислений (рис. 229).
“ Закупочная
C.2S J [ Р""“ I
Рис. 228. Выбор предопределенного значения для начального заполнения
Свойство Заполнять из данных заполнения означает, что система само-
стоятельно должна заполнить этот реквизит, либо используя некоторые
стандартные соглашения, либо следуя алгоритму, который разработчик
закодировал в обработчике события объекта Обработка заполнения.
Собственно в этом обработчике и можно программно переопределить
действия системы по начальному заполнению реквизитов.
Рис. 229. Выбор значения перечисления для начального заполнения
ПОДРОБНЕЕ
Раздел Обработка заполнения вызывается при создании нового доку-
мента, см. стр. 392.
Демонстрационная конфигурация Управляемое приложение.
В документах демонстрируется заполнение реквизитов начальными
данными.
У реквизитов Поставщик, Покупатель установлено свойство Запол-
нятьИзДанныхЗаполнения. Это обеспечивает заполнение реквизи-
тов при вводе документов из списка, если в списке установлен отбор
по этим реквизитам.
Для реквизита Вид справочника Товары в метаданных установлено
свойство ЗначениеЗаполнения (вид товара - Товар).
Параметры выбора, Связи параметров выбора
В версии 8.1 у поля ввода было свойство Связь по владельцу. Оно поз-
воляло указать, что для выбора значений в этом поле должны предла-
гаться только те элементы, владельцем которых является некоторый
другой реквизит этой же формы.
Например, справочник Банковские счета подчинен справочнику Конт-
рагенты. После того как пользователь выбрал контрагента, нужно было
предоставить ему возможность выбрать банковский счет не из всех
возможных счетов, а только из банковских счетов, которые относятся
к выбранному контрагенту (рис. 230).
Рис. 230. Использование свойства «Связь по владельцу» в версии 8.1
В версии 8.2 реализовано свойство Связи параметров выбора, которое
позволяет решать те же самые и даже более широкие задачи.
Также в версии 8.2 реализовано и другое свойство - Параметры выбора.
Оно тоже позволяет описать правила, которые будут использоваться
при выборе значения реквизита. Но этот выбор будет зависеть не от
других реквизитов формы, а от самого этого реквизита.
Например, контрагента нужно выбирать не среди всех, которые есть
в справочнике, а только среди тех контрагентов, которые не помечены
на удаление.
В версии 8.1 подобная задача решалась только программным способом,
теперь ее можно решить средствами визуального конструирования.
Здесь мы только коснемся того, где эти свойства нужно задавать
и где их можно переопределить.
Устанавливать эти свойства нужно для реквизитов объектов конфигу-
рации (рис. 231).
Рис. 231. Свойства «Параметры выбора» и «Связи параметров выбора»
реквизита объекта конфигурации
Переопределить их можно в свойствах элемента формы для какой-то
одной конкретной формы (рис. 232).
Рис. 232. Свойства «Параметры выбора»
и «Связи параметров выбора» элемента формы
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение.
На примере реквизита РасчетныйСчетПоставщика документа Оплата
демонстрируется установка в конфигурации связи между реквизитами.
В свойстве СвязиПараметровВыбора указано, что прн выборе расчет-
ного счета необходимо отбирать счета по полю Владелец, используя
для отбора значение реквизита Поставщик.
На примере реквизита Товар табличной части Товары документа При-
ходТовара демонстрируется задание в метаданных конкретного значе-
ния параметра выбора. Задается параметр выбора Отбор.Вид для отбо-
ра элементов справочника с видом Товар. Таким образом, из выбора
исключаются услуги.
Для реквизита Товар табличной части документа РасходТовара
в свойстве СвязиПараметровВыбора задана связь параметра Остат-
киПоСкладу с реквизитом Склад. Этот параметр используется в форме
ФормаСпискаСОсгатками справочника Товары для показа справочни-
ка товаров по конкретному складу. Для связи установлено значение
свойства РежимИзмененияСвязанногоЗначения НеИзменять, так как
не нужно очищать реквизит Товар при изменении склада
В отчете ДокументыОплата демонстрируется использование связи па-
раметров выбора, описанных в конфигурации - при вводе отбора для
поля Расчетный счет поставщика в форме выбора автоматически уста-
навливается отбор по полю Владелец. Кроме того, при смене в отборе
значения поля Поставщик значение отбора в поле Расчетный счет пос-
тавщика будет автоматически очищено для того, чтобы не отбирать зна-
чения по счетам другого поставщика.
Связь по типу
В версии 8.1 у элементов управления были свойства Связь по типу
и Элемент связи по типу. Эти свойства позволяли описать связь одного
элемента формы с другим в том случае, когда типы значений этих эле-
ментов связаны друг с другом через план видов характеристик.
Например, это счета, субконто и значения субконто в бухгалтерском
учете или характеристики номенклатуры в складском учете (рис. 231).
Рис. 231. Свойства «Связь по типу» и «Элемент связи по типу»
в версии 8.1
В версии 8.2 эти свойства остались, но, как и другие свойства, опи-
сываемые в этом разделе, перекочевали в описание объектов конфигу-
рации.
Теперь свойство Связь по типу нужно устанавливать для реквизита
объекта конфигурации (рис. 234).
Рис. 234. Свойство «Связь по типу» реквизита объекта конфигурации
Свойство Элемент связи по типу не вынесено в палитру свойств. Оно
доступно в диалоге, который открывается для выбора связи по типу
(рис. 235).
Оба эти свойства можно переопределить для конкретной формы,
используя свойства элементов формы (рис. 236).
1Т
Для получения подсказки ивжнытв F1
Быстрый выбор
Форма выбооа
Отчеты
Обработки
Планы видов характеристик
Планы счетов
Планы видов расчета
> ffi
файл Правка Конфигурация Оглодка Адкыннстр»фсвание Сервис Окна Ставка
Q Xia»®
Л»™»* О # X ♦ ♦ ©
Демонстраи-«»«1вяКон4мпдоиияилраоляома4
ft 3 Общие
• 1Г Константы
6 ПЛ Справочжи
L Документы
1 В Журналы документов
£} Перечисления
к Основные:
Использование
Индексцювать Не индексировать
Полнотекстовый поиск ’ Использовать
Подсказка Значение характеристики товара
Заполнять изданных заполнения LJ
Значение заполнения
Проверка заполнения
Не проверять
Выбор гожп н элементов Элементы
’ Регистры сведений
® КурсыВалют
ffl ХарактеристикиТсварое
♦ L. Измерения
<Э J Ресурсы
200^11
” Реквизиты
® Е Фермы
€ Команды
' : Макеты
г1 ЕЯ ЦеныТсварое
' М Регистры накопления
на «л_________________
Рис. 235. Свойство «Элемент связи по типу» в версии 8.2
ПОДРОБНЕЕ
Документация 1С: Предприятие 8. Руководство разработчика,
Глава 5.6.12 Объекты конфигурации - Общие свойства объектов конфи-
гурации - Прочее.
Демонстрационная конфигурация Управляемое приложение. Для ре-
сурса Значение регистра сведений ХарактеристикиТоваров в метадан-
ных задано свойство СвязьПоТипу, определяющее выбор значения из
тех типов, которые указаны в виде характеристики, выбранной в изме-
рении ВидХарактеристики.
u—J----------------------------------------------------------
Рис. 236. Свойство «Связь по типу» элемента формы
Свойства стандартных реквизитов
В версии 8.2, в отличие от версии 8.1, разработчику стали доступны
стандартные реквизиты объектов конфигурации: Родитель, Владелец,
ЭтоГруппа, ПометкаУдаления, Предопределенный и др.
ПОДРОБНЕЕ
Раздел Стандартные реквизиты, см. стр. 186.
У стандартных реквизитов, как и у «обычных», тоже есть возможность
в палитре свойств установить почти все те же свойства, о которых гово-
рилось выше.
По большому счету работа со стандартными реквизитами осуществля-
ется так же, как и с «обычными». Почему стоит сказать о них отде-
льно?
Во-первых, для того, чтобы лишний раз напомнить об их существо-
вании.
Во-вторых, потому, что некоторые интерфейсные свойства стандар-
тных реквизитов наверняка будут очень востребованы в прикладных
решениях.
Например, возможность задать синоним для стандартного реквизита
Родитель. Это позволит без какого-либо программирования видеть
во всех формах справочника Товары не непонятную надпись Родитель,
а вполне обычную надпись Группа товаров.
В-третьих, потому, что для некоторых стандартных реквизитов плат-
форма самостоятельно устанавливает отдельные свойства сразу же при
создании объектов конфигурации.
Например, для реквизита Родитель и Владелец справочника будет уста-
новлено свойство Заполнять из данных заполнения. Для реквизита
Дата документа будет установлено свойство Проверка заполнения -
Выдавать ошибку. Это же свойство будет установлено для реквизита
справочника Наименование и Владелец.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8. Руководство разработчика,
Раздел 5.6.8.1 Объекты конфигурации Общие свойства объектов
конфигурации - Проверка заполнения реквизитов - Установки по умол-
чанию.
Как правило, установка этих реквизитов соответствует некоторому
«естественному» порядку использования объектов. Ну действительно,
какой смысл в документе без даты или в элементе справочника без
наименования?
Но ситуации бывают разные, и не всегда разработчику подходит именно
типовое поведение объекта. Поэтому об этой особенности полезно
знать.
Теперь просто перечислим те интерфейсные свойства, которые поя-
вились у стандартных реквизитов. Не у всех реквизитов есть именно
такой набор свойств, но все эти свойства есть у тех или иных стандар-
тных реквизитов:
Синоним,
Подсказка,
Проверка заполнения,
Значение заполнения,
Заполнять из данных заполнения,
Режим пароля,
Маска,
Многострочный режим,
Расширенное редактирование,
Форма выбора,
Быстрый выбор.
Общий смысл использования этих свойств тот же.
Настраивать их нужно в объекте конфигурации, а в некоторых отде-
льных формах - лишь «корректировать» это общее поведение.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение.
Для справочника Товары для стандартного реквизита Родитель задан
синоним Группа, так как этот термин больше понятен пользователям
при обозначении группы, в которую входит товар. Во всех формах и
отчетах вместо надписи Родитель автоматически отображается надпись
Группа.
Аналогично синоним для стандартного реквизита Родитель задан
и для справочника Контрагенты.
Синонимы также заданы для стандартных реквизитов Владелец в неко-
торых подчиненных справочниках.
Новые модули
Как известно, модуль это то место конфигурации, в котором
разработчик может написать свой собственный программный код
на встроенном языке.
В версии 8.2 в конфигурации появилось несколько новых модулей.
Модуль управляемого приложения
Модуль управляемого приложения - это аналог модуля приложения,
существовавшего в прежней версии.
В нем нужно размещать процедуры и функции, которые должны выпол-
няться при старте и при окончании работы приложения.
Модуль управляемого приложения можно открыть двумя способами.
Во-первых, из контекстного меню корня конфигурации (рис. 237).
Рис. 237. Переход к модулю управляемого приложения из контекстного
меню дерева объектов конфигурации
Во-вторых, из палитры свойств, когда в ней открыты свойства корня
конфигурации (рис. 238).
Рис. 238. Переход к модулю управляемого приложения
из палитры свойств
Модуль управляемого приложения может содержать описание пере-
менных, процедур, функций и тело модуля.
Модуль управляемого приложения исполняется только в тонком кли-
енте, в веб-клиенте и в толстом клиенте в режиме управляемого прило-
жения. В нем нельзя использовать директивы компиляции (&НаКли-
енте, ЬНаСервере и другие).
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика, Глава 4.8
Встроенный язык - Особенности режимов запуска системы.
В модуле управляемого приложения можно обработать события,
аналогичные тем, которые обрабатывались в модуле приложения
в версии 8.1.
Когда пользователь начинает свою работу, в этом модуле можно обра-
ботать два события:
Перед началом работы системы
(обработчик ПередНачаломРаботыСистемы ());
При начале работы системы
(обработчик ПриНачалеРаботыСистемы ()).
Обработчики этих событий имеют фиксированные имена.
Событие Перед началом работы системы - это первое событие в «жиз-
ни» приложения. Оно возникает еще до того, когда открыто основное
окно.
Это событие нужно для того, чтобы отказаться от запуска приложения,
если не выполнены какие-либо условия. Так как в момент обработки
этого события основное окно приложения еще не открыто, не следует
открывать формы, выдавать сообщения и выполнять другие действия,
требующие наличия основного окна.
Событие При начале работы системы - это второе событие в «жизни»
приложения. Оно возникает уже после того, как открыто основное
окно приложения, но до того, как пользователь сможет начать интерак-
тивную работу.
Это событие нужно для того, чтобы выполнить какие-либо подготови-
тельные действия. Например, открыть форму или показать сообщения,
предназначенные именно этому пользователю.
Когда пользователь заканчивает работу с приложением, также можно
обработать два события:
Перед завершением работы системы
(обработчик ПередЗавершениемРаботыСистемы ());
При завершении работы системы
(обработчик ПриЗавершенииРаботыСистемы ()).
Обработчики этих событий тоже имеют фиксированные имена.
Событие Перед завершением работы системы это предпоследнее
событие в «жизни» приложения. Оно возникает перед тем, как будет
закрыто основное окно приложения.
Это событие нужно, чтобы отказаться от закрытия приложения, если не
выполнены какие-то условия. Например, если пользователь случайно
нажал кнопку закрытия основного окна.
Событие При завершении работы системы - это последнее событие
в «жизни» приложения. Оно возникает уже после того, как закрыто
основное окно приложения, и позволяет выполнить какие-либо дейс-
твия, которые обязательно должны быть выполнены в случае закрытия
приложения.
Так как в момент обработки этого события основное окно прило-
жения уже закрыто, не следует открывать формы, выдавать сообщения
и выполнять другие действия, требующие наличия основного окна.
Еще одно событие, которое можно обработать в модуле управляемого
приложения, - это событие Обработка внешнего события. Процедура,
обрабатывающая это событие, должна иметь фиксированное имя -
ОбработкаВнешнегоСобытия().
Это событие возникает в тот момент, когда приложение получает спе-
циальное сообщение от внешнего компонента. Причем это сообщение
от внешнего компонента сначала обрабатывается всеми открытыми
управляемыми формами, имеющими обработчики события Внешнее
событие, а затем уже выполняется обработчик ОбработкаВнешне-
гоСобытия (), расположенный в модуле управляемого приложения.
Контекст модуля управляемого приложения образуется (рис. 239):
свойствами и методами глобального контекста, которые доступны
в управляемых клиентах;
экспортными процедурами и функциями глобальных общих
модулей, если эти модули компилируются в управляемых
клиентах;
неглобальными общими модулями, если эти модули компилиру-
ются в управляемых клиентах; доступны экспортные процедуры
и функции таких модулей;
неглобальными общими модулями, если эти модули компили-
руются на сервере и у них установлено свойство Вызов сервера;
доступны экспортные процедуры и функции таких модулей;
локальным контекстом самого модуля управляемого приложения.
Обычный клиент
Рис. 239. Контекст модуля управляемого приложения
| Управляемый клиент
Сервер
В модуле управляемого приложения можно объявлять переменные
и описывать процедуры и функции с ключевым словом Экспорт.
Они будут доступны (рис. 240):
в неглобальных общих модулях, которые компилируются в управ-
ляемых клиентах;
в клиентских процедурах/функциях модулей управляемых форм;
в клиентских процедурах/функциях команд.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика
Глава 4.2.3.1 Встроенный язык - Формат исходных текстов программных
модулей Виды программных модулей Модуль управляемого
приложения.
Глава 5.2 Объекты конфигурации - Модуль управляемого приложения.
Рис. 240. Видимость модуля управляемого приложения
Модуль обычного приложения
Модуль обычного приложения в версии 8.2 - это прежний модуль
приложения, существовавший в версии 8.1. Так как теперь прило-
жений может быть два (обычное и управляемое), он переименован
для того, чтобы не возникало путаницы.
Открыть модуль обычного приложения можно теми же способами, что
и в версии 8.1.
Однако команды для открытия модуля обычного приложения
вы увидите не всегда. А только в том случае, если конфигуратор
настроен на разработку как обычного, так и управляемого приложения
(Сервис - Параметры - Общие - Управляемое приложение и обычное
приложение).
Если конфигуратор настроен на разработку только управляемого
приложения, все команды открытия модуля обычного приложения
скрываются.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика, Глава 26.2.1
Сервисные возможности - Настройка параметров конфигуратора - Общие.
Модуль команды
В версий 8.2 появились новые объекты конфигурации команды,
и у каждой из них есть собственный модуль - модуль команды. В этом
разделе мы только кратко рассмотрим сам модуль команды.
Модуль команды предназначен для того, чтобы описать в нем на встро-
енном языке те действия, которые должна выполнить система при
вызове этой команды.
При добавлении новой команды в дерево конфигурации платформа
автоматически открывает модуль этой команды для редактирования.
Открыть модуль уже существующей команды можно тремя способами.
Во-первых, дважды щелкнув на команде мышью.
Во-вторых, из контекстного меню команды в дереве конфигурации
(рис. 241).
Рис. 241. Переход к модулю команды из контекстного меню дерева
объектов конфигурации
В-третьих, из палитры свойств, когда в ней открыты свойства команды
(рис. 242).
Рис. 242. Переход к модулю команды из палитры свойств
Модуль команды может содержать только описание процедур и фун-
кций. Объявление переменных и тело модуля не поддерживаются.
Модуль команды существует и на клиенте, и на сервере, поэтому в нем
можно использовать три директивы компиляции:
&НаКлиенте - процедура/функция исполняется в управляемом
клиенте;
ЬНаСервере - процедура/функция исполняется на сервере;
&НаКлиентеНаСервере - процедура/функция может испол-
няться и в управляемом клиенте, и на сервере.
Другие директивы компиляции использовать нельзя.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 4.8 Встроенный язык - Особенности режимов запуска системы.
Из клиентских процедур/функций можно вызывать серверные проце-
дуры. После их выполнения управление возвращается на клиента.
Из серверных процедур/функций вызвать клиентские процедуры
нельзя.
Процедура ОбработкаКоманды () (обработчик выполнения ко-
манды) обязательно должна иметь директиву &НаКлиенте, т. к. именно
в ней начинается исполнение команды.
Если в модуле команды для какой-либо процедуры не указана дирек-
тива компиляции, то стандартным поведением системы будет испол-
нение такой процедуры на сервере. Поэтому директиву &НаСервере
можно указывать, а можно и не указывать. Это лишь вопрос читае-
мости кода.
При написании кода нужно стремиться к сокращению количества сер-
верных вызовов, когда из процедуры с директивой &НаКлиенте вызы-
вается процедура с директивой &НаСервере.
Директива &НаКлиентеНаСервере имеет ограниченное специфи-
ческое применение. Ее можно использовать в тех случаях, когда нужно
описать процедуру, которая в зависимости от алгоритма может вызы-
ваться как из серверной, так и из клиентской процедуры. При этом она
будет исполняться в том контексте, который ее вызвал, без передачи
исполнения на сервер. Если вызвали с сервера, исполнится на сервере;
если вызвали с клиента, исполнится на клиенте.
Модуль команды предназначен для того, чтобы обработать единс-
твенное событие Обработка команды, которое возникает тогда, когда
пользователь интерактивно выполняет эту команду. Обработчик этого
события имеет фиксированное имя - ОбработкаКоманды, и система
автоматически вставляет объявление процедуры ОбработкаКо-
манды () в модуль при создании новой команды.
Контекст клиентских процедур модуля команды образуется (рис. 243):
свойствами и методами глобального контекста, которые доступны
в управляемых клиентах;
экспортными переменными, процедурами и функциями модуля
управляемого приложения;
экспортными процедурами и функциями глобальных общих
модулей, если эти модули компилируются в управляемых
клиентах;
неглобальными общими модулями, если эти модули компилиру-
ются в управляемых клиентах; доступны экспортные процедуры
и функции таких модулей;
неглобальными общими модулями, если эти модули компили-
руются на сервере и у них установлено свойство Вызов сервера;
доступны экспортные процедуры и функции таких модулей;
локальным контекстом самого модуля команды.
Рис. 243. Контекст модуля команды
Контекст серверных процедур модуля команды образуется (рис. 245):
свойствами и методами глобального контекста;
экспортными процедурами и функциями глобальных общих
модулей, если эти модули компилируются на сервере;
неглобальными общими модулями, если эти модули компили-
руются на сервере; доступны экспортные процедуры и функции
таких модулей;
серверными процедурами/функциями модуля команды.
В модуле команды можно описывать процедуры и функции с ключевым
словом Экспорт. Однако как-либо использовать их за пределами этого
модуля нельзя. Из встроенного языка невозможно получить доступ
к командам и, следовательно, к их контексту тоже.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика.
Глава 4.2.3.8 Встроенный язык - Формат исходных текстов программных
модулей - Виды программных модулей - Модули команд.
Модуль управляемой формы
Модуль управляемой формы - это аналог модуля формы для обычных
форм, то есть для форм, унаследованных от версии 8.1. Назначение
модуля управляемой формы аналогичное: в нем располагается програм-
мный код, обрабатывающий различные события, связанные с жизнеде-
ятельностью управляемой формы. Здесь мы лишь кратко рассмотрим
основные особенности модуля.
Открыть модуль управляемой формы можно теми же способами, что
и модуль обычной формы, - сначала открыть редактор этой формы,
а затем перейти на закладку Модуль (рис. 244).
Система умеет отличать управляемые формы от обычных и для управ-
ляемых форм вызывает редактор управляемой формы.
Модуль управляемой формы может содержать описание переменных,
процедур и функций, а также тело модуля.
Управляемая форма существует одновременно и на сервере, и в управ-
ляемых клиентах. Поэтому для процедур, описанных в ее модуле,
нужно обязательно в явном виде указывать директивы компиляции.
Таких директив может быть четыре:
&НаКлиенте - процедура/функция исполняется в управляемом
клиенте;'
&НаСервере - процедура/функция исполняется на сервере;
&НаСервереБезКонтекста - процедура/функцйя исполняется
на сервере, при этом контекст формы недоступен;
&НаКлиентеНаСервереБезКонтекста - процедура/функцйя
может исполняться в управляемом клиенте или на сервере, при
этом контекст формы недоступен.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 4.8 Встроенный язык - Особенности режимов запуска системы.
Рис. 244. Переход к модулю управляемой формы в редакторе формы
Из клиентских процедур/функций можно вызывать серверные, после
их выполнения управление возвращается на клиента.
Из серверных процедур/функций вызвать клиентские процедуры
нельзя.
ТТГГ
При написании кода форм нужно стремиться к оптимизации клиент-
серверного взаимодействия, исходя из следующих приоритетов:
основная масса кода должна содержаться в серверных проце-
дурах (&НаСервереБезКонтекста, &НаСервере). Клиент-
ские процедуры (&НаКлиенте) должны содержать минимальное
количество кода;
нужно уменьшать количество серверных вызовов, то есть ситу-
аций, когда из процедуры &НаКлиенте вызывается процедура
&НаСервере (или &НаСервереБезКонтекста). Идеальная
ситуация - серверных вызовов нет совсем, или он один;
нужно уменьшать количество контекстных серверных вызовов.
&НаСервереБезКонтекста это лучше и быстрее, чем
&НаСервере;
директива &НаКлиентеНаСервереБезКонтекста использу-
ется в особенных случаях, когда необходимо обеспечить возмож-
ность вызова этой процедуры как со стороны клиента, так и со сто-
роны сервера. Например, в ней описан алгоритм пересчета строк
табличной части документа, который нужно выполнять как при
создании формы на сервере, так и в процессе жизни формы на кли-
енте. Использование этой директивы позволяет избежать дублиро-
вания программного кода и лишних вызовов сервера.
Контекст клиентских процедур/функций модуля управляемой формы
образуется (рис. 245):
свойствами и методами глобального контекста, которые доступны
в управляемых клиентах;
экспортными переменными, процедурами и функциями модуля
управляемого приложения;
экспортными процедурами и функциями глобальных общих
модулей, если эти модули компилируются в управляемых кли-
ентах;
неглобальными общими модулями, если эти модули компилиру-
ются в управляемых клиентах; доступны экспортные процедуры
и функции таких модулей;
неглобальными общими модулями, если эти модули компили-
руются на сервере и у них установлено свойство Вызов сервера;
доступны экспортные процедуры и функции таких модулей;
2э* 1 С:Г1редприятие 8.2. Коротко о главном. Новые возлложности версии 8.2
---------------------------——--------------------------------
свойствами и методами расширения формы, определяемого
основным реквизитом формы (кроме неконтекстных процедур/
функций); параметры, поставляемые расширением, включаются в
коллекцию параметров управляемой формы;
свойствами и методами объекта встроенного языка Управляе-
маяФорма (кроме неконтекстных процедур/функций);
реквизитами формы, которой принадлежит модуль (кроме некон-
текстных процедур/функций);
локальным контекстом самого модуля управляемой формы, ском-
пилированным в управляемых клиентах.
Рис. 245. Контекст модуля управляемой формы
Контекст серверных процедур модуля управляемой формы образуется
(рис. 245):
свойствами и методами глобального контекста;
экспортными процедурами и функциями глобальных общих
модулей, если эти модули компилируются на сервере;
негпобальными общими модулями, если эти модули компили-
руются на сервере; доступны экспортные процедуры и функции
таких модулей;
свойствами и методами расширения формы, определяемого
основным реквизитом формы (кроме неконтекстных процедур/
функций); параметры, поставляемые расширением, включаются в
коллекцию параметров управляемой формы;
свойствами и методами объекта встроенного языка Управляе-
маяФорма (кроме неконтекстных процедур/функций);
реквизитами формы, которой принадлежит модуль (кроме некон-
текстных процедур/функций);
серверными процедурами/функциями самого модуля управляемой
формы, а также переменными и телом модуля, скомпилирован-
ными на сервере.
Здесь важно отметить, что по сравнению со старыми (обычными) фор-
мами в контексте управляемой формы недоступны свойства и методы
объекта, являющегося основным реквизитом формы. Получить к ним
доступ можно только в серверных процедурах модуля формы, преобра-
зовав данные формы в объект.
Например, пусть в модуле объекта справочника определена экспортная
процедура ПересчитатьДанные () (листинг 7).
Листинг 7. Процедура ПересчитатьДанные()
Процедура Пере чита ьДанные О Эк порт
КонецПроцедуры
Тогда в модуле управляемой формы элемента этого справочника, в сер-
верной контекстной процедуре, можно преобразовать данные формы
в объект справочника (ДанныеФормыВЗначение ()) и выполнить
метод ПересчитатьДанные () этого объекта. А после этого снова
преобразовать объект справочника в данные формы (ЗначениеВДан-
ныеФормы ()) (листинг 8).
Листинг 8. Процедура ПолучитьНовыеДанные()
&На ёрвере
Процедура ПолучитьНовыеДанные()
ОбъектСправочника « ДанныеФормыВЗначение(Объект*
Тип("СправочникОбъект.Товары"));
ОбъектСправочника.ПересчитатьДанные();
ЗначаниеВДанныеФорыы(ОбъектСправочника, Объект);
КонецПроцедуры
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В форме
документа РасходТовара на примере команды Пересчитать демонст-
рируется преобразование данных формы в прикладной объект
и обратно.
В модуле формы можно объявлять переменные и описывать проце-
дуры и функции с ключевым словом Экспорт. Они будут доступны
в качестве свойств и методов программного объекта Управляе-
маяФорма.
Реквизиты, добавляемые в форму, также будут доступны как свойства
программного объекта УправляемаяФорма.
Экспортные переменные, процедуры/функции модуля управляемой
формы и реквизиты управляемой формы являются ее «программным
интерфейсом», через который должно осуществляться взаимодействие
с уже открытой формой.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика, Глава
4.2.3.7 Встроенный язык Формат исходных текстов программных
модулей - Виды программных модулей - Модули форм.
Модуль менеджера объекта
В составе конфигурации появились новые модули - модули менед-
жеров объектов. Например, модуль менеджера справочника или
модуль менеджера регистра сведений. У констант этот модуль называ-
ется модуль менеджера значения.
Сами программные объекты - менеджеры прикладных объектов -
существовали и в прошлой версии. Например, СправочникМе-
неджер. Товары или РегистрСведенийМенеджер. КурсыВалют.
Они позволяли управлять этими объектами как объектами конфигу-
рации. С помощью менеджера можно создавать объекты, работать
с формами и макетами. Но модулей у них не было.
Модуль менеджера позволяет расширить функциональность этих про-
граммных объектов за счет написания процедур и функций на встро-
енном языке. Фактически это дает возможность описать методы для
объекта конфигурации (например, справочника), которые относятся
не к конкретному экземпляру объекта базы данных, а к самому объекту
конфигурации.
Открыть модуль менеджера можно тремя разными способами.
Во-первых, в дереве конфигурации из контекстного меню объекта
конфигурации (рис. 246).
Конфигуратор Демон» грационная конфигурация ' Управляемое приложен
файл Правка Конфигурация Отладка Администрирование Сервис Окна Сг®авка
* И ч
s да на 6
Валют
Регио»
Виды ]
Рас»»
Ф ПВ
5 И
»га
£- га
*>га
Открыть основною Форму объекта
Открыть
Конструкторы
Добавить
F2
F9
Del
Скопировать
Удалить
Ctrt+Shit*Up
Dft+SWt+Down
Переместить вверн
Переместить вниз
Сортировать.
Открыть основную Форму группы
Открыть основное Форму списка
Открыть основную Форму для выбора
Открыть основную Форму для выбора грунты
Действия*
W ДемонстрационнаяКонфигурац,
» *« Обшив
•I?Константы
ffl СправочФжи
й га
_ эд Открыть модуль объекта
t [ц] Конт
• ffl Банки
€ ПИ Расч-т
Ь I Хоан-в
S> И Настр-
1113 Храни
£' И Орга-в
» 1й] Документ
й 0 Журнагы
ft {.} Перечней £
(• ЙЙЛпмгои jf
Открыгъмоц^ь^ «
&
Стандартные реквизиты
Справочная информация
Поиск ссылок на объект
Поиск ссылок в объекта
О
Дополнительно
Alt+Shft+Ertei
Свойства
AX+Enta
Рис. 246. Переход к модулю менеджера из контекстного
меню дерева объектов конфигурации
Во-вторых, из окна редактирования объекта конфигураций, на закладке
Прочее (рис. 247).
Рис. 247.
Переход к модулю
менеджера из окна
редактирования
объекта
конфигурации
В-третьих, из палитры свойств, когда в ней открыты свойства объекта
конфигурации (рис. 248).
Модуль менеджера может содержать только описание процедур и фун-
кций. Объявление переменных и тело модуля не поддерживаются.
Модуль менеджера исполняется только на сервере. В нем нельзя
использовать директивы компиляции (&НаКлиенте, &НаСервере
и другие).
ПОДРОБНЕЕ
Документация 1С:Предприятме 8.2. Руководство разработчика, Глава 4.8
Встроенный язык - Особенности режимов запуска системы.
В этом модуле можно обработать одно-единственное событие - Обра-
ботка получения данных выбора. Это событие возникает в управляемом
приложении перед стандартным формированием списка при вводе
по строке, автоподборе текста и быстром выборе. Обработчик этого
события имеет фиксированное имя - ОбработкаПолученияДан-
ныхВыбора().
Рис. 248. Переход к модулю менеджера из палитры свойств
Модули менеджеров можно использовать и в режиме обычного прило-
жения, и в режиме управляемого приложения.
Контекст модуля менеджера образуется (рис. 249):
свойствами и методами глобального контекста;
экспортными процедурами и функциями глобальных общих
модулей, если эти модули компилируются на сервере;
неглобальными общими модулями, если эти модули компилиру-
ются на сервере; доступны экспортные процедуры/функции таких
модулей;
локальным контекстом самого модуля менеджера.
В модуле менеджера можно описывать процедуры и функции с клю-
чевым словом Экспорт. Они будут доступны как свойства и методы
программного объекта менеджера.
Сервер
ГЛобшъньЛ контекст
Управляемый клиент
МОДУ!»
объекта
Обычный клиент
Об«Н<
Модуль обьмюй фор*й
I
Модуль
Модуль
управляемой
формы
Модуль команды
Рис. 249. Контекст модуля менеджера
Например, в модуле менеджера справочника Контрагенты может быть
описана экспортная функция ПолучитьСписокДебиторов () (лис-
тинг 9).
Листинг 9. Функция ПолучитьСписокДебиторов()
<• «и-ирга- :
'-.мн ВоЛИЙМСписокДебиторов()
• -e-ia/H'-i
Тогда в тексте программы можно обратиться к этой функции следу-
ющим образом (листинг 10).
Листинг 10. Вызов функции ПолучитьСписокДебиторов()
В Т лиге П< ~ сыЛМЬх
'.<=биторы -правочн-.'ги Ком г₽нты.П< ',-х>»тьСК»- ч>кДебиторг!в ().
* ...... .... .- ('..«.lrf. >' !.> .'ll "IF 1 « в^>м>«.?»АЗД^1«лда Ч1«Л1ВД^ЧРВМ<»Я<!»ВВЯ11
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика, Глава
4.2.3.6 Встроенный язык - Формат исходных текстов программных
модулей - Виды программных модулей - Модули менеджеров объектов.
Общие модули
Общие модули существовали и в прежней версии 1С:Предприятия.
Однако в версии 8.2 у них появился ряд новых свойств. Поэтому мы
скажем о них здесь вместе с рассказом о новых модулях.
Во-первых, у общих модулей появилось новое свойство Клиент (управ-
ляемое приложение). По аналогии с другими контекстными свойствами
оно означает, что этот общий модуль будет скомпилирован в управля-
емых клиентах, то есть в тонком клиенте, в веб-клиенте и в толстом
клиенте в режиме управляемого приложения (рис. 250).
Прежнее свойство Клиент переименовали в Клиент (обычное прило-
жение). Однако это свойство вы увидите не всегда. А только в том случае,
если конфигуратор настроен на разработку как обычного, так и управ-
ляемого приложения (Сервис - Параметры - Общие - Управляемое при-
ложение и обычное приложение). Если конфигуратор настроен на раз-
работку только управляемого приложения, свойство Клиент (обычное
приложение) скрывается.
Следующее важное свойство, которое появилось Вызов сервера
(рис. 251).
Его вы тоже увидите не всегда, а только у серверных модулей, то есть
тех, у которых установлено свойство Сервер.
Стандартно с клиента невозможно вызвать экспортную процедуру/
функцию серверного модуля. Это можно сделать только с сервера.
Для того чтобы это стало возможным, нужно в явном виде указать,
что из этого серверного модуля клиент будет вызывать экспортные
процедуры/функпии. Для этого как раз и используется свойство Вызов
сервера.
С появлением этого свойства связана одна практическая особенность.
В прежней версии платформы не приходилось об этом задумываться -
вы просто создавали серверный общий модуль, писали в нем экспор-
тную процедуру и вызывали ее из клиентского модуля.
Рис. 250. Свойства общих модулей в версиях 8.1 и 8.2
Рис. 251. Свойство «Вызов сервера»
Теперь так не получится. При добавлении нового общего модуля
система устанавливает ему флажок Сервер, а флажок Вызов сервера -
не устанавливает. Если вы планируете вызывать процедуры/функции
этого модуля с клиента, флажок Вызов сервера нужно установить само-
стоятельно.
Поэтому если вдруг вы в общем модуле написали экспортную про-
цедуру и не можете ее вызвать (платформа говорит, что переменная
с именем общего модуля не определена), то это означает, что у этого
неглобального серверного общего модуля не установлен флажок Вызов
сервера (листинг 11).
Листинг 11. Сообщение об ошибке
Переменная не определена (ООщийМодуль!)
<?»0бщийМодуль1-Процедура! (); (Проверка; Тонкий клиент)
Клиент (управляемое приложение)
И последнее интересное свойство, которое появилось у общих моду-
лей, - Повторное использование возвращаемых значений (рис. 252).
Это свойство есть у всех общих модулей,
Рис. 252.
Свойство «Повторное
использование
возвращаемых
значений»
но доступно оно только
у негпобальных общих модулей. Стандартно оно имеет значение
Не использовать. Но его можно заменить на одно из двух других зна-
чений: На время вызова или На время сеанса.
Подробнее об этом свойстве можно прочитать в документации. Здесь
мы только объясним назначение этого свойства и дадим некоторые
рекомендации по его использованию.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика,
Глава 5.5.2.2 Объекты конфигурации - Ветвь конфигурации «Общие» -
Общие модули - Повторное использование возвращаемых значений.
Работая с этим свойством, важно понимать две вещи.
Во-первых, оно влияет только на то, как будут выполняться экспортные
функции (не процедуры!) в этом модуле.
Во-вторых, назначение этого свойства только в том, чтобы ускорить
выполнение таких функций. Для других целей оно не предназначено.
Рассмотрим простой пример. Допустим, в общем неглобальном модуле
определена функция СложныйРасчет () (листинг 12).
Листинг 12. Функция СложныйРасчет()
(уикииа виий?» чечЧЛ. Е
Резгужьтат • » * 5,-
> wui*»-«un
Если у модуля не установлено свойство Повторное использование воз-
вращаемых значений, то при вызове этой функции все будет происхо-
дить как обычно: будет выполнено сложение А плюс Б и возвращен
результат.
Если у модуля установлено это свойство, то при первом вызове функ-
ции тоже все будет как обычно. Например Итог = СложныйРас-
чет (1, 2). Но при этом система запомнит значения переданных пара-
метров (1 и 2) и результат, который она вернула (3).
А вот следующие вызовы этой функции будут происходить так: если
функция вызывается с теми же значениями параметров, что и в первый
раз, Итог = СложныйРасчет(1, 2), то тело функции выполняться
не будет, сразу будет возвращен результат, запомненный ранее (3).
Но если функция вызывается с другими значениями параметров, то
они также запоминаются, тело функции выполняется, новый результат
возвращается и одновременно тоже запоминается для дальнейшего
использования.
Таким образом, полученные и возвращенные значения сохраняются.
Понятно, что объем и длительность их хранения не безграничны.
Существуют правила, по которым система удаляет сохраненные зна-
чения, эти правила перечислены в документации.
Как и когда использовать эту возможность?
Прежде всего, нужно понимать, что этот механизм не предназначен
для гарантированного хранения каких-то результатов вычислений.
Это всего лишь механизм кеширования, позволяющий ускорить работу
экспортных функций модуля.
Использование этого механизма для клиентских и для серверных
модулей имеет разную специфику.
Если вычисления производятся на сервере, то основным «тормозом»,
как правило, являются частые обращения ж базе данных. Использо-
вание этой функции позволяет уменьшить количество таких обращений.
Но кешировать все подряд - нехорошо.
Например, при проведении документа проверяются остатки. Если
кешировать «все подряд», то, проверив остатки товара в первый раз,
при последующих проведениях других документов вы можете полу-
чить не реальные остатки из базы данных, а остатки, «запомненные»
в первый раз.
Поэтому на сервере можно смело кешировать вычисления, не свя-
занные с транзакциями. Например, получение правил, по которым
должен выполняться обмен данными для того или иного объекта кон-
фигурации.
Вычисления, связанные с транзакциями, нужно кешировать осто-
рожно, только на время выполнения самой транзакции. А вот кеширо-
вание данных на время выполнения нескольких транзакций может при-
вести к получению неактуальных данных.
Бывают ситуации, когда разработчик точно знает, что данные, на основе
которых производятся вычисления, изменены в базе данных. Например,
когда пользователь интерактивно записывает что-то. Для таких случаев
существует метод глобального контекста ОбновитьПовторноИс-
пользуемыеЗначения () . Он удаляет все повторно используемые
значения, и в результате следующий вызов функции будет выполняться
полностью.
При кешировании клиентских общих модулей ситуация проще, на кли-
енте непосредственное обращение к базе данных невозможно. Но и тут
следует соблюдать умеренность и не кешировать все подряд «на всякий
случай».
Ведь не зря система стандартно не устанавливает это свойство у всех
модулей. Потому что на кеширование тратятся ресурсы системы и при
неумеренном его использовании можно получить обратный результат -
замедление работы системы вместо ускорения.
Поэтому на клиенте имеет смысл кешировать только те вычисления,
для которых оптимизация действительно может иметь смысл.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 5.5.2 Объекты конфигурации - Ветвь конфигурации «Общие» -
Общие модули.
Новые права
В версии 8.2 появились новые права. Поскольку теперь в системе
1С:Предприятие есть три различных клиентских приложения, для каж-
дого из них существует отдельное право на запуск приложения в этом
клиенте: Тонкий клиент, Веб-клиент и Толстый клиент. Эти права опре-
делены для корня конфигурации (рис. 253).
Рис. 253. Права на запуск клиентских приложений
Таким образом, если часть функциональности прикладного решения
(например, складские операции) переработана под управляемое прило-
жение, то для роли Кладовщик можно разрешить работу только в веб-
клиенте. В то время как другие пользователи по-прежнему будут про-
должать работать в толстом клиенте (для них запуск управляемых кли-
ентов можно запретить).
Также появились права у старых объектов конфигурации, у которых
раньше прав не было.
Право Просмотр появилось у подсистем и у общих форм (рис. 254).
Рис. 254. Право «Просмотр» у общей формы
Раньше эти объекты конфигурации не отображались в интерфейсе.
Поэтому работа с ними никак не регулировалась правами. Теперь же
эти объекты конфигурации могут быть отображены в интерфейсе стан-
дартными средствами системы. Поэтому появились права на просмотр
этих объектов.
Права на реквизиты объектов
конфигурации
В версии 8.1 права можно было устанавливать только на сами объекты
конфигурации - справочники, документы и т.д.
В версии 8.2 появилась возможность устанавливать права еще и на рек-
визиты объектов конфигурации, табличные части, стандартные рекви-
зиты и команды (рис. 255).
Роль Роль1 Права
$иь Обшие
|>г Константы
Й~Л Справочники
ttl Контрагенты
- ft ТъпЩен
ГП Прказы
-Г1 ЕдинщыИзмерения
ft Валюты
Распоряжвт*я
'-ft Сотрудники
Документы
fflj Журналы документов
Отчеты
Обработки
Планы видов характеристик
Отманив. Праве на чтение
(Чгеии}
Рис. 255. Права на реквизиты объекта конфигурации
Для реквизитов доступны права Просмотр и Редактирование,
для команд - право Просмотр.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В конфи-
гурации создана роль Продавец. Ей назначены только права, необхо-
димые для ввода и проведения документа РасходТовара, а также для
просмотра справочников. Доступ ко всем недоступным объектам авто-
матически исключается системой из командного интерфейса.
Для реквизита ОбоснованиеОтгрузки документа РасходТовара установ-
лено только право на просмотр, поэтому в форме этот реквизит недо-
ступен для редактирования.
Показатели производительности
При разработке управляемого приложения нужно стремиться к сокра-
щению количества вызовов сервера и к сокращению объема данных,
передаваемых между клиентом и сервером.
Глядя на исполняемый код, довольно сложно определить, сколько раз
будет вызван сервер при тех или иных действиях пользователя. Алго-
ритм может быть сложным и разветвленным. Оценить же на глаз объем
передаваемых данных еще труднее.
Поэтому в версии 8.2 разработан специальный механизм отображения
показателей производительности, который значительно облегчает
задачу оптимизации разрабатываемого приложения.
В режиме 1С:Предприятие он в реальном времени показывает разра-
ботчику информацию о количестве и длительности вызовов сервера,
а также объем принятых и переданных данных (рис. 256).
Рис. 256.
Показатели производительности
Показатели производительности отображаются в тонком клиенте,
в веб-клиенте и в толстом клиенте в режиме управляемого прило-
жения.
Отображаются как текущие вызовы, так и накопленные вызовы.
Текущие вызовы - это вызовы с момента последнего действия поль-
зователя. Накопленные вызовы - это вызовы с момента запуска или
с момента обнуления накопленных показателей.
Стандартно показатели производительности не отображаются при
обычном запуске клиентского приложения. Однако если запускать
отладочный сеанс из конфигуратора, то показатели будут отображены.
Причем стандартно будет показано только количество вызовов (накоп-
ленное и текущее), а само окно показателей производительности будет
плавно исчезать через 10 секунд (если курсор мыши не расположен над
этим окном), рис. 257.
Рис. 257.
Плавное закрытие
окна показателей
производительности
При выполнении каких-либо действий, приводящих к вызову сервера,
окно показателей производительности будет снова показано автомати-
чески.
Если же нужно просто еще раз открыть это окно, можно нажать
кнопку Показатели производительности в информационной панели
(рис. 258).
Рис. 258. Кнопка «Показатели производительности»
Отображение показателей производительности можно настраивать как
для сеанса, запускаемого из конфигуратора, так и в режиме 1 (^Пред-
приятие, когда сеанс уже запущен (не важно, каким способом).
В конфигураторе отображение показателей производительности наст-
раивается в параметрах: Сервис - Параметры - Запуск 1С: Предприятия -
Дополнительные - Отображать показатели производительности
(рис. 259).
Рис. 259. Настройка отображения показателей производительности
в режиме Конфигуратор
В режиме 1С:Предприятие отображение показателей производитель-
ности настраивается также в параметрах: Главное меню - Сервис -
Параметры - Отображать показатели производительности (рис. 260).
Рис. 260. Настройка отображения показателей производительности
в режиме 1С:Предприятие
Отображение показателей производительности также можно включить
указанием параметра запуска в командной строке. Для этого использу-
ется параметр /DisplayPerformance.
ПОДРОБНЕЕ
О параметрах командной строки - встроенная справка в режиме Кон-
фигуратор: Справка - Содержание справки - Запуск 1С:Предприятия 8
и параметры запуска - Общие параметры запуска.
Как-формируется командная строка, можно посмотреть в разделе
Режим низкой скорости соединения, см. стр. 43.
Состав информации в окне показателей производительности тоже
можно настроить с помощью контекстного меню правой кнопки мыши
(рис. 261).
О Объем иттравлюмл
П Объем п>*вгтъ«да*ьв
Рис. 261. Настройка показателей производительности
ПОДРОБНЕЕ
Документация 1С Предприятие 8.2. Руководство разработчика,
Глава 22.4 Отладка прикладных решений - Отображение вызовов
сервера.
Имитация задержек при вызове сервера
Если в 1С:Предприятии 8.2 используются тонкий или веб-клиент, то
подключение к информационной базе можно выполнять по протоколу
HTTP, через Интернет.
ПОДРОБНЕЕ
Раздел Три клиентских приложения, см. стр. 38.
При этом могут использоваться любые доступные каналы связи,
начиная с выделенной линии и кончая мобильным подключением.
Понятно, что на быстрых каналах связи прикладное решение будет
работать быстро, а на медленных - медленно. Насколько медленно,
можно понять только в реальных условиях эксплуатации.
Однако еще на этапе разработки полезно иметь качественные оценки
скорости работы, так как это может влиять на алгоритмы, реализуемые
в прикладном решении.
Режим имитации задержек при вызове сервера как раз позволяет раз-
работчику увидеть реальную скорость работы его прикладного решения
у клиента. При этом не требуется каких-то специальных подключений
к сети Интернет. Достаточно включить этот режим, и платформа (даже
в файловом варианте на локальном компьютере) начнет работать с теми
задержками, с которыми работает реальный канал связи.
Сразу хочется заметить, что этот режим не следует путать с режимом
низкой скорости соединения.
ПОДРОБНЕЕ
Раздел Режим низкой скорости соединения, см. стр. 43.
Режим низкой скорости соединения - это способ, по которому рабо-
тает клиентское приложение. Способ, позволяющий на медленных
каналах связи работать как можно быстрее. Он задается один раз при
старте клиентского приложения и не может быть изменен в процессе
его работы. По большому счету это инструмент пользователя.
Имитация задержек при вызове сервера - это инструмент разработ-
чика. Он позволяет превратить хороший канал между клиентом и сер-
вером в плохой. Это можно сделать как при запуске клиентского прило-
жения, так и в процессе его работы. При этом режим, в котором было
запущено клиентское приложение, не изменится.
Механизм имитации задержек при вызове сервера работает в тонком
клиенте и в толстом клиенте в режиме управляемого приложения.
В веб-клиенте он не работает.
Режим имитации задержек при вызове сервера можно задать в пара-
метрах конфигуратора, чтобы сеанс, запускаемый из конфигуратора,
сразу же работал «в плохих условиях».
Для этого используется команда Сервис - Параметры - Запуск 1С: Пред-
приятия - Основные - Имитировать задержку при вызовах сервера
(рис. 262).
Рис. 262. Включение режима имитации задержек в режиме Конфигуратор
Сеанс, работающий в этом режиме, будет иметь специальную пометку -
значок «ручного тормоза» в информационной панели (рис. 263).
Рис. 263. Индикатор включения режима имитации задержек
Режим имитации задержек при вызове сервера можно включить
и выключить в процессе работы клиентского приложения. Для этого
используется команда Главное меню - Сервис - Параметры - Имитиро-
вать задержку при вызовах сервера (рис. 264).
Режим имитации задержек при вызове сервера также можно включить
указанием параметра запуска в командной строке. Для этого использу-
ется параметр /SimulateServerCallDelay.
ПОДРОБНЕЕ
Встроенная справка в режиме Конфигуратор: Справка - Содержание
справки - Запуск 1С: Предприятия 8 и параметры запуска - Общие
параметры запуска.
Как формируется командная строка, можно посмотреть в разделе
Режим низкой скорости соединения, см. стр. 43.
Справка ► ф
пвивте>иивв^и’и’и“Я
Л;
Добавить в избратое
История,
ChM)
Qfl+Shift+h
Калькулятор
(W2
Калет арь
Сообщения
CUl+Shft+Z
Все действия* &
Текуни^е взаимор..
Все действия *
Настройка интерфейса
^ 1404 200814.1214 000000015
16.04.20061048:32 000000009
• «ль
! 1 -Обувь’
। «iiflli "Обувь"
газин "Продукты"
Склад
Большой
Магый
Средний
Контра* Вал Нашло
J 18042008
18.04.2008
^25.042008
28.042008
J 15.01 2009
4 02022008
* 05.022009
4 23.022009
_J 11.03.2009
MaraSgi "Продукты" Средний
Имитировать задержку при вызовах сервера
Задержка при вызове (с.):
Задержка при передаче данньк |с./Кбайт)
Задержка грн получении данных (с./Кбайт)
1.45
С.45
С.15
Корнет
Магази
Магази
Рубли 768^
Рубли
Рубли
шют
Все действия
Kyj*i
62
L. °L. 1
Справка
Рис. 264. Включение режима имитации задержек
в режиме 1 (^Предприятие
При включении режима имитации задержек при вызове сервера плат-
форма устанавливает стандартные задержки, специально подобранные
для имитации мобильного интернет-соединения (через GPRS):
задержка при вызове - 1,45 с;
задержка при передаче данных - 0,45 с;
задержка при получении данных - 0,15 с.
При необходимости разработчик может задать собственные значения
этих задержек.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 22.3 Отладка прикладных решений - Механизм имитации задержек
при вызове сервера.
Конструктор запроса с обработкой
результата
В версии 8.1 в конфигураторе существовал конструктор выходной
формы. Он позволял создавать различные выходные формы для пред-
ставления данных, хранящихся в объектах конфигурации. Для этого
использовались возможности построителя отчетов.
По сути, такие выходные формы представляли собой специализиро-
ванные отчеты, привязанные к объектам конфигурации. Конструктор мог
вставлять кнопки вызова этих выходных форм в существующие формы
объектов. Например, в форму списка или форму объекта (рис. 265).
Конфигуратор Конфигурация
№
Конфигурация
Общие
-Г Константы
е-Д Справочники
Открыть модуль объекта
(Гк Открыть предопределенные данные
Ё wJ Декуме*
Зйх^г
42 Перечий
ф- ’3? Отчеты
- Обрабо
М Планы 1
Открыть ооадвную Форму объекта
" гкрьть основную «горну гругпы
Открыть основную Форму списка
Открыть основную Форму для выбора
Планы •
Регистр
Л Регистр jf
- Регистр*^
Открыть основнуюдля выбора группы
Открыть
Добавить
Конструктор ввода на осне
) Kohctdvktoo пвиатм
Ль’”е
гл,3ал™
f
Изммиты
Скопировать
Хватить
й
»
&
[»
F2
F9
Солировать
Поле гните лычо
Свойства
Поиск ссылок I
Переместить в
Переместить -•
4
Начиная с версии 8.1, в системе появилось новое средство создания
отчетов - система компоновки данных. Она пришла на смену старому
построителю отчетов. В версии 8.2 она получила дальнейшее развитие,
в том числе в плане вызова и исполнения уже существующих отчетов
с передачей им параметров. Поэтому надобность в старом конструк-
торе выходной формы как инструменте для создания отчетов практи-
чески отпала.
В то же время конструктор выходной формы содержал удобные воз-
можности, не связанные с формированием отчетов.
Все эти возможности были собраны и в версии 8.2 реализованы
в составе конструктора запроса с обработкой результата.
Основное его назначение облегчить написание готового кода.
Например, получить не просто текст запроса, а уже готовый фрагмент
кода с циклами обхода результата запроса.
Также конструктор запроса с обработкой результата можно использо-
вать и для создания специализированных отчетов, в которых требуется
ручное изменение табличного документа.
Конструктор запроса с обработкой результата вызывается аналогично
обычному конструктору запроса из контекстного меню в редакторе тек-
стов и модулей (рис. 266).
В&резатъ ОгЬХ
Копировать
£3 Вставить CW+V
I Поиск в СиитакоПомоштвже Ctrf+FI
Шаблоны текста Ь
Выдоить все Ctrl+A
Повторить поиск
.«* Найти следующий F3 I
Найти предыдущий ShiftrfS
г Переход к строке. Dri+G
С Конструктор запроса.
Конструктор - - «с обработкой -jera .
Конструстор строк на разные языках.
Перейти к олиделетмо И7
* Точка останова F9
• Точка останова с условием ф Отключить точку останова Clri+Shift+F9 Убрать сеточки останова Рис. 266. Вызов конструктора запроса с обработкой результата
Если обычный конструктор запроса позволяет сформировать только
сам текст запроса (рис. 267), то конструктор запроса с обработкой
результата формирует готовый фрагмент кода (рис. 268).
"ВЫБРАТЬ
| Товары.Кол,
| Товары, Наименование
|ИЗ
| Справочник. Товары КАК Товары"
Рис. 267.
Результат работы конструктора запроса
//{ (КОНСТРУКГОР_ЗАИРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора внесенные вручную изменения будут утеряны1
Запрос Новый Запрос;
Запрос.Текст
"ВЫБРАТЬ
| Товары. Код,
| Товары. Наименование
|ИЭ
| Справочник-Товары КАК Товары":
Результат •= Запрос. Выполнить () ;
ВыборкаДстальныеЗаписи = Результат. Выбрать ();
Пока ВыборкаДстальные Записи. Следующий () Цикл
// Вставить обработку выборки ВыворкаДетальныеЗаписи
КонецЦикла;
//)}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Рис. 268. Результат работы конструктора запроса с обработкой результата
Также этот конструктор может вводить результаты в диаграмму
и в табличный документ (рис. 269).
При этом создается и сам макет табличного документа, и код, выво-
дящий в него данные (рис. 270).
// [ (КОНСТРУКТОР_ЗЛПРОСЛ_С_ОБРЛБОТКОИ_РЕЗУЛЬТАТЛ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора внесенные вручную изменения будут утеряны'11
Макет ° Справочники.Товары.ПолучитьМакет("Макет!”);
Запрос - Новый Запрос;
Запрос.Текст *=
"ВЫБРАТЬ
| Товары. Код,
| Товары.Наименование
|ИЭ
| Справочник.Товары КАК Товары";
Результат ” Запрос.Выполнить() ;
ОбластьЗаголовок “ Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал - Макет.ПолучитьОбласть("Подвал” 1 ;
ОбластьШапкаТаблицы “ Макет. Получить Область ("ШапкаТаб липы”] ;
Об л астьПод валТ аблипы Макет - Получить Область (” Под ваДТаб липы” 1 ;
ОбластьДетальных Записей Макет. По лучить Об л асть ("Детали”) ;
ТабДок. Счистить();
ТабДок.Вывести(ОбластьЗатоловок) ;
ТабДок.Вывести(ОбластьШапкаТаблицы) ;
ТабДок.НачатьАвтогруппхровкуСтрок();
ВыборкаДетальмыеЗаписи ж Результат.Выбрать () ;
Пока ВыборкаДетальмые Залме и. С ледухщий () Цикл
Об л асть Детальных Записей. Параметры. Заполнить (ВыборкаДетальмые Записи) ;
ТабДок. Вывести IОбластьДетальныхЗаписей, ВыборкаДетальмыеЗаписи.Уровень ());
КснецЦикла;
ТабДок.ЭакоичитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок. Вывести (Область Подвал) ;
//))КОНСТРУКТОР_ЭАПРОСА_С_ОБРАБОТКОЙ_РЕЭУЛЬТАТЛ
Рис. 270. Вывод данных в табличный документ
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Раздел 21.9 Инструменты разработки - Конструктор запроса с обработкой
результата.
Синтакс-помощник можно отобрать
по контексту
В версии 8.1 существовал контекст клиентского исполнения и контекст
серверного исполнения кода. Не все объекты были доступны на сер-
вере, и это отмечалось в синтакс-помощнике специальными пометками
(рис. 271).
Рис. 271.
Синтакс-помощник
1С:Предприятия 8.1
Так как в основном разработчику приходилось писать клиентский
код, а на сервере были недоступны, как правило, интерфейсные
объекты, особых сложностей с пользованием синтакс-помощником
не возникало.
В версии 8.2 ситуация кардинально изменилась.
Во-первых, наряду со старыми объектами (версии 8.1) появилось
большое количество новых объектов встроенного языка, которые
доступны только в режиме управляемого приложения.
Во-вторых, теперь большая часть объектов стала доступна именно
на сервере, а разработчику нужно одинаково часто писать как сер-
верный, так и клиентский код.
Реализована возможность отбора синтакс-помощника только по тому
контексту, который интересует в данный момент. Это облегчает работу
с синтакс-помощником и позволяет не теряться во множестве объектов,
иедоступных-в том или ином контексте.
Например, только тонкий клиент или сервер, тонкий клиент и веб-
клиент.
Отбор синтакс-помощника настраивается в режиме Конфигуратор,
в параметрах конфигуратора. Попасть туда можно двумя способами.
Во-первых, из меню Сервис - Параметры - Справка - Синтакс-помощник.
Во-вторых, прямо из синтакс-помощника с помощью кнопки Открыть
режим настройки параметров (рис. 272).
грационная конфигурация ' Управляемое приложение '
- о/
Q/I+F5
CVUF2
Ctrt+Shift«T
Временная блокцхзака.
Настройка
щия Отладка Адмитмстрдоеатме
аж » -» 14 «и________________,
Калькулятор
Календарь
Шаблоны текста
Вкна Сгдовка
редцзиятме
'Р NUM пг
Рис. 272. Настройка контекста, отображаемого в синтакс-помощнмке
Содержание Индекс Поиск
« в =Общее описание встроенного языка=
« в Глобальньй контекст
Й Д Общие объекты
®' К Универсальные коллекции значений
В Интерфейс (управляемый)
В Интерфейс (обычный)
В Прикладные объекты
В Работа с запросами
в Системные наборы значений
f Системные перечисления
в Средства интеграции и администрирования
Общие Тексты Модул# Запуск 1СПрадлрм«тия Справка
-Справочная информация—
f Выводить в одном окне
• Выводить врезных окна
*3 Тонкий клиент
*1 Веб -к /пент
у! Сервер
Внешнее соединение
УИнтеграция
U Толстый клиент
TWbswwwbb"
•) Располагать вертикально
Использовать оба языка
-Лоношьвио1
встроенного
я
о
ж
Постепенный перевод в режим
управляемого приложения
.. .
Резервная копия................................................267
Конвертация....................................................268
Настройки конфигуратора........................................268
Отключение режима совместимости с версией 8.1..................272
Процедура ПроверитьЗаполнение()............................274
Обработчики события «Обработка заполнения».................274
Графа «Тип» в журналах документов..........................275
Запросы....................................................275
Основной режим запуска.........................................276
Когда можно изменить это свойство..........................277
Запуск клиентского приложения у пользователя...............278
Запуск клиентского приложения из конфигуратора.............279
Настройки конфигуратора....................................280
Редактирование конфигурации................................281
Постепенное включение объектов в интерфейс.....................283
Открытие форм..................................................291
Тонкий клиент и веб-клиент.................................291
Толстый клиент.............................................292
_____________________________________________________________________7
Вообще говоря, процесс частичной доработки конфигурации для
работы в режиме управляемого приложения - большая и обширная
тема, достойная, наверное, отдельной книги. Очень многое здесь
зависит от конкретной конфигурации, которая дорабатывается, и от
задач, которые решаются этой доработкой.
В данном разделе мы лишь обозначим основные моменты, на которые
следует обратить внимание.
Резервная копия
«Эксперименты» по переводу на новую платформу и доработке для
работы в режиме управляемого приложения можно проводить только
на резервной копии рабочей базы. Это аксиома из разряда «мойте руки
перед едой», «переходя через дорогу, посмотрите налево» и т.д.
Комментарии тут излишни.
Конвертация
Конвертацию и дальнейшую разработку можно выполнять только
с помощью толстого клиента. Другие клиентские приложения не позво-
ляют работать в режиме Конфигуратор.
Поэтому как минимум следует быть уверенным в том, что у вас уста-
новлен толстый клиент. Также полезно установить и тонкого клиента,
чтобы в дальнейшем была возможность проверить работу приложения
в «чистом» режиме управляемого приложения.
Из имеющейся резервной копии с помощью платформы 8.1 нужно вос-
становить информационную базу.
После этого можно запустить программу запуска платформы 8.2 и под-
ключить существующую информационную базу. Ту, которую вы вос-
становили из резервной копии.
После того как база подключена, нужно выбрать ее и запустить систему
в режиме Конфигуратор.
Платформа автоматически определит необходимость конвертации ука-
занной информационной базы и, после нескольких предупреждающих
сообщений, начнет процесс конвертации.
Конвертация может занять длительное время. Все зависит от объема
информационной базы.
После конвертации информационная база будет открыта в конфигура-
торе версии 8.2.
Настройки конфигуратора
После конвертации и сама конфигурация и конфигуратор, как инстру-
мент разработки, находятся в состоянии, которое предполагает
дальнейшую разработку конфигурации с использованием как старых,
так и новых возможностей платформы.
Немного познакомимся с настройками конфигуратора и кое-что
изменим.
Для этого выполним команду Сервис - Параметры (рис. 273).
Рис. 273. Настройка редактирования конфигурации для режимов запуска
На первой закладке Общие расположен переключатель Редактирование
конфигурации для режимов запуска. Для конвертированной конфигу-
рации он стандартно установлен в значение Управляемое приложение
и обычное приложение.
Такое положение переключателя говорит о том, что в конфигураторе
вам будут доступны все возможности разработки: как старые, так и
новые.
Даже если вы не собираетесь ничего дорабатывать в старом, обычном
приложений, все же не следует переключать его сразу же в значение
Управляемое приложение.
В противном случае вы в какой-то момент вдруг не сможете найти
в дереве конфигурации, например, интерфейсы или модуль обычного
приложения. А они вам еще могут понадобиться.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика,
Глава 26.2.1 Сервисные возможности Настройка параметров
конфигуратора - Общие.
После этого можно перейти на закладку Запуск 1С: Предприятия
(рис. 274).
Рис. 274.
Выбор клиентского
приложения для
запуска
из конфигуратора
Здесь нужно задать способ запуска сеанса 1С:Предприятия из конфигу-
ратора (когда вы будете нажимать клавишу F5 или выполнять команду
Отладка - Начать отладку).
Поскольку мы собираемся дорабатывать конфигурацию так, чтобы она
могла работать в режиме управляемого приложения, можно выбрать
один из двух вариантов (какой больше нравится): Тонкий клиент или
Толстый клиент (управляемое приложение).
Вариант веб-клиент выбирать сейчас бессмысленно, т.к. он требует
наличия настроенного веб-сервера и опубликованной на нем инфор-
мационной базы.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика.
Глава 26.2.4 Сервисные возможности Настройка параметров
конфигуратора - Запуск 1С:Предприятия.
После этого можно перейти на закладку Справка.
В версии 8.2 появилась возможность фильтровать содержимое синтакс-
помощника. Можно включить отображение только тех типов, свойств,
методов, событий и т.д., которые доступны в определенном контексте.
Например, в контексте тонкого клиента.
ПОДРОБНЕЕ
Раздел Синтакс-помощник можно отобрать по контексту, см. стр. 265.
Поскольку мы собираемся дорабатывать конфигурацию именно для
работы в тонком клиенте или веб-клиенте, будет полезно на этой закладке
отключить флажок Толстый клиент. Тогда в синтакс-помощнике оста-
нется только новая информация, которая нам и нужна (рис. 275).
Рис. 275.
Настройка контекста,
отображаемого
в синтакс-помощнике
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 26.2.5 Сервисные возможности Настройка параметров
конфигуратора - Справка.
Отключение режима совместимости с версией 8.1
Итак, мы конвертировали информационную базу, настроили конфигу-
ратор.
Если прямо сейчас попытаться запустить отладочный сеанс, попытка
закончится неудачей (рис. 276).
Рис. 276.
Сообщение о невозможности
запуска управляемого
приложения
Чтобы стал возможным запуск конфигурации в режиме управляемого
приложения, нужно отключить совместимость с версией 8.1. Это можно
сделать с помощью свойства конфигурации Режим совместимости.
После конвертации режим совместимости установлен в значение
Версия 8.1 (рис. 277).
Главное назначение этого свойства заключается в тем, чтобы конфигу-
рация, которую мы конвертировали из предыдущей версии платформы,
в новой версии в обычном режиме работала бы внешне точно так же,
как и раньше.
Это касается как внешнего вида, так и внутренних механизмов плат-
формы.
Дело в том, что в новой версии платформы есть несколько механизмов
и особенностей, которые могут входить в конфликт с тем, что было
разработано в прежней конфигурации. Когда свойство Режим совмес-
тимости установлено в значение Версия 8.1, эти механизмы и особен-
ности отключены.
Рис. 277. Свойство «Режим совместимости»
Поэтому, прежде чем переводить это свойство в значение Не исполь-
зуется (то есть прежде чем включать новые возможности), нужно убе-
диться, что у нас не возникнет конфликтов с той реализацией, которая
имеется в вашей конфигурации.
С режимом совместимости связано большое количество особен-
ностей, все они описаны в документации. Здесь мы остановимся только
на самых основных.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Приложение 7.2 Особенности поведения системы в различных режимах -
Особенности режима совместимости.
Процедура ПроверитьЗаполнение()
В новой версии платформы у обычных и управляемых форм появился
метод ПроверитьЗаполнение (). Однако в конфигурациях, напи-
санных под старую версию, разработчики могли использовать свой
собственный метод с таким же именем в модулях обычных форм.
Поэтому нужно убедиться, что в модулях форм нет вызовов процедуры
с таким именем. Если есть, переименовать процедуру и изменить ее
вызов.
А по-хорошему, если планируется эти формы оставлять неуправляе-
мыми и работать с ними в режиме управляемого приложения, нужно
перенести эти алгоритмы проверки в модуль объекта, в обработчик
события Обработка проверки заполнения, переписав их под новую
механику. Потому что после отключения режима совместимости новая
механика проверки заполнения будет работать как в управляемых
формах, так и в старых, неуправляемых формах, которые открывает
толстый клиент, запущенный в режиме управляемого приложения.
Обработчики события «Обработка заполнения»
И в старой, и в новой версии платформы у прикладных объектов есть
событие Обработка заполнения и обработчик этого события.
Отличие заключается в том, что тип параметра Основание этого обра-
ботчика раньше мог не анализироваться вообще или анализироваться
только назначение Ссылка. Теперь параметр Основание может прини-
мать еще значения типа Неопределено и Структура.
К тому же расширился перечень событий, при которых вызывается этот
обработчик.
Если режим совместимости установлен в значение Версия 8.1, то
в обычных формах заполнение новых объектов происходит аналогично
версии 8.1, т.е. обработчик Обработка заполнения вызывается только
при вводе на основании и вызове метода Заполнить ()
Если переключить режим совместимости, не проверив, то этот обра-
ботчик начнет; во-первых, вызываться и при других событиях, а во-
вторых, тип параметра Основание, передаваемый в этот обработчик,
может отличаться от типа Ссылка.
Таким образом, нужно убедиться, что старые алгоритмы проверяют
тип этого параметра, работают только в том случае, когда он имеет тип
Ссылка, и не выдают ошибку при других типах этого параметра.
А по-хорошему, если планируется работать с этими объектами
в режиме управляемого приложения, нужно переписать старые алго-
ритмы так, чтобы код корректно обрабатывал значения всех допус-
тимых типов.
Также нужно учесть, что теперь этот обработчик будет вызываться
и при создании новых объектов.
ПОДРОБНЕЕ
Раздел Обработка заполнения вызывается при создании нового доку-
мента, см. стр. 392.
Графа «Тип» в журналах документов
В новой версии платформы таблицы журналов документов содержат
новый стандартный реквизит Тип. И, соответственно, в журналах доку-
ментов присутствует такая колонка.
В то же время прежняя конфигурация могла содержать в журнале доку-
ментов колонку Тип, которую добавил разработчик.
Если режим совместимости установлен в значение Версия 8.1, то таб-
лицы журналов документов не содержат виртуального поля Тип.
Если переключить режим совместимости, не проверив, то пользователь
может увидеть в привычном ему журнале документов сразу две колонки
Тип. Поэтому прежде чем переключать, следует удалить колонки Тип
из журналов документов (если они были туда добавлены).
Запросы
В версии 8.2 более строгим стал синтаксис запросов. Некоторые
конструкции языка запросов, использовавшиеся ранее, могут теперь
не работать.
Например, запрос, в котором указано ключевое слово РАЗЛИЧНЫЕ,
а в предложении УПОРЯДОЧИТЬ ПО указано выражение, отсутству-
ющее в списке выборки.
В таких запросах все поля из секции УПОРЯДОЧИТЬ ПО нужно вклю-
чить в секцию ВЫБРАТЬ.
Основной режим запуска
Итак, мы конвертировали информационную базу, настроили конфигу-
ратор, отключили режим совместимости.
После изменения режима совместимости платформа предложит пере-
запустить конфигуратор. Имеет смысл последовать ее совету, закрыть
конфигуратор и запустить его вновь.
После этого вы увидите новый внешний вид конфигуратора (рис. 278).
Рис. 27В. Новый внешний вид конфигуратора
Теперь пришло время рассказать еще об одном свойстве конфигу-
рации - Основной режим запуска (рис. 279).
Сейчас это свойство установлено в значение Обычный. У вас может
возникнуть желание переключить это свойство в значение Управляемое
приложение.
Рис. 279. Свойство «Основной режим запуска»
Прямо сейчас делать это не нужно. Это свойство затрагивает многие
элементы системы, и если его переключить, не разобравшись, можно
получить неожиданные результаты.
Тем более что это свойство описывает именно основной режим запуска,
то есть режим, в котором конфигурацию будет запускать основное
количество пользователей. В вашем случае основное количество поль-
зователей будут запускать ее в обычном режиме, поэтому значение
Обычный вполне устраивает. И пока менять его не нужно.
Но на будущее полезно знать, на что повлияет переключение этого
свойства.
Когда можно изменить это свойство
Это свойство можно изменять только тогда, когда отключена совмес-
тимость с версией 8.1. Если совместимость с версией 8.1 установлена,
то это свойство может иметь только значение Обычный.
Запуск клиентского приложения у пользователя
Если запускается программа запуска или интерактивная программа
запуска, то анализируются:
свойство конфигурации Основной режим запуска (Обычный, Управ-
ляемое приложение);
свойство информационной базы Основной режим запуска
(рис. 280);
Рис. 280.
Свойство информационной
базы «Основной режим
запуска»
свойство пользователя Режим запуска (рис. 281);
^Дополнительные возможности глбухгалтера (дополнительно к бухгалтеру)
@Полные права
□Дополнительное право едминистрцхзвания
О Дополнительное право едминистрцхзвания подключенных печатных Форм и обработок
О Дополнительное право внеимего подключе»» (соединения)
О Дополнительное право завершения работы пользователей
Дополнительное право открытия внешних отчетов и обработок
Основной гмтерфейс: [Полмяй___________________________________________________
Рис. 281. Свойство пользователя «Режим запуска»
Два последних свойства имеют стандартные значения Выбирать авто-
матически и Авто.
Это значит, что в стандартной ситуации смена основного режима
запуска для конфигурации приведет к тому, что у пользователя будет
запущен не толстый клиент в обычном режиме, а тонкий клиент.
Запуск клиентского приложения из конфигуратора
При запуске клиентского приложения из конфигуратора анализиру-
ются параметры конфигуратора Сервис - Параметры - Запуск 1С: Пред-
приятия - Основные - Приложение (рис. 282).
Рис. 2В2.
Выбор клиентского
приложения
для запуска
из конфигуратора
Там тоже есть вариант Выбирать автоматически, который установлен
стандартно.
Поэтому переключение основного режима запуска конфигурации
может повлиять и на запуск сеанса 1С:Предприятия из конфигуратора.
Настройки конфигуратора
Переключение свойства конфигурации Основной режим запуска из зна-
чения Управляемое приложение в значение Обычный вызывает пере-
ключение свойства настройки конфигуратора Редактирование конфи-
гурации для режимов запуска в значение Управляемое приложение
и обычное приложение со всеми вытекающими из этого последс-
твиями (появляются различные элементы интерфейса конфигуратора),
рис. 283.
Рис. 283.
Настройка
редактирования
конфигурации
для режимов
запуска
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Глава 26.2.1 Сервисные возможности Настройка параметров
конфигуратора - Общие.
Также переключение этого свойства влияет на выбор набора флажков
проверки модулей в параметрах конфигуратора (Сервис - Параметры -
Модули - Проверка). Происходит это в том случае, когда в общих пара-
метрах конфигуратора задано свойство Редактирование конфигурации
для режимов запуска - Управляемое приложение и обычное прило-
жение (рис. 284).
Рис. 284.
Настройка
режимов проверки
конфигурации
Отображаемый набор флажков на этой закладке будет соответствовать
тому режиму запуска, который установлен в свойстве конфигурации
Основной режим запуска.
Редактирование конфигурации
Переключение свойства конфигурации Основной режим запуска влияет
и на некоторые алгоритмы редактирования конфигурации.
Например, если основной режим запуска - Управляемое приложение,
то у добавляемых объектов конфигурации свойство Использовать стан-
дартные команды будет установлено. Если основной режим запуска -
Обычный, то у добавляемых объектов конфигурации это свойство будет
сброшено.
Другая особенность касается добавления новых документов. У доку-
мента есть два свойства (рис. 285):
Привилегированный режим при проведении,
Привилегированный режим при отмене проведения.
Рис. 285. Свойства документа, определяющие режимы проведения
Если основной режим запуска - Управляемое приложение, то у добав-
ляемого документа эти свойства будут установлены. Если основной
режим запуска - Обычный, то эти свойства будут сброшены.
Последний момент касается добавления бизнес-процессов. У бизнес-
процесса есть свойство Привилегированный режим при создании задач
(рис. 286).
Если основной режим запуска - Управляемое приложение, то у добавля-
емого бизнес-процесса это свойство будет установлено. Если основной
режим запуска - Обычный, то это свойство будет сброшено.
ПОДРОБНЕЕ
Раздел Привилегированный режим, см. стр. 375.
W* Конфигуратор Бухгалтерия предприятия, редакция 1 6
- □ X
Рис. 286. Свойство «Привилегированный режим при создании задач»
Постепенное включение объектов в интерфейс
Итак, мы конвертировали информационную базу, настроили конфигу-
ратор, отключили режим совместимости, увидели новый внешний вид
конфигуратора и разобрались со свойством конфигурации Основной
режим запуска.
Попробуем запустить сеанс 1С:Предприятия (рис. 287).
Картина совсем не похожа на то, о чем рассказывалось в разделе
«Новый интерфейс», см. стр. 27. Нет панели разделов, нет панелей,
содержащих команды.
В принципе эта картина правильно отражает общий подход к частичному
переводу конфигурации в управляемый режим. Заключается он в следу-
ющем: отображается только то, что разработчик настроил в явном виде.
Если вернуться в конфигуратор, то мы увидим, что у всех подсистем
отключено свойство Включать в командный интерфейс (рис. 288).
Рис. 287. Конфигурация в режиме 1 (^Предприятие
Более того, у всех объектов конфигурации отключено свойство Исполь-
зовать стандартные команды (рис. 289).
Рис. 289. Свойство «Использовать стандартные команды»
По этим двум причинам сейчас в интерфейсе ничего не отображается.
ПОДРОБНЕЕ
Раздел Почему мой справочник не виден в интерфейсе?, см. стр. 299.
Собственно дальнейший процесс частичного перевода конфигурации
в режим управляемого приложения и будет заключаться в том, чтобы
включать в управляемый интерфейс нужные объекты.
В качестве иллюстрации возьмем справочник Банки.
Если предполагается, что функциональность, работающая в режиме
управляемого приложения, будет невелика, можно не использовать
панель разделов, а ограничиться только использованием рабочего
стола.
Чтобы команда перехода к списку справочника Банки оказалась
на рабочем столе, нужно:
у справочника Банки установить свойство Использовать стандарт-
ные команды (см. рис. 289);
включить команду открытия списка этого справочника в панель
навигации рабочего стола (рис. 290). Этот пункт необходим, т.к.
основной режим запуска конфигурации у нас сейчас Обычный.
Если бы он был Управляемое приложение, тогда команда перехода к
списку справочника Банки была бы включена туда автоматически.
Рис. 290. Редактирование командного интерфейса рабочего стола
После этого команда Банки появится в панели навигации рабочего
стола. При нажатии на нее в рабочей области будет открываться управ-
ляемая форма списка этого справочника, которую платформа генери-
рует автоматически (рис. 291).
Рис. 291. Форма списка, генерируемая автоматически
Обратите внимание, что в этой форме отсутствуют некоторые команды.
Например, команда создания нового элемента. Об этом мы скажем чуть
позже.
Рис. 292. Форма элемента, генерируемая автоматически
Если дважды щелкнуть на каком-либо банке, то будет открыта форма
этого элемента (рис. 292).
Это управляемая форма, которую платформа генерирует автомати-
чески. Обратите внимание, что она находится в режиме Только про-
смотр. Об этом мы тоже скажем позже.
ПОДРОБНЕЕ
Раздел Открытие форм, см. стр. 291.
Теперь рассмотрим другой случай, когда в режиме управляемого при-
ложения планируется использовать большое количество функциональ-
ности. Тогда понадобятся один или несколько разделов, чтобы логи-
чески сгруппировать всю эту функциональность.
Первое и естественное желание - показать в интерфейсе существу-
ющие подсистемы. Желание понятное, но неправильное.
Подсистемы в версии 8.1 и подсистемы в версии 8.2 с виду одни и те
же, но несут совершенно разную функциональную нагрузку.
В версии 8.1 подсистемы существовали, но пользователь видел интер-
фейсы. Теперь же пользователь видит панель разделов, которая явля-
ется верхним уровнем подсистем.
Как правило, не предполагалось, что старые подсистемы будут пока-
заны пользователю. Более того, зачастую структура подсистем исполь-
зовалась раньше для фильтрации объектов конфигурации, для облег-
чения процесса разработки. Поэтому наиболее простым и удобным
решением будет создать для работы в управляемом режиме новый
набор подсистем (не удаляя старые) и привязать к ним нужные объ-
екты конфигурации.
Какие подсистемы придумать? Это творческий вопрос. Как мы уже
объяснили выше, старые подсистемы в этом плохие помощники. Иде-
альный вариант - придумать подсистемы «с нуля».
Но можно попробовать облегчить себе задачу. Раз раньше пользова-
тель оперировал интерфейсами, можно попробовать проанализировать
существующие интерфейсы и, исходя из их структуры, создать подсис-
темы для режима управляемого приложения (рис. 293).
1С Предприятие Демонстрационная {газа
*£яйл Древе Опвряде Касо ГЬмуми Продажа Скпм Лроизводспи ОС НМЛ Зврпдп» К
Банковоме расчетные документы
Щ Посизеть пвнвгь
Ггвтемюе поручение вжшящее
Пппемтое поручение исходящее
ПгвтежмыЙ ордер на постутгвние даневнах средств
Ггнтехиый ордер на списание денежных средств
Пгитежное требование выставленное
Выписка бане
1С Предприятие Клиент банка
Статьи движения денежны* средств
Еалотъ
Рис. 293.
Интерфейс
прикладного
решения
в версии 8.1
$
Другим источником вдохновения могут служить дополнительные нави-
гационные механизмы, реализованные в прикладном решении.
Например, если говорить о конфигурации Бухгалтерия предприятия,
то в ней реализована панель функций, которая позволяет перемещаться
по функциональности прикладного решения (рис. 294).
290
----a
Поэтому, несмотря на то, что справочник Банки входит в подсистемы
Денежные средства и Отражение в бухучете (рис. 295), мы создадим
новую подсистему Банк и включим в нее справочник Банки (рис. 296).
Рис. 295. Принадлежность справочника старым подсистемам
Рис. 296.
Включение
справочника
в состав новой
подсистемы «Банки»
Рис. 297. Раздел «Банк» в режиме 1С:Предприятие
Открытие форм
Последнее, о чем необходимо сказать в связи с доработкой для режима
управляемого приложения, - это алгоритмы, по которым платформа
открывает те или иные формы.
Здесь нужно четко различать две ситуации.
Первая - когда работа ведется в тонком клиенте или в веб-клиенте.
Вторая - когда работа ведется в толстом клиенте.
Тонкий клиент и веб-клиент
Тонкий клиент и веб-клиент умеют работать только с управляемыми
формами. Старые формы они показывать не умеют
Когда основной режим запуска конфигурации установлен в значение
Обычный, есть одна особенность.
Платформа страхует разработчика от того, чтобы новая, управляемая
функциональность случайно не нарушила работу имеющейся старой
функциональности. Поэтому управляемые формы, которые разра-
ботчик сам не создавал (которые платформа сгенерировала автома-
тически), открываются с ограниченной функциональностью. Может
быть, разработчик просто забыл создать форму для этого объекта?
Мы видели это в предыдущем разделе. Когда в управляемой форме,
которую сгенерировала платформа, не было команд создания новых
объектов, а форма элемента открывалась в режиме Только просмотр.
Если перечислять все ограничения, которые накладывает система, то:
в формах списков не будет команд Создать, Создать копирова-
нием;
формы элементов и формы наборов записей регистра сведений
будут открываться в режиме Только просмотр;
в формах списков и в формах объектов не будет команд ввода на
основании.
Если же создать в конфигураторе управляемые формы списка и объ-
екта, то платформа будет открывать их в полнофункциональном виде.
В них будут присутствовать все необходимые команды.
Еще раз заметим, что описываемое поведение касается ситуации,
когда основной режим запуска конфигурации - Обычный и нет совмес-
тимости с версией 8.1. Если основной режим запуска - Управляемое
приложение, все работает без ограничений.
Толстый клиент
Толстый клиент умеет показывать любые формы в любом своем
режиме: и в режиме обычного приложения, и в режиме управляемого
приложения.
Как определить, в каком режиме запущен толстый клиент?
То, что это толстый клиент (а не тонкий клиент и не веб-клиент), можно
понять из диалога О программе (рис. 298).
То, что он в режиме управляемого приложения, видно по внешнему
виду: присутствует новый интерфейс (панель разделов, рабочий стол
ит.д.).
ra6o4<i
Наименование-
Режим
Каталог
Приложение:
1С:Предлриятие В 2 (В2.Э 2E0J
Copj^ight ® ЗАО "IC" 1996-2009. Все права защищены
Кон^м ураиия
Бухгалтерия предприятия, редакция 1 6 (1 6.14 4)
Файловый (баз сжатия]
Толстый клиен
Абдулов Юрий Владимирович
Локализация: Информационная база русский Россия], Сеанс русский Россия)
Рис. 298. Диалог «О программе»
Если толстый клиент запущен в обычном режиме, отображается старый
интерфейс прикладных решений 1С:Предприятия 8.1 (главное меню,
панели инструментов и т. д.), рис. 299.
Как уже было сказано, платформа страхует разработчика от того, чтобы
управляемая и неуправляемая функциональности случайно не «пере-
мешались» на экране пользователя.
Поэтому стандартно в обычном режиме толстый клиент не показы-
вает управляемые формы, а в управляемом режиме - не показывает
обычные формы.
Но у конфигурации есть два свойства, которые позволяют управлять
этими процессами (рис. 300):
Использовать управляемые формы в обычном приложении,
Использовать обычные формы в управляемом приложении.
Рис. 300. Режимы использования форм
Если их включить, станет возможным показ и тех, и других форм
в любом режиме толстого клиента.
Когда это может понадобиться?
Например, тогда, когда путем постепенной доработки все прикладное
решение переводится на работу в режиме управляемого приложения.
Но функциональность управляемых форм, естественно, меньше, чем
возможности, предоставлявшиеся старыми формами. Поэтому может
так случиться, что какую-то существовавшую ранее форму просто не
удастся «воспроизвести» в виде управляемой формы.
Другой случай - когда старая форма настолько сложна, что «воспро-
изведение» ее в виде управляемой формы требует очень больших
ресурсов.
В этих случаях можно разрешить в управляемом режиме использо-
вать обычные формы и работать с одной-двумя старыми формами,
в то время как все остальные формы будут управляемые.
Если посмотреть на окно редактирования какого-нибудь прикладного
объекта конфигурации, то на закладке Формы можно увидеть два набора
основных форм: основные и дополнительные (рис. 301).
Основные
Т’ормы]
Группы
Слиска
Выбора
Выбора группы
Пдеистамы
Функционвтляе опции
Иерархия
Владельцы
Данные
Нумерация
Основные JtontMtWTBAHJB
ФормаГрузпы
ФормаСписка К Ч
ФормаВыбора X Q
[фррмаВыбораГр/тты
J
Ввш по строке Наименование. Код
Рис. 301.
Основные
и дополнительные
формы
Макеты
Ввод на основании
Права
Интерфейсы
Обман данными
Прочее
Е ФормаСписка
Е ФормаВыбора
Е ФсрмаВыбораГруппы
Е ФормаЗлемента
Е ФормаГкгпы
Это позволяет для одного и того же объекта, для одного и того же дейс-
твия назначить сразу две формы: обычную и управляемую. При этом
не имеет значения, на какой закладке какие формы назначать. Закладки
названы так условно.
При работе с формами толстый клиент старается открыть ту форму,
которая наилучшим образом подходит для конкретного режима
работы:
если никакие формы не назначены, в режиме обычного прило-
жения он сгенерирует обычную форму, в режиме управляемого
приложения - управляемую форму;
если назначена только одна форма, то он откроет именно ее;
если назначены две формы, обычная и управляемая, то в режиме
обычного приложения он откроет обычную, в режиме управляе-
мого приложения - управляемую;
и, наконец, если назначены две обычные или две управляемые,
то он откроет ту форму, которая назначена как основная.
Для лучшего понимания также представим это в виде таблицы.
Таблица 2. Открытие форм в различных режимах
Формы Толстый клиент
Обычный режим Режим управляемого приложения
Нет форм Автоматически сгенерирует обычную Автоматически сгенерирует управляемую
Только одна форма Откроет ее
Одна обычная, другая управляемая Откроет обычную Откроет управляемую
Обе обычные или обе управляемые Откроет основную
Собственно второй и четвертый пункты этого списка как раз и позво-
ляют открывать формы «не своего режима». Рассмотрим второй пункт
как наиболее типичный.
Толстый клиент запускается в режиме управляемого приложения,
для элемента справочника, например, создана только обычная форма,
и у конфигурации установлено свойство Использовать обычные формы
в управляемом приложении (рис. 302).
При двойном щелчке на банке платформа откроет обычную форму
в управляемом режиме.
Своим оформлением такая форма будет стараться «походить» на управ-
ляемые формы, но по разным признакам можно заметить, что это -
обычная форма. Например, отсутствие команды Все действия, другой
внешний вид командных панелей и т.д. (рис. 303).
Рис. 302. Обычная форма в управляемом режиме
Банк: АКБ "АВТ-банк"
Действие- * Й В ®
гр»™ 1 ........~... Laal
Наименование ИЯЯКЗажЯВШ
Корр, счет , 10335202301222054654 ' БИК. ^052500102 ~~|
Город. 4Москоа~ |
Адрес. ( I
Телефона ( ;
ОК Записать Закрыть
АКБ "АВТ-банк” (Банки)
<4ЙЙМЙЙ* И Все действия- Щ
Наименование. АКБ "АВТ-банк"
Родитель. ; 2П S1
Корр счет: 10005202301222054654
Город {Мосжм )
Адрес [ZZZZZZZZZZZTTZZZZZZZZIZZZZZZZ J
Телефон*
Рис. 303.
Обычная форма
в управляемом
режиме
и управляемая
форма
В завершении следует сделать еще одно замечание относительно пер-
вого пункта этого списка. Толстый клиент в режиме управляемого при-
ложения при отсутствии каких-либо назначенных форм сгенерирует
управляемую форму. Для такой формы будет справедливо все, ска-
занное в предыдущем разделе (стр. 291): у нее будут отсутствовать
команды, позволяющие модифицировать данные.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика,
Глава 5.6.5 Объекты конфигурации Общие свойства объектов
конфигурации - Формы.
Управляемые блокировки данных
используются стандартно
Раньше, в версии 8.1, при создании новой конфигурации стандартно
использовался автоматический режим управления блокировкой данных
(рис. 304).
Кончмгурамйя
; Константы
ф-3 Справочники
Ё)-^ Документы
Зй Журналы документов
Пере*мспетмя
у I '
Модуль сеанса
Свойства
Имя
Сйтоним
Комментчр**
Й Отчеты
iJgC Офаботда
!Планы видов хврактернсти
Т* Планы счетов
Планы видов рестета
Ijg Регистры саадстмй
Регистры наюплвния
Регистры бухгалтерии
Регистры растете
Биэтеолроиассы
Конфигурация
ПодроЛтая инфсрммхя
Основной стиль
Ооютмойязнк
Основной интерфейс
Рис. 304. Автоматический режим управления блокировкой данных
Вариант встроенного языка
Оотоанаярогъ
Модугъ ТфИГСХВНИЯ
Руеомй
Оивиа
Открыть
Теперь, в версии 8.2, при создании новой конфигурации стандартно
устанавливается управляемый режим транзакционных блокировок
(рис. 305).
Рис. 305. Управляемый режим блокировки данных
Эту особенность нужно учитывать, например, при написании собс-
твенных алгоритмов проведения документов.
ПОДРОБНЕЕ
Раздел Проведение документа - новая методика, см. стр. 311.
Почему мой справочник не виден
в интерфейсе?
Как показывает практика, в процессе разработки управляемого прило-
жения обязательно наступит такой момент, когда однажды вы не уви-
дите в интерфейсе того, что ожидали.
Ш-----------------------------------------------------
Например, какого-то раздела или команды перехода к списку справоч-
ника...
В этой ситуации всегда полезно знать алгоритм, по которому можно
выяснить, почему же получился именно такой результат.
Итак, что нужно проверить? Сначала нужно убедиться, что все
в порядке с разделом, к которому относится объект, а затем - что все
в порядке с самим объектом.
Начнем с раздела. Нужно проверить:
1. Свойство подсистемы Включать в командный интерфейс. Той под-
системы, к которой относится искомый объект, и всех подсистем,
которые находятся выше ее по иерархии (рис. 306).
Рис. 306. Свойство «Включать в командный интерфейс»
2. Настройку видимости подсистемы верхнего (первого) уровня
в командном интерфейсе конфигурации. Здесь нужно обратить
внимание не только на то, как настроена видимость по умолчанию,
но и на то, как она настроена для различных ролей (рис. 307).
< Закужи й 3 S3 6Й
» й
> Финансы @ & 0 S3
Ш Предприятие W 8Й @ @
£au-JU®""” . i ь»”" 1
Рис. 307. Настройка видимости подсистем
3. Что подсистема имеет не пустой состав. Подсистемы, в которые
не включено ни одного
объекта, не отображаются
в командном интерфейсе
(рис. 308).
fb Общие !
- ЁВ Общие модули
( "*В! РаботаСТсргоеыМОборудованием
О® РегламентныеЗадани«Лоиска
I РаботаОфанилицетИОбщихНастроек
¥ Р<ЗА4
I ¥ Адмкнклратор
L ¥ МенеджерПоЗак^кам
1 ¥ МвнаджерПоПродажам
Рис. 308.
Состав подсистемы
4. Что есть хотя бы одна команда, доступная для настройки в этих
подсистемах (стандартная или созданная в конфигурации). Если
таких команд нет, подсистема не отображается. Здесь не важна
видимость этих команд, важно лишь их наличие (рис. 309).
ВР Конфигуратор Демонстрационная конфигурация Управляемое приложение 1
-
gate Цравка КснФкурация Отладка Администрирован» Сервис Скна Сгдовм
* ЕЦ QL
Г at-® 4»
J6I X <& «ж
। 18 Я Ц в.
Действия- <!> * а к ♦ ♦
(д) ДемонстрацисмгаяКонфигурациЛ; К
*• Общие
Подсистемы
Предприятие
^ыупки
5-. 3
Общ»
♦ Пара
4 Роли
План Ж
б? Крип жк
[jJ Прдп _
*< О Регл *
® S= ‘Рунк
Переместить вверх
Переместить вниз
Сортировать.
Изменить
Скопировать
Удалить
-Основные
Включать б комаконый интерфейс!*!
Пояснение
Del
Представление:
Командный интерфейс Открыть
Синоним j Продажи
Комментарий
. командный ь*^врфейс
Переместить подсистему
Dri+Shift+Up
СЫ+Shiit+DcMfi
КаЛг* а I ГоасистемаПродажи
СтфавОф я информация:
Включать ?^и*ержание справки
Сгравочная »а^рмация Отт
Открыть Фрагма
-.«Хрен
® Н Общ»
в Общ»
* Групг
. GZI пвии
Рис. 309. Состав команд подсистемы
Л
Если в составе команд нет вашей стандартной команды объекта,
значит для объекта отключено использование стандартных команд
(см. п. 1 ниже).
Если в составе команд нет команды, созданной в конфигурации,
значит, ей не назначена группа (см. п. 2 ниже).
Если для команды назначена не группа подсистемы, а какая-то
группа формы, то для того, чтобы команда стала доступна, в интер-
фейсе форм необходимо задать еще и тип параметра этой команды
(см. п. 2 ниже).
5. Что в правах пользователя разрешено использование той подсис-
темы, к которой относится искомый объект, и всех подсистем,
которые находятся выше ее по иерархии (рис. 310).
Рис. 310. Права на подсистему
6. Что та подсистема, к которой относится искомый объект, и все
подсистемы, которые находятся выше ее по иерархии, не отклю-
чены функциональными опциями в режиме исполнения. Узнать,
с какими функциональными опциями связана подсистема, можно
в окне Дополнительно (рис. 311).
Ч-'. «I* «Ч ч «Л
^Подсистемы f Права ‘ у- Функциональные опции Планы обмена ^Команог**й интерфейс
РаботаСТорговымОборуасванием:
ПхЕ УчетПоСклапвч
ОЕ~ ВалопЫЙчет
Рис. 311. Функциональные опции, назначенные подсистеме
7. Что та подсистема, к которой относится искомый объект, и все под-
системы, которые находятся выше ее по иерархии, не отключены
пользовательскими настройками панели разделов в режиме испол-
нения (рис. 312).
Добавить в избранное
История.
Ctrt+D
Dd+SMt*H
&И2
Найти. Все действия о-
CrkSMuZ
^а/ъкудятор
Календарь
Сообщения
Рабочий стол.
Корнет
Магвзи
Матвеи
Рубли
Рубли
Рубли
1404 2008U1
1214
Магазин Быговаят Скла^
Малы
Магазин Продеты"
Магазин 'Ьытоваят
Бс
Панель действий.
151
J 16.04 20081048 32
J 1804 200813051
000000026
1804 200814]
000000027
2504;
37 000000008
2804;
J
10:54:24 000000012
Текущие взаимо...
Все действия- &
Курсы валют
Достутные комакии
панели
разделов
Все действия'
Настрой<а
Г<< Нм~>»<»"~|
Показывать; Картинка и текст
* Фзатансы
W Предприятие
• Отмена Все действия - ф
Рис. 312. Настройка панели разделов в режиме 1С:Предприятие
Рис. 313. Восстановление стандартных настроек подсистемы
Вернуться к настройкам, выполненным в конфигураторе, можно
с помощью команды Все действия - Установить стандартные
настройки (рис. 313).
После того как проверка подсистем закончена, нужно проверить все,
что относится к самому объекту:
1. Что для искомого объекта разрешено использование стандартных
команд (рис. 314).
Рис. 314. Свойство «Использовать стандартные команды»
В противном случае стандартные команды недоступны в коман-
дном интерфейсе (см. п. 4 выше).
2. Если ищется нестандартная команда, то нужно убедиться, что для
нее задана группа и, если команда параметризованная, - тип пара-
метра команды (рис. 315).
Рис. 315. Группа команды и тип параметра команды
В противном случае команда недоступна в командном интер-
фейсе (см. п. 4 выше), а параметризованная команда недоступна
для включения в командный интерфейс форм, соответствующих ее
параметру.
3. Что включена видимость команды в подсистеме. Здесь нужно обра-
тить внимание не только на то, как настроена видимость по умол-
чанию, но и на то, как она настроена для различных ролей (рис.
316).
4. Что в правах пользователя разрешено использование искомой
команды. Если речь идет о стандартной команде, нужно смотреть
права на сам объект (рис. 317).
“ Панегь наеигацьы.Обычное (ручной порядок)
ОТ Контрагенты Е ®
iiBii 8 4 » 4 1
“ Панель наеигацмиСм также
М Регистр продаж р!
И Регистр товарных запасов pi
Q Пане гь действий Создать [ручной порядок)
Е Продажа создать р
ОТ Контрагент создать Р
ОТ Товар создать Е
E3J Контрагенты создать группу. £
@ В ® j
й в в
Е в ® ,
@ й й
@ ® @ ‘ J
Рис. 316. Видимость команды в подсистеме
Если речь идет о нестандартной команде, нужно смотреть права
на эту команду (рис. 318).
Рис. 317. Права на использование объекта конфигурации
Рис. 318. Права на использование команды
5. Что объект или команда не отключены функциональными опциями
в режиме исполнения. Узнать, с какими функциональными опциями
связан объект или команда, можно в окне Дополнительно (рис.
319).
** Кинфшуратор Демонстрационная конфигурация'"Управляемое приложение’ |» р|С|
$гЛл Драмы Канмзрания Опшкв Ддмеыстркфовагые Сервис Окна Оцавке
х%ш «ж • * г ’tv»».
Открыть
Конструкторы
[ УчетПоСклддам
De!
I
Поиск ссылок на объект
Ak+Ertffl
Стандартные реквизиты
Справочная ^формация
Добавить
Изменить
Скогиюветъ
Удалить
Переместить вверх
Переместить вниз
Сортировать
«е
Рис. 319. Функциональные опции, назначенные команде
ы™-у > d х * «
е Лмоистраоионн
£« Общие
•-|Г днстанты
fe ГО Справочники
m
® ©
Открыть модуль объекта
Открыть модуль менеджера
Дсподыпмьнр ,
Открыть основною форму объекта
Открыть основную Форму трупы
Открыть основою форму сгыска
Открыть основную Форму аля выбора
Открыть основную Форму для выбора групи
Clrt+Shft+Up
Dri+Shitt+Dcwi
Поиск ссылок в объекте
6. Что команда не отключена пользовательскими настройками
в режиме исполнения (рис. 320).
Вернуться к настройкам, выполненным в конфигураторе, можно
с помощью команды Все действия - Установить стандартные настройки.
Рис. 320. Настройка панели навигации в режиме 1С:Предприятие
Проведение документа - новая методика
Как известно, в системе 1С:Предприятие существует механизм прове-
дения документов. Он представляет собой реализованную на уровне
системы методику отражения в учетных механизмах события хозяйс-
твенной жизни, отражаемого документом.
Механизм проведения реализован таким образом, чтобы, с одной
стороны, минимизировать усилия разработчика при использовании
его в типовых случаях, а с другой стороны, чтобы обеспечить гибкие
возможности изменения стандартной методологии.
Стандартная методика проведения документов значительно измени-
лась в новой версии платформы, и теперь она ориентирована на макси-
мальную оптимизацию этого процесса и на упрощение модели записи
документа.
Чтобы дальше более подробно рассмотреть все отличия, вспомним,
каким было стандартное поведение системы при перепроведении доку-
мента в версии 8.1, и сравним его с тем, что есть теперь (таблица 3).
Таблица 3. Открытие форм в различных режимах
Версия 8.1 Версия 8.2
1. Режим управления блокировками данных
Автоматический (свойство конфигурации Режим управления блокировкой данных - Автоматический) Управляемый (свойство конфигурации Режим управления блокировкой данных - Управляемый)
2. Контекст, в котором выполняется проведение
На клиенте На сервере
3. Режим исполнения программного кода
Обычный Привилегированный (свойство документа - Привилегированный режим при проведении - Истина)
4. Удаление существующих движений при перепроведении документа
Движения удаляются после записи документа, перед событием Обработке проведения (свойство документа Удаление движений - Удалять движения автоматически) При проведении документа существующие движения не удаляются (свойство документа - Удаление движений - Удалять движения автоматически при отмене проведения)
5. Запись движений
После выхода из обработчика Обработка проведения будут автоматически записаны все модифицированные наборы движений После выхода из обработчика Обработка проведения будут записаны только выбранные наборы движений (свойство документа - Запись движений при проведении - Записывать выбранные)
6. Наборам движений, которые будут записываться (включая пустые), устанавливается признак Записывать = Истина
7. Для наборов, по которым нужно проверять остатки, устанавливается БлокироватъДпяИзменения = Истина
Версия 8.1 Версия 8.2
8. Контроль остатков
Считываются текущие остатки (с использованием конструкции ДЛЯ ИЗМЕНЕНИЯ). Из них вычитается количество, списываемое документом. Если результат отрицательный, проведение документа отменяется Если результат положительный, заполняются наборы движений документа Заполняются наборы движений документа
9. Если нужно проверять остатки, наборы движений записываются методом Движения.3аписать() (в результате их признак Записывать будет установлен в значение Ложь)
10. Выполняется контроль остатков: считываются текущие остатки. Если результат отрицательный, проведение документа отменяется
11. После выхода из обработчика Обработка проведения будут автоматически записаны все модифицированные наборы движений 11. После выхода из обработчика Обработка проведения будут автоматически записаны все наборы движений, у которых признвк Записывать все еще остался в значении Истина
Рассмотрим все пункты по порядку.
1. Режим управления блокировками данных.
В версии 8.1 стандартным режимом для новой конфигурации был авто-
матический режим управления блокировкой данных.
В версии 8.2 для новой конфигурации стандартно используется управ-
ляемый режим управления блокировкой данных (рис. 321).
Для разработчика это означает, что в тех случаях, когда требуется осо-
бенное использование блокировок, теперь нужно устанавливать управ-
ляемые блокировки, реализуемые менеджером блокировок 1 (^Предпри-
ятия 8, а не пытаться использовать блокировки СУБД. Необходимость
этого мы как раз и увидим при проведении документа в пункте 7.
Рис. 321.
Режим управления
блокировкой данных
2. Контекст, в котором выполняется проведение.
Раньше в подавляющем большинстве случаев проведение документа
выполнялось на клиенте, потому что практически весь код выполнялся
на клиенте. В некоторых случаях процедура проведения документа
выносилась на сервер, но это нельзя было назвать правилом.
Теперь прикладные объекты существуют только на сервере, изменение
базы данных возможно только на сервере, и, соответственно, прове-
дение документов выполняется только на сервере.
3. Режим исполнения программного кода.
Раньше в подавляющем большинстве случаев проведение документа
выполнялось в обычном режиме. Лишь иногда, если проведение выно-
силось на сервер (в привилегированный модуль), использовался режим
исполнения кода без проверки прав.
Теперь при создании нового документа платформа автоматически уста-
навливает ему свойства Привилегированный режим при проведении
и Привилегированный режим при отмене проведения (рис. 322).
Рис. 322. Режим проведения документа
Это означает, что обработчики событий Обработка проведения и Обра-
ботка удаления проведения будут выполняться на сервере без проверки
прав максимально быстро.
Новая версия платформы позволяет устанавливать привилегированный
режим исполнения кода программно, поэтому теперь нет необходи-
мости выносить код в специальные модули, с одной стороны, а с другой
стороны, сама платформа может использовать привилегированный
режим в нужные ей моменты времени.
ПОДРОБНЕЕ
Раздел Привилегированный режим, см. стр. 375.
4. Удаление существующих движений при перепроведении доку-
мента.
В версии 8.1 стандартным поведением системы было удаление дви-
жений документа перед выполнением обработки проведения. Таким
образом, находясь в обработке проведения, мы всегда имели состояние
информационной базы, не учитывающее существующие движения
документа.
Такое поведение обеспечивалось тем, что для нового документа плат-
форма сразу же устанавливала свойство Удаление движений в значение
Удалять движения автоматически. Это означало, что движения будут
удаляться и при проведении документа, и при отмене проведения (рис.
323).
8.1 - проведение
8.1- отмена проведения
После записи
Модуль формы
Переа эагмсыо
Модуль
объекта
« Удаление существующих движений документа »
« Запись документа »
После записи
— <
Рис. 323. Последовательность событий при проведении и отмене
проведения документа в версии 8.1
Помимо этого существовало второе значение - Не удалять движения
автоматически, которое позволяло разработчику создавать собст-
венные нестандартные сценарии проведения документов.
I версии 8.2 это свойство, Удаление движений, теперь имеет третье
начение - Удалять автоматически при отмене проведения. Именно
то значение устанавливается платформой для новых документов (рис.
24).
1 Докум нт Накладная
_ □ X
ОсМОИ№М
Подсистемы
Налет
Падем
Вески-
Праве
Обмее
Проведение:
Оперативное проведение 1 Разрешил
опт*
Данине
Намерение
( В Движения
Поеладовательмостм
Ждаямы
Фермы
Ксмеады
Макеты
*4 Конструктор движем
X
Т о; эдные Запасы I
Взаиморасчеты
Продажи
Права
Проча*
Действия
<нвзад j [ Далее» ' Закрыть Сгравка
ис. 324. Свойство «Удаление движений»
►го означает, что теперь стандартным поведением платформы буцет
цаление движений только в случае отмены проведения документа.
I случае проведения документа движения удаляться не будут (рис.
25).
'аким образом, теперь, котда мы находимся в обработке проведения,
нформационная база содержит существующие движения документа.
I новой версии сохранены и два прежних значения этого свойства -
далять автоматически и Не удалять автоматически, которые позво-
яют реализовывать нестандартные сценарии проведения.
8.2 - проведение
Модель формы
клиент
Переа здгм
Модуль формы
сервер
Обработке
Проверки
заполнения
Модуль объекта
сервер
8.2 - отмена проведения
Рис. 325. Последовательность событий при проведении и отмене
проведения документа в версии 8.2
5,6. Запись движений.
В версии 8.1 был принят следующий подход к записи движений.
Для заполнения движений документа использовались наборы записей,
содержащиеся в свойстве документа Движения. Те наборы, которые
в процессе обработки проведения оказывались модифицирован-
ными, система автоматически записывала после выхода из обработки
проведения.
В новой версии платформы при добавлении нового документа ему
стандартно устанавливается новое свойство Запись движений при про-
ведении в значение Записывать выбранные (рис. 326).
Это значит, что разработчик должен в явном виде для каждого набора
записей в свойстве Движения указать, следует ли его записывать.
Для этого используется свойство набора записей Записывать (лис-
тинг 13).
Рис. 326. Свойство «Запись движений при проведении»
Листинг 13. Использование свойства «Записывать» набора записей
регистра
Ъсияпура 0Oraedt»'.»TIfiii—ппя Ютеав, Реимч}
I! Создание движений е регистре н .копления ТоварныеЗапасы
Движения.ТоварныеЗапасы.Записывать Истина;
Доя каждого ТекСтрокаЗ овары Из Гевары 1икл
Движение • Движения.ТоварныеЭапасы.Добавить<) '
Ьапшмвнма , _-е>ора движем и
Уч
|Кы Дикла,
<' Создание движения’ в регистре накопления Взаиморасчеты
Движения Лзаимораметы.Записывать • ’Истина;
Движение • Движения.Взаиыораt <гты Добавить<)*
i Заполнение кагора движении
1Г«
КонецПррцедуры
Те наборы движений, которые после окончания обработки проведения
все еще будут иметь свойство Записывать - Истина, будут автомати-
чески записаны платформой.
Свойство документа Запись движений при проведении может иметь
и другое значение - Записывать модифицированные. Это значение поз-
воляет работать по «старому» сценарию проведения документов.
7. Блокировка данных, используемых для контроля остатков.
В версии 8.1, в тех случаях, когда нужно контролировать остатки и после
этого записывать движения в этот же регистр, использовался запрос с
конструкцией ДЛЯ ИЗМЕНЕНИЯ. Эта конструкция позволяла заблоки-
ровать данные регистра от чтения другими транзакциями, чтобы избе-
жать возможных конфликтов блокировок при записи данных в этот
регистр.
В версии 8.2, как мы уже говорили в п. 1, используется управляемый
режим управления блокировкой данных, поэтому конструкцию ДЛЯ
ИЗМЕНЕНИЯ использовать бессмысленно, нужно устанавливать управ-
ляемые блокировки 1С:Предприятия 8.
Для того чтобы облегчить эту задачу, у наборов записей регистров
накопления и регистров бухгалтерии реализовано новое свойство Бло-
кироватьДляИзменения.
Если нужно контролировать остатки, а затем записывать движения в
этот же регистр, то это свойство нужно установить для набора записей
этого регистра в свойстве Движения (листинг 14).
Листинг 14. Использование свойства БлокироватьДляИзменения
набора записей регистра
/ели Режим " РежимПроведенияДокумента.Оперативный Тогда
Движения.ТоварныеЗапасы.БлокироватьДляИзменения *= Истина
►онецЕсли;
Действие этого свойства аналогично тому, как если бы разработчик
самостоятельно установил (прописал в коде) нужные управляемые бло-
кировки 1С:Предприятия 8. Необходимую управляемую блокировку
платформа установит автоматически при записи этого набора записей.
В результате другие управляемые транзакции, использующие
аналогичную блокировку, не смогут начать читать этот регистр, пока
не закончится текущая транзакция.
8,9,10. Контроль остатков.
В версии 8.1 остатки проверялись следующим образом. Когда мы нахо-
дились в обработке проведения, информационная база не содержала
движения нашего документа. Поэтому нужно было получить акту-
альные остатки и вычесть из них то количество, которое списывается
документом. Если результат получался отрицательным, тогда прове-
дение документа отменялось.
В версии 8.2, когда мы находились в обработке проведения, информа-
ционная база содержала движения нашего документа. Поэтому в ситу-
ации, когда нужно проверить остатки, необходимо поступать следу-
ющим образом: сначала в процедуре проведения явным образом запи-
сать все движения документа, а после этого получить актуальные
остатки и посмотреть, не появились ли среди них отрицательные. Если
появились, отменить проведение документа. При отмене транзакции
будет автоматически восстановлено состояние информационной базы,
существовавшее на момент начала транзакции (листинг 15).
Листинг 15. Пример контроля остатков при проведении документа
it Запишем движения
Движения.Записать()j
//Контроль остатков при оперативном роведении
Коли Режим =» РежимПроведеиияДокумента. Onej ативный Тогда
// Создадим запрос* чтобы контролировать остатки по товарам
Запрос <• Новый Запро ("’ВЫБРАТЬ, ");
Запрос.УС’тановить-Параметр ("Склад” Склад} ।
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РеэультаТСНехваткой J Запрос.Выполнить ();
ВыборкаРеэу/ьтатаСНёКщатк-й РезультатСНвхваткой.Выбрать();
// Выдадим ошибки-для g которых не хватает остатка
Пока ВыборкаРезультатаЙНехваЛкой.Следующий} i 1^»
Сообщение ? Новый ообщениеПользователю );
Сообщение.Текст * "Не хватает " +
Выборва.’езультатаСНехваткдй-Нехватка +
” .единиц товара """ +
ВыбцэкаРеэультатаСНехваткой
.’ГоварПредставление ♦
на складе """ + Склад +
Максимальное количество} ” 4-
ВыборкаРезультатаСНехваткой
.МаксимальноеКоличество +
п и я
t
Сообщение,Поле -= "Товары["’ +
(ВыСоркаРезультатаСНехваткей
•ЦОмерСтроки - 1) •
"1.Количество";
Сообщение.УстановитьДанные (Это«- .'-.кт),
Сообщение.Сообщить() ;
Отказ = Истина;
КонецЦикла:
•онецЕсли;
Для того чтобы записать все созданные движения, у коллекции наборов
записей в свойстве Движения реализован новый метод Записать ().
Он выполняет запись всех наборов из этого свойства, у которых уста-
новлено свойство Записывать = Истина.
Порядок записи регистров с помощью этого метода всегда один и
тот же, он обеспечивается платформой. Это позволяет избежать воз-
можных конфликтов блокировок с другими транзакциями, записываю-
щими данные в эти регистры.
После такой записи свойство Записывать у наборов записей сбрасы-
вается в значение Ложь, чтобы после выхода из обработки проведения
эти наборы не были записаны второй раз.
11. Запись движений.
Если при проведении документа не нужно контролировать остатки, то
внутри обработки проведения не нужно записывать движения в явном
виде. Те наборы движений, которые после окончания обработки прове-
дения все еще будут иметь свойство Записывать - Истина, будут автома-
тически записаны платформой.
Какие есть особенности у новой модели проведения документа?
Например, если при проведении нужно прочитать остатки без учета
существующих записей документа, то перед чтением остатков нужно
записать пустой набор записей для этого регистра.
Также следует учитывать, что если при проведении документов по новой
методике используется запись движений непосредственно набором
записей из коллекции движений (например, Движения. ТоварныеЗа-
пасы.Записать () ,анеДвижения. Записать () ),тотакимнаборам
записей НЕ СЛЕДУЕТ устанавливать свойство Записывать в зна-
чение Истина, т. к. после записи Движения. ТоварныеЗапасы. За-
писать () свойство Записывать для набора Движения. Товар-
ныеЗапасы не будет сброшено. Это приведет к повторной записи
набора после окончания обработки проведения с возможным разру-
шением информации о движениях, которые были записаны непос-
редственно набором. В особенности если запись движений набором
производилась без замещения.
Чем новая модель проведения документа лучше?
Во-первых, тем, что если в этом проведении регистр не должен
меняться, система его не очищает. В версии 8.1 все регистры очища-
лись всетда.
Во-вторых, если регистр при проведении меняется, но его остатки не
проверяются, то система максимально эффективно запишет новый
набор с замещением ранее записанного набора.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Использу-
ется новая методика проведения документов.
В метаданных для документов, по которым используется проведение,
для свойства ЗаписьДвиженийПриПроведении установлено значение
ЗаписыватьВыбранные, а для свойства УдалениеДвижений - значение
УдалятъАвтоматическиПриОтменеПроведения.
В модулях документов, соответственно, выполняется установка свойс-
тва Записывать для наборов записей регистров, по которым документ
может делать движения. Это обеспечивает запись после проведения вы-
бранных наборов записей независимо от того, заполнены они или нет.
В документе Расход?овара демонстрируется методика контроля остатков.
При оперативном проведении набору записей регистра ТоварныеЗапасы
устанавливается режим БлокироватьДляИзменения. Это обеспечивает
блокировку регистра при записи, исключающую параллельную запись
другими транзакциями. Блокировка необходима для контроля остатков
Контроль остатков выполняется после записи движений. Запись движе-
ний документа выполняется в обработчике проведения вызовом метода
Записать коллекции движений. Это позволяет выполнить необходимые
действия в обработчике после записи движений регистров. В данном
случае выполняется запрос для контроля остатков.
При нехватке товаров формируется сообщение. При этом в сообщение
включается информация, позволяющая системе в форме документа
показать пользователю то место, где необходимо исправить вводимые
данные. Для этого в сообщении задается имя поля, которое нужно акти-
визировать, и вызывается метод УстановитьДанные. который включает
в сообщение информацию о пути к данным объекта в форме.
Настройки пользователей хранятся
в информационной базе
В версии 8.1 существовал механизм сохранения настроек системы,
выполненных пользователем. Это, например, размеры и положение
открытых форм, настройки печати табличного документа, данные
форм, значения реквизитов обработок и т.д.
Эти данные в основном сохранялись системой в нескольких внешних
файлах и не являлись частью информационной базы. В результате при
резервном копировании, восстановлении и других подобных действиях
эти данные могли быть забыты, потеряны и т.д.
Другим отрицательным моментом являлось то, что разработчик не
имел доступа к сохраненным настройкам пользователя и не имел воз-
можности переопределить работу системного механизма сохранения
настроек.
В версии 8.2 подавляющее большинство настроек пользователя стан-
дартно хранятся в системных таблицах информационной базы, и разра-
ботчик имеет к ним доступ.
Кроме этого, разработчик может переопределить хранение боль-
шинства настроек системы и уже в составе конфигурации реализовать
собственный механизм хранения настроек и доступа пользователей
к ним.
Исключение составляют лишь настройки отбора, порядка и группи-
ровки динамических списков, которые платформа стандартно не сохра-
няет.
ПОДРОБНЕЕ
Разделы: Списки можно группировать по значению, см. стр. 111, Отбор
в списках, см. Стр. 115, Сортировка списка по нескольким колонкам,
см. стр. 121.
Что такое настройка
Что представляет собой одна настройка? Это некоторая совокупность
сохраняемых данных (в общем случае произвольная), привязанная
к чему-то в конфигурации и имеющая некоторое представление.
Совокупность данных, которые сохраняются, называется настройки.
Например, если речь идет об автоматическом сохранении данных
формы, то настройками будут являться значения, введенные пользова-
телем в поля формы.
Или если речь идет о сохранении вариантов отчетов, то настройками
будут являться доступные поля, пользовательские поля, условное
оформление, структура отчета и другие данные, характеризующие кон-
кретный вариант отчета.
Как мы уже сказали, настройки (сохраняемые данные) обязательно
привязаны к чему-то в конфигурации. А именно - к настраиваемому
объекту и к пользователю информационной базы.
Что является настраиваемым объектом, зависит от вида настройки.
Например, в случае вариантов отчетов настраиваемым объектом явля-
ется отчет, содержащийся в конфигурации.
В случае с данными формы настраиваемым объектом является форма
конфигурации и так далее.
Для указания того, к какому объекту принадлежит эта настройка,
используется ключ объекта - значение, однозначно идентифициру-
ющее настраиваемый объект.
Если настройка сохраняется в стандартном хранилище, то ключ объ-
екта - строка. Например, для настройки варианта отчета ключом объ-
екта может быть строка вида Отчет.ОсгаткиТоваров, а для данных
формы - строка вида Обработка.ВыгрузкаДанных.Форма.Форма.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика,
Приложение 4 Перечень автоматически сохраняемых настроек.
Если настройка сохраняется в хранилище, созданном в конфигурации,
то ключ объекта может быть произвольного типа.
ПОДРОБНЕЕ
Раздел Хранилища настроек, см. стр. 180.
Понятно, что одну и ту же форму, один и тот же отчет разные поль-
зователи могут настроить по-разному. Поэтому каждая настройка
однозначно привязана еще и к пользователю информационной базы.
Для этого используется строка - идентификатор пользователя. Если
настройка сохраняется платформой автоматически, то в качестве иден-
тификатора пользователя платформа использует имя пользователя.
Например, МухинАВ.
Кроме этого, многие настраиваемые объекты допускают существо-
вание нескольких настроек. Например, один пользователь для одного
отчета может создать несколько вариантов, для одной формы этот
же пользователь может сохранить несколько наборов ее параметров.
Чтобы отличать одну настройку этого объекта и этого пользователя
от другой, используется ключ настройки - значение, однозначно иден-
тифицирующее данную настройку в разрезе ключа объекта и иденти-
фикатора пользователя.
Если настройка сохраняется в стандартном хранилище, то в качестве
ключа настройки платформа использует текстовую строку, пред-
ставляющую собой уникальный идентификатор (UUID). Например,
57d67b45-3ec6-4ed2-82f9-8debcc89cb85.
Если настройка сохраняется в хранилище, созданном в конфигурации,
то ключ настройки может быть произвольного типа.
Последней характеристикой настройки является ее представление -
понятное пользователю наименование настройки. Сохраняя настройку,
пользователь сам задает ее представление, а при выборе из существу-
ющих настроек представление позволяет ему отличить одну настройку
от другой.
В результате, например, одна настройка данных форм может выглядеть
следующим образом:
Настройки - структура, содержащая имена реквизитов формы
и значения, которые пользователь ввел в эти реквизиты.
Ключ объекта - Обработка.ВыгрузкаДанных.Форма.Форма.
Ключ настройки - 57d67b45-3ec6-4ed2-82f9-8debcc89cb85.
Идентификатор пользователя - МухинАВ.
Представление - Выгрузить данные за прошлый месяц.
Как хранятся настройки
Набор системных таблиц, в которых платформа автоматически сохра-
няет различные настройки, называется стандартное хранилище
настроек.
Наряду со стандартным хранилищем настроек могут существовать
хранилища настроек, созданные разработчиком в конфигурации.
Всего платформа различает пять видов настроек, то есть пять видов
информации, которая является настройками:
варианты отчетов,
пользовательские настройки отчетов,
данные форм,
общие настройки,
системные настройки.
Все эти настройки могут храниться в стандартном хранилище. И в то
же время для хранения всех видов настроек, кроме системных, можно
назначить собственное хранилище, созданное в конфигурации.
Поскольку каждый из видов настроек имеет свои особенности, рас-
смотрим их по отдельности.
Варианты отчетов и пользовательские настройки
отчетов
О том, как в версии 8.2 настраиваются отчеты, рассказано в других раз-
делах этой книги. Здесь пойдет речь только о том, как можно хранить
эти настройки.
ПОДРОБНЕЕ
Разделы: Варианты отчетов, см. стр. 134, Настройки вариантов отчетов,
см. стр. 145.
И для тех, и для других настроек разработчик может переопределить
стандартное хранилище двумя способами.
Во-первых, в свойствах конфигурации. Это будет работать для всех
отчетов, которые есть в конфигурации. Для этого у конфигурации есть
два свойства (рис. 327):
Хранилище вариантов отчетов,
Хранилище пользовательских настроек отчетов.
Рис. 327. Свойства конфигурации для назначения хранилищ
Во-вторых, в свойствах конкретного отчета. Это будет работать только
для данного отчета. Для этого у отчетов есть два свойства (рис. 328):
Хранилище настроек,
Хранилище вариантов.
Таким образом, когда платформа решает, куда сохранить варианты
отчетов или пользовательские настройки отчетов, она действует по сле-
дующему алгоритму (рис. 329):
Сначала смотрит свойства отчета. Если в них хранилище пере-
определено, сохраняет туда.
Если в свойствах отчета ничего не указано, она смотрит свойства
конфигурации. Если в них хранилище переопределено, она
сохраняет туда.
Если в свойствах конфигурации тоже ничего не указано, она сохра-
няет настройки в стандартное хранилище (в системные таблицы
информационной базы).
Рис. 328. Свойства отчета для назначения хранилищ
Рис. 329.
Алгоритм сохранения
настроек отчетов
При сохранении в стандартное хранилище для настроек вариантов
отчетов ключом объекта является полное имя отчета, например
Отчет.ОстаткиТоваров.
Для пользовательских настроек отчетов ключом объекта является
полное имя отчета плюс ключ настройки варианта отчета, к которому
относится данная пользовательская настройка.
Например, если есть вариант отчета с ключом настройки 57d67b45-
3ec6-4ed2-82f9-8debcc89cb85, то для пользовательской настройки этого
варианта отчета ключ объекта будет Отчет.ОстаткиТоваров/ 57d67b45-
3ec6-4ed2-82f9-8debcc89cb85.
В стандартном хранилище сохраняются только варианты отчета,
созданные в режиме 1С:Предприятие. Варианты отчета, созданные
в конфигураторе, сохраняются в самой схеме компоновки данных.
То же самое относится и к пользовательским настройкам вариантов.
Пример
Чтобы для примера посмотреть, как выглядят настройка варианта и
пользовательская настройка отчета, можно создать отчет, например
ОстаткиТоваров. В режиме 1С:Предприятие сохранить вариант отчета,
сохранить пользовательскую настройку этого варианта, а затем
выполнить следующий код (листинг 16).
ПОДРОБНЕЕ
Этот пример можно посмотреть в демонстрационной конфигурации
Работа с настройками.
Раздел Как получить доступ к настройкам в системном хранилище,
см. стр. 341.
Листинг 16. Пример работы с настройками отчетов
' / И* ’системного хранилища рлвч т- варианте, Wrere
К.-ж-<^кущегоВарианта я ХранилицеСистеыньгЛв»:-троек
.Загрузить("Отчет^ОстаткиТоваров
/КлючТекувАгсВарНанта") .-
' г» хранилищ* вариантов отчетов получитм>
/ - список имеющихся вариантов отчета,
описание текущего . лганта отчета,
-там вариант (настройки» йи-чета.
•. jKBap-витов • Хранилище'_>при*нтовОтч“тов
. ПолучмрьСписок ("Отчет. сччиткиТСваров");
ОписащияВариадта Г хранили.»- а» «ан» ч. тчеяив
,Получи'1*С«и':»нир (~т» .-’.-1-г><.'оВаров" ,
КшочТекушегоВарианта);
вриа^тОтчет» в Храиилише^-^риантвжОа'четов
.Загрузить. ("СИПет. £Из?а1ч^Г«хров"
, к.тя-ЛЧкг щ го&»: иаыта»;
/ ’ Из системного ХР<*псэиа пстг.’читЬ клйч маущей польз»чвательсксй
•t нвстройки варианта.
КлючВариант--.—та * "Отчет.ОстатеиТоварвВ/'’
+ КличТекущегоЕар^ант*;
► ц^УТекуидайПольэорательскойНастроики «• ъ |.анилищесистомиыхНастроек
.Вагруаить (Ключ^риакт^О^ чета
* ” Г-мя7*«у»«Пр«1ьз^«₽Гв^екихНа1гтреек">«
Из хранилища пользовательсквш натерев* отчетов получить-
1 • список имеющихся nc.i. яовательских наг^тревк
№я итого варианта свчета»
, . - опиСдиие текущей пользовательской застройки.
If ~ са»«у пользовательскую настроил, ьнасцройки)
/ ? этого варианта отчета.
-_писокПе»ьй£ла*гельскихНастроек «
Хранил ИщеПользователь :кихНастроекйтчетс1В
.Палз'читьсписок (КлючВариантаОтчета);
'писани^г. ьзователь;» *4п^стр'.«*Г ' >
X]ьзнилищеПользовательскихНастроекОтчеток
,ПолучжгьОп ание^КлсчйариантаОтчета»
КлючТекуи^Пользовател ьскойНастрСйки} д
1*ппсм*ик скMtiacrpctaia
ХрайилищеПальЛмватепвскихНастроекОтчетов
Загрузить(КлючВариантаОтчета
. КльмТек ,-явиП ш*ь >1 г tOtlii сЛПзт. if и Л nil.
Данные форм
Данные форм — это значения, установленные для тех или иных рекви-
зитов формы. Данные формы удобно сохранять, например, для того,
чтобы запомнить значения, с которыми запускалась некоторая обра-
ботка.
Система может сохранять данные форм двумя способами: автомати-
чески и вручную.
Автоматическое сохранение данных формы в настройках выпол-
няется при закрытии формы. При следующем открытии этой формы
сохраненные данные будут восстановлены в соответствующих рекви-
зитах формы. Автоматическое сохранение данных всегда выполняется
в системное хранилище, и переназначить его в собственное хранилище
нельзя.
Стандартно автоматическое сохранение данных формы в настройках
отключено. Чтобы его включить, у конкретной формы нужно устано-
вить свойство Автоматическое сохранение данных формы в настройках
в значение Использовать (рис. 330).
События.
| При создании на сервере
Рис. 330. Свойство «Автоматическое сохранение данных формы
в настройках»
После этого в списке реквизитов формы станет доступна колонка
Сохранение, в которой нужно отметить те реквизиты формы, значения
которых должны автоматически сохраняться.
Чтобы сохранять/восстанавливать данные формы вручную, также
нужно включить одно из свойств формы - СохранениеДанныхФор-
мыВНастройках. Вручную данные формы можно сохранить/восста-
новить в любой момент работы с формой с помощью стандартных
команд формы Сохранить параметры..., Восстановить параметры...
Эти настройки стандартно также хранятся в системном хранилище,
но разработчик может переназначить хранение этих настроек в собс-
твенное хранилище.
Задать собственное хранилище для данных форм можно двумя
способами.
Во-первых, в свойствах конфигурации. Это будет работать для всех
форм, которые есть в конфигурации. Для этого у конфигурации есть
свойство Хранилище настроек данных форм (рис. 331).
Рис. 331. Свойство «Хранилище настроек данных форм»
Во-вторых, в свойствах конкретной формы. Это будет работать
только для этой формы и только при «ручном» сохранении настроек.
Для этого у формы есть свойства (рис. 332):
Сохранение данных формы в настройках,
Хранилище настроек.
О •, ка ЫлртлвгавАгрегвгаымПрала* Форма
а Реквизит
Обновлено
Оптимальность
Перестроетме
Рет ламентноеОбнов ленив
Рекламе кт ноеПера строение
Режиг-Аг per ат ое
I
Тип
[ОбработкаОбъект Ыправ легевАгрега..
Строка
Строка
Строка
Булево
Булево
Булево
j Реквизиты Команды f Параметры
Основные
Заголовок
Автоматический заголовок У
Доступность V
Разрешить изменять Форму W
Группировка Вертикальная
Ширина подчиненных элементов Авто
Использование
Положение командной панели j Нет
Состав команд Открыть
Режим открытия окна [блокировать окно владельца
Поведение Enter [Переход по элементам
Проверять заполнение автоматически [w"J
Хранилище настроек
Неловкое оформление Открыл»
▼ Расположение.
g чд *
Рис. 332. Свойства формы для назначения хранилища
Таким образом, когда система решает, куца сохранить настройки данных
форм, она действует по следующему алгоритму (рис. 333):
Сначала смотрит свойства формы. Если в них указано какое-то
хранилище, сохраняет в него.
Если в свойствах формы ничего не указано, платформа смотрит
свойства конфигурации. Если в них указано какое-то хранилище,
она сохраняет в него.
Если в свойствах конфигурации тоже ничего не указано, она сохра-
няет в стандартное хранилище (в системные таблицы информаци-
онной базы).
Рис. 333.
Алгоритм сохранения
настроек данных формы
ПРИМЕР
Чтобы для примера посмотреть, как выглядит настройка данных фор-
мы, можно создать обработку, например ВыгруэкаДанных. Создать
у нее несколько реквизитов, разместить их в форме, у формы вклю-
чить свойства СохранениеДанныхФормыВНастройках и Автоматическое
сохранение данных формы в настройках, отметить все реквизиты.
Затем в режиме 1С:Предприятие ввести данные в поля формы,
сохранить параметры (Все действия - Сохранить параметры), ввести
другие данные в поля формы и закрыть форму. Затем выполнить код
(листинг 17).
ПОДРОБНЕЕ
Этот пример можно посмотреть в демонстрационной конфигурации
Работа с настройками.
Раздел Как получить доступ к настройкам в системном хранилище, см.
стр. 341.
Листинг 17. Пример работы с настройками данных формы
•7 Из системного «рздипища получить .Данные формы»,
сохраненные автоматически.
ТекущаяНастр А жаДанныкФорыы J р»нилищ<=системныхНастраек
.Загрузить("Обработка.Выгр экаДанных.Форма.Форма
(ТекущиеДанные");
f ИЗ СЖЯЯвЮ'ГЧ КрвНИЛИЩа ПОЛУЧИТЬ КЛЮЧ текуч»гЖ|.ИаЮ’#|ОеК
// данных ф-рыы
< ,Т<кущц1ШастрсекДанныхФор»*« - ХранилишеСиетемныхНастроек
. Э*г₽у иv<а (" । < - тка .Вытру»»» > иных Форма. Форма
ЛКпючТекущихНас!гр«н*кДанных") ;
: Из хранилища ценных формы получить;
tf м список м»еххцихсз1 настроек данных формы,
7 — впивание настройки данных формы,
7 - сами даниве настройки) формы
СпмсокНа гроекДанныхФормы » ХранилищеН»г'Ч'РоекДанныхФоры
.1к>лучитъСписюк( "ОбраБотка .ВыгруэкаДанных.Ф. рм..©Орма") }
рписаниаНастройкиДамВыхФормы • Хранилище»ч^-трвекДамныхФорм
Пол; чт ьСписание (“ОСрафотк -
, Выг^ гузкаДанных. фщ—. Форма*,
КжчТекущикНаетгн|в»ЛаиМЫхФормы) г
НастроЙкаДмадММ» дав « ХранилииеНатчгромсДанныхФсры
,Загрузит»(-Обра- отка.Выгр» зкаДаиных
. форь!а .Форма ",
Kjawrte г ,тг.-хНа<.т1ОекД^нныхФо5 v> ) ;
Общие настройки
Общие настройки разработчик может придумать сам. Под общими
настройками понимаются произвольные настройки, относящиеся к кон-
кретной конфигурации. Что это за настройки — должен определить сам
разработчик, исходя из логики работы своего прикладного решения.
Платформа самостоятельно не сохраняет никакие общие настройки. Но
разработчик может сохранять всевозможные собственные настройки
либо в стандартном хранилище, либо в хранилище, созданном в конфи-
гурации. Для этого используются методы менеджера конкретного хра-
нилища конфигурации Сохранить () и Загрузить ().
Хранилище общих настроек можно получить с помощью одноименного
свойства глобального контекста ХранилищеОбщихНастроек. Причем
если в свойствах конфигурации не указано специального хранилища
для общих настроек, будет возвращен экземпляр менеджера стандарт-
ного хранилища, обслуживающий общие настройки.
Если в свойстве конфигурации указано конкретное хранилище, будет
возвращен менеджер этого хранилища (рис. 334).
Рис. 334.
Алгоритм сохранения общих настроек
Для этого у конфигурации есть свойство Хранилище общих настроек
(рис. 335).
Рис. 335. Свойство «Хранилище общих настроек»
Пример
Попробовать работу с общими настройками можно на следующем
примере (листинг 18).
ПОДРОБНЕЕ
Этот пример можно посмотреть в демонстрационной конфигурации
Работа с настройками.
Раздел Как получить доступ к настройкам в системном хранилище,
см. стр. 341.
Листинг 18. Пример работы с общими настройками
Задать представление первое настройки.
• исан ^Пе ( ь- 'йНастройки » Новый ОписаниеНастроек;
гписаниеПервойНа и Представят. -е "Представление первой
настройки"!
• / Для примера нек ’"ь.рый Спшст Зг>ачечий-
/.„нНыеНастроики * Новым Струхх/р*(“НасфиНастройка17“, , 7) :
' / * в ранить первуп налгрс^ку,
f Цэльзователь. нс указан в ьтройк i будет таранена
' щж текущего половая т»л я
ХранИлипс«ОбщихНастрси»к .Сохранить <"М^Ц|и9ч0вЬе>гта”
, " * . < <4-.. -<-| оикч! ",ЛанныеНас-гройпи
. т-’СаниеРк ».’иь , । айки) ;
задач» феягу«мпм* i -трпаим -
Сги.с.ниеВт^ .. , .(..аки — и-~< ♦rw.^.h—n.-
ОйисаннеВтороййастрс, хки.дмаеммьни» “' "и егхч «-«ниме в-' той
/Для примера - (цмииня!* вм>явм**|
акиыеНастройки - ^МаюидМ|м*иа|''Нв''>п ,е чийчечие");
'/ в|-хранить вторую цасэрсйву.
/f n^<rc. вс >*яь >te Ука.дц - ыастр-ifea Вуввя*
> i SM&. «<*>>•* г ф пальзквеателя
ХранилишеОбщихНастроек. С.. > гакн*ь ! ‘Mie>wr« *
> "*ЗП<ЧНАДТр..иви.”, '
. Сгясанж£>сс%>а*№са.рс.‘1>лН
!f ПадвГфтй ит хранилища обвде> пжвгроайь
1Л иТВЬж мг.н» Настроек,
р » сяжгюие каждой интI йкк,
'*/ - сами «ыигмнс/жи.
ВИСОК йщих • Кр^НИЯИЩ“^ЩИКй4»« ' |- • ’
.Получит»Спите* |*^>«АЛни0н«м1Мна^ >
' «саяииКвстж-<ки1 — X|'3iouTse<''e«'XJUicTpa«*
Пол, «»-зя>Омйвк»яе г"Ипй!г.'всч1*’миит«"
V ”К.»^НМ-т ;
пи«а».- ®ас сит*? ® НршшчвмЯ чвноал^ ф
.Rwi'v «-чг-''ли-.-зд... "1<а*1
t "Кд™4< ету '™ “1г
На врсЯкка! ® > ргкилищеОбиуглННН^ЙМнШвт-|>НН.flMftK8В5йёЙежяв"
, " -хчМлхетрсйки ." 1;
Цастройка2 = Хр нилище 4*ртуос-» . '1»гру«** )">И|ВЬнимг ^». а"
. "ХЯИНВ«^5рЗ|П1е"|_;
Системные настройки
Системные настройки - это настройки, которые требуются для работы
системы вообще, безотносительно к конкретному прикладному
решению.
Например, это расположение и размеры открытых форм, настройки
печати табличного документа Избранное, настройки глобального
командного интерфейса, рабочего стола и так далее.
Возможность переопределить хранение системных настроек отсутс-
твует. Поэтому система всегда сохраняет их в стандартное хранилище
(в системные таблицы информационной базы), рис. 336.
Смете**** нес тройки
Смете»**»
тебл***
Рис. 336.
Сохранение системных настроек
Значения системных настроек - это объекты без свойств и методов.
Практический смысл их использования в основном заключается
в обмене настройками между разными пользователями.
Исключение составляет лишь избранное, в котором есть возможность
работать с отдельными элементами избранного.
ПОДРОБНЕЕ
Этот пример можно посмотреть в демонстрационной конфигурации
Работа с настройками.
Раздел Избранное, см. стр. 99.
Далее приведен пример получения различных системных настроек
(листинг 19).
Листинг 19. Пример работы с системными настройками
,'f Настройка ‘отображения формы: соста»* Мамонтов,,
,f расположение к войст а элемент в.
.-/ Сохраняется после изменение формы режиме 10^Предприятие
• ЕВОе Бейст-ия - Изменить форму).
.стройкаОтображенияФормы Хра илиьчСи тс-миыхПаетроек
. Загрт’иг» ) “Обработка. ВьирузкаДанных
.Форма.Форма
jHa тройкиФориы"JI
// Ратнеры формы и элементов управления, положение i«здзлителвн
' t и ширины колонок таблиц.
зьи ыФормы • хранилище истемныхНастроек
. Загрузить I “Обработка. Выгрузкам1анных. Форш
Форш. Настроя»» кна“);
• > Избранное.
jsB - >ое - жранилишеСистомныиНа ерсек
.Зах^гузить ("Общее/ изврамиоеРаботьй1сльэс®атоляж);
-' ’ Настройка панели разделов.
Сохраняется поста» мзя^в tw -1»тц рв 'ляпов (Ч вез poll м
/» панели разделок...) .
анельРя велев ХраниЛииеСистемныхНастроек
.Загрузить < “Общее/. nej азделсв
/Настрой*» оманднопоИнтерфейса") >
// Настройка панели лей твий,
..' аерл.яется после -изменения панели -вий (Настрой»а
// панели ией^-твий™
ПанельДвйстамй ” ХранилищеСис>геы'ныхНастроек
. Загрузи»! " Подсистема. Продажи/ Панель Действу
/На, л «ькик. «азд н i оИчтерфейоа") ;
// йастр • лакели t. вигадаЯ
/ Сохраняется посла иэыаненмя навели иавютации (Настройка
>' / панели навигации }
ПаяельЯавигаши - Хранилишеси темныхНа
.Загрузить(“Подсистема.Пролажи/ПанельНави^аиии
Застр^киКомАНДи оИняврф*г> *v) >
!} Настройки рабочего -стела (сзстлв и pa .icjz яемие форм
//на рабочем столе).
// Сохра и тс после изменения-рабочего -тола (Настройка
// рабочего стола™} .
₽а*«.1ч «йСт»М| “ Хранилищ СистемиыкНастроет:
. Загрузить (•Оовее/Настройкиг •бочетоРесла*’).
Как получить доступ к настройкам в системном
хранилище
При программной работе с настройками нужно использовать методы
того хранилища, в котором находятся необходимые нам настройки.
В общем случае ситуация выглядит следующим образом: все настройки
могут храниться в стандартном хранилище, или часть из них может
храниться в хранилищах, созданных в конфигурации (рис. 337).
Варианты отчетов
Обцре настрой»
Систе**ые
настрой»
Потъзоватетъсжие
настрой» отчетов
Рис. 337.
Варианты хранения
настроек
Поэтому существуют методы глобального контекста, которые позво-
ляют получить нужное хранилище, исходя из вида настроек, с кото-
рыми предполагается работать.
Если вы хотите работать с системными настройками, то нужно исполь-
зовать свойство глобального контекста ХранилищеСистемныхНа-
строек. Оно всегда возвращает менеджер стандартного хранилища
(листинг 20).
Листинг 20. Менеджер для работы с системными настройками
гне_, ^станда^тногоХранилища « X* анилищеСистемныхНастроек;
Если вы хотите работать с общими настройками, то нужно использо-
вать свойство глобального контекста ХранилищеОбщихНастроек.
Оно вернет либо менеджер стандартного хранилища, либо менеджер
хранилища, созданного в конфигурации, если это хранилище указано
в свойстве конфигурации ХранилищеОбщихНастроек (листинг 21).
Листинг 21. Менеджер для работы с общими настройками
Мене; X; . г "-rO0i>»,xHaci'i< eK fc К^енилищеОбщииНасг, сек;
С настройками вариантов отчета, данных форм и пользовательскими
настройками отчетов сложнее. В принципе для них также сущест-
вуют отдельные свойства глобального контекста: ХранилищеВари-
антовОтчетов, ХранилищеНастроекДанныхФорм и Хранили-
щеПользовательскихНастроекОтчетов. Эти свойства вернут
либо менеджер стандартного хранилища, либо менеджер хранилища,
созданного в конфигурации, если сохранение этого вида настроек пере-
определено в свойствах конфигурации.
Однако если хранение этих видов настроек переопределено в конк-
ретных отчетах или формах, то перечисленные свойства глобального
контекста никак на это не отреагируют. В этом случае нужно исполь-
зовать свойство глобального контекста ХранилищаНастроек и имя
нужного хранилища, определенного в конфигурации (листинг 22).
Листинг 22. Менеджер для работы с хранилищем, созданным
в конфигурации
>ч.неджо1 Моего Хранилища = ХранилищаНастроек.МоеХранилище;
Для получения данных из хранилища или для сохранения данных
в хранилище обязательно нужно знать ключ объекта, к которому отно-
сится настройка.
В случае, когда настройки хранятся в стандартном хранилище
(за исключением общих настроек), используются зарезервированные
ключи объектов, которые описаны в документации.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Приложение 4 Перечень автоматически сохраняемых настроек.
Если настройки хранятся в хранилищах, созданных в конфигурации,
то предполагается, что ключи объектов либо совпадают с зарезервиро-
ванными, либо описаны в документации к прикладному решению.
Когда нужно создавать собственные хранилища
настроек
Общий подход к работе с хранилищами настроек следующий.
Предполагается, что в простых конфигурациях будет использоваться
стандартный механизм хранения настроек в стандартном хранилище.
Это не требует от разработчика какого-либо кодирования.
А вот в сложных конфигурациях разработчик будет создавать собс-
твенные хранилища настроек и самостоятельно управлять сохране-
нием и загрузкой пользовательских настроек.
В каких ситуациях может понадобиться использовать собственное хра-
нилище настроек:
Когда нужна особенная структура хранения настроек. Например,
чтобы они были привязаны к подразделению. Чтобы у всех поль-
зователей одного подразделения были одинаковые настройки.
Когда требуется обмен настройками в распределенной информа-
ционной базе, потому что стандартное хранилище не участвует
в обмене в распределенной информационной базе.
Когда нужно легкое и/или особенное (нестандартное) админист-
рирование настроек.
Как организовать собственное хранилище настроек
Создание собственного хранилища конфигурации рассмотрим на
небольшом примере. Он покажет сохранение настроек данных формы
обработки в хранилище, созданное в конфигурации, и получение их из
хранилища.
ПОДРОБНЕЕ
Этот пример можно посмотреть в демонстрационной конфигурации
Хранилище настроек в конфигурации.
Сначала добавим объект конфигурации Хранилище настроек - Насгрой-
киФорм.
Затем укажем это хранилище в свойстве конфигурации Хранилище
настроек данных форм. Это будет означать, что данные любой формы
можно будет сохранить в этом хранилище.
После этого добавим объект конфигурации, в котором собственно и
будут храниться сами настройки. Можно использовать любой объект,
который подходит для этого с точки зрения разработчика. Мы будем
использовать справочник.
Добавим справочник ХранилищеДанныхФорм с реквизитами:
КлючОбъекта (тип Строка, длина 255),
ДанныеФормы (тип ХранилищеЗначения).
Реквизит для хранения пользователя, которому принадлежит настройка,
мы не создаем. Все настройки данных форм будут у нас одинаковы для
всех пользователей.
Заметьте, мы создали хранилище, создали справочник, в котором будут
храниться настройки, но пока они никак между собой не связаны.
То есть из свойств конфигурации известно, что данные формы будут
храниться не в стандартном хранилище, а в каком-то другом, но где
«физически» расположено это хранилище, пока неизвестно. Позже мы
увидим, как устанавливается эта связь.
Теперь добавим объект конфигурации Обработка. На примере формы
этой обработки посмотрим, как работает сохранение данных формы
в настройках.
Обработку назовем ЗаполнитьСправочники. Она (теоретически) будет
добавлять в выбранный справочник указанное количество элементов
и задавать их наименование.
Для этого у обработки будет четыре реквизита:
Справочник (тип Строка, длина 10, переменная) - для указания
имени заполняемого справочника.
Наименование (тип Строка, длина 20, переменная) - для ука-
зания строки, с которой будет начинаться наименование добав-
ляемых элементов; обработка будет автоматически добавлять
к нему порядковый номер элемента.
НачинатьСНомера (тип Число, длина 10) - порядковый номер,
с которого начинается добавление номеров к наименованию эле-
ментов.
КоличествоДобавляемыхЭлементов (тип Число, длина 10)
количество элементов, которые будут добавлены в справочник.
Создадим форму этой обработки, и свойство формы Сохранение данных
в настройках установим в значение Использовать список.
Перейдем к реквизитам формы и для всех реквизитов отметим, что их
значения будут сохраняться.
Для красоты, хотя можно этого и не делать, вынесем команды сохра-
нения и восстановления параметров прямо в форму.
Теперь у хранилища настроек НастройкиФорм с помощью конструк-
тора создадим две стандартные формы:
форму загрузки настроек,
форму сохранения настроек.
Чтобы познакомиться с механикой сохранения и восстановления
настроек в собственное хранилище, создадим у этих форм обработчики
событий При создании на сервере, в которых напишем любой оператор,
на который можно установить точку останова, например, а=4;. И уста-
новим на нем точку останова.
Такой же текст напишем в обработчиках модуля менеджера хранилища
настроек:
ОбработкаЗагрузки,
ОбработкаСохранения.
Если теперь запустить отладочный сеанс 1С:Предприятия, то мы
увидим, что при выполнении команды Сохранить параметры... откры-
вается форма сохранения нашего хранилища настроек, а при выпол-
нении команды Восстановить параметры... открывается форма загрузки
настроек. Больше пока ничего не происходит.
Особенность работы с собственными хранилищами настроек как раз
и заключается в том, что весь алгоритм сохранения настроек должен
быть написан на встроенном языке в основных формах сохранения
и загрузки настроек хранилища. Именно он и будет определять,
в каком именно объекте конфигурации будут «физически» храниться
настройки. Кроме этого, при правильном написании будут вызываться
также и обработчики из модуля менеджера хранилища.
Итак, рассмотрим самый простой способ сохранения и загрузки данных
формы.
Сначала займемся сохранением. Когда система вызывает основную
форму сохранения, она передает ей два стандартных параметра:
КлючОбъекта и КлючТекущихНастроек.
В случае сохранения данных формы ключ текущих настроек всегда
будет иметь значение Неопределено, а вот КлючОбъекта будет
строкой вида Обработка.ЗаполнитьСправочники.Форма.ФормаОбра-
богки.
То есть ключ объекта содержит полное имя формы, для которой сохра-
няются настройки, и тем самым однозначно идентифицирует эту форму
среди остальных форм конфигурации.
Для сохранения настройки нам нужно будет знать следующую инфор-
мацию:
ее ключ (ключ объекта);
ее наименование, понятное пользователю (чтобы пользователь мог
отличить одну настройку от другой);
саму настройку, то есть сами значения сохраняемых реквизитов.
В форме сохранения нам нужно узнать и обработать ключ объекта
и наименование настройки. Саму же настройку мы получим в обработ-
чике менеджера хранилища настройки.
Поэтому создадим у формы сохранения два реквизита: КлючОбъекта
и ИмяСохраняемойНастройки, оба типа Строка.
КлючОбъекта - чтобы запомнить в нем ключ, переданный платформой
в параметры формы, ИмяСохраняемойНастройки - чтобы запомнить
имя настройки, которое введет пользователь.
В обработчике события При создании на сервере запомним в рекви-
зите КлючОбъекта тот ключ объекта, который платформа передаст
нам в параметрах формы. Этот ключ понадобится нам в дальнейшем
(листинг 23).
Листинг 23. Сохранение ключа объекта
ьНаСйфмфФ
«ед-щ - . о««мСЧ| е (Отказ, ~т--„-;*ртнай0б^(5о®ка)
КлгчССы44 • ПараметраКлючОв’ье*та;
fiwiuPpoueiypw
Теперь реквизит ИмяСохраняемойНастройки разместим в форме
и создадим у формы команду Сохранить.
В обработчике этой команды нужно подготовиться к сохранению
настроек: создать в справочнике ХранилищеДанныхФорм новый элемент
и указать ему тот ключ объекта, который мы имеем. Это нужно, чтобы
в дальнейшем в обработчике модуля менеджера хранилища настроек
записать в этот элемент справочника сохраняемые настройки.
Естественно, сейчас мы рассматриваем упрощенный вариант и не про-
граммируем случай, когда пользователь сознательно или случайно
перезаписывает настройки, уже существующие в справочнике.
Итак, в обработчике нашей команды Сохранить вызываем серверную
функцию, которая создает новый элемент в справочнике ХранилищеДан-
ныхФорм, записывает в него имеющийся ключ объекта, имя настройки
и возвращает код этого элемента справочника (листинг 24).
Листинг 24. Создание элемента справочника для хранения настроек
^Клиенте
фоывдура Са»чзаиить (Команда)
КолНовОгоЭлемента - СсявдагйЭлемеитСправочиикаСКлючООъек'па
, ИмяСохраняемойНастройки1;
иепброаелуры
•Нл1чр»ереБевКонтекста
функция СозлатьЭле»4ентСправочника(КлючООт»екта
И СохраняемойНастройки)
ПоаыйЭлемент = Справочники. Храни.чишеДанныхФорм
.СоЗдатьЭлеыент();
ИовыйЭ еыент Наименование » ИмяСохраняемойНаетроики;
НовыйЭлемент.КлючОбъекта « КлючОбъекта,
НовыйЭлемент. Записать () ;
Возврат ЙовыйЭлемент.Код;
КонецФункции
Теперь осталось только каким-то образом вызвать обработчик из модуля
нашего хранилища настроек. Форма сохранения вызывается модально,
и для того, чтобы вызвать обработчик из модуля хранилища настроек,
используется возврат параметра при закрытии модальной формы.
В качестве параметра возвращается объект ВыборНастроек,
созданный конструктором (листинг 25).
Листинг 25. Вызов обработчика из модуля хранилища настроек
йНаКдаенте
Про едура Сохранить(Команда)
КоДНовогоЭлемента »* СоздатьЭлементСправочника(КлючОбъекта);
Закрыть(Новый ВыборНастроек(КодНовОгоЭлвмента));
КонецПроцедуры
Если теперь запустить отладочный сеанс 1С:Предприятия, выполнить
команду Сохранить параметры..., указать имя, под которым будут сохра-
нены данные, и нажать Сохранить, то мы увидим, что после закрытия
формы сохранения вызывается обработчик ОбработкаСохранения
в модуле нашего хранилища настроек.
В этом обработчике нам собственно только останется записать
настройки в созданный нами элемент справочника ХранилищеДан-
ныхФорм. Платформа передает нам настройки в одноименном пара-
метре этого обработчика (листинг 26).
Листинг 26. Запись настроек в элемент справочника
Процедура ОбработкаСохранения(КлючОбъекта, КлючНастрсек
, Настр ики. ОписаниеНастроек, Пользователь)
ХранилищеДанныхФормСсылка * Справочники.ХранилишеДанныхФорм
.НайТиПоКоду(КлючНастрсек);
Хранилищ. ДанныхФ рмО&ъект « ХраиилищьДашйгжФорыСсылка
ПслучитьООъект();
рамилишеДанныхфо^мПЛьект.ДанныеФормы • Новый
Хрант и иг- -м..ч«ымя(Настройки, Новый ежатиеДанных(J);
Хр ,« кщиде. анньц^орыОбъект. Записать 4)
Конецпроцедуры
Теперь займемся загрузкой настроек. Процесс загрузки настроек явля-
ется противоположностью процессу их сохранения. Сначала нужно
узнать, какую настройку загружать, а затем достать ее из хранилища
настроек.
Для этого в форме загрузки можно разместить список имеющихся
сохраненных настроек, отобранных по нужному ключу объекта (пол-
ному имени формы). Для этого нужен реквизит формы (например Спи-
сокНастроек) типа ДинамическийСписок с произвольным запросом,
например (листинг 27).
Листинг 27. Запрос для динамического списка имеющихся настроек
ВЫБРАТЬ
Хр.-нилищеДанныхФорм. Код.
ХраиизшщеДанныхФоры.Наименование
ИЗ
Справочник.ХранилиыеДанныхФорм КАК ХранилищеДанныхФорм
ГДЕ i
КрвнилииеДанныхФорм.КлючОбъекта • ЬКдаочОбъекта
В обработчике события При создании на сервере нужно передать в этот
запрос имеющийся ключ объекта (листинг 28).
Листинг 28. Передача параметра в запрос динамического списка
8НаСерв«ре
Процедура ПриСоэданииНаСервере(Отказ, СтандартнаяОбработка)
СписокНастррек* Параметры. '’стан овить ЗначениеПараыетра
(‘•КлючОбъекта*, Параметры.КлючОбъекта);
КонецЦ ед.;":
После этого создадим в форме команду Загрузить, разместим ее
в форме и напишем такой текст команды (листинг 29).
Листинг 29. Вызов обработчика из модуля хранилища настрдек
ЬНаКлиенте
роИедура Загрузить(Команда)
Закрыть (Новый ВыВорНа троек(Элементы.СписокНастроек
.ТекущиеДанные.Код));
КонецПроцедуры
Собственно, здесь при закрытии формы загрузки мы возвращаем
в обработчик модуля менеджера хранилища код выбранного пользова-
телем элемента справочника, хранящего настройки. А в самом обработ-
чике ОбработкаЗагрузки модуля менеджера хранилища мы просто
получаем настройки из элемента справочника и передаем их в пара-
метр Настройки этого обработчика (листинг 30).
Листинг 30. Получение настроек из элемента справочника
Процедура ОСраЬоткаЗагрузкиПСшочООьекта, КлючНастроек
, Настройки, ОлисаниеНа.--кек Пользователь)
ХраиилийеДанныхФормСсылка - Справочники./ранкпищеЙанньжФорм
.НайтиПоКодо(КлючНастрпек)i
Настройки * КраНилишеДаиныхФормСсылкалДанныеФормы*Лолучить()।
КонеШкоцедуры
Вот так в простейшем случае выглядит интерактивное сохранение
и загрузка настроек, когда используется хранилище, созданное в кон-
фигурации.
Если работа с настройками выполняется только программными средс-
твами, то для этого используется менеджер конкретного хранилища
настроек и его методы Сохранить () и Загрузить () В результате
вызываются соответственно обработчики событий ОбработкаСо-
хранения и ОбработкаЗагрузки менеджера хранилища. В этом
случае разработчику нужно самому позаботиться о том, чтобы сформи-
ровать и передать в эти методы ключ объекта, ключ настроек, настройки
и другие необходимые параметры.
ПОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика,
Раздел 5.5.10 Объекты конфигурации - Ветвь конфигурации «Общие» -
Хранилища настроек.
Работа в разных часовых поясах
1 С:Предприятие 8.2 позволяет работать с одной информационной базой
клиентам, расположенным в разных часовых поясах. При этом, естест-
венно, возникают вопросы синхронизации времени. Например, необхо-
димость обеспечения единой последовательности документов, созда-
ваемых и проводимых в разных часовых поясах.
Для обеспечения различных вариантов работы в разных часовых поясах
в 1С:Предприятии 8.2 введен ряд новых понятий и изменена логика
получения текущей даты и выдачи оперативной отметки времени при
проведении документов.
Теперь у информационной базы существует параметр часовой пояс
информационной базы. Его значение сохраняется в базе данных. Его
значение сохраняется при выгрузке базы данных и переносится при
создании начального образа в распределенной информационной базе.
После создания информационной базы ее часовой пояс не определен.
Его можно установить из встроенного языка с помощью метода Уста-
новитьЧасовойПоясИнформационнойБазы().
Каждый сеанс, в котором устанавливается соединение с информаци-
онной базой, также имеет свой часовой пояс сеанса.
Если часовой пояс информационной базы не определен, то часовой
пояс сеанса устанавливается равным часовому поясу сервера.
Если часовой пояс информационной базы задан, то часовой пояс сеанса
устанавливается равным часовому поясу информационной базы.
Таким образом, стандартно все сеансы находятся в том же часовом
поясе, что и информационная база (или сервер).
При необходимости часовой пояс сеанса можно изменить из встро-
енного языка с помощью метода УстановитьЧасовойПоясСе-
анса().
Далее. При работе с документами, бизнес-процессами, задачами и
регистрами сведений платформа использует не текущую дату, как
раньше, а текущую дату сеанса.
Раньше текущая дата была равна системной дате компьютера. Именно
эта дата использовалась для присвоения даты по умолчанию и про-
верки текущей даты документов, бизнес-процессов и т. д.
Теперь для этих целей используется текущая дата сеанса, которая равна
дате компьютера, приведенной к часовому поясу сеанса.
В свою очередь, оперативная отметка времени теперь формируется
исходя не из текущей даты, а из текущей даты сеанса. Таким образом,
в пределах одной информационной базы может существовать несколько
последовательностей оперативных отметок времени, каждая для своего
часового пояса.
Если раньше последовательность документов на оси времени была
единой для всей информационной базы, то теперь сеансы с одним и
тем же часовым поясом сеанса получают единую последовательность
оперативных отметок времени. Для различных часовых поясов после-
довательности оперативных отметок времени разные (рис. 338).
Рис. 338. Часовые пояса сеансов и информационной базы
В результате в ЮПредприятии 8.2 возможна реализация различных
сценариев работы удаленных клиентов.
Стандартный сценарий работы
При стандартном сценарии работы, если не изменять часовые пояса
сеансов, все клиенты будут работать в часовом поясе информационной
базы (или сервера), даже если физическое местонахождение удален-
ного сотрудника не соответствует часовому поясу информационной
базы (рис. 339).
Рис. 339.
Стандартный сценарий
работы
Единая база для нескольких филиалов
Один из возможных сценариев работы - когда есть единая база для
нескольких филиалов, которые независимо ведут учет. Каждый из
филиалов находится в собственном часовом поясе, который не совпа-
дает с часовым поясом информационной базы.
Тогда в рамках общей информационной базы выделяется собственная
замкнутая система учета для каждого филиала. Между собой эти сис-
темы учета пересекаются очень слабо.
В этом случае для всех сеансов отдельного филиала устанавливается
часовой пояс сеанса, соответствующий физическому местонахождению
филиала, - УстановитьЧасовойПоясСеанса (), рис. 340.
Рис. 340. Единая база для нескольких филиалов
В одном учетном процессе участвуют даты разных часовых поясов
Еще один возможный сценарий - когда удаленные пользователи часть
документов вводят в часовом поясе информационной базы, а другую
часть - в своем часовом поясе.
Рис. 341. Учет для разных часовых поясов
Например, документы, последовательность которых должна быть единой
для всей информационной базы, - платежные поручения, вводятся
в часовом поясе информационной базы. А документы, которые индиви-
дуальны для каждого пользователя, - личное планирование, вводятся
тем часовым поясом, в котором находится пользователь (рис. 341).
В этом случае часовой пояс сеанса можно не изменять, по умолчанию
он будет равен часовому поясу информационной базы, а для доку-
ментов личного планирования использовать текущую системную дату
компьютера (ТекущаяДата ()).
Агрегаты
Механизм агрегатов - это один из серьезных механизмов, реализо-
ванных в версии 8.2. Он предназначен для оптимизации получения ана-
литических отчетов в различных разрезах.
Говоря об агрегатах, следует прежде всего четко представлять ситу-
ацию, в которой имеет смысл их использовать:
во-первых, агрегаты есть только в оборотных регистрах накоп-
ления;
во-вторых, регистр, использующий агрегаты, должен содержать
не более 30 измерений;
в-третьих, количество записей в регистре должно быть больше
3-5 тысяч.
Другими словами, агрегаты рассчитаны на крупные внедрения, на
сотни и миллионы записей в регистрах, которые нужно анализиро-
вать. Цифра 3-5 тысяч - это не какая-то граничная оценка, а прибли-
зительный уровень, дающий возможность понять, что в данном случае
подразумевает «мало записей», а что «много записей».
Теперь о сути.
Каким образом механизм агрегатов позволяет оптимизировать испол-
нение отчетов? Для этого придется сделать небольшой экскурс в струк-
туру хранения данных оборотного регистра накопления.
Свои данные такой регистр хранит в двух таблицах: таблице движений
и таблице оборотов. В таблице движений хранится именно то, что
пишут в регистр документы. В таблице оборотов хранятся уже неко-
торые итоговые, посчитанные данные. Пересчет данных в таблице обо-
ротов происходит как раз в момент записи движений в регистр.
Когда какому-то отчету нужно получить данные из такого регистра,
обычно используется виртуальная таблица оборотов. В зависимости
от того, какие параметры передаются в эту таблицу, платформа транс-
лирует такой запрос либо только в запрос к таблице оборотов, либо
в запрос и к таблице оборотов, и к таблице движений, либо в запрос
только к таблице движений.
Идеальный случай, когда удается обойтись только таблицей оборотов.
Это самый быстрый способ получения итоговых данных из регистра.
Однако так бывает далеко не всегда. Зачастую большую или меньшую
часть требуемых данных приходится «досчитывать» по таблице дви-
жений. И совсем уже «катастрофический» случай, когда таблицей обо-
ротов воспользоваться не удается, и все приходится рассчитывать по
таблице движений.
Как тут помогают агрегаты? Очень просто. Каждый агрегат - это еще
одна таблица в базе данных, похожая на таблицу оборотов. Только таб-
лица оборотов одна. Она хранит обороты с периодом месяц и в раз-
резе всех измерений, которые есть у регистра. А агрегатов может быть
много. Они отличаются друг от друга периодичностью хранения обо-
ротов и набором измерений, по которым в них хранятся обороты.
В результате раньше далеко не всегда удавалось получить из единс-
твенной таблицы оборотов все нужные данные и постоянно приходи-
лось много «досчитывать» по таблице движений. Теперь для подавля-
ющего большинства запросов к информационной базе система сможет
выбрать один или несколько агрегатов для быстрого получения из них
нужных данных. И лишь в некоторых ситуациях, возможно, ей при-
дется немного «досчитать» по таблице движений.
Таким образом, скорость исполнения запросов может быть значи-
тельно увеличена, а значит, аналитические отчеты будут выполняться
быстрее. Как мы уже говорили, это особенно важно на крупных внедре-
ниях и при больших объемах данных, хранящихся в оборотных регис-
трах накопления.
Что требуется от разработчика для работы с агрегатами? В общем-
то, немного. Нужно их создать и затем «присматривать» за ними. Все
остальное платформа сделает сама.
Использование/неиспользование агрегатов никак не отражается на
прикладном коде или тексте запросов, которые пишет разработчик.
Если агрегаты есть и разрешено их использование, платформа будет
использовать их автоматически сама так, как лучше и эффективнее.
ели агрегатов нет или их использование запрещено, все будет рабо-
ать как раньше.
ёперь, не вдаваясь сильно в подробности, о которых можно прочитать
документации, рассмотрим два вопроса:
как создать агрегаты, если их нет;
как за ними «присматривать» в процессе работы информационной
базы.
1ОДРОБНЕЕ
Документация 1С: Предприятие 8.2. Руководство разработчика, Глава
5.14.2.6 Объекты конфигурации Регистры Регистры накопления -
Агрегаты оборотных регистров накопления.
[тобы не придумывать пример «из головы», возьмем приложенную
емонстрационную базу Агрегаты. В ней уже есть оборотный регистр
акопления Продажи, содержащий чуть более 500 000 записей (рис. 342).
Рис. 342.
Регистр «Продажи»
4а его примере мы и посмотрим, как создать агрегаты
Получить доступ к агрегатам можно двумя способами.
Во-первых, из дерева конфигурации с помощью контекстного меню
оборотного регистра накопления (рис. 343).
^Конфигуратор Агрегаты демонстрационная конфигурация
$айл Правка Конфигурация Отладка Аомижстрировам Сервис Цкна Сфа
* -а*
I» енв
Открыть ОСНОВНОЮ Форму
Открыть
Добавить
Рис. 343.
Переход к агрегатам
из контекстного меню
регистра накопления
Действия* 0 й X ♦ #
& Агрегаты
£
* m
Общие
Константы
Справочники
Документы
У Журналы документов
{-} Перечисления
£
>г
Я
Отчеты
Обработки
Планы видов характеристик
Планы счетов
Планы видов расчета
Регистры сведений
Регистры накопления
* USHF
........ Отхрьлъмодутъ набора записей
!%1 Регистр
г] Регистр| Открыть модуль менеджера
Бизнес
ЙЙ Задачи
Открытьвгрега
Рис. 344. Переход
к агрегатам из окна
редактирования
объекта конфигурации
Во-вторых, из окна редактирования объекта конфигурации, на закладке
Данные, по кнопке Агрегаты (рис. 344).
Пока список агрегатов пустой, и наша задача будет заключаться в том,
чтобы заполнить его нужными агрегатами (рис. 345).
Рис. 345. Пустой список агрегатов
Это можно сделать двумя способами:
можно создать агрегаты самостоятельно;
можно «спросить» у платформы, какие агрегаты она считает опти-
мальными, и создать их.
Мы используем оба способа.
Сначала создадим один агрегат самостоятельно. Поскольку мы ничего
не знаем о тех запросах, которые обычно выполняются к этому
регистру, то будет полезно создать так называемый базовый агрегат.
Это агрегат, который включает в себя все измерения и использует пери-
одичность Авто.
Для этого нажмем кнопку Добавить и затем установим флажки у изме-
рений Товар и Склад. Базовый агрегат готов (рис. 346).
Рис. 346. Базовый агрегат
Теперь посмотрим, как можно создать агрегаты, используя «советы»
платформы.
У менеджера регистра накопления есть метод ОпределитьОпти-
мальныеАгрегаты (), который анализирует существующую таблицу
движений регистра и анализирует имеющуюся статистику использо-
вания этого регистра.
На основании этих данных платформа предлагает набор агрегатов,
которые по ее мнению будут наиболее оптимальными.
Список этих агрегатов можно сохранить в xml-файл и затем из этого
xml-файла загрузить их в конфигуратор. Для этого служит кнопка
Открыть оптимальные агрегаты (рис. 347).
Рис. 347. Команда «Открыть оптимальные агрегаты»
Чтобы не писать собственные обработки для работы с агрегатами, вос-
пользуемся готовым инструментом платформы - стандартной обра-
боткой Управление итогами (рис. 348).
ВНИМАНИЕ
Определение оптимальных агрегатов может быть длительным
процессом. На демонстрационной базе для одного регистра с 500 000
записями определение оптимальных агрегатов занимает около
минуты.
Ее можно открыть в режиме 1С:Предприятие из меню Все функции.
ПОДРОБНЕЕ
Раздел Где управление итогами?, см. стр. 88.
Рис. 34В.
Обработка «Управление итогами»
в окне «Все функции»
Дтак, обновим конфигурацию базы данных, запустим сеанс 1С:Предпри-
ггия и вызовем стандартную обработку Управление итогами (рис. 349).
Управление итогами - часто используемые возможности
Итоги
Мопчг—тике пассдемым Установить период рассчитанных итогов для веек регистров накопления и бугалтерии. 9 которым
включены итоги Для регистров накопления - на 30.062009. Для регистров бухгалтера - на
W 31.072009
IRx McntwfcjQBa не итогов _
Вшжтмть режми использования итогов для всех регистров у которым в дамелП момент выключено
использование итогов
Агрегаты
[ Выполнить перестрое»** и валолюние агрегатов для всем регистров, у которых включен режми
Перестроить м эапсимяь агрегатов и установлено их исполкмеание
-------------
Выпсинлъ расчет опека опткеалыеях агрегатов для всех регистров, для которых в Конфигураторе
Псмуегь олтималные агрегаты з«ивы агрегаты
Эта обработка имеет два режима работы - режим часто использу-
емых возможностей и режим полных возможностей. Стандартно
при первом запуске она открывается в режиме часто используемых воз-
можностей.
Для получения оптимальных агрегатов нам нужно будет переключить
ее в режим полных возможностей, для чего необходимо нажать гипер-
ссылку в правом нижнем углу формы.
Перейдем на закладку Агрегаты. Здесь мы увидим наш единственный
регистр Продажи и единственный агрегат, который мы только что
создали в конфигураторе (рис. 350).
Рис. 350. Агрегат регистра «Продажи»
Пока этот агрегат просто существует, но не используется платформой
(флажок Использование в первой колонке у него не установлен).
Чтобы узнать у платформы, какие агрегаты она считает оптимальными
для нашего регистра, выполним команду Оптимальные... (рис. 351).
При этом платформа спросит про параметр расчета агрегатов (рис.
352).
Мы не настолько опытны, чтобы задавать сейчас какие-то параметры,
поэтому оставим нулевое значение и нажмем кнопку ОК.
Управление итогами - полные возможности
Рис. 351. Команда «Оптимальные...»
Рис. 352.
Параметр расчета оптимальных
агрегатов
При этом платформа откроет диалог выбора каталога, в который будет
сохранен xml-файл со списком оптимальных агрегатов. Такой файл
будет иметь стандартное имя - <имя регистра>.хт1.
Начнется процесс определения оптимальных агрегатов.
После того как определение оптимальных агрегатов будет закончено,
можно закрыть сеанс 1С:Предприятия и вернуться в конфигуратор.
В конфигураторе снова откроем диалог редактирования агрегатов
регистра Продажи и выполним команду Открыть оптимальные агре-
гаты.
В диалоге выбора файла выберем только что сформированный файл
Продажи.хт1 (рис. 353).
Рис. 353. Конструктор агрегатов
Внешний вид диалога изменится. Слева показаны существующие агре-
гаты, справа - те агрегаты, которые по мнению платформы являются
оптимальными.
Слева жирным синим шрифтом выделены те существующие агрегаты,
которые по мнению платформы нужно удалить совсем. Справа жирным
синим шрифтом выделены те агрегаты, которые по мнению платформы
нужно добавить к уже существующим агрегатам.
Поскольку в нашем случае все выделено, поступим так, как рекомен-
дует платформа. Удалим существующий базовый агрегат (кнопка Уда-
лить) и добавим все оптимальные агрегаты (кнопка «в середине
формы), рис. 354.
Рис. 354. Изменение агрегатов
Теперь нажмем кнопку ОК, обновим конфигурацию базы данных
и снова запустим сеанс 1С:Предприятия.
В нем запустим стандартную обработку Управление итогами. Она
запомнила свое последнее состояние и открылась в режиме полных
возможностей.
Перейдем на закладку Агрегаты и посмотрим, что у нас сейчас
(рис. 355).
розмож П1Л1рйоприятие|
Управление итогами - полные возможности
ИТОГИ ;
О Режима Использование- Перестроить Обновить Очистить Оптимальные ..
Агрегагы/Итоги
Использование агрегатов Дата перестроения
Регистр
В Продажи
Агрегаты регистра Продажи
Использование Периодичность Измерения
В Квартал Товар Склад
Начало периода Конец периода Размер
День
День
Непериодический
Товар
Склад
Товар
Часто испо льзуемые возможности
Рис. 355. Новый состав агрегатов
Мы видим четыре агрегата, которые мы добавили в режиме конфигу-
рирования. Они тоже «просто существуют». Признак использования у
них сброшен, их размеры неизвестны, а для регистра не указана дата
перестроения сети агрегатов и не указан эффект.
Теперь, чтобы платформа могла использовать наши агрегаты, нужно
выполнить три действия:
1. Включить режим агрегатов для этого регистра.
2. Перестроить сеть агрегатов.
3. Выполнить обновление агрегатов.
Сначала включим режим агрегатов.
Оборотный регистр накопления может работать в двух режимах:
режим итогов л режим агрегатов. Сейчас регистр Продажи находится
в режиме итогов (рис. 356).
Рис. 356. Режим итогов
Включение режима использования агрегатов можно выполнить из
встроенного языка. Для этого предназначен метод менеджера регистра
УстановитьРежимАгрегатов (). Но мы воспользуемся обработкой
Управление итогами и выполним команду Режим - Включить режим
агрегатов (рис. 357).
ВНИМАНИЕ
В процессе включения режима использования агрегатов платформа
очищает таблицу оборотов регистра накопления. Поэтому включение
режима использования агрегатов может быть длительным процессом.
На демонстрационной базе для одного регистра с 500 000 записями
это занимает почти 3,5 минуты.
Теперь для регистра Продажи включен режим использования агрегатов,
и само использование агрегатов также разрешено (рис. 358).
Однако сами агрегаты пока никак не используются, и в них нет никаких
данных. Чтобы определиться с их использованием, понадобится пере-
строение сети агрегатов, а чтобы заполнить их данными - обновление
агрегатов.
Рис. 357. Включение режима агрегатов
Рис. 358. Режим агрегатов
Для чего нужно перестроение сети агрегатов? Дело в том, что у регистра
может существовать большое число агрегатов. Они могут быть созданы
в разное время по разным причинам.
Но не все из них платформа будет использовать.
Перестроение сети как раз и нужно для того, чтобы платформа опре-
делила, какие агрегаты из имеющихся она будет использовать в бли-
жайшее время. «В ближайшее время» - это значит до следующего пере-
строения сети агрегатов.
Чтобы перестроить сеть агрегатов, платформа анализирует имеющиеся
агрегаты, анализирует, какими данными заполнены эти агрегаты, ана-
лизирует имеющуюся у нее статистику запросов к этому регистру. На
основании этой информации она решает, какие агрегаты она будет
использовать в ближайшее время, а какие - не будет.
Для чего нужно обновление агрегатов? Тут дело в том, что данные
«сами по себе» в агрегаты не попадают. В случае с таблицей оборотов
(в версии 8.1) данные в таблицу оборотов заносились системой авто-
матически, в тот момент, когда записывался набор записей. В случае
с агрегатами нужно дать платформе специальную команду для того,
чтобы она перенесла новые данные из таблицы движений в агрегаты.
И перестроение сети агрегатов, и обновление агрегатов можно выпол-
нить из встроенного языка. Для этого у менеджера регистра накоп-
ления есть методы ПерестроитьИспользованиеАгрегатов()
и ОбновитьАгрегаты()
Но мы не будем писать никакой код, а снова воспользуемся стандар-
тной обработкой Управление итогами.
Переключим ее в режим часто используемых возможностей (гипер-
ссылка в правом нижнем углу) и выполним команду Перестроить
и заполнить (рис. 359).
ВНИМАНИЕ
Перестроение и заполнение агрегатов может быть длительным
процессом. На демонстрационной базе для одного регистра с 500 000
записями это занимает около 7 минут.
После того как перестроение и обновление агрегатов будут закон-
чены, можно снова переключить обработку в режим полных возмож-
ностей, перейти на закладку Агрегаты и посмотреть, что получилось
(рис. 360).
Рис. 359. Команда «Перестроить и заполнить»
Управление итогами - полные возможности
Итоги Агрегаты
। Регистр
Е Прищ-зчч
О Режим - Испо/ьзоеание * Перестроить Обновить Очгстить Оптимальные
АгрегатыЛМгы Ислшъэомиив агрегатов
Агрегаты
Агрегаты регистра Провами.
Измерения
39660 В>
29 047 746
88368
578816
Начало тарном Конец перийвл
08
Ислз*эсм*« Пеоношьеюстъ
НИВ Квартал
* Деть
V Деть
И Непериодивский
М
Рис. 360. Заполненные агрегаты
Прежде всего, мы увидим, что платформа решила использовать все из
существующих агрегатов (колонка Использование) и заполнила их дан-
ными (колонка Размер).
Также мы увидим, что для самого регистра Продажи платформа устано-
вила дату перестроения агрегатов и вычислила эффект.
Эффект измеряется в процентах и показывает, насколько быстрее будет
выполняться запрос при использовании агрегатов по сравнению с тем,
как выполнялся бы такой же запрос при использовании таблицы обо-
ротов.
В нашем примере получается, что теперь запросы к регистру продажи
будут выполняться на 65 % быстрее. Если раньше запрос выполнялся
бы 100 секунд, то теперь он будет выполняться 35 секунд, то есть почти
в 3 раза быстрее.
Естественно, этот эффект будет правильным только на момент пере-
строения сети агрегатов. В дальнейшем, по мере того как информа-
ционная база наполняется данными и как меняются запросы к эти
данным, реальный эффект может отличаться от того, который был рас-
считан при перестроении сети агрегатов.
Итак, чтобы еще раз закрепить, повторим порядок действий
по созданию агрегатов:
1. В режиме 1С:Предприятие получить список оптимальных агре-
гатов.
2. В конфигураторе создать оптимальные агрегаты.
3. В режиме 1С:Предприятие включить режим агрегатов для
регистра.
4. Выполнить перестроение сети агрегатов.
5. Выполнить обновление агрегатов.
Теперь поговорим о том, как «присматривать» за агрегатами в процессе
эксплуатации информационной базы.
В принципе со всеми необходимыми действиями мы уже знакомы.
Перечислим их от самого частого действия к самому редкому дейс-
твию:
1. Обновить агрегаты.
2. Перестроить сеть агрегатов.
3. Получить оптимальные агрегаты и создать их в конфигураторе.
Ha «среднестатистической» (если можно так выразиться) крупной
информационной базе эти действия нужно выполнять с помощью рег-
ламентных заданий. А вообще, конечно, все или некоторые из этих
действий можно выполнять и вручную.
Обновление агрегатов. Если в информационную базу постоянно
вводится много новых данных, обновление нужно выполнять часто.
Каждый час, каждую минуту, каждую секунду - зависит от быстроты
изменения данных.
В то же время, если свежие оперативные данные не требуются для
получения отчетов (например, в основном анализируются данные про-
шлых периодов), то обновление агрегатов можно выполнять гораздо
реже, например раз в сутки, ночью.
Обновление агрегатов - это перенос данных из таблицы движений в
агрегаты. Если в агрегатах не найдется нужных итоговых данных, сис-
тема все равно рассчитает их по таблице движений. Но рассчитывать
по таблице движений - это значительно медленнее, чем взять готовое
из агрегата. Поэтому обновление агрегатов влияет лишь на производи-
тельность, но не на саму возможность получить актуальные данные.
Обновлять имеет смысл только те агрегаты, которые используются. Те,
которые не используются, обновлять не нужно (они ведь не исполь-
зуются), но и удалять не следует. Возможно, что в будущем, при оче-
редном перестроении сети агрегатов, платформа снова решит их
использовать.
Перестроение сети агрегатов. Если в информационную базу посто-
янно вводится много новых данных, перестроение нужно выполнять
регулярно. Например, раз в сутки.
Платформа принимает решение об использовании/неиспользовании
того или иного агрегата на основании двух факторов: данных, накоп-
ленных в регистре, и накопленной статистики использования. Статис-
тику использования, то есть то, с какими запросами конфигурация обра-
щается к базе данных, система накапливает автоматически в процессе
использования агрегатов и хранит ее в системных таблицах регистра
накопления.
Таким образом, если вдруг по каким-то причинам резко меняется
характер запросов пользователей к базе данных, также рекомендуется
выполнять перестроение сети агрегатов.
Например, в конфигурацию добавили новый блок отчетов, и поль-
зователи стали активно с ними работать. Или изменилась ситуация
на рынке (наступил кризис), и поэтому изменился характер отчетов,
которые интересуют пользователей.
Получение оптимальных агрегатов. Необходимость в получении
оптимальных агрегатов такая же, как и в перестроении сети агре-
гатов. Разница только в том, что в «обычной жизни» достаточно пери-
одически перестраивать сеть агрегатов. Но рано или поздно коли-
чественные изменения (новые данные и новая статистика) переходят
в качественные, и одного только перестроения может оказаться недо-
статочно.
Могут понадобиться новые агрегаты, которых до сих пор не было.
Вот тогда и нужно заново получить данные у платформы, какие агре-
гаты являются оптимальными теперь.
Эту операцию можно проводить, например, раз в месяц, раз в неделю.
Также о необходимости получения оптимальных агрегатов можно
судить и по резкому изменению состава данных, хранящихся в регистре,
и по резкому изменению характера получаемых отчетов.
Опять тот же пример. Кризис. Раньше продавали много разных
товаров, теперь вдруг стали продавать всего несколько наименований.
Или раньше в основном анализировали продажи за прошлые периоды,
теперь вдруг стали анализировать текущие продажи и сравнивать их
с аналогичными показателями за предыдущие месяцы и предыдущие
годы.
Обновление агрегатов можно выполнять в фоновом режиме, в процессе
работы пользователей.
Перестроение сети агрегатов и получение оптимальных агрегатов —
операции довольно длительные и ресурсоемкие. Их лучше выполнять
в период наименьшей активности пользователей, например, ночью.
После получения оптимальных агрегатов может потребоваться изме-
нение конфигурации базы данных, поэтому нужно заранее быть
готовым к тому, что работа пользователей должна быть прекращена на
время реструктуризации базы данных.
В общем виде «присматривать» за агрегатами нужно со следующей
периодичностью (рис. 361).
По необходимости
Квартал
Мес яд
По необходимости
Неделя
День
Час
1Лиута
Секунда
Рис. 361.
Цикличность обслуживания
агрегатов
Небольшое дополнение к вопросу создания агрегатов в конфигура-
торе.
У агрегата есть свойство Использование. Обычно оно имеет значение
Авто, но можно установить его в значение Всегда (рис. 362).
Рис. 362. Свойство агрегата «Использование»
Если установлено Авто, то платформа при перестроении сети агрегатов
сама решает, будет она использовать этот агрегат или нет. Если уста-
новлено Всегда, это значит, что независимо от «желания» платформы
она будет использовать этот агрегат всегда.
Отсюда возникает естественный вопрос. Зачем вдруг разработчику
может понадобиться заставлять платформу использовать какой-то
агрегат? Ведь платформа гораздо лучше разработчика знает состав хра-
нимых данных, знает статистику запросов...
Ответ очень прост. Потому что разработчик может знать кое-что, чего
не знает платформа.
Например, что раз в месяц директор получает для себя в этой базе
«хитрый» и особенный отчет. И необходимо обеспечить, чтобы этот
отчет формировался у него максимально быстро.
Из-за того, что такой отчет формируется редко, платформа может
не придать ему значения в совокупности общей статистики запросов
и не сформирует для него отдельного агрегата (если такой требуется).
Но разработчик может самостоятельно проанализировать, какая ком-
бинация измерений, отборов, периодов и периодичности получения
данных используется директором, и создать нужный агрегат; установив
ему использование - Всегда, чтобы при очередном перестроении сети
агрегатов система его не отключила.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Исполь-
зование агрегатов регистра накопления демонстрируется на примере
регистра Продажи.
В конфигурации к регистру Продажи добавлены агрегаты Также до-
бавлены регламентные задания ОбновлениеАгрегатовПродаж, Пере-
строениеАгрегатовПродаж с соответствующими расписаниями. Для уп-
равления агрегатами и регламентными заданиями добавлена обработка
УправлекмеАгрегатамиПродаж (для работы регламентных заданий необ-
ходимо использование клиент-серверной версии).
Форма обработки управления агрегатами продаж позволяет включать
режим агрегатов в регистре Продажи. При включении перестраивается
использование агрегатов и выполняется заполнение агрегатов. В режи-
ме агрегатов можно включать регламентные задания обновления агре-
гатов и перестраивания использования агрегатов.
Возможно явное обновление, перестроение и построение оптимальных
агрегатов. Форма отображает результаты перестроения использования
и определения оптимальных агрегатов. Отображается предполагаемый
размер агрегатов и эффект от применения агрегатов. Как результат оп-
ределения оптимальных агрегатов на форме отображается, оптималь-
ны ли агрегаты регистра в конфигурации (могут ли они обеспечить
оптимальный список агрегатов).
Безопасный и привилегированный режим
исполнения кода
В версии 8.1 существовала единственная возможность «отойти» от
стандартного режима исполнения кода на встроенном языке - вызвать
процедуру, расположенную в привилегированном общем модуле. Такая
процедура выполнялась системой только на сервере и не использо-
вала контроль прав. Это позволяло выполнять максимально быстро те
действия, для которых контроль прав пользователя не имеет смысла
по логике работы прикладного решения.
В версии 8.2 возможности управления режимом исполнения кода
на встроенном языке расширены, причем как в сторону снятия ограни-
чений на исполнение кода, так и в сторону ужесточения этих ограни-
чений.
Привилегированный режим
С одной стороны, в версии 8.2 расширены возможности использования
привилегированного режима и рекомендуется использовать его более
активно.
Во-первых, для документов прямо в свойствах объекта конфигурации
можно задавать использование привилегированного режима при прове-
дении и при отмене проведения документа (рис. 363).
Нужно сказать, что для нового документа система стандартно сразу же
устанавливает эти свойства. В результате проведение и отмена прове-
дения документа выполняются на сервере, без контроля прав, макси-
мально быстро.
Во-вторых, для бизнес-процессов также прямо в свойствах объекта
конфигурации можно задавать использование привилегированного
режима при создании задач. Это свойство тоже стандартно устанавли-
вается системой при создании нового бизнес-процесса (рис. 364).
В-третьих, в глобальном контексте реализован метод Устано-
витьПривилегированныйРежим (), который позволяет включить/
выключить привилегированный режим, и метод Привилегирован-
ныйРежим (), который позволяет проверить, включен или выключен
привилегированный режим.
U_bJ----------------------------------------------------------------
Рис. 363. Режим проведения документа
Рис. 364. Свойство «Привилегированный режим при создании задач»
Использование привилегированного режима позволяет, во-первых,
ускорить работу, так как не будут накладываться ограничения на доступ
к данным, а во-вторых, позволяет выполнять операции с данными
от лица пользователей, которым эти данные недоступны.
Привилегированный режим нужно использовать тогда, котда с логи-
ческой точки зрения нужно отключить проверку прав, или когда можно
отключить проверку прав, чтобы ускорить работу.
Допустимо использовать привилегированный режим, когда работа
с данными от лица некоторого пользователя не нарушает установ-
ленные для этого пользователя права доступа.
Например, когда есть документ, изменяющий регистр продаж. И этот
документ проводится кладовщиком, который имеет доступ к доку-
менту, но не имеет доступа к самому регистру продаж. В этом случае
использование привилегированного режима при проведении документа
не делает данные регистра продаж доступными кладовщику и в то же
время позволяет записать в них те данные, которые кладовщик ввел
в документ.
Другой пример, когда перед записью документа продавцом проверя-
ется состояние взаиморасчетов с клиентами. Эта проверка выполня-
ется от лица продавца, но в привилегированном режиме. При этом сами
данные о взаиморасчетах не становятся доступны продавцу.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика, Раздел
5.5.4.2 Объекты конфигурации Ветвь конфигурации «Общие» - Роли
и права доступа - Привилегированный режим работы.
Безопасный режим
Могут встречаться ситуации, когда исполнение кода на встроенном
языке необходимо наоборот ограничить. Особенно это актуально для
новой версии 8.2, где большинство кода исполняется не на клиенте,
а на сервере.
Наибольшую опасность представляют оператор встроенного языка
Выполнить () и встроенная функция Вычислить (). Они позволяют
выполнить фрагмент кода, который передается им в качестве строко-
вого значения. Если такой фрагмент кода формируется пользователем,
а выполняется на сервере, то это представляет потенциальную угрозу
для безопасности системы. В то же время возможность выполнения
кода, введенного пользователем, необходима.
Для того чтобы исключить потенциально опасные ситуации в этих слу-
чаях, в версии 8.2 реализован безопасныйрежим работы кода на встро-
енном языке. Его рекомендуется включать при выполнении потенци-
ально опасного кода на сервере.
В глобальном контексте реализован метод УстановитьБезопас-
ныйРежим (), позволяющий включить/выключить безопасный режим,
и метод БезопасныйРежим (), позволяющий проверить, включен
или выключен безопасный режим.
В безопасном режиме действуют следующие ограничения:
привилегированный режим отменяется, если он был установлен;
попытки перейти в привилегированный режим игнорируются;
запрещены операции с СОМ-объектами;
запрещена загрузка и подключение внешних компонентов;
запрещен доступ к файловой системе, кроме временных файлов;
запрещен доступ к Интернету.
ПОДРОБНЕЕ
Документация ^Предприятие 8.2. Руководство разработчика,
Раздел 5.5.4.3 Объекты конфигурации - Ветвь конфигурации «Общие» -
Роли и права доступа - Безопасный режим работы.
Пессимистическая блокировка
В платформе 1С:Предцриятия 8 существует механизм пессимисти-
ческой блокировки данных, которые содержатся в объектах инфор-
мационной базы. Этот механизм предназначен для того, чтобы обес-
печить конкурентную работу пользователей с объектами информаци-
онной базы 1С:Предприятия 8 (элементами справочников, документами
ит.д.).
Суть его работы заключается в том, чтобы запретить (заблокировать)
изменение данных объекта информационной базы другими сеансами
(или этим сеансом) до тех пор, пока эта блокировка не будет снята.
Платформа использует этот механизм для блокировки данных объ-
ектов, редактируемых в стандартных формах.
Например, как только пользователь начинает редактировать какое-либо
поле в форме, расширение формы устанавливает пессимистическую
блокировку на данные объекта, редактируемого в форме.
В результате если в этот момент другой пользователь попытается
открыть форму этого же объекта и изменить в этой форме какие-нибудь
данные объекта, платформа не даст это сделать и выдаст сообщение
об ошибке блокировки (рис. 365).
Рис. 365. Сообщение о блокировке данных объекта
Таким образом, благодаря пессимистической блокировке пользова-
тель, начавший редактировать данные в форме, может быть уверен, что
он сможет закончить редактирование и сможет сохранить измененные
данные.
Внешне работа механизма пессимистической блокировки одинакова
и в версии 8.1, и в версии 8.2. Однако программная модель, которой
будет пользоваться разработчик, в версии 8.2 отличается от того, что
было в версии 8.1.
В версии 8.1 пессимистическая блокировка была «привязана» к объ-
ектам встроенного языка, работающим с данными.
Например, ее работу можно было проиллюстрировать программно сле-
дующим примером (листинг 31).
Листинг 31. Пример проверки блокировки данных в версии 8.1
Тав рссылка ‘ справочники.Товары найтиПоКоду("OOnoopooi");
ТоварОбъект s емоляр! «ТоаарСсылка.ПолучитьОбъект();
Т< варОбъекТЭкаеыпляр2 • ТоварСсылка 1олучить0бъект ()
ТоварОбъектЭкзеыпляр!.Заблокировать О;
Попытка
ТоварОбъектЭкземпяярЙ.Заблокировать () :
41 Важно выполнят* м дифи ацию данных ь>ъ»ктя.
tt ...
Искчочениё
Я Нельзя модифицировать данные объекта.
Сообщить("Данные объекта уже заблокированы");
КОнецПолытки;
Для одной и той же ссылки создаются два различных программных
объекта. С помощью первого из них, Товар0бъектЭкземпляр1,
данные объекта информационной базы блокируются.
На примере второго объекта, Товар0бъектЭкземпляр2, иллюстри-
руется методика программной модификации данных при многопользо-
вательской работе.
Прежде чем модифицировать данные, необходимо попытаться забло-
кировать данные объекта информационной базы. Если это удастся,
значит, далее можно выполнять модификацию данных и их сохра-
нение. Если установить блокировку не удастся (а в этом примере про-
изойдет именно так), значит, данные этого объекта уже заблокированы,
например, другим пользователем (он редактирует их в форме).
Кстати, стандартные расширения форм работают аналогичным
образом. В тот момент, когда пользователь в форме начинает редакти-
ровать какое-нибудь поле объекта, стандартное расширение формы,
грубо говоря, выполняет попытку заблокировать данные (листинг 32).
Листинг 32. Попытка блокировки данных
Попытка
Това', ОбъектЭкзеыпля, 2. Заблоки, овать ');
В версии 8.2 пессимистическая блокировка получила другое название -
блокировка данных для редактирования. Теперь она «оторвана» от про-
граммных объектов и привязана к идентификатору управляемой формы,
в которой объект редактируется. Но из встроенного языка допускается
установка этой блокировки и без привязки к конкретной форме.
Расширения форм, как и раньше, устанавливают эту блокировку авто-
матически, в тот момент, когда пользователь начинает редактировать
данные.
Разработчик, находясь в модуле формы, для тех же целей может исполь-
зовать метод управляемой формы ЗаблокироватьДанныеФор-
мыДляРедактирования (). Например, если это нестандартная
форма объекта, в которой нужно обеспечить поведение, аналогичное
стандартному.
Для снятия блокировки используется метод формы Разблокиро-
вать ДанныеФормыДляРедактирования().
При использовании метода формы блокировка данных для редактиро-
вания будет привязана к идентификатору той формы, из которой она
установлена.
Наряду с этим существует и аналогичный метод глобального контекста
ЗаблокироватьДанныеДляРедактирования(). В этот метод
обязательно нужно передать ссылку на объект информационной базы
или ключ записи регистра сведений, данные которого нужно заблоки-
ровать. Кроме этого, в этот метод можно передать (а можно и не переда-
вать) версию блокируемого объекта и идентификатор формы.
Таким образом, если необходимо обеспечить программную модифи-
кацию данных при многопользовательской работе (например, в неко-
торой обработке, которая запускается параллельно с работой других
пользователей), в ней можно использовать именно метод глобального
контекста.
Методика его использования аналогична тому, что было раньше. Перед
модификацией данных необходимо попытаться их заблокировать. Если
это удалось, данные можно модифицировать.
В качестве примера можно привести следующий фрагмент команды
(листинг 33).
Листинг 33. Пример проверки блокировки данных в версии 8.2
&НаКдаенте
рощ .ра ОбработкаКоманды(ПареметрКомаиды
, Параметрььллюлненид^оыандыу
Если ПриыерМодификацииО Тогда
ПоказатьОлл^ещениеПользоветеля("Наименование изме ”,
"Иаименованйе sjmosmS
справочника ю<ы№,
Надыма* Е5”) г
КоиецЁсль
«о»».. Ер 'елуры
НаСерверй
Функция ПриьирМолификацииО
1 доер&сэакд - Справочники, Т*мр<,Найч*ПоК<ли4'в,^0ОСОО9!П
.Попытка
ЗаблокироватьДанныеДляРедактирования (Товар^сыяка)>
Z ножнр ВЫПОЛНЯТЬ модификацию данные ;Тг» . та
// .. -
ГоварОбъек» “ Това^ч’сылка.ПопучитъОбть^тО i
Г ар^ч.ект. Наименование - "Новое ньИмен 1амие"'г
Т< , арббъ кт.Запищать () ;
Воаэрат Истиц*;
Исключение
,h Нельзя модифицировать данные объекта,
ообщгние “• Невый СообшениеВользователю;
Сообщение.Текса* "Данные»объекта у»* заблокированы*;
Сообщение.Сообщить();
Возврат Ложь;
ОнецЛопытки;
Xpib... кди
Команда выполняется на клиенте. Для модификации данных вызыва-
ется серверная функция ПримерМодификации (). Если данные уда-
лось модифицировать, выводится оповещение.
В функции ПримерМодификации () получается ссылка на объект
информационной базы и выполняется попытка заблокировать дан-
ные объекта - ЗаблокироватьДанныеДляРедактирования (То-
варСсылка). Если это удается, данные модифицируются. Если нет,
выдается сообщение о том, что данные уже заблокированы кем-то.
Доступ к версии объекта
во встроенном языке
Во встроенном языке реализован доступ к версии объекта. Для этого
используется свойство ВерсияДанных, которое реализовано у объектов,
ссылок и выборок (рис. 366).
Смнтекс —
Содержат** | Индекс П
©Б Прикладные объекты
&Б Константы
©Б Критерии отбора
С Б Справочники
Б Справочникй^енаджер
Б Слраво‘#*гМенелжер.<Имя справок** а>
' Б СлравочнжСсылкахИмя справок** а>
► В Свойства
Ий <Имя реквиэита>
Q <Имя таб/*т«й часпо
Ий Наименование
Ш ПсметкаУдалешя
£| Предолрвделетый
@ Рооиге/ъ
Ий Ссылка
' ' ЗтоГруппа
н-и- afcfc а f
Рис. 366. Свойство «ВерсияДанных»
Также в таблицах языка запросов реализованы поля ВерсияДанных
(рис. 367).
Версия данных доступна только для чтения и позволяет реализовывать
собственные сценарии записи объектов, например, при объединяющей
конкурентной записи данных, когда разные пользователи редактируют
независимую информацию одного и того же объекта.
Рис. 367. Поле «ВерсияДанных»
Раньше узнать о том, что в базе данных хранится уже другая версия
данных (не та, которую редактирует пользователь), можно было только
выполнив запись данных и обработав возникавшую исключительную
ситуацию.
Теперь перед записью разработчик может самостоятельно срав-
нить версию редактируемых данных и версию данных, хранящихся в
базе данных, и реализовать программный алгоритм их объединения
и записи.
Получение предопределенных значений
по строковому имени
В версии 8.1 обращение к предопределенным значениям во встроенном
языке выглядело следующим образом (листинг 34).
Листинг 34. Обращение к предопределенному элементу в версии 8.1
прав чники.Товары.ИмяПредопре деленногоЭлемента
К значениям перечислений можно было обращаться так (листинг 35).
Листинг 35. Обращение к значению перечисления в версии 8.1
Ьеэдчмсле,<и. СтавгиВДС. Е< аВДС
К точкам маршрута бизнес-процесса можно было обращаться так (лис-
тинг 36).
Разработка 35
---------------------------------------------------------------1—J
Листинг 36. Обращение к точке маршрута бизнес-процесса в версии 8.1
Бизнес^ оцессы. Бизнесе, оцесс!. ТочхйМарг рута. Старт
В версии 8.2 такое обращение не всегда возможно.
Например, в контексте тонкого клиента и веб-клиента свойства гло-
бального контекста Справочники, Перечисления, а также объекты,
возвращаемые этими свойствами (СправочникиМенеджер, Пере-
численияМенеджер) просто недоступны. Однако получать предо-
пределенные значения на стороне клиента необходимо.
Для решения этой проблемы в глобальном контексте реализована фун-
кция ПредопределенноеЗначение (), которая позволяет получать
предопределенные значения, значения прикладных перечислений и
точек маршрута бизнес-процессов по строковому имени.
Например, к предопределенному элементу справочника можно обра-
титься так (листинг 37).
Листинг 37. Вариант обращения к предопределенному элементу
справочника в версии 8.2
ПредапределенноеЗначение (*,Спрамочц1Ш. Товары
.ИмяПредопределениогоЭлеыента")
К значению перечисления можно обратиться так (листинг 38).
Листинг 38. Вариант обращения к значению перечисления в версии 8.2
ПредопределенноеЗначение ("Перечисление.СтавКИНДС!БеЗНДС)
К точке маршрута бизнес-процесса можно обратиться так (листинг
39).
Листинг 39. Вариант обращения к точке маршрута бизнес-процесса
в версии 8.2
1редопределенноеЗначение ("БизнесПроцесс. БизнесПроцесс!
.Точка.Старт")
Обратите внимание, что синтаксис строкового имени отличается от
синтаксиса, принятого во встроенном языке. Он совпадает с синтак-
сисом, принятым в языке запросов, в операторе ЗНАЧЕНИЕ. Поэтому
следует быть внимательным при указании строкового имени.
Сравните синтаксис во встроенном языке и синтаксис строкового
имени (листинг 40).
Листинг 40. Сравнение синтаксиса встроенного языка и строкового имени
Справочники.Товары.ИмяПредопределенногоЭлеыента
Справочник.Товары.ИмяПредопределенногоЭлемента"
Перечисления.СтавкиЦЦС.БезНДС
• Перечисление ГтавкиНДС.БеэНДС"
ВезнесПроцессы. Биэци сПрсцес •:!. ТочкиМаршрута. Старт
"НизнесПроцесс.Биэне rilpoueccl- Точка.Старт"
Вызов функции ПредопределенноеЗначение () приводит к обра-
щению на сервер, поэтому нужно стремиться к тому, чтобы использо-
вать эту функцию как можно реже.
Прежде всего, ее, конечно, не следует использовать тогда, когда
доступны менеджеры прикладных объектов, вне кода тонкого клиента
или веб-клиента; в модулях объектов, наборов записей, общих модулях
для которых не установлен флажок компиляции на тонком клиенте,
в серверных процедурах, в серверных функциях модулей форм и т.д.
Но кроме этого, и в клиентском коде форм нужно использовать ее вни-
мательно. Например, если требуется сравнение с одним из предопре-
деленных значений, можно получить это значение еще при создании
формы на сервере и поместить его в данные формы.
Представления чисел, дат и значений
Булево
В версии 8.1 представления чисел, дат и значений типа Булево в интер-
фейсе системы (а также представление календаря и калькулятора) зави-
сели от того, какие региональные установки заданы для информаци-
онной базы в конфигураторе (рис. 368).
Для информационной базы можно было указать язык/страну, в соот-
ветствии с традициями которых должны представляться данные. Кроме
этого, можно было дополнительно указать представления отдельных
данных, если они должны отличаться от принятых для этой страны/
языка.
^’Конфигуратор Представ те ние чисе ч дат бучево
Файл Правка Конфигурация Отладка
1 * 1 >»
Конфигурация
Действия- < ГФЧt I в
1редст "лсниьЧи'елДатБчлеь |
[±] J Общие
. т Константы
(ЯСправочники
Ё- ^J Документы
г Щ| Журналы документов
Г’{ 2 Перечисления
!-££* Отчеты
Е Обработки
-|ш! Планы видов характеристик
*-•’Ij Планы счетов
Планы видов расчета
'faРегистры сведении
hjfa Регистры накопления
[§] Регистры бухгалтерии
1*3' Регистры расчета
, Бизнес процессы
•-Ц2 Задачи
Выгрузить информационную базу...
Загрузить информационную базу.
Публикация Web-сервисов
Тестирование и исправление...
араметры информационн и азы
Активные пользователи
Журнал регистрации
Настройка журнала регистрации.
Рис. 368. Региональные установки информационной базы в версии 8.1
В результате все пользователи, подключающиеся к этой информаци-
онной базе, видели числа, даты и значения типа Булево одинаково.
Например, если для информационной базы установить Язык (Страна) -
литовский, то числа, даты и значения типа Булево примут вид, пока-
занный на нижнем рисунке (сравните с представлением-для русского
языка на верхнем рисунке), рис. 369.
Рис. 369.
Представления чисел, дат
и значений Булево на разных
языках
Такой подход был удобен для прикладных решений, которые эксплуати-
руются в разных странах. Можно было установить нужный язык/страну,
и все пользователи тогда видели данные в привычном для них виде.
Однако для старой версии такой подход не всегда был удачным.
Например, если с информационной базой одновременно работают поль-
зователи из разных стран. Такие ситуации могли возникать, например,
на совместных предприятиях. В этом случае часть пользователей рабо-
тала с данными, которые выглядят привычно, а другой части пользова-
телей приходилось мириться с тем, что данные представлены в непри-
вычном для них виде.
С появлением новой версии платформы и особенно с появлением воз-
можности работать через Интернет этот вопрос становится еще более
актуальным. Интернет стирает границы между государствами, между
людьми, говорящими на разных языках, и в общем случае с информа-
ционной базой могут работать пользователи, привыкшие к самому раз-
ному представлению данных. Поэтому теперь, в новой версии, появи-
лась возможность задавать региональные установки для каждого конк-
ретного сеанса пользователя с помощью ключа командной строки /VL.
В соответствии с этими установками будут отображаться числа и даты.
ПОДРОБНЕЕ
Встроенная справка в режиме Конфигуратор: Справка - Содержа-
ние справки - Запуск 1С: Предприятия 8 и параметры запуска - Общие
параметры запуска.
Как формируется командная строка, можно посмотреть в разделе Режим
низкой скорости соединения см. стр. 42.
Для значений типа Булево тоже появилась возможность исполь-
зовать их представление, не зависящее от информационной базы.
Но в отличие от чисел и дат, представление значений типа Булево
определяется тем, с каким языком интерфейса пользователь запускает
платформу 1С:Предприятие 8.
При запуске сеанса из конфигуратора также существует возможность
указать и язык интерфейса платформы (для типа Булево), и регио-
нальные установки сеанса (для типов Число и Дата).
Эти настройки доступны в параметрах конфигуратора: Сервис - Пара-
метры - Запуск 1С: Предприятия - Дополнительные (рис. 370).
Окна Слсаека
*F IS
редлриягие
да а пз да
Основные
М* Конфигуратор нс грационная конфигурация Управляемое приложение '
Не очищать «Райл перед запуском
1зык интерфейса системы:
Задачи
Настройка параметров
С №
₽ ** Общие
> « Константы
tiii Справочники
₽ „si Документы
SI Журналы документов
I J Перечисления
►> fai Отчеты
£ Обработки
73 Планы видов характеристик1
fj" Планы счетов
Ж Планы видов расчета
ь Регистры сведений
Регистры накопления
Регистры бухгалтерии
М Регистры расчета
I Код локализации сеанса.
Устанавливать режим разрешения отладки
I Начинать отладку при запуске
Ml Отображать показатели производительности
! Отображать команду «Все Функции»
Рис. 370. Язык интерфейса и код локализации в параметрах
конфигуратора
$айл Правка Конфигурация Отладка Администрирование
И Q
| Дегюнстр-эщ <онная{ ДнФчгурацияЧпр
Общие
Калькулятор
Календарь
Шаблоны текста
«I .----------
Настройка
Параметры
Временная блокировка.
Числа и даты
Рассмотрим формирование представления дат и чисел более подробно.
Теперь для определения языка/страны, в соответствии с которыми
должны быть отображены данные, используется следующий алгоритм
(рис. 371).
Рис. 371. Алгоритм отображения представлений чисел и дат
Если в региональных установках информационной базы флажок
Использовать региональные установки текущего сеанса не установлен,
то все работает как раньше - представление чисел и дат определяется
региональными установками информационной базы (рис. 372).
Если в региональных установках информационной базы флажок
Использовать региональные установки текущего сеанса установлен,
то представление чисел и дат будет определяться региональными уста-
новками текущего сеанса.
Тут есть два варианта. По умолчанию если специально для сеанса
язык/страна не заданы, региональные установки сеанса будут соответс-
твовать региональным установкам операционной системы пользова-
тельского компьютера.
Рис. 372.
Свойство «Использовать
региональные установки текущего
сеанса»
Если же при старте системы 1С:Предприятие в командной строке
запуска был указан ключ /VL, то тогда региональные установки сеанса
будут соответствовать тому, что указано в ключе /VL (листинг 41).
Листинг 41. Указание языка текущего сеанса в командной строке
•ClXPrograrr. nles\lcv82\8.2
Булево
Значения типа Булево отображаются в соответствии с языком интер-
фейса платформы. Это либо язык, выбранный по умолчанию при уста-
новке системы 1С:Предприятие, либо то значение, которое указано
в ключе командной строки /L при запуске системы пользователем (лис-
тинг 42).
Листинг 41. Указание языка интерфейса платформы в командной строке
"С \ Files\lcv82\8.2.9.315\ux \lcv8.c^e" Ь It
Обработка заполнения вызывается
при создании нового документа
В системе 1С:Предприятие 8 у прикладных объектов существует
событие Обработка заполнения. Раньше это событие вызывалось
в двух случаях:
при интерактивном вводе на основании (рис. 373);
при программном выполнении метода Заполнить () этого при-
кладного объекта.
Рис. 373.
Ввод на основании
Теперь это событие вызывается еще в трех случаях:
при любом интерактивном создании нового объекта, кроме копи-
рования (копирование по-прежнему обрабатывается в обработ-
чике события объекта При копировании);
при программном выполнении метода ОткрытьФорму (), если
оно приводит к открытию формы нового объекта;
при программном выполнении метода Получить Форму (), если
оно приводит к получению формы нового объекта.
Поскольку раньше этот обработчик в основном использовался только
для обработки событий ввода на основании, то, как правило, код, напи-
санный в этом обработчике, подразумевал, что в параметре Осно-
вание этого обработчика будет ссылочное значение (ссылка на объект,
являющийся основанием).
Теперь в обработку заполнения система может передавать различные
типы параметров, и эту ситуацию нужно анализировать.
Если новый объект создается в результате выполнения команды Создать
глобального интерфейса или в результате команды Создать новый эле-
мент списка из списка, в котором не установлен никакой отбор, то в
параметр обработчика будет передано значение типа Неопределено.
Если новый объект создается в результате выполнения команды Создать
новый элемент списка из списка, в котором установлен некоторый
отбор, то в параметр обработчика будет передано значение Струк-
тура, в котором содержится отбор, установленный в списке. Ключ -
это имя реквизита объекта, по которому установлен отбор, а значение -
это значение, по которому отобран список.
Если новый объект создается в результате выполнения методов
ОткрытьФорму () или ПолучитьФорму (), то в параметр обработ-
чика тоже будет передано значение Структура, соответствующее зна-
чению параметра ЗначенияЗаполнения, который вы опишите при
вызове этих методов (листинг 42).
Листинг 42. Передаче параметра «ЗначенияЗаполнения» при открытии
формы
ЗначенияЗаполнения .«* Новый Структура ("Поставщик"
, ПредопрелеленноеЗначение (" Справочник
.Поставщики.ОсновнойПоставщик"));
Параметры = Новый Структура("ЗначенияЗаполнения"
, ЗначенияЗаполнения);
тьсв-ть .’юрму ("Докум чжта" , Параметры);
Если вы не будете описывать значение этого параметра, то в обработчик
будет передано Неопределенен
Таким образом, тип параметра, передаваемого в обработчик, нужно
проверять:
Неопределено - значит, создается новый 'объект;
Структура - значит, объект создается из отобранного списка,
или это структура, которую вы сформировали самостоятельно;
ссылка - значит, объект создается вводом на основании.
Кроме этого, нужно учитывать еще одну особенность.
Раньше заполнение нового объекта данными выполнялось, как пра-
вило, в обработчике события При открытии формы. Проверялось, явля-
ется ли объект новым (ЭтоНовый ()), и объект заполнялся данными.
Теперь, поскольку обработчик Обработка заполнения вызывается и при
создании новых объектов, код заполнения объекта данными нужно раз-
мещать именно в этом обработчике, в модуле объекта, а не в модуле
формы, как раньше.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В форме
объекта справочника Контрагенты, в команде НовыйРасчетныйСчет,
демонстрируется программное заполнение данных открываемой
формы с помощью параметра формы ЗначенияЗаполнения. Обработка
заполнения реализована в модуле объекта РасчетныеСчетаКонтрагентов.
События «При установке нового кода»
и «При установке нового номера»
вызываются только в транзакции
записи
В 1С:Предприятии 8.1 существовало два подхода к обработке автону-
мерации в форме объекта.
Расширения форм содержали свойство Автонумерация, которое стан-
дартно устанавливалось в значение Авто. В этом случае новый код или
номер присваивался до того, как открывалась форма нового объекта.
Обработчик события При установке нового кода вызывался между
событиями формы Перед открытием и При открытии (рис. 374).
Модуль
формы
Перед открытием
Г*МОТ1рЫТ*М
I
Модуль
объекта
уствювке
«ого кода
Рис. 374.
Вариант вызова обработчика
при открытии формы
В то же время можно было установить
свойство формы Автонумерация в зна-
чение Не использовать, и тогда номер
присваивался в процессе записи нового
объекта. Обработчик события При уста-
новке нового кода вызывался в тран-
закции записи между событиями объ-
екта Перед записью и При записи (рис.
375).
Рис. 375.
Вариант вызова обработчика
при записи объекта
В 1С:Предприятии 8.2 свойство Автонумерация у расширений форм
отсутствует, и новый номер или код всетда присваивается в процессе
записи нового объекта. Обработчики событий При установке нового
кода и При установке нового номера всегда вызываются в транзакции
записи объекта между его событиями Перед записью и При записи (рис.
376).
1 С:Предприятие 8.2. Коротко о главном. Новые возможности версии 8.2
Разработка форм
На клиенте недоступны многие типы.....................397
Другой подход к написанию модулей форм................399
Как добавить элементы в форму.........................401
Рекомендуется создавать формы объектов................407
Форма списка и форма выбора должны быть разными.......408
Отчет/обработка без формы не видны в интерфейсе.......410
Нет просмотра групп и элементов.......................411
Нет события «При изменении данных» формы..............412
Нет события «Обновление отображения» формы............412
Конструирование и программирование управляемых форм - большая и
непростая тема, достойная отдельной книги. Поэтому здесь мы лишь
кратко остановимся на некоторых моментах, которые дают общее пред-
ставление о том, какие изменения произошли в разработке форм.
Также мы обратим внимание на отдельные особенности, которые могут
быть важны для тех, кто «рвется в бой» и предпочитает сначала попро-
бовать все своими руками, а потом уже заняться чтением специальной
литературы.
На клиенте недоступны многие типы
В версии 8.1 в модуле формы был доступен весь контекст встроенного
языка. Можно было, не задумываясь, использовать любые объекты
встроенного языка и выполнять любые действия.
О том, что что-то где-то может быть недоступно, обычно вспоминали
только в тех случаях, когда возникала необходимость передать испол-
нение кода на сервер. На сервере были доступны далеко не все типы
встроенного языка, и далеко не все типы могли быть переданы с кли-
ента на сервер и обратно.
В версии 8.2 ситуация, можно сказать, поменялась на 180 градусов.
На сервере доступно практически все, за небольшим исключением.
В управляемых клиентах, напротив, доступен ограниченный набор
типов встроенного языка.
Основная «неприятность» заключается в том, что в управляемых кли-
ентах недоступны практически все прикладные типы данных.
Например, такие как:
СправочникиМенеджер;
СправочникМенеджер.<имя>;
СправочникВыборка.<имя>;
СправочникОбъект.<имя>;
СправочникСписок. <имя> и аналогичные.
Из прикладных типов в управляемых клиентах можно воспользоваться
лишь ссылкой (например, СправочникСсылка. <имя>), но и она
очень сильно ограничена в своих свойствах и методах.
ПОДРОБНЕЕ
Раздел Синтакс-помощник можно отобрать по контексту, см. стр. 265.
Такие перемены объясняются тем, что управляемые клиенты обязаны
быть максимально легкими. Поэтому они оперируют только специаль-
ными упрощенными типами, которые содержат данные прикладных
объектов.
Эти типы не позволяют читать или записывать данные в базу данных,
обладают лишь минимальным набором свойств и методов. Можно ска-
зать, что они служат лишь для моделирования прикладных объектов
и не позволяют выполнять никаких действий, связанных с прикладной
логикой или модификацией информационной базы.
Если раньше подавляющее большинство кода исполнялось на кли-
енте и лишь некоторые фрагменты алгоритмов выносились на сервер,
то теперь все ровно наоборот: клиентский код должен быть очень
небольшим, содержать минимум кода. На клиенте, например, нужно
выполнять все задачи, связанные с «общением» с пользователем (воп-
росы, предупреждения, открытие форм). На клиенте нужно выпол-
нять некоторую часть управления элементами формы, некоторую часть
работы с данными формы. На клиенте нужно выполнять всю работу
с локальными файлами и с торговым оборудованием.
А вот вычисления, обработка данных, работа с информационной
базой должны выполняться на сервере.
Другой подход к написанию модулей
форм
В версии 8.1 весь модуль формы исполнялся только на клиенте. Он мог
содержать произвольное количество процедур и функций. Разработчик
создавал их, руководствуясь прикладной логикой той задачи, которую
он решал.
В версии 8.1 управляемая форма существует одновременно и на кли-
енте, и на сервере. Для каждой ее процедуры обязательно должна быть
указана директива компиляции, определяющая, тде и как будет испол-
няться эта процедура - на клиенте или на сервере.
ПОДРОБНЕЕ
Документация 1С:Предприятие 8.2. Руководство разработчика, Глава 4.8
Встроенный язык-Особенности режимов запуска системы.
Теперь разбиение кода формы на отдельные процедуры и функции
должно прежде всего подчиняться логике клиент-серверного взаимо-
действия, а не прикладной логике.
Для того чтобы форма работала быстро и эффективно, нужно стре-
миться к следующему:
максимум вычислений должно выполняться на сервере;
количество вызовов сервера должно быть как можно меньше; если
есть возможность объединить несколько вызовов сервера в один,
нужно объединять. Показатели производительности помогут
оценить реальное количество серверных вызовов (см. стр. 252);
лучше использовать неконтекстные вызовы сервера (&НаСерве-
реБезКонтекста), чем контекстные (&НаСервере) - некон-
текстные работают быстрее;
нужно внимательно относиться к используемым на клиенте
методам встроенного языка, так как некоторые из них приводят
к автоматическому вызову сервера (это указано в синтакс-помощ-
нике);
код в модуле формы нужно продумывать не как последователь-
ность действий, которые нужно выполнить, а как сценарий взаи-
модействия клиента и сервера;
клиент и сервер нужно рассматривать не как единое пространство,
а как два взаимодействующих приложения;
полезно постоянно представлять вызов сервера как непростой
процесс: система формирует обращение к серверу, передает его по
каналу связи, потом выполняет его на сервере, возвращает ответ
по каналу связи... Если тонкий клиент работает, например, через
GPRS, то каждый вызов - это 1,5 секунды. Хочется, чтобы с при-
кладным решением работали удаленные пользователи тогда
нужно думать о каждом вызове сервера.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Формы
документов ПриходТовара и РасходТовара демонстрируют работу
с различными элементами формы: поле, группа, группа страниц, таб-
лица и т. д. В этих формах демонстрируется работа встроенного языка
в управляемой форме. Например, пересчет суммы при изменении цены
и количества или получении цены при изменении товара. Пересчет
суммы при изменении количества выполняется без обращения к сер-
веру. На примере получения цены при изменении товара демонстри-
руется обращение к серверной функции без контекста формы. Также
демонстрируется включение в форму итогов по колонкам и отоб-
ражение на закладке количества строк в табличной части.
Как добавить элементы в форму
В первое время при конструировании управляемой формы могут воз-
никнуть сложности с созданием элементов, аналогичных тем, которые
существовали в 1 (^Предприятии 8.1.
Далее представлен перечень элементов управления обычных форм
и краткие рекомендации по созданию аналогичных элементов в управ-
ляемой форме.
Дендрограмма
Теперь дендрограмме соответствует элемент формы Поле, имеющий
вид Поле дендрограммы.
Проще всего создать реквизит формы типа Дендрограмма и перета-
щить его в дерево элементов формы. Платформа автоматически создаст
поле дендрограммы и свяжет его с реквизитом формы.
Диаграмма
Теперь диаграмме соответствует элемент формы Поле, имеющий вид
Поле диаграммы.
Проще всего создать реквизит формы типа Диаграмма и перетащить
его в дерево элементов формы. Платформа автоматически создаст поле
диаграммы и свяжет его с реквизитом формы.
ДиаграммаГанта
Теперь диаграмме Ганта соответствует элемент формы Поле, имеющий
вид Поле диаграммы Ганта.
Проще всего создать реквизит формы типа ДиаграммаГанта и пере-
тащить его в дерево элементов формы. Платформа автоматически
создаст поле диаграммы Ганта и свяжет его с реквизитом формы.
Индикатор
Теперь индикатору соответствует элемент формы Поле, имеющий вид
Поле индикатора.
Проще всего создать реквизит формы типа Число и перетащить его
в дерево элементов формы. Платформа автоматически создаст поле
и свяжет его с реквизитом формы. После этого установить вид поля -
Поле индикатора.
Кнопка
Теперь кнопке соответствует элемент формы Кнопка.
Проще всего создать команду формы (или выбрать одну из существу-
ющих команд) и перетащить ее в дерево элементов формы. Платформа
автоматически создаст кнопку и свяжет ее с этой командой.
КнопкаКомацднойПанели
Теперь кнопке командной панели соответствует элемент формы Кнопка,
имеющий вид Кнопка командной панели.
Проще всего создать команду формы (или выбрать одну из сущест-
вующих команд) и перетащить ее в группу элементов формы, являю-
щуюся командной панелью. Платформа автоматически создаст кнопку,
установит для нее вид Кнопка командной панели и свяжет ее с этой
командой.
КоманднаяПанель
Теперь командной панели соответствует элемент формы Группа, име-
ющий вид Командная панель.
Проще всего сразу создать элемент формы Группа - командная панель
в дереве элементов формы.
Контекстное меню
Контекстное меню есть у многих элементов формы. Никаких специ-
альных действий для его добавления в форму предпринимать не нужно.
Оно автоматически добавляется в дерево элементов вместе с самим эле-
ментом. Но стандартно не отображается в структуре элементов.
Чтобы отобразить контекстное меню элемента формы, нужно уста-
новить курсор на элемент, вызвать контекстное меню и выполнить
команду Показать контекстное меню.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Включение
команд в контекстное меню демонстрируется на примере формы списка
документов РасходТовара. Для таблицы в контекстное меню добавлена
команда печати.
Надпись
Надпись в управляемой форме может быть связана с данными, а может
и не иметь такой связи.
Если надпись связана с данными, то это элемент формы Поле, име-
ющий вид Поле надписи.
Проще всего создать реквизит формы типа Число, Строка, Дата или
Булево и перетащить его в дерево элементов формы. Платформа авто-
матически создаст поле и свяжет его с реквизитом формы. Затем уста-
новить вид поля - Поле надписи.
Если надпись не связана с данными, то это элемент формы Декорация,
имеющий вид Надпись.
Проще всего сразу добавить в дерево элементов формы элемент Деко-
рация - Надпись.
Переключатель
Теперь переключателю соответствует элемент формы Поле, имеющий
вид Поле переключателя.
Проще всего создать реквизит формы типа Число или Строка и пере-
тащить его в дерево элементов формы. Платформа автоматически
создаст поле и свяжет его с реквизитом формы. После этого установить
вид поля - Поле переключателя.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Использо-
вание поля переключателей демонстрируется в форме элемента спра-
вочника Товары, на примере выбора вида товара. Значения перечисле-
ния заданы в свойстве СписокВыбора.
Панель
Теперь панели соответствует элемент формы Группа, имеющий вид
Страницы.
Проще всего сразу создать элемент формы Группа - Страницы в дереве
элементов формы.
ПолеНТМЬДокумента
Теперь полю HTML-документа соответствует элемент формы Поле,
имеющий вид Поле HTML документа.
Проще всего создать реквизит формы типа Строка и перетащить его
в дерево элементов формы. Платформа автоматически создаст поле и
свяжет его с реквизитом формы. После этого установить вид поля -
Поле HTML документа.
ПолеВвода
Теперь полю ввода соответствует элемент формы Поле, имеющий вид
Поле ввода.
Проще всего добавить реквизит формы нужного типа и перетащить
его в дерево элементов формы. Платформа автоматически создаст поле
и свяжет его с реквизитом формы. После этого установить вид поля -
Поле ввода.
ПолеГеографическойСхемы
Теперь полю географической схемы соответствует элемент формы
Поле, имеющий вид Поле географической схемы.
Проще всего создать реквизит формы типа ГеографическаяСхема и
перетащить его в дерево элементов формы. Платформа автоматически
создаст поле географической схемы и свяжет его с реквизитом формы.
ПолеГрафическойСхемы
Теперь полю графической схемы соответствует элемент формы Поле,
имеющий вид Поле графической схемы.
Проще всего создать реквизит формы типа ГрафическаяСхема и
перетащить его в дерево элементов формы. Платформа автоматически
создаст поле графической схемы и свяжет его с реквизитом формы.
ПолеКалендаря
Теперь полю календаря соответствует элемент формы Поле, имеющий
вид Поле календаря.
Проще всего создать реквизит формы типа Дата и перетащить его
в дерево элементов формы. Платформа автоматически создаст поле
и свяжет его с реквизитом формы. После этого установить вид поля -
Поле календаря.
ПолеКартинки
Картинка в управляемой форме может быть связана с данными, а может
и не иметь такой связи.
Если картинка связана с данными, то это элемент формы Поле, име-
ющий вид Поле картинки.
Проще всего создать реквизит формы типа Строка (но можно и Число
и Булево) и перетащить его в дерево элементов. Платформа автомати-
чески создаст поле и свяжет его с реквизитом формы. После этого уста-
новить вид поля - Поле картинки
Если картинка не связана с данными, то это элемент формы Декорация,
имеющий вид Картинка.
Проще всего сразу добавить в дерево элементов формы элемент Деко-
рация - Картинка, а затем задать его свойство Картинка.
ПолеТабличногоДокумента
Теперь полю табличного документа соответствует элемент формы
Поле, имеющий вид Поле табличного документа.
Проще всего создать реквизит формы типа ТабличныйДокумент
и перетащить его в дерево элементов формы. Платформа автоматически
создаст поле табличного документа и свяжет его с реквизитом формы.
ПолеТекстовогоДокумента
Теперь полю текстового документа соответствует элемент формы Поле,
имеющий вид Поле текстового документа.
Проще всего создать реквизит формы типа ТекстовыйДокумент
и перетащить его в дерево элементов формы. Платформа автоматически
создаст поле текстового документа и свяжет его с реквизитом формы.
Другой способ - создать реквизит типа Строка и перетащить его
в дерево элементов формы. Платформа автоматически создаст поле
и свяжет его с реквизитом формы. После этого установить вид поля —
Поле текстового документа.
ПолосаРегулирования
Теперь полосе регулирования соответствует элемент формы Поле, име-
ющий вид Поле полосы регулирования.
Проще всего создать реквизит формы типа Число и перетащить его
в дерево элементов формы. Платформа автоматически создаст поле и
свяжет его с реквизитом формы. После этого установить вид поля -
Поле полосы регулирования.
РамкаГ^руппы
Теперь рамке группы соответствует элемент формы Группа, имеющий
вид Обычная группа и Отображение - Рамка группы.
Проще всего сразу создать элемент формы Группа - Обычная группа
в дереве элементов формы и установить ему свойство Отображение в
значение Рамка группы.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. Различ-
ные варианты использования групп продемонстрированы в формах
объектов справочников Товары и Контрагенты, а также в форме объекта
документа РасходТовара.
СтраницаПанели
Теперь странице панели соответствует элемент формы Группа, име-
ющий вид Страница.
Проще всего в дереве элементов формы вызвать контекстное меню
на группе, являющейся страницами, и добавить элемент Группа - Стра-
ница.
ТабличноеПоле
Теперь табличному полю соответствует элемент формы Таблица.
Проще всего создать реквизит формы типа ДинамическийСписок,
ТаблицаЗначений, ДеревоЗначений, СписокЗначений или
реквизит, имеющий тип набора записей регистра. Затем перетащить
его в дерево элементов формы. Платформа автоматически создаст таб-
лицу, предложит автоматически добавить в нее колонки и свяжет ее
с реквизитом формы.
Также можно перетащить в дерево элементов формы табличную часть
объекта. В этом случае платформа также создаст нужную таблицу
и свяжет ее с данными.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение.
В форме списка регистра накопления Взаиморасчеты демонстриру-
ется возможность открытия формы с активизацией определенной
строки в списке.
В форме документа ПриходТовара демонстрируется отображение
в табличной части реквизита ссылочного значения. В табличной части
Товары отображается артикул.
Размещение полей в табличном поле
Раньше для размещения полей в табличном поле использовалось
свойство колонки табличного поля Положение (Новая колонка, На сле-
дующей строке, В той же колонке).
Теперь для того, чтобы группировать колонки в таблице, нужно в дереве
элементов добавлять в таблицу группы, устанавливать для групп вер-
тикальную или горизонтальную группировку и включать поля таблицы
в эти группы.
Флажок
Теперь флажку соответствует элемент формы Поле, имеющий вид Поле
флажка.
Проще всего создать реквизит формы типа Число или Булево и пере-
тащить его в дерево элементов формы. Платформа автоматически
создаст поле и свяжет его с реквизитом формы. После этого установить
вид поля - Поле флажка.
Рекомендуется создавать формы
объектов
При создании формы в конфигураторе с помощью конструктора стан-
дартно предлагается создать не форму списка, как это было раньше,
а форму объекта (рис. 377).
Это объясняется тем, что в управляемом приложении формы списков
практически утратили свое значение как средство для ввода и изме-
нения данных.
Форма списка справочника
Форма выбора справочник а
Ферма выбор-з группы справочни
Произвольная Форма
(И Назначить Форму основном
Коммент.
Рис. 377.
Конструктор формы
в версии 8.1 и 8.2
С одной стороны, редактирование данных теперь возможно только
в форме, редактирование в списке не поддерживается (см. стр. 103).
С другой стороны, в управляемом приложении разработан специальный
механизм и присутствуют интерфейсные команды для того, чтобы
пользователь мог создавать новые объекты, не пользуясь списками
(см. стр. 148).
Таким образом, основная нагрузка по модификации данных ложится на
формы объектов. Именно их и нужно разрабатывать в первую очередь.
Форма списка и форма выбора должны
быть разными
В версии 8.1 одну и ту же форму можно было назначить основной
формой списка и основной формой выбора (рис. 378).
У формы и у табличного поля было свойство РежимВыбора. В режиме
работы 1С:Предприятие можно было открыть основную форму списка,
установить для нее свойство РежимВыбора в значение Истина и
использовать получившуюся форму как форму выбора (листинг 43).
Рис. 378.
Конструктор формы
в версии 8.1
Листинг 43. Изменение свойства «РежимВыбора» формы в версии 8.1
Форма ~ Справочники.Товары.ПолучитьФормуСписка():
Форма.ЭлементыФормы.СправочникСписок.РежимВыбора “ Истина;
форма .Открыть О ;
' < В открытой форме Судет доступна возможность выбора.
В версии 8.2 так делать нельзя.
Это связано с тем, что форма списка и форма выбора имеют разный вне-
шний вид. В форме выбора стандартно присутствует кнопка Выбрать,
которой нет в форме списка (рис. 379).
Рис. 379.
Кнопка «Выбрать»
в форме выбора
Изменение внешнего вида управляемой формы в режиме исполнения
влечет за собой обращение к серверу и кроме этого может приводить
к отключению кеширования такой формы, что отрицательно сказыва-
ется на производительности.
Поэтому в версии 8.2 основная форма списка и основная форма выбора
должны быть двумя разными формами.
Нужно заметить, что у таблицы управляемой формы также имеется
свойство РежимВыбора. Однако попытка изменить его в режиме
1С:Предприятие (по аналогии с версией 8.1) ни к чему не приведет.
Если была получена форма списка, будет открыта форма списка.
И наоборот (листинг 44).
Листинг 44. Изменение свойства РежимВыбора формы в версии 8.2
к>, ма — волучитьфлрму("Справоииик.Товары.ФормаСписка");
ма. -лСме.чты.Огзясгл.-.РЕХ'вй?*^' а ~ Истина;
: о ма ._*т гре а ь ()
Ь "тпытой возможность выбо; а будет недоступна
Отчет/обработка без формы не видны
в интерфейсе
В версии 8.1 система позволяла включить в интерфейс отчеты и обра-
ботки, у которых не было формы.
В версии 8.2 в редакторе командного интерфейса подсистемы отобра-
жаются только те отчеты и обработки, у которых есть формы. Кроме
этого, отображаются и отчеты, не имеющие форм, но имеющие схему
компоновки данных (рис. 380).
В то же время любые отчеты и обработки (если это разрешено правами)
будут показаны в окне Все функции.
ПОДРОБНЕЕ
Раздел Нет меню Операции, см. стр. 84.
Кригера отбора
Подписки на событие
О Подсистемэ!
S Общие модули
ф Параметры сеанса
Ж Ро™
ft Планы обмена
Ь3 Параметры
« Хранилища на!
Е Общие фпр-ь
© Общие кочн
gj| Гр^ты к<хан
£| Общие макс-
в Общие карик
© Отбор по ролял
Видимо
* Пане/ъ бьмюе
Панея» навмгащ«.См. также
Q Панель действий.Соэдеть
е |ы Панел>действиА.Отчеты
Отчет!
• Панезьдействий.Сервис
Обработка!
га
я
г
о
*
®К йзьжи!
g-j Констант
ОТ Спр-^ —
L
g Журналы
в £ Отчеты
© Отчет!
| Реквизиты
£2 Табдоыые части
© Е] Формы
©
ГЛ Макеты
» Обработки
е & Обработка! ^—-
j7 j Реквизиты
ЁЕ1 Таблкиые части
е EI Формы
©
Для получения подсказки нажнетге F1
Рис. 380.
Команды отчетов
и обработок
в интерфейсе
подсистемы
Нет просмотра групп и элементов
Раньше у расширений табличного поля справочника и плана видов
характеристик было свойство Просмотр групп и элементов.
Оно позволяло задать в конфигураторе, что именно будет видеть поль-
зователь в табличном поле: только группы, только элементы или и то,
и другое.
В версии 8.2 такого свойства у таблицы нет.
Чтобы таблица отображала, например, только группы, нужно в настройке
динамического списка установить отбор ЭтоГруппа = Истина.
ПОДРОБНЕЕ
Раздел Отбор в списках, см. стр. 116.
Как это выглядит, можно посмотреть в стандартной форме списка
иерархического справочника, создаваемой конструктором. Только
в конструкторе на втором шаге нужно включить отображение дерева.
Потом у реквизита Дерево нужно открыть настройку списка и посмот-
реть отбор.
Нет события «При изменении данных»
формы
В 1С:Предприятии 8.1 у расширений форм объектов существовало
событие При изменении данных.
Оно было предназначено для того, чтобы показать в форме объекта
какие-то данные, которые не хранятся в самом объекте, но связаны
с ним. Например, картинку товара.
В 1С:Предприятии 8.2 такого события не существует. Теперь
подобные действия следует выполнять в обработчике события формы
При создании на сервере.
Нет события «Обновление отображения»
формы
В 1С:Предприятии 8.1 у формы существовало событие Обновление
отображения.
Оно часто использовалось для того, чтобы некоторым образом офор-
мить различные элементы формы в зависимости от изменившихся
данных.
Например, выделить цветом какие-то поля, установить отметку неза-
полненного у каких-то полей и т.д.
В 1С:Предприятии 8.2 у формы нет события Обновление отобра-
жения.
Для изменения оформления элементов формы теперь следует исполь-
зовать механизм условного оформления формы (см. стр. 130).
При конструировании формы в конфигураторе можно задать правила,
по которым в форме будут оформляться те или иные поля в зависи-
мости от данных, выводимых в форму.
ПОДРОБНЕЕ
Демонстрационная конфигурация Управляемое приложение. В форме
редактирования товара демонстрируется переключение доступности
элементов в зависимости от текущих значений данных.
Полно* огллолонио
Краткое оглавление.....................................................3
Вступление.............................................................5
Основные изменения.....................................................7
Несколько дистрибутивов................................................8
Установка, обновление и запуск........................................10
Запуск.............................................................10
Установка..........................................................16
Обновление.........................................................18
Изменение установленной версии.....................................18
Удаление...........................................................19
Каталог шаблонов конфигураций и обновлений............................19
Конвертация...........................................................24
Конфигурацию можно переделывать частями...............................26
Новый интерфейс.......................................................27
Обзор интерфейса...................................................27
Информационная панель..............................................35
Область системных команд и главное меню............................36
Три клиентских приложения.............................................40
Режим низкой скорости соединения......................................44
Многоплатформенность..................................................49
Техническая архитектура клиент-серверного взаимодействия..............52
Устойчивость клиентских приложений.................................52
Использование протокола HTTP.......................................54
Безопасность.......................................................56
Особенности файлового варианта работы..............................62
Отказоустойчивый кластер..............................................65
Масштабируемость менеджера кластера................................66
Отказоустойчивость кластера........................................69
Отказоустойчивость рабочих процессов...............................72
Устойчивость к обрыву канала связи.................................73
Динамическое распределение нагрузки................................75
Oracle Database.......................................................76
С файловой базой можно работать не всегда.............................79
Windows 98/Ме больше не поддерживаются................................80
Новая технология внешних компонентов..................................80
Новый состав документации.............................................81
Режим 1С:Предприятие..................................................83
Нет меню «Операции»...................................................84
Гдв управление итогами?...............................................88
Ссылки................................................................90
Интерактивные ссылки....................................................91
Неинтерактивные ссылки..................................................94
История....................................................................95
Избранное..................................................................99
Редактирование только в диалоге...........................................103
Список, иерархический список, дерево......................................105
Поиск в списках - это отбор...............................................108
Списки можно группировать по значению.....................................111
Отбор в списках...........................................................115
Сортировка списка по нескольким колонкам..................................121
Условное оформление списков...............................................126
Динамические списки....................................................127
Прочие списки..........................................................130
Множественное выделение в списках используется стандартно.................132
Варианты отчетов..........................................................134
Пользовательские настройки отчетов........................................139
Настройки вариантов отчетов...............................................145
Новые объекты можно создавать, не пользуясь списками......................148
Предупреждения при изменении кода/номера в форме..........................153
Не получается открыть два документа.......................................157
1С:Предприятие 8 в Интернете..............................................158
Наше «1 С»................................................................161
Разработка................................................................163
Объект «Интерфейс» не используется........................................164
Подсистемы................................................................165
Нет корневой подсистемы...................................................171
У объектов конфигурации нет свойства «Подсистемы».........................173
Новые объекты конфигурации................................................178
Функциональные опции...................................................178
Хранилища настроек.....................................................180
Команды................................................................181
Управляемые формы......................................................184
Стандартные реквизиты.....................................................186
Интерфейсные свойства объектов конфигурации...............................190
Свойства объектов......................................................190
Свойства реквизитов объектов...........................................203
Свойства стандартных реквизитов........................................220
Новые модули..............................................................223
Модуль управляемого приложения.........................................223
Модуль обычного приложения.............................................228
Модуль команды.........................................................229
Модуль управляемой формы...............................................233
Модуль менеджера объекта...............................................238
Общие модули...........................................................243
Новые права...;...........................................................249
Права на реквизиты объектов конфигурации..................................250
Показатели производительности.............................................252
Имитация задержек при вызове сервера.......................................257
Конструктор запроса с обработкой результата................................261
Синтакс-помощник можно отобрать по контексту...............................265
Постепенный перевод в режим управляемого приложения........................267
Резервная копия.........................................................267
Конвертация.............................................................268
Настройки конфигуратора.................................................268
Отключение режима совместимости с версией 8.1...........................272
Основной режим запуска..................................................276
Постепенное включение объектов в интерфейс..............................283
Открытие форм...........................................................291
Управляемые блокировки данных используются стандартно......................298
Почему мой справочник не воден в интерфейсе?...............................299
Проведение документа - новая методика......................................311
Настройки пользователей хранятся в информационной базе.....................324
Что такое настройка.....................................................324
Как хранятся настройки..................................................327
Варианты отчетов и пользовательские настройки отчетов...................327
Данные форм.............................................................331
Общие настройки.........................................................336
Системные настройки.....................................................339
Как получить доступ к настройкам в системном хранилище..................341
Когда нужно создавать собственные хранилища настроек....................343
Как организовать собственное хранилище настроек.........................343
Работа в разных часовых поясах.............................................351
Агрегаты...................................................................355
Безопасный и привилегированный режим исполнения кода.......................375
Привилегированный режим.................................................375
Безопасный режим........................................................377
Пессимистическая блокировка................................................378
Доступ к версии объекта во встроенном языке................................383
Получение предопределенных значений по строковому имени....................384
Представления чисел, дат и значений Булево.................................386
Числа и даты............................................................390
Булево..................................................................391
Обработка заполнения вызывается при создании нового документа..............392
События «При установке нового кода» и «При установке нового
номера» вызываются только в транзакции записи..........................394
На клиенте недоступны многие типы..........................................397
Разработка форм............................................................397
Другой подход к написанию модулей форм.....................................399
Как добавить элементы в форму..............................................401
Рекомендуется создавать формы объектов.....................................407
Форма списка и форма выбора должны быть разными............................408
Отчет/обработка без формы не водны в интерфейсе............................410
Нет просмотра групп и элементов............................................411
Нет события «При изменении данных» формы...................................412
Нет события «Обновление отображения» формы.................................412
н---КНИГИ
П ПРЕДПРИЯТИЮ
М.Г. Радченко, Е.Ю. Хрусталева
«1С:Предприятие 8.2.
Практическое пособие разработчика.
Примеры и типовые приемы»
• Начинающим разработчикам.
• Новое издание популярной книги.
• По ней учились десятки тысяч разработчиков общий тираж предыдущих изданий —
более 60 000 экземпляров.
• Сквозной пример — повторяй и учись!
Издательство «1С-Псблишинг», ISBN 978-5-9677-1147-3 • Рекомендованная розничная цена - 240 руб.
Кодтоваро 4601546069627
http://nashe1c.ru
• Сообщество пользователей «1 С:Предприятия 8».
• Обмен профессиональным опытом.
• Методики, разработки, статьи, дипломные проекты