Uploaded by James Deluxe

+Курс лекций для междисциплинарного курса Эксплуатация информационной системы

advertisement
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ
ФЕДЕРАЦИИ
федеральное государственное бюджетное
образовательное учреждения высшего образования
«КУЗБАССКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ ИМ. Т. Ф. ГОРБАЧЕВА»
филиал КузГТУв г. Прокопьевске
Абрамович Александр Сергеевич
Курс лекций
для междисциплинарного курса
Эксплуатация информационной системы
для студентов очной формы обучения специальности
09.02.04 Информационные системы (по отраслям)
Электронное издание
Составитель: А. С. Абрамович
Рассмотрены и утверждены
на заседании кафедры
Протокол № 5 от 03.09.2020 г.
Рекомендованы к печати
учебно-методической комиссией
Протокол № 3 от 13.01.2020 г.
Электронная копия находится
в библиотеке филиала КузГТУ
в г. Прокопьевске
Прокопьевск 2020
1
Рецензент:
Преподаватель ГПОУ ППЭТ
Зеляев А.С.
.
2
СОДЕРЖАНИЕ
Введение ...................................................................................................... 4
Раздел 1. Информация. Информационные технологии.
Информационные системы ........................................................................ 5
Тема 1. Экономическая информация .................................................... 5
Тема 2. Информационные технологии ........... Ошибка! Закладка не
определена.
Тема 3. Информационные системы..................................................... 16
Раздел 2. Информационные системы на предприятиях........................ 41
Тема 1. Обзор современных информационных систем .................... 41
Тема 2. Концепция системы 1С:Предприятие ................................... 91
Тема 3. Установка платформы 1С:Предприятие 8.2» ....................... 97
Тема 4. Обновление системы «1С:Предприятие 8.2» .......... Ошибка!
Закладка не определена.
Тема 5. Удаление системы «1С:Предприятие 8.2» ............... Ошибка!
Закладка не определена.
Тема 6. Установка информационных баз в системе
«1С:Предприятие 8.2» ........................................................................ 107
Тема 7. Запуск системы «1С:Предприятие 8.2».. Ошибка! Закладка
не определена.
Тема 8. Ведение списка информационных баз ... Ошибка! Закладка
не определена.
Тема 9. Администрирование информационных баз ........................ 143
Тема 10. Защита от несанкционированного использования:
особенности и настройка ................................................................... 152
Раздел 3. Разработка программных модулей в системе
1С:Предприятие 8.2 ................................................................................ 165
Тема 1. Типы данных, операторы и конструкции языка ................. 165
Тема 2. Работа с константами и перечислениями ........................... 203
Тема 3. Работа со справочниками. .................................................... 223
Тема 4. Работа с документами ........................................................... 260
Тема 5. Регистры накопления ............................................................ 278
Тема 6. Работа с отчетами .................................................................. 299
Тема 7. Макеты ................................................................................... 323
Тема 8. Подборы и ввод на основании. ............................................ 343
Тема 9. Приемы разработки форм ..................................................... 357
3
Список литературы: ............................................................................... 408
4
ВВЕДЕНИЕ
Данный курс лекций разработан для специальности СПО
09.02.04 Информационные системы по отраслям. Являются теоретической частью по МДК 01.01 «Эксплуатация информационной системы».
5
РАЗДЕЛ 1. ИНФОРМАЦИЯ.
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ.
ИНФОРМАЦИОННЫЕ СИСТЕМЫ
Тема 1. Информация. Информационные технологии.
Информационные системы
Информация – это сведения, знания, сообщения, являющиеся
объектом
хранения,
преобразования,
передачи
и помогающие решать поставленные перед организацией задачи.
Требования, предъявляемые к информации
 достоверность;
 полнота;
 полезность;
 своевременность;
 релевантность (существенность).
Информационная экономика базируется на информации как
на основном ресурсе и товаре одновременно. Под информационным
ресурсом (ИР) понимают:
1) данные, преобразованные в форму, которая является значимой для предприятия;
2) данные, значимые для управления предприятием;
3) информацию, созданную и/или обнаруженную, зарегистрированную, оцененную, с определенными законами деградации
и обновления.
Информационные ресурсы предприятия представлены в документах массивов информации ИС на машинных носителях, архивах,
фондах, библиотеках.
Информационные ресурсы, частью которых является и информационные технологии, имеют в данном определении четкую структуру в соответствии с методикой их создания, оценки и инвентаризации. Более того, исходя из определения структуры ИР, возможен учет
статических и динамических составляющих ИР.
Законы деградации и обновления позволяют определить положение ИР на рынке ИТ с помощью соответствующей методики.
В методику входит оценка технических (точность, достоверность
и т. д.) и экономических характеристик (стоимость получения зареги6
стрированной информации и т. д.). Оценка ИР в целом для данного
момента времени делается уже после его создания, в том числе
для определения закона деградации (новизны), обновления (возможности поддержания на заданном уровне и развития) и базируется
на оценке востребованности ИР.
В системах организационного управления выделяют экономическую (связанную с управлением коллективами людей, занятых производством продукции, работ и услуг) и техническую (связанную
с управлением техническими объектами) информацию.
Экономическая информация отражает процессы производства,
распределения, обмена и потребления материальных благ и услуг,
связана с общественным производством, поэтому ее также называют
производственной. Экономическая информация характеризуется
большим объемом, многократным использованием, периодическим
обновлением и преобразованием, применением логических операций
и выполнением относительно несложных математических расчетов.
Экономическая информация имеет определенную структуру,
основной структурной единицей экономической информации является показатель.
Показатель обладает законченным смысловым содержанием
и потребительской значимостью для целей управления, его нельзя
разделить на более мелкие единицы без разрушения смысла.
Показатель состоит из совокупности реквизитов. Реквизит – логически неделимый элемент, отражающий определенные свойства объекта
или хозяйственного процесса. Каждый показатель состоит из одного
реквизита-основания и одного или нескольких реквизитов-признаков.
Реквизит-основание характеризует, как правило, количественное
значение показателя (масса, стоимость, норма времени и т. д.), а реквизит-признак – смысловое, определяющее его наименование.
Предприятие (особенно его головной офис) можно рассматривать как эффективный информационный центр, в котором реализуется информационный процесс, т. е. обрабатывается информация, содержащаяся как во внешнем, так и внутреннем потоке.
7
Рисунок 1. Информационные потоки предприятия.
Информационный процесс – это осуществление всей совокупности следующих элементарных информационных актов: прием или
создание информации, ее хранение, передача и использование.
Информационная система (ИС) – это совокупность механизмов и устройств, обеспечивающих полное выполнение информационного процесса.
Вне ИС информация может лишь сохраняться в виде записей
на тех или иных физических носителях, но не может быть ни принятой, ни переданной, ни использованной.
Внешний поток информации определяется взаимодействием
предприятия с экономическими и политическими субъектами, действующими вне его. Сюда относится взаимодействие предприятия
с клиентами и конкурентами, как реальными, так и потенциальными.
Внутренний поток включает в себя информацию, описывающую
отношения в коллективе сотрудников, а также знания, порождаемые
в производстве.
Предприятия имеют и формируют свою собственную внутреннюю информационную среду, в которой циркулируют потоки информации. В качестве внешних источников информации предприятия выступают государство, информационные центры и сети, научноисследовательские организации, поставщики материалов, конкуренты, инфраструктура рынка и т. п. Входной информационный поток
8
предприятия формируется на основании информации, поступающей
от внешней среды. Выходной информационный поток направляется
предприятием во внешнюю среду и содержит информацию о своих
производственных возможностях, производимом товаре (реклама),
материальных, энергетических, кадровых и информационных потребностях и т. д. Информационная система предприятия фильтрует информационный поток и выделяет информацию, необходимую (релевантную) для жизнедеятельности предприятия, преобразуя ее в удобную для принятия решений форму.
Основными задачами предприятия по формированию информационных потоков являются: формирование адекватных информационных
ресурсов доя системы управления предприятием; оптимизация информационных потоков путем исключения дублирования информации; ликвидация разрыва между внедрением ИТ и техники и состоянием информационных ресурсов (их формирование и использование).
Информатизация и информационные технологии
Совершенствование системы управления предприятия в условиях информационной экономики происходит на основе информационных технологий. Достижение целей организации осуществляется
на основе информированности менеджеров организации о продвижении продукции и услуг на рынок, конкуренции, новых технологиях
в условиях изменяющейся рыночной ситуации.
Быстрое изменение параметров современной внешней среды
приводит к увеличению объемов и скорости распространения информации, поэтому для успешного ведения бизнеса необходимо сокращать время принятия решений, что неизбежно приводит к увеличению скорости передачи и переработки информации на базе применения новых информационных технологий. Анализ тенденций и закономерностей развития информационных процессов в сфере бизнеса
подтверждает вывод о высоких темпах информатизации, как процессов управления, так и процессов производства товаров и услуг.
Под информатизацией будем понимать процесс развития «индустрии информации». Рассматривают три равноправные трактовки этого термина:
 процесс создания и совершенствования информационного
общества;
9
 процесс повышения эффективности использования информации в государстве и обществе на основе перспективных информационных технологий;
Информационная технология - это совокупность методов, производственных процессов и алгоритмов программно-технических средств,
объединенных в технологическую цепочку, реализация которых обеспечивает сбор, хранение, обработку, вывод и распространение информации в целях снижения трудоемкости процессов использования информационного ресурса, повышения их надежности и оперативности.
Анализ определений сущности ИТ позволяет сделать вывод,
что в современных условиях они становятся эффективным инструментом совершенствования управления предприятием, особенно
в таких областях управленческой деятельности, как стратегическое
управление, управление качеством продукции и услуг, маркетинг, делопроизводство, управление персоналом и организационная культура.
Основная цель ИТ - обеспечивать эффективное использование
информационных ресурсов:
 при разработке стратегических планов развития организаций;
 в
процессе
изучения
влияния
инвестиционноинновационной деятельности;
 для обеспечения конкурентоспособности подразделений
предприятия на основе учета мнения клиентов, состояния конкурентов;
 для осуществления поддержки принятия управленческих
решений.
Развитие ИТ во всем мире объясняется возросшей интенсивностью информационных потоков вследствие развития процессов глобализации мировой экономики и становления информационного пространства.
Управленческая деятельность нуждается в информационном
обеспечении, так как обработка информации для принятия управленческих решений и выработки управляющих воздействий занимает достаточно много времени.
В основе управления современными предприятиями лежит концепция маркетинга взаимодействия, т. е. совершается переход от концепции управления XX в. "продаем то, что производим" к концепции
XXI в. "производим то, что продаем", то, что пользуется спросом.
10
Информация извлекается из сообщения и зависит от объекта,
воспринимающего (обрабатывающего) это сообщение. Результат зависит от свойств этого объекта. Информация может быть передана
устно и письменно, с помощью электрических сигналов и электромагнитных волн и др. После обработки, преобразования, систематизации может быть получена новая информация, новые знания.
Управленческая информация - информация, которая обслуживает процессы производства, распределения, обмена и потребления
материальных и нематериальных благ и обеспечивает решение задач
организации экономического управления народным хозяйством и его
звеньями. Она представляет собой разнообразные сведения экономического, технологического, социального, юридического и другого характера. При этом сведения экономического характера являются важной составляющей управленческой информации.
Экономическую информацию получают в процессе реализации функции учета и контроля за деятельностью экономического объекта, т. е. в процессе наблюдения за внутренним состоянием объекта.
Результаты наблюдения контролируются (сравнительно с запланированным состоянием) и анализируются величины отклонения. Результаты анализа и являются основанием для принятия решения по управлению работой (поведением) экономического объекта.
Свойства экономической информации
 отражает разностороннюю деятельность предприятий через
систему натуральных, стоимостных и др. показателей;
 отражается в тех или иных носителях (первичных документах, магнитных, оптических носителях) и представлена в виде конечных результатов;
 является цифровой, буквенно-цифровой и алфавитной;
 характеризуется большой массовостью и объемностью;
 требует группировки, арифметической или логической обработки и сжатия информации при передаче из одного управленческого
звена в другой;
 характеризуется длительностью хранения (архивы);
 характеризуется повторяемостью циклов возникновения обработки в установленных временных интервалах;
11
 для обработки экономической информации характерны сравнительно простые алгоритмы;
 преобладание логических операций (выборка, упорядочивание, корректировка) над арифметическими;
 табличная форма исходных и результирующих данных;
 многообразие источников информации и ее потребителей.
Информационные технологии
Процессы преобразования информации связаны с информационными технологиями.
Технология в переводе с греческого - искусство, умение,
а это не что иное как процесс.
Процесс - определенная совокупность действий, направленных
на достижение поставленных целей.
Информационная технология - система взаимосвязанных методов и способов сбора, хранения, накопления, поиска, обработки
информации на основе применения средств вычислительной техники.
Цель информационной технологии - производство информации для анализа человеком и принятие на его основе решения по выполнению какого-либо действия (управленческого решения).
Особенностью ИТ является то, что в ней и предметом и продуктом труда является информация, а орудиями труда - средства вычислительной техники и связи.
Основные принципы компьютерных (новых) информационных
технологий:
 интерактивный режим (диалоговый или режим реального
времени) работы с ПК;
 интегрированность (стыковка);
 гибкость процесса изменения как данных, так и постановок
задач.
Инструментарий информационной технологии - один или несколько взаимосвязанных программных продуктов для определенного
типа компьютера, технология работы в котором позволяет достичь
поставленную пользователем цель (текстовый процессор (редактор),
настольные издательские системы, электронные таблицы, системы
управления базами данных, электронные записные книжки, электронные календари, информационные системы функционального назначе12
ния (финансовые, бухгалтерские, для маркетинга и пр.), экспертные
системы и т. д.
Требования, предъявляемые к информационным технологиям
 малая стоимость, находящаяся в пределах доступности
для индивидуального покупателя;
 автономность в эксплуатации без специальных требований
к условиям окружающей среды;
 гибкость архитектуры, обеспечивающая ее адаптивность
к разнообразным сферам применения: в управлении, науке, образовании, в быту;
 "дружественность" операционной системы и прочего программного обеспечения, обусловливающая работу с ней пользователя
без специальной профессиональной подготовки;
 высокая надежность работы (более 8000 часов наработки
на отказ).
Этапы развития информационных технологий
1-й этап (до второй половины XIX в.) - "ручные" технологии:
перо, чернильница, книга, элементарные ручные средства счета. Коммуникации осуществлялись путём доставки конной почтой писем, пакетов, депеш, в европейских странах применялся механический телеграф. Основная цель технологий - представление и передача информации в нужной форме.
2-й этап (конец XIX в. - 40-е гг. ХХ в.) - "механические" технологии: пишущая машинка, арифмометр, телеграф, телефон, диктофон,
оснащённая более совершенными средствами доставки почта. Основная цель технологий - представление информации в нужной форме
более удобными средствами, сокращение затрат на исправление потерь и искажений.
3-й этап (40-е - 60-е гг. XX в.) - "электрические" технологии:
первые ламповые ЭВМ и соответствующее программное обеспечение,
электрические пишущие машинки, телетайпы (телексы), ксероксы,
портативные диктофоны. Организация доставки информации в заданное время. Акцент в ИТ начинает перемещаться с формы представления информации на формирование её содержания.
4-й этап (70-е гг. - середина 80-х гг.) - "электронные" технологии, основной инструментарий - большие ЭВМ и создаваемые на их
13
базе автоматизированные системы управления (АСУ) и информационно-поисковые системы, оснащённые широким спектром базовых
и специализированных программных комплексов. Центр тяжести технологий смещается на формирование содержательной стороны информации для управленческой среды различных сфер общественной
жизни, особенно на организацию аналитической работы.
5-й этап (с середины 80-х гг.) - "компьютерные" ("новые") технологии, персональный компьютер с широким спектром стандартных
и заказных программных продуктов широкого назначения. Создание
систем поддержки принятия решений на различных уровнях управления. Системы имеют встроенные элементы анализа и искусственного
интеллекта, реализуются на персональном компьютере и используют
сетевые технологии и телекоммуникации для работы в сети.
6-й этап (с середины 90-х гг.) - "Internet/Intranet" ("новейшие")
технологии. Широко используются в различных областях науки, техники и бизнеса распределенные системы, глобальные, региональные
и локальные компьютерные сети. Развивается электронная коммерция. Увеличение объемов информации привели к созданию технологии Data Mining.
Классификация информационных технологий
1. По методам и средствам обработки данных:
 глобальные ИТ включают модели, методы и средства использования информационных ресурсов в обществе в целом;
 базовые ИТ ориентированны на определенную область
применения: производство, научные исследования, проектирование,
обучение и т. д.;
 конкретные ИТ задают обработку данных в реальных задачах пользователя.
2. По обслуживаемым предметным областям:
 ИТ в бухгалтерском учете;
 ИТ в банковской деятельности;
 ИТ в налоговой деятельности;
 ИТ в страховой деятельности;
 ИТ в статистической деятельности и т.д.
3. По видам обрабатываемой информации (рисунок 2).
14
Рисунок 2. Схема классификации информационных технологий
в зависимости от типа обрабатываемой информации.
Предложенное выделение весьма условно, т. к. большинство этих
информационных технологий позволяет поддерживать и другие виды
информации. Например, в текстовых процессорах предусмотрена возможность выполнения примитивных расчетов. Табличные процессоры
могут обрабатывать не только цифровую, но и текстовую информацию,
а также обладают встроенным аппаратом генерации графиков.
4. По типу пользовательского интерфейса (рисунок 3).
Пользовательский интерфейс - взаимодействие компьютера
с пользователем.
Эта классификация позволяет говорить о системном и прикладом интерфейсе.
Прикладной интерфейс связан с реализацией некоторых функциональных информационных технологий.
Системный интерфейс - набор приемов взаимодействия с компьютерами, которое реализуется операционной системой или ее
надстройкой.
Командный интерфейс - самый простой, обеспечивает выдачу
на экран системного приглашения для ввода команды (в ОС MS DOS
системное приглашение: С:\>, в ОС Unix - $).
WIMP - интерфейс. При его использовании на экране высвечивается окно, содержащее образы программ и меню действий. Для выбора одного из них используется указатель мыши.
SILK - интерфейс. При использовании этой информационной
технологии на экране по речевой команде происходит перемещение
15
от одних поисковых образов к другим по смысловым (семантическим)
связям.
Рисунок 3. Схема классификации информационных технологий
по типу пользовательского интерфейса.
Однопрограммная оперативная система - MS DOS.
Многопрограммные операционные системы: Unix, Windows
3.1 и выше, Dos 7.0 позволяют одновременно выполнять несколько
приложений на рабочем месте одного пользователя. Различаются они
алгоритмом разделения времени. Если однопрограммные операционные системы работают или в диалоговом или в пакетном режимах, то
многопрограммные совмещают указанные режимы.
Многопользовательские системы – реализуется сетевыми
операционными системами. Они обеспечивают удаленные сетевые
технологии, а также пакетную и диалоговую технологии на рабочем
месте пользователя.
Большинство обеспечивающих информационных технологии и
функциональных информационных технологии могут быть использованы управленческим работником без дополнительных посредников
(программистов). При этом пользователь может влиять на последовательность применения тех или иных технологий.
Пакетные информационные системы работают в пакетном
режиме: вначале данные накапливаются, и формируется пакет данных, а затем пакет последовательно обрабатывается рядом программ.
Недостаток этого режима - низкая оперативность принятия решений
и обособленность пользователя от системы.
16
Экономические задачи, решаемые в пакетном режиме, характеризуются следующими свойствами:
 алгоритм решения задач формализован, процесс ее решения не требует вмешательства человека;
 имеется большой объем входных и выходных данных, значительная часть которых хранится на магнитных носителях;
 расчет выполняется для большинства записей входных
файлов;
 большее время решения задачи обусловлено большим объемом данных;
 регламентность, т. е. задачи решаются с заданной периодичностью.
Диалоговые ИС работают в режиме обмена сообщениями между
пользователями и системой (например, система продажи авиабилетов). Этот режим особенно удобен, когда пользователь может выбирать перспективные варианты из числа предлагаемых системой.
Диалоговый режим (интерактивный) является развитием пакетного режима. Если применение пакетного режима позволяет
уменьшать вмешательство пользователя в процесс задачи, то диалоговый режим предполагает отсутствие жестко закрепленной последовательности операций обработки данных.
Сетевые технологии обеспечивают взаимодействие многих
пользователей.
Информационные системы
Все объекты представляют собой так называемую систему. Их
поведение, характеристики рассматриваются в системном объекте.
Система - это образующая единое целое совокупность материальных и нематериальных объектов, объединенных некоторыми общими признаками, назначениями, свойствами, условиями существования, жизнедеятельности, функционирования и т. д.
Функционирование системы - процесс переработки входной
информации в выходную, носящий последовательный характер
во времени.
Подсистема - часть любой системы.
Свойства системы:
17
 сложность - система зависит от множества входящих в нее
компонентов, их структурного взаимодействия, а так же сложности
внутренних и внешних связей;
 делимость - система состоит из ряда подсистем или элементов, выделенных по определенным признакам и отвечающих конкретным целям и задачам;
 целостность системы - означает то, что все элементы системы функционируют как единое целое;
 многообразие элементов системы и различие их природы - свойство связано с функционированием элементов, их спецификой и автономностью;
 структурность - определяет наличие установленных связей и отношений между элементами внутри системы, распределение
элементов системы по уровням и иерархиям;
 адаптивность системы - означает приспосабливаемость
системы к условиям конкретной предметной области;
 интегрируемость - означает возможность взаимодействия
системы с вновь подключаемыми компонентами или подсистемами.
Системы значительно отличаются между собой как по составу, так
и по главным целям. Приведем несколько систем, состоящих из разных
элементов и направленных на реализацию разных целей (табл.1).
Таблица 1
Примеры различных систем
Система
Фирма
Главная цель
системы
Люди, оборудование, материалы, здания Производство товаи др.
ров
Элементы системы
18
Продолжение таблицы 1
Главная цель
Система
Элементы системы
системы
Электронные и электроКомпьютер
механические элементы, Обработка данных
линии связи и др.
Компьютеры,
модемы,
Телекоммуникационная кабели, сетевое про- Передача информасистема
граммное обеспечение и ции
др.
Компьютеры,
компьюПроизводство проИнформационная
си- терные сети, люди, инфессиональной инстема
формационное и проформации
граммное обеспечение
Информационная система - это взаимосвязанная совокупность
информационных, технических, программных, математических, организационных, правовых, эргономических, лингвистических, технологических и других средств, а также персонала, предназначенная
для сбора, обработки, хранения и выдачи экономической информации
и принятия управленческих решений.
Свойства информационных систем
 любая ИС может быть подвергнута анализу, построена
и управляема на основе общих принципов построения сложных систем;
 при построении ИС необходимо использовать системный
подход;
 ИС является динамичной и развивающейся системой;
 ИС следует воспринимать как систему обработки информации, состоящую из компьютерных и телекоммуникационных
устройств, реализованную на базе современных технологий;
 выходной продукцией ИС является информация, на основе
которой принимаются решения или производятся автоматическое выполнение рутинных операций;
 участие человека зависит от сложности системы, типов и
наборов данных, степени формализации решаемых задач.
Процессы в информационных системах
 ввод информации из внешних и внутренних источников;
19
 обработка входящей информации;
 хранение информации для последующего ее использования;
 вывод информации в удобном для пользователя виде;
 обратная связь, т.е. представление информации, переработанной в данной организации, для корректировки входящей информации.
С учетом сферы применения выделяют: технические ИС, экономические ИС, ИС в гуманитарных областях и т.д.
Экономическая информационная система (ЭИС) представляет собой систему, функционирование которой во времени заключается в сборе, хранении, обработке и распространении информации
о деятельности какого-то экономического объекта реального мира.
ЭИС предназначены для решения задач обработки данных, автоматизации конторских работ, выполнения поиска информации и отдельных задач, основанных на методах искусственного интеллекта.
В зависимости от сферы применения экономические информационные системы классифицируются:
 ИС фондового рынка;
 страховые ИС;
 статистические ИС;
 ИС в налоговой сфере;
 ИС в таможенной деятельности;
 финансовые ИС;
 банковские ИС (БИС);
 ИС промышленных предприятий и организаций (в этот
контур входят бухгалтерские ИС - БуИС).
Этапы развития информационных систем
Первые ИС появились в 50-х гг. В эти годы они были предназначены для обработки счетов и расчета зарплаты, а реализовывались
на электромеханических бухгалтерских счетных машинах. Это приводило к некоторому сокращению затрат и времени на подготовку
бумажных документов.
60-е гг. знаменуются изменением отношения к ИС. Информация, полученная из них, стала применяться для периодической отчетности по многим параметрам. Для этого организациям требовалось
компьютерное оборудование широкого назначения, способное обслуживать множество функций, а не только обрабатывать счета
и считать з/пл.
20
В 70-х - начале 80-х ИС начинают широко использоваться в качестве средства управленческого контроля, поддерживающего и
ускоряющего процесс принятия решений.
К концу 80-х гг. концепция использования ИС вновь изменяется.
Они становятся стратегическим источником информации и используются на всех уровнях организации любого профиля. ИС этого периода,
предоставляя вовремя нужную информацию, помогают организации достичь успеха в своей деятельности, создавать новые товары и услуги,
находить новые рынки сбыта, обеспечивать себе достойных партнеров,
организовывать выпуск продукции по низкой цене и многое другое.
Соотношение между информационными системами
и информационными технологиями
Информационная технология - процесс различных операций
и действий над данными. Все процессы преобразования информации
в информационной системе осуществляются с помощью информационных технологий.
Информационная система - среда, составляющими элементами
которой являются компьютеры, компьютерные сети, программные
продукты, базы данных, люди, различного рода технологические
и программные средства и т. д.
Таким образом, информационная технология является более емким понятием, чем информационная система. Реализация функций
информационной системы невозможна без знаний ориентированной
на нее информационной технологии. Информационная технология
может существовать и вне сферы информационной системы.
Состав и структура ИС.
Характеристика функциональных подсистем ИС
Структура - фиксированное упорядоченное множество объектов
и их связей (рис. 4.).
Рисунок 4. Структура экономической информационной системы.
21
Функциональная подсистема - подсистема, реализующая одну
или несколько взаимосвязанных функций.
Обеспечивающая подсистема - среда, в которой используются
средства для преобразования информации независимо от сферы применения.
Функциональный признак определяет назначение подсистемы, а также ее основные задачи, цели и функции.
В хозяйственной практике производственных и коммерческих
объектов типовыми видами деятельности, определяющими функциональный признак классификации ИС, являются:
 производственная деятельность связанна с непосредственным выпуском продукции и направлена на создание и внедрение
в производство научно-технических новшеств;
 кадровая деятельность направлена на подбор и расстановку необходимых фирме специалистов, а также ведение служебной документации по различным аспектам;
 финансовая деятельность связана с организацией контроля
и анализа финансовых ресурсов фирмы на основе бухгалтерской, статистической и оперативной отчетности;
 маркетинговая деятельность:
 анализ рынка, анализ продаж;
 организация рекламной компании по продвижению
продукции;
 рациональная организация материально-технического
снабжения.
Указанные направления деятельности и определяют типовой
набор функциональных подсистем ИС:
 производственная подсистема;
 кадровая подсистема;
 подсистема финансов и учета;
 маркетинговая подсистема;
 прочие вспомогательные подсистемы, выполняющие
функциональные задачи в зависимости от специфики деятельности
фирмы (подсистема руководства фирмы).
22
Характеристика обеспечивающих подсистем ИС
1. Программное обеспечение (ПО) - совокупность программ,
реализующих функции и задачи ИС и обеспечивающих работу компьютерных технических средств; инструктивно-методические материалы
по применению средств ПО; а также персонал, занимающийся разработкой и сопровождением ПО на весь период жизненного цикла ИС.
ПО делится на:
 общесистемное;
 прикладное.
Общесистемное ПО классифицируется:
 ОС (операционная система);
 тестовые и диагностические программы;
 антивирусные программы;
 командно-файловые процессоры (оболочки).
Операционные системы являются основными программными
комплексами, выполняющими следующие основные функции:
 тестирование работоспособности вычислительной системы
и ее настройка при первоначальном включении;
 обеспечение аппаратного, программного и пользовательского интерфейсов.
Прикладное ПО классифицируется:
 системы подготовки текстовых документов;
 СУБД;
 системы обработки финансово-экономической информации;
 личные ИС;
 система подготовки;
 системы управления проектами;
 экспертные системы (ЭС) и информационные системы
поддержки принятия решения;
 системы индивидуального проектирования и совершенствования управления.
2. Техническое обеспечение (ТО) - это комплекс технических
средств, обеспечивающих работу ИС; методические и руководящие
материалы, техническая документация; обслуживающий эти технические средства персонал.
В составе комплекса технических средств обеспечения ИТ
выделяют:
23
 средства компьютерной техники;
 средства коммуникационной техники;
 средства организационной техники.
Средства компьютерной техники - составляют базис всего
комплекса технических средств ИТ и предназначены для обработки
и преобразования различных видов информации, используемой в экономической деятельности.
 ПК - вычислительные системы, все ресурсы которых полностью направлены на обеспечение деятельности одного работника (ПК
IBM PС и совместимые с ними компьютеры Macintosh фирмы Apple).
 Корпоративные компьютеры (main frame) - вычислительные системы, обеспечивающие совместную деятельность многих работников в рамках одной организации, одного проекта, одной сферы
информационной деятельности при использовании одних и тех же
информационно-вычислительных ресурсов. Это многопользовательские вычислительные системы. Область применения: реализация ИТ
в крупных финансовых и производственных организациях, создание
ИС, обслуживающих большое число пользователей в рамках одной
функции (биржевые и банковские системы, бронирование и продажа
билетов и т. д.).
 Суперкомпьютеры - это вычислительные системы с предельными характеристиками вычислительной мощности и информационных ресурсов (военная, космическая области деятельности, фундаментальные научные исследования, глобальный прогноз погоды).
Средства коммуникационной техники обеспечивают одну
из основных функций управленческой деятельности - передачу информации в рамках системы управления и обмен данными с внешней
средой, предполагают использование разнообразных методов и технологий, в т. ч. и с применением компьютерной техники.
К средствам коммуникационной техники относятся:
 средства и система стационарной и мобильной телефонной
связи;
 средства и системы телеграфной связи;
 средства и системы факсимильной передачи информации
и модемной связи;
 средства и системы кабельной и радиосвязи, включая оптико-волоконную и спутниковую связи (вычислительные сети).
24
Средства оргтехники - предназначены для автоматизации
и механизации управленческой деятельности.
Всю совокупность оргтехники можно представить в виде следующих групп:
 носители информации;
 средства изготовления текстовых и табличных документов;
 средства репрографии и оперативной полиграфии;
 средства обработки документов;
 средства хранения, поиска и транспортировки документов;
 банковская оргтехника;
 малая оргтехника;
 офисная мебель и оборудование;
 прочая оргтехника.
3. Математическое обеспечение (МО) - совокупность математических методов и моделей, алгоритмов обработки информации, используемых для решения экономических задач и в процессе проектирования информационных систем; техническая документация (описание задач, заданий по алгоритмизации экономико-математической
модели, задач и конкретных примеров их решения); персонал (специалисты по вычислительным методам, проектировщики ИС, постановщики задач управления и т. д.).
4. Организационное обеспечение (ОО) - комплекс документов, регламентирующих деятельность персонала ИС в условиях
функционирования ИС (взаимодействие работников управленческих
служб и персонала ИС с техническими средствами и между собой).
ОО реализовывается в методических и руководящих материалах
по стадиям разработки, внедрения и эксплуатации ИС.
5. Правовое обеспечение (ПрО) - совокупность правовых норм,
определяющих создание, юридический статус и функционирование ИС,
регламентирующих порядок получения, преобразования (обработки)
и использования экономической информации (законы, указы, постановления госорганов власти, приказы, инструкции и другие нормативные
документы министерств, ведомств и местных органов власти).
6. Эргономическое обеспечение (ЭО) - это совокупность методов и средств, используемых на различных этапах разработки и функционирования ИС, предназначенная для создания оптимальных условий высокоэффективной деятельности человека (персонала) в ИС
25
для ее быстрого освоения. К ЭО относятся: комплекс различной документации, содержащие эргономические требования к рабочим местам, информационным моделям, условиям деятельности персонала,
а также способы реализации этих требований и осуществление эргономической экспертизы уровня их реализации.
7. Лингвистическое обеспечение (ЛО) - совокупность языковых средств:
 языки управления и манипулирования данными (язык
СУБД);
 система терминов и определений, используемых в процессе разработки и функционирования ИС;
 информационные языки для описания структуры информационной базы ИС (документов, показателей, реквизитов) и др.
8. Информационное обеспечение (ИО) - представляет собой
совокупность проектных решений по объемам, размещению, формам
организации информации, циркулирующей в АИС (информационные
потоки). Оно включает в себя совокупность показателей, справочных
данных, классификаторов и кодификаторов информации, унифицированные системы документации, специально организованные для обслуживания, массивы информации на соответствующих носителях,
а также персонал, обеспечивающий надежность хранения, своевременность и качество технологии обработки информации.
Жизненный цикл информационных систем
Жизненный цикл информационных систем - это период создания и использования ИС, начиная с момента возникновения потребности
в ИС и заканчивая моментом полного ее выхода из эксплуатации.
Стадии жизненного цикла информационной системы
Анализ предметной области
 сбор материалов для проектирования, при этом выделяют
формулирование требований, с изучения объекта автоматизации, даются предварительные выводы предпроектного варианта ИС;
 анализ материалов и разработка документации, обязательно
дается технико - экономическое обоснование с техническим заданием
на проектирование ИС.
Проектирование
предварительное проектирование;
 выбор проектных решений по аспектам разработки ИС;
26
 описание реальных компонент ИС;
 оформление и утверждение технического проекта (ТП).
 детальное проектирование:
 выбор или разработка математических методов или алгоритмов программ;
 корректировка структур БД;
 создание документации на доставку и установку программных продуктов;
 выбор комплекса технических средств с документацией
на ее установку.
разработка техно-рабочего проекта ИС (ТРП).
разработка методологии реализации функций управления с помощью ИС и описанием регламента действий аппарата управления.
Разработка ИС
 получение и установка технических и программных средств;
 тестирование и доводка программного комплекса;
 разработка инструкций по эксплуатации программнотехнических средств.





Ввод ИС в эксплуатацию
ввод технических средств;
ввод программных средств;
обучение и сертификация персонала;
опытная эксплуатация;
сдача и подписание актов приемки-сдачи работ.
Эксплуатация ИС
 повседневная эксплуатация;
 общее сопровождение всего проекта.
Модели жизненного цикла информационной системы
Каскадная модель - предлагает переход на следующие этапы
после полного осуществления работ по предыдущему этапу. Модель
демонстрирует классический подход в любых прикладных областях;
27
Рисунок 5. Каскадная модель жизненного цикла ИС.
Итерационная модель - поэтапная модель с промежуточным
контролем и циклами обратной связи. Преимущество данной модели поэтапные корректировки, которые обеспечивают меньшую трудоемкость по сравнению с каскадной. Однако время жизни каждого
из этапов рассчитывается на весь период разработки.
Рисунок 6. Итерационная модель жизненного цикла ИС.
Спиральная модель - данная модель делает упор на начальные
этапы анализа и проектирования. Эта модель представляет собой итерационный процесс разработки, где каждая итерация (цикл), представляет собой законченный цикл разработки, приводящий к выпуску
версии изделия (версии проекта ИС), который совершенствуется
от итерации к итерации, чтобы стать значимой информационной системой. При этом каждый виток спирали соответствует поэтапной
28
модели создания информационной системы. Т. о. углубляется и последовательно конкретизируется обоснованный вариант ИС, который
и доводится впоследствии до реализации.
Рисунок 7. Спиральная модель жизненного цикла ИС.
Основные способы построения ИС
 разработка системы "под себя";
 использование прототипов - вместо полной системы создается прототип, отвечающий основным потребностям пользователей:
 определение основных запросов;
 создание рабочего прототипа;
 использование рабочего прототипа;
 пересмотр и улучшение прототипа;
 работа с окончательной версией прототипа;
 использование готовых решений - рекомендуется в максимальной степени использовать стандартные технологии и автоматизации бизнеса;
 использование услуг сторонней организации для передачи
функций управления ИС - организация использует специализированную фирму, которая выполняет управляющие функции по функционированию и развитию ИС компании.
Преимущества
 гарантийное качество обслуживания;
 экономия денежных средств;
 человеческие ресурсы.
29
Недостатки




высокая цена;
утечка информации;
зависимость;
потеря контроля за ИТ.
Создание отдельного решения на основе платформы
1С:Предприятие
В архитектуре программного комплекса 1С: Предприятие выделяется следующие составляющие:
 платформа;
 информационная база;
 база данных;
 конфигурация.
Платформа – набор компонентов, обеспечивающих возможность работы с системой. Информационная база – это конкретное
описание того, какие данные будут использоваться, алгоритмов работы с данными и сами данные. Одна платформа может быть связана
с несколькими информационными базами.
В информационной базе совокупность описаний используемых
данных, алгоритмов работы с ними, используемых диалоговых и печатных форм выделяется под понятием конфигурация.
Для создания одного прикладного решения, то есть экземпляра
программного комплекса, обеспечивающего решение отдельной задачи по учёту деятельности, необходимо:
 Установить платформу;
 Создать информационную базу.
Так как с одной платформой может быть связано несколько информационных баз, то можно сказать, что одно решение определяется
отдельной информационной базой.
Установка платформы производится на основе отдельного экземпляра установочного пакета, обеспечиваемого ключом защиты.
Создание информационной базы производится из стартового
меню 1С:Предприятие.
30
Рисунок 8. Вызов команды создания новой информационной базы.
Рисунок 9. Выбор создания информационной базы.
Создание новой информационной базы может быть выполнено
на основе "шаблона", ранее созданное описания объектов информационной базы или без шаблона, "с чистого листа". Шаблоны должны
быть загружены и зарегистрированы в системе предварительно. Для
регистрации шаблонов используется команда окна запуска "Настройка". При этом откроется окно, в котором можно выбрать шаблон
для регистрации. В данной работе будет рассматриваться случай создания новой информационной базы без шаблона. Для этого нужно
выбрать соответствующий переключатель
31
Рисунок 10. Создание информационной базы без шаблона.
Далее система предложить выбрать имя и расположение информационной базы.
Рисунок 11. Задание имя и расположения информационной базы.
После задания места и расположения информационной базы будет предложено задать параметры запуска информационной базы.
32
Рисунок 12. Задание параметров запуска информационной базы.
Среди параметров запуска необходимо выделить, прежде всего,
режимы запуска. В данном случае режим запуска подразумевает, какой вид клиента будет запускаться. В системе 1С:Предприятие начиная с версии 8.2 используется два вида клиента "Толстый клиент"
и "Тонкий клиент". Каждый вид клиента подразумевает использование характерного для него режима работы. "Толстый клиент" – обычный режим. "Тонкий клиент" – управляемое приложение.
Режимы работы программного комплекса 1С: Предриятие
Платформа «1С: Предприятие» 8.3 может работать в двух режимах:
Обычное приложение (режим, в котором работали предыдущие
версии «1С: Предприятие 8.3»). Управляемое приложение (новый режим) формы в данном режиме построены и работают аналогично
формам веб приложения. В настоящее время режим "Управляемого
приложения" является основным
В каком режиме будет работать приложение, может быть определено в конфигурации, при создании конфигурации или в панели
свойств, как показано на рисунке.
33
Рисунок 13. Задание режимов запуска.
Необходимо выбрать «Управляемое приложение». Однако, режим
запуска также можно назначать каждому пользователю, также режим
можно указывать в параметрах подключения информационной базы.
Командный интерфейс программного комплекса
1С: Предприятие.
Командный интерфейс это основное средство доступа пользователя к функциональности приложения, средство, которое позволяет
перемещаться между формами и выполнять те или иные действия.
Одной из важных особенностей командного интерфейса является то,
что он описывается декларативно. Разработчик не прорисовывает его
в деталях, а просто описывает правила его формирования.
В интерфейсе могут быть выделены следующие составляющие
Рабочий стол - на нём выполняется работа. Открываются документы, отображаются списки и т. д.
Панель разделов – отображает выделенные в конфигурации
функциональные группы, соответствует выделенным подсистемам.
Кроме того - дополнительная кнопка – рабочий стол.
Панель действий. Выводит для быстрого доступа команды выполняемые в данном разделе. Для каждого раздела панель действий
своя и может настраивается.
34
Панель навигации – выводит списки основных объектов используемых в текущем разделе. Для каждого раздела (подсистемы)
панель навигации своя и может настраиваться.
Главное меню – через главное меню можно настроить панель
навигации и панель действий для каждого раздела и настроить информацию, которая будет выводится на рабочем столе. И многие другие режимы интерфейса.
История – отображает историю работы – какие объекты были
созданы, изменены, удалены (какая работа над какими объектами
проводилась).
Информационная панель – последний созданный документы.
Рисунок 14. Структура интерфейса 1С:Предприятие.
Прежде всего, состав интерфейса определяется составом подсистем, определённых в системе. Определённые в системе подсистемы
отображаются в виде подразделов панели разделов.
Структура подсистем определяет структуру функциональности
прикладного решения. Можно сказать, что структура подсистем
определяет, каким образом пользователь будет осуществлять «навигацию» по функциональности предлагаемого решения.
35
Подсистема является одним из объектов дерева конфигурации,
отображается в узле "общие".
Конфигурация программного комплекса 1С:Предприятие
Под конфигурацией понимается описание структуры информационной базы, состав объектов которые в неё входят, их особенности,
поведение. Конфигурация в системе 1С:Предприятие отображается
в виде древовидной структуры – дерева конфигурации.
Объектом конфигурации является описание объекта, который,
в последствии, будет содержаться в информационной базе. На основании объектов конфигурации создаются объекты рабочей среды.
Рисунок 15. Дерево конфигурации.
Создавать объекты конфигурации можно или через контекстное
меню соответствующего узла дерева, или через команду меню "Действия" дерева конфигурации.
Для просмотра свойств объекта конфигурации используется палитра свойств элемента, вызываемая через контекстное меню.
36
Рисунок 16. Палитра свойств элемента.
Рисунок 17. Окно редактирования объекта конфигурации.
Для редактирования свойств элемента конфигурации используется "окно редактирования объекта конфигурации".
Для создания подсистем нужно зайти внутрь ветви общие и выполнить команду «Добавить» контекстного меню ветви «Подсисте37
мы» (можно воспользоваться кнопкой командной панели окна дерева
объектов конфигурации).
Обратите внимание на флаг «включать в командный интерфейс». Подсистемы со снятым флагом не влияют на структуру функциональности программного комплекса.
Рисунок 18. Окно редактирования подсистемы.
К подсистемам первого уровня можно создавать подчиненные
подсистемы и так далее.
Подсистемы первого уровня определяют структуру так называемой "панели разделов" (при этом порядок разделов отличается
от порядка в котором созданы подсистемы в конфигурации. (Разделы
отсортированы по алфавиту).
Рисунок 19. Панель разделов.
При создании объектов конфигурации они относятся к каким
либо подсистемам, настраиваются права доступа.
Таким образом, интерфейс системы описывается декларативно.
«Внешний вид» программы формируется «на лету». Можно сказать,
что интерфейс собирается как мозаика, и каждый элемент мозаики
описывается в системе в определенных точках конфигурации.
38
Для уточнения вида интерфейса контекстного меню корня дерева
объектов конфигурации «Открыть командный интерфейс конфигурации» (либо в палитре свойств найти одноименное свойства и воспользоваться гиперссылкой).
Рисунок 20. Вызов команд редактирования командного интерфейса
через контекстное меню.
Рисунок 21. Подсистемы в дереве конфигурации.
39
Роли в 1С: Предприятие
С помощью ролей определяется доступность какой-либо функциональности определенной группе пользователей конфигурации.
Соответственно этот состав определим исходя из возможного перечня
таких групп (ролей которые они будут выполнять при работе в данной конфигурации).
Рисунок 22. Задание свойств роли.
Следует отметить, что при работе с реальной конфигурацией
нужно очень аккуратно относиться к такому элементу роли, как «Интерактивное удаление» (включение этого флага приводит к возможности удаления объектов без контроля ссылочной целостности)
Следующая важная составляющая командного интерфейса,
это сами команды, но с ними будем знакомиться позже.
Константы в 1С: Предприятие
Константы используются для хранения значений, которые
не меняются довольно длительное время. К ним можно отнести
40
название организации (если учет в конфигурации ведется от имени
одной организации), юридический адрес, фамилии ответственных лиц
и т. д. Значение констант задаются и могут изменяться в режиме
Предприятия. Создаются константы, как и другие объекты конфигурации, на соответствующем узле дерева конфигурации.
Для отображения констант в системе по умолчанию создаются
формы констант, позволяющие задавать и менять значение констант.
Для каждой константы по умолчанию создаётся отдельная форма.
Форму какой либо константы можно увидеть в том разделе, к которому отнесена соответствующая константа в командной панели в группе
команд "Сервис".
Рисунок 23. Отображение на командной панели доступа к формам констант
"Наименование компании", "Учёт по складам", "Учёт по сериям".
Рисунок 24. Форма константы "Наименование предприятия".
41
РАЗДЕЛ 2. ИНФОРМАЦИОННЫЕ СИСТЕМЫ
НА ПРЕДПРИЯТИЯХ
Тема 1. Обзор современных информационных систем
Комплексная система управления предприятием Галактика
Корпорация “Галактика”
Корпорация "Галактика" – один из крупнейших в СНГ разработчиков комплексных решений в области автоматизации управления
производственно-хозяйственной и финансовой деятельностью предприятия. Основной продукт – комплексная система автоматизации
управления предприятием Галактика.
На отечественном рынке экономического программного обеспечения коллектив "Галактики" работает с 1987 года. За это время
пройден путь от "заказного" программного обеспечения (классического АСУ) до разработки тиражных отраслевых решений, полностью
адаптированных к специфике ведущих отраслей экономики.
Отраслевые решения на основе системы Галактика – это технологии управления нового поколения, позволяющие не только построить эффективный учет, но перейти от учета к управлению операциями, а затем – и к управлению ситуациями. Накопленный опыт успешной реализации крупных проектов в ведущих отраслях отечественной
экономики позволил корпорации выдвинуть на рынок спектр решений для предприятий:
 нефтегазовой отрасли;
 связи и телекоммуникаций;
 химической промышленности;
 пищевой промышленности;
 торговли;
 лесопромышленного комплекса;
 энергетики;
 металлургии и горнодобывающей промышленности;
 машино и приборостроения.
Решения корпорации "Галактика" используются как крупными
корпорациями и холдингами, так и средними, активно развивающимися компаниями. Всего у корпорации более 4800 заказчиков на территории Российской Федерации и стран СНГ.
42
Концепция развития продуктов корпорации
Базовые принципы, определяющие развитие системы Галактика,
заключаются в следующем:
 Реализация "петли управления" (прогноз – планирование –
контролируемая деятельность по выполнению планов – анализ результатов – коррекция прогнозов и планов) для всех сфер деятельности предприятия с учетом опыта, накопленного корпорацией "Галактика", ее партнерами и клиентами. Использование технологий интерактивной аналитической обработки данных (OLAP) с возможностью
раскрытия (детализации) уровней аналитики.
 Обеспечение информационной поддержки принятия решений на разных уровнях управления – вплоть до уровня руководства
предприятия (корпорации). Создание и использование баз знаний
по типовым бизнес-процессам (образцам хозяйственной деятельности).
 Соответствие (в перспективе) функциональности, технологичности и степени интеграции системы современным концепциям
ERP (Enterprise Resource Planinng – "планирование ресурсов предприятия"), CSRP (Custom Synchronized Resource Planning – "планирование
ресурсов, синхронизированное с покупателем"), SEM (Strategic
Enterprise Management – "стратегическое управление предприятием"),
а также стандартам открытых систем.
 Сочетание высокой степени интеграции с гибкостью – система строится в виде набора взаимосвязанных, но относительно независимых компонентов, которые приобретаются в составе и порядке,
удобном конкретному клиенту.
 Обеспечение настройки Галактики на конкретную отрасль,
регион, особенности бизнеса. Независимость прикладных свойств системы от программно-аппаратной платформы, гарантированная работа системы в различных операционных средах (Windows 95, 98,
Windows NT и т.д.) и с различными СУБД – Oracle, MS SQL, Pervasive
SQL (Btrieve).
Базовая концепция и основные компоненты системы
В современных условиях конкурентоспособность предприятия
напрямую зависит от того, насколько своевременно информация
о критических факторах успеха предоставляется ответственным
за принятие решений работникам. Информационные системы
для управления хозяйственной деятельностью стали неотъемлемой
43
частью и предпосылкой успешной деятельности руководителей любого уровня, превратились в полноценный рабочий инструмент на каждом предприятии.
Система Галактика ориентирована на автоматизацию решения
задач, возникающих на всех стадиях управленческого цикла: прогнозирование и планирование, учет и контроль реализации планов, анализ результатов, коррекция прогнозов и планов. Система имеет модульную структуру, модули, в свою очередь, объединены в функциональные контуры (рис. 25).
Объединение модулей в контуры Логистики, Финансовый,
Управления персоналом выполнено по виду ресурсов, над которыми
совершается управленческая деятельность. В Контур управления производством и Контур управления взаимоотношениями с клиентами
модули включены в соответствии с автоматизируемым видом деятельности. Понятие "модуль" не следует отождествлять с привычным
для сотрудников служб автоматизации термином АРМ. В каждом модуле присутствуют функции, предназначенные, с одной стороны,
для использования как непосредственными исполнителями, так и управленцами различного уровня, а, с другой стороны, – для решения задач,
относящихся к различным видам управленческой деятельности.
Допустимо как изолированное использование отдельных модулей, так и их произвольные комбинации, в зависимости от производственно-экономической необходимости.
44
Контур управления
производством
Контур логистики
Техническая
подготовка
производства
Техникоэкомическое
планирование
Управление
договорами
Складской
учет
Управление
ремонтами
Учет
материалов в
производстве
Управление
снабжением
Управление
сбытом
Расчеты с
поставщиками
и получателями
Контур управления
персоналом
Управление
персоналом
Заработная
плата
Финансовый и бухгалтерский
контуры
Контур управления
взаимоотношениями
с клиентами
Клиент
Рекламные
компании
Управление
авто
транспортом
Давальческое
сырье
Сервисное
обслуживание
Учет
спецодежды
Консигнация
Платежный
календарь
Финансовый
анализ
Консолидация
Бух.учет: ТХО, ФРО, Касса,
ОС, МБП,Векселя и кредиты,
Фактические затраты,
Бух.отчетность
Контур отраслевых решений
Розничная
торговля
Управление
бюджетом
Контур системного
администрирования
џ
џ
џ
џ
џ
џ
џ
џ
Модуль Настройка
Enterprise
Консоль администратора
Права доступа
Репликация данных
Журнализация
Восстановление БД
Обмен бизнес-документами
Сервис Btrieve
Рисунок 25. Функциональные контуры системы Галактика.
Функциональный состав системы Галактика позволяет для любого предприятия определить набор компонентов, обеспечивающих решение задач управления хозяйственной деятельностью в трех глобальных разрезах: по видам ресурсов, по масштабам решаемых задач
(уровню управления), по видам управленческой деятельности (рис. 26).
45
Виды деятельности
Уровень управления
Анализ
Руководство
Учет
Планирование
Среднее звено
Исполнители
Финансы
Материальные
ресурсы
Трудовые
ресурсы
Виды ресурсов
Рисунок 26. Решение задач управления с помощью Галактики.
При четко налаженной технологической схеме эксплуатации системы Галактика каждый работник выполняет определенные для него
инструкцией действия, получая информацию в объеме, необходимом
и достаточном для осуществления своих должностных обязанностей.
Функции, выполняемые системой Галактика, представлены
на рис. 27.
46
Стратегическое
планирование
Управление
договорами
Управление
финансами
Управление
производством
Управление
закупками
Управление
продажами
Управление
запасами
Мониторинг
качества
Управление
себестоимостью
Управление
персоналом
Управление
транспортом
Управление дел.
производством
Управление
консигнацией
Финансовое
планирование
Маркетинговое
планирование
Производственное планирован.
Планирование
себестоимости
Календарносетевое планир.
Планирование
Контроль исполнения бюджета
Оперативное
управление
Настройки
ГАЛАКТИКА
Стандарты
Контроль плана
и качества
Документы
Банковские
операции
Учет и
контроль
Учет
МЦ и МБП
Отчеты
Анализ
Ует труда и
расчет зарплаты
Учет ОС и
нематер активов
Планирование
инфраструктуры
Финансовый
анализ
Анализ выполнения планов
Анализ оборотных средств
Учет фактических затрат
Оценка ресурсов, мощностей
Маркетинговый
анализ
Анализ
себестоимости
Анализ
качества
Сводная
отчетность
Схемы минимизации налогообложения ресурсов
Настройка на отраслевую специфику
Защита информации
Возможность параллельного учета операций
Консультирование, обучение, внедрение
Сопряжение с существующими АСУ и САПР
Удаленный доступ, межофисный обмен
Международные стандарты отчетности
Поддержка прогнозирования и деловых игр
Архитектура клиент-сервер
Данные для инвестиционного проектирования
Мощные инструментальные средства
Персонификация действий персонала, информационная "прозрачность" всех операций
Управление предприятием в реальном масштабе времени
Системная интеграция, реинжиринг
Рисунок 27. Функции, выполняемые системой.
47
Операции и подтверждают ее совершение. Между документами
могут быть установлены связи. Совокупность операционных документов образует документооборот предприятия.
Выделяют два основных класса документов:
 документы-основания, регламентирующие операции между юридическими лицами (договоры, счета, счета-фактуры, контракты, требования);
 сопроводительные документы (товарные и финансовые),
отражающие суть фактически выполняемых операций.
По всем сопроводительным документам могут быть сформированы бухгалтерские проводки с помощью механизма типовых хозяйственных операций.
В результате работы всех пользователей системы происходит
наполнение базы данных предприятия (организации) оперативной
информацией о ходе выполнения конкретных хозяйственных операций, относящихся к различным направлениям деятельности. При этом
обеспечивается:
 принцип однократного ввода в БД информации
и, как следствие, отсутствие дублирования функций пользователей,
упорядочение документооборота;
 простота контроля корректности и целостности данных,
персонификация действий пользователя;
 контроль регламента выполнения хозяйственных операций;
 быстрая перестройка системы, изменение эксплуатационной схемы системы при изменении процесса.
Администрация предприятия, используя для управления хозяйственной деятельностью систему Галактика, получает возможность:
 своевременного получения достоверной информации о текущей деятельности предприятия;
 оперативного контроля и управления финансами, материальными и трудовыми ресурсами;
 формирования обоснованных планов на основании анализа
данных об имеющихся ресурсах;
 контроля выполнения планов и взаимных обязательств;
 анализа результатов деятельности и формирования оптимальных управляющих воздействий.
48
Финансовый контур
Бюджет
Бюджетирование – процесс управления финансовыми ресурсами, включающий в себя следующие этапы:
1. этап планирования (составления бюджета) и моделирования различных вариантов бюджетов;
2. этап согласования и утверждения бюджетов;
3. формирование фактических показателей бюджета;
4. анализ исполнения бюджета;
5. проведение корректировок бюджета.
Возможности, которые открывает автоматизация бюджетирования с помощью системы Галактика:
 Автоматическое построение консолидированных бюджетов по любой сложной оргструктуре предприятия от холдинговой
структуры до структуры отделов и подразделений.
 Автоматизация процедуры согласования бюджетов и хранение данных по всем этапам согласования.
 Возможность формировать и анализировать различные варианты (сценарии) бюджетов.
 Гибкая настройка аналитических признаков статей и их
визуального представления в типовых формах бюджетов.
 Формирование плановых показателей бюджетов по оперативным планам в системе Галактика (например, формирование бюджета на основе календарных планов договоров).
 Формирование фактических показателей бюджета в автоматическом режиме на основе оперативных и бухгалтерских данных
системы Галактика.
 Возможность агрегировать бюджет по нескольким вариантам оргструктуры (например, по оргструктуре юридических лиц и по
оргструктуре функционального подчинения).
 Гибкая настройка представления форм бюджетов для каждого подразделения.
Платежный календарь
Назначение модуля "Платежный календарь" – оперативное
управление денежными потоками предприятия, определение оптимального плана поступления и расходования денежных средств и его
корректировка.
49
Автоматизация деятельности предприятия в данной области
обеспечивает:
 краткосрочное (до одного месяца) планирование расчетов
с контрагентами на основе использования денежных средств, векселей и других видов ценных бумаг, оптимизацию платежного календаря по критерию минимизации штрафных санкций;
 планирование аккумулирования денежных средств на банковских счетах, размещения и снятия средств с депозитов, продажи/закупки валюты;
 контроль баланса расходов и поступлений с учетом ликвидной "подушки" по каждому из видов средств (национальная
и иностранная валюта, акции и другие ценные бумаги с высокой степенью ликвидности и т. п.);
 оперативное отображение данных о плановых и фактических поступлениях и их отклонения за определенный период времени
в разрезе источников поступления;
 составление оперативных отчетов о движении денежных
средств, показывающих данные по поступлению средств и их расходованию в разрезе видов банковских счетов (расчетных, валютных,
ссудных и т. п.) для последующего финансового анализа.
Финансовый анализ
Основная задача финансового анализа – оценка финансового состояния предприятия и выявление перспектив его дальнейшего развития.
Функциональные средства модуля ориентированы на предприятия всех форм собственности и учитывают требования, предъявляемые к отчетности, как национальным законодательством, так и международными стандартами. Анализ производится на основе данных
баланса предприятия, а также различных справок и приложений. Вся
входная информация программно контролируется путем взаимной
увязки показателей.
Анализ финансового состояния может производиться по нескольким методикам, позволяющим рассчитывать значения одних
и тех же показателей с помощью разных формул. При проведении
экспресс-анализа проводится оценка экономического потенциала
субъектов хозяйствования и оценка результативности их хозяйственной деятельности.
50
Оценка финансового состояния предприятия производится путем расчета коэффициентов независимости, финансовой устойчивости, рентабельности, платежеспособности и т. п.
Обеспечивается трансформация бухгалтерской отчетности в соответствии с международными стандартами.
Контур логистики
Контур логистики обеспечивает детализацию и выполнение
планов снабжения и сбыта; управление материальными потоками
внутри предприятия и при взаимодействии с поставщиками и получателями продукции, товаров и услуг; контроль взаиморасчетов с поставщиками и получателями.
Схема информационных потоков контура приведена на рис. 28.
В базовый комплект поставки Контура логистики включены модули Складской учет, Управление снабжением, Управление сбытом
и Поставщики-получатели.
Бухгалтерский контур
Контур логистики
Управление
авто
транспортом
Управление
договорами
Снабжение
Сбыт
Косигнация
Складской
учет
База
данных
Поставщики,
получатели
Учет
материалов в
производстве
МБП
ОС и НМА
Розничная
торговля
Рисунок 28. Схема информационных потоков Контура логистики.
Управление договорами
Модуль Управление договорами предназначен для автоматизации бизнес-процедур, связанных с заключением, исполнением и учетом договоров и контрактов. Он может использоваться для автоматизации договорной деятельности во многих отраслях промышленности, транспорта, торговли и т. д. При этом упрощается решение следующих задач:
51
 Заключение договоров (конкретных и рамочных), связанных, в первую очередь, со снабжением и сбытом. Учет расчетов по
договорам, в том числе векселями и ценными бумагами.
 Конкретизация рамочных договоров путем периодического
заключения дополнительных соглашений, уточняющих взаимоотношения сторон на определенный период.
 Формирование календарных планов движения товаров,
услуг и платежей. Расчет штрафов за нарушение условий и сроков отгрузки и оплаты.
 Формирование наряд-заказов на отгрузку товаров на внутренний рынок и на экспорт.
 Организация транспортировки и формирование платежных
документов. При этом выполняется расчет потребности в единицах
подвижного состава и транспортных средствах, формируются счета
на предоплату за товары/услуги по транспортировке. Возможна отгрузка товаров железнодорожным и автомобильным транспортом
с формированием сопроводительных документов. При этом определяются приоритеты отгрузок, формируются распоряжения на отгрузку, разнарядки, накладные на отпуск.
 Формирование отчетности и проведение окончательных
расчетов. На этом этапе, на основании товарно-сопроводительных документов, осуществляется учет выполнения наряд-заказов, формируются платежные документы для оплаты услуг по транспортировке,
контролируется дебиторская и кредиторская задолженности, анализируется состояние взаиморасчетов. Для этого используются акты сверки взаиморасчетов, в которых фиксируются объемы отгруженных товаров и расходы на транспортировку в стоимостном выражении, суммы платежей, суммы оказанных услуг, наличие задолженности.
Перечень основных отчетов модуля
 Итоговый и товарно-финансовый отчеты об исполнении
договоров, содержат информацию об объемах взаимных отгрузок/поставок и размерах платежей за период и позволяют сравнить
запланированные объемы с фактическими. Плановые показатели
определяются на основании календарных планов к договорам, а фактические – из проведенных накладных и платежных документов.
 Товарная часть отчета об исполнении договоров и финансовая часть с нарастающим итогом, подобны товарно-финансовому
52
отчету, но содержат соответственно информацию только об объемах
взаимных отгрузок/поставок или только о размерах платежей. Эти отчеты также позволяют сравнить плановые и фактические показатели.
 Отчеты об исполнении договоров, наряд-заказов и распоряжений на отгрузку по номенклатуре, позволяют получить информацию об объемах поставленных/отгруженных за период материальных
ценностей.
 Отчеты по хронологии отгрузок и хронологии платежей,
предоставляют информацию о проведенных накладных и платежных
документах по договору, соответственно. Документы в отчетах располагаются в хронологическом порядке. В отчете по хронологии отгрузок также приводятся данные о складских ордерах, сформированных по накладным.
 Отчеты по исполнению наряд-заказов и исполнению распоряжений на отгрузку, содержат информацию о наряд-заказах, распоряжениях на отгрузку и сформированных по ним накладных. Имеется возможность включения в отчет данных по всем или только по
исполняемым документам, а также – по всем или только по проведенным накладным.
 Реестры договоров, наряд-заказов и распоряжений на отгрузку.
Отчеты являются интерактивными. Это значит, что перед выводом на печать можно "раскрыть" данные отчета, т. е. просмотреть
и при необходимости откорректировать первичные документы, на основании которых эти данные были получены.
Гибкая система настроек позволяет получать исчерпывающие
отчеты в различных разрезах, за любой период и с разными уровнями
детализации. Каждый пользователь системы может создать свой
набор настроек отчетов. При этом все настройки сохраняются в базе
данных и доступны в любой момент.
Управление снабжением
Стандартные функции подразделения, отвечающего за закупки
необходимых предприятию товаров и материалов, получение услуг,
обычно предполагают:
 ведение картотеки предложений потенциальных поставщиков;
53
 отслеживание поступающих от других подразделений требований (заявок) на приобретение;
 составление плана закупок в соответствии с заключенными
договорами и долгосрочными контрактами;
 выбор конкретного поставщика и формирование заказа
на поставку;
 регистрацию документов, на основании которых производится закупка (счета, договоры, контракты, гарантийные письма);
 оформление доверенностей на получение;
 распределение материальных ценностей по складам;
 контроль состояния договоров и платежных документов
на приобретение (оплачено/не оплачено/просрочено);
 получение различных отчетов в разрезе отслеживаемой
номенклатуры, партий, групп и используемых систем классификации.
В системе Галактика функции по отслеживанию предложений
поставщиков, планированию закупок, выбору поставщика выполняются вне модуля Управление снабжением. В зависимости от состава
используемых модулей системы и степени ее внедрения входные данные для модуля Управление снабжением могут формироваться разными способами:
 План закупок можно ввести непосредственно в модуле
Управление снабжением и контролировать его выполнение путем автоматического расчета фактических поставок согласно введенным
в систему документам.
 Документы на закупку можно формировать автоматически
на основании выполняемого в модуле Управление сбытом прогноза
дефицитов.
 Поступающие заявки на закупку можно вводить как документы, находящиеся в состоянии "Оформляемый" и по мере необходимости переводить их в состояние "Исполняемый".
Для контроля взаиморасчетов с поставщиками служит модуль
Поставщики, получатели.
Непосредственно в модуле Управление снабжением сосредоточены операции по работе с конкретными документами на приобретение: документами - основаниями, накладными, доверенностями.
Процесс решения задачи управления снабжением иллюстрирует
схема на рис. 29.
54
Оформление
документовоснований
Управление
снабжением
МЦ,
услуги
Ввод плана закупа
ДО
Установка состояния ДО:
оформленный, исполняемый,
закрытый
МЦ,
услуги
услуги
МЦ
Оформление
доверенностей
на получение
Оформление
приходных
накладных
Оформление
актов на прием
услуг
Формирование
счетов-фактур
для учета НДС
Оформление
рекламационных
накладных
Распределение
по складам,
оприходование
Складской
учет
Формирование
платежных
документов
Контур
бух.учета
База
данных
Контроль
Отчеты
Рисунок 29. Схема решения задач Управления снабжением.
Отличительные особенности реализации задачи управления закупками:
 использование в документах на закупку как товарных, так
и нематериальных позиций (услуг);
 учет партий закупаемых товаров, отслеживание сроков
хранения, сроков действия лицензий и сертификатов;
 поддержка различных валют и международных закупок;
 учет таможенных пошлин, транспортных и прочих затрат
при вычислении учетной цены закупаемых материальных ценностей;
 учет возвратов по рекламации;
 автоматизированное распределение материальных ценностей по складам;
 автоматическое формирование приходных складских ордеров по группе накладных;
 формирование платежных документов на оплату по документам-основаниям;
 формирование доверенностей на получение матценностей;
 формирование документов-оснований по сопроводительным документам;
55
 отражение в Финансовом контуре всех операций по закупкам материальных ценностей и услуг с помощью механизма типовых
хозяйственных операций.
Стандартные отчеты:
 отчеты о закупаемых матценностях и услугах в разрезе
номенклатуры, поставщиков, групп, партий, внешней классификации;
 аналитические отчеты по закупкам;
 иерархические отчеты по исполнению групп документов;
 отчет о платежах по группам документов;
 иерархические реестры документов и сопроводительных
документов;
 отчет о несоответствиях в документах на закупку.
Управление сбытом
Функции ввода и обработки документов в модуле Управление
сбытом реализованы аналогично модулю Управление снабжением.
Новыми элементами по сравнению с управлением снабжением
являются: формирование отпускных цен, резервирование отпускаемых по документам-основаниям материальных ценностей.
Процесс решения задачи управления сбытом иллюстрирует схема на рис. 30.
Оформление
документовоснований
Управление
договорами
Ввод плана реализации
Формирование прайслистов
Расчет стоимости услуг
по тарифу
ДО
Установка состояния ДО:
оформленный, исполняемый,
закрытый
МЦ,
услуги
МЦ,
услуги
услуги
МЦ
Оформление
доверенностей
контрагента
Оформление
накладных
на отпуск
Оформление
актов на оказание услуг
Формирование
платежных
документов
Формирование
счетов-фактур
для учета НДС
Оформление
рекламационных
накладных
Формирование
сводных
накладных
Списание
со склада
Складской
учет
Контур
бух.учета
База
данных
Контроль
Отчеты
Рисунок 30. Схема решения задач Управления сбытом.
56
Модуль Управление договорами предоставляет возможность
формировать документы и проводить расчеты для оперативного контроля и управления отгрузкой товаров на всех этапах. Документы основания и накладные на продажу можно формировать как в модуле
Управление сбытом, так и в модуле Управление договорами.
Формирование отпускных цен выполняется с помощью прайслистов. Система Галактика позволяет создавать и поддерживать произвольное число различных прайс-листов. Так, можно иметь отдельные прайс-листы для крупнооптовой и мелкооптовой торговли, для
определенных групп товаров и услуг и т. п.
Прайс-лист можно формировать вручную либо автоматически,
рассчитывая предполагаемую цену реализации путем добавления
к учетной или заводской цене матценности описанных пользователем
торговых наценок (скидок) и налогов.
При оказании услуг, стоимость которых не является фиксированной, а зависит от определенного набора параметров и рассчитывается по заданному тарифу, используется механизм расчетных услуг.
Модуль Управление сбытом обладает следующими возможностями:
 учет типа налогообложения при оформлении документа;
 формирование документов в национальной либо любой
из зарегистрированных в системе валют с расчетом соответственно
рублевого или валютного эквивалента; возможность корректировки
курса валюты непосредственно в процессе формирования документа;
 автоматическое формирование номеров документов
на продажу с возможностью их корректировки пользователем;
 автоматическое либо ручное резервирование МЦ по предприятию, складу или разрезу хранения при выписке документа и гибкое управление резервом;
 произвольное число как товарных, так и нематериальных
позиций (услуг) в документе на продажу;
 возможность ведения продаж наборами товаров;
 гибкое изменение цен путем оперативной корректировки
прайс-листов;
 динамический контроль наличия товаров на складе при
выписке счета; возможность оформлять счета для отсутствующих
в наличии товаров (вариант предоплаты);
57
 автоматическое формирование накладных по выписанному
документу-основанию; управление выбором склада, с которого должна произойти отгрузка; контроль повторных попыток оформить
накладную на отпуск по уже исполненному документу-основанию;
 ведение счетов-фактур для учета НДС;
 ведение товарно-транспортной информации в документах
на отпуск;
 сопряжение с электронными весами и автоматический перенос результатов взвешивания в накладные на отпуск;
 учет возвратов матценностей по рекламациям;
 возможность автоматически производить списание товара
на складе при оформлении накладной на его отпуск;
 автоматическое формирование расходных складских ордеров по группе накладных;
 пакетное формирование товарных и финансовых сопроводительных документов по документам - основаниям;
 формирование групп счетов для контрагентов, находящихся на абонентском обслуживании;
 прогнозирование объемов закупок и формирование заявок
на дефициты;
 отражение в Контуре бухгалтерского учета всех операций
по реализации материальных ценностей и услуг с помощью механизма типовых хозяйственных операций.
Стандартные отчеты:
 печать накладных по типовым формам, в том числе железнодорожных, на отпуск самовывозом и др.;
 отчеты о реализованных товарах и услугах в разрезе номенклатуры, групп, партий, внешней классификации, получателей;
 аналитические отчеты по реализации;
 отчеты по оплаченности отгрузок;
 иерархические отчеты по исполнению групп документов;
 отчет о задолженности контрагентов по возвратной таре;
 иерархические реестры документов-оснований и сопроводительных документов;
 отчет о несоответствиях в документах на продажу.
Управление операциями с консигнационным товаром имеет
свои особенности, поэтому функции учета приема и передачи товара
58
на реализацию с регламентной отсрочкой платежа вынесены в системе Галактика в отдельный модуль Консигнация.
Этот модуль позволяет выполнять следующие операции:
 оформлять документы-основания на прием или отпуск товара на консигнацию;
 включать в спецификацию формируемых документов
наборы товаров;
 формировать накладные на прием и возврат консигнационного товара;
 формировать доверенности для получения консигнационного товара;
 получать ведомости приема/отпуска консигнационного товара в разрезе контрагентов и товаров;
 получать отчеты по реализации и остаткам консигнационного товара (в рублях и в валюте);
 получать отчеты по исполняемым документам-основаниям
на прием или отпуск консигнационного товара;
 контролировать соответствие накладных и складских ордеров.
Складской учет
Модуль Складской учет тесно связан с задачами управления
снабжением и сбытом, а также учетом материалов в производстве.
Складские ордера формируются по сопроводительным документам на
прием и отпуск матценностей (МЦ) во всех модулях, где создаются
такие документы.
Основные возможности модуля Складской учет:
 ведение приходных и расходных складских ордеров, распределение МЦ по материально-ответственным лицам, партиям,
ячейкам хранения;
 учет МЦ в нескольких валютах;
 учет операций с МЦ с помощью карточки складского учета;
 учет операций внутреннего перемещения (между складами); передача МЦ со склада в основные средства, нематериальные
активы, подразделения розничной торговли; передача МЦ со склада
в малоценные и быстроизнашивающиеся предметы и обратно; мастер
формирования накладных на внутреннее перемещение;
 динамический пересчет складских остатков;
59
 учет партий МЦ, контроль сроков хранения партий, сроков
действия сертификатов (лицензий);
 ведение учетных цен, поддержка методик списания
по средневзвешенным ценам, LIFO, FIFO, средневзвешенным ценам
по разрезу хранения "Склад - МОЛ - Партия";
 проведение инвентаризации, формирование ведомости
фактического наличия, сличительной ведомости по итогам инвентаризации, ведомости по рассогласованным позициям, актов о недостаче и об излишке;
 проведение переоценки МЦ в связи с изменением курса
валют, по цене последнего приобретения и т. д.;
 учет операций комплектования и разукомплектования МЦ
на складах;
 учет пересортицы;
 формирование ведомостей наличия МЦ на любую дату
в разрезах: склад, МОЛ, партия МЦ, инфраструктура склада;
 формирование ведомостей движения за период в разрезах:
контрагент, склад, МОЛ, группа МЦ, партия МЦ;
 формирование оборотных ведомостей по складам, МЦ,
партиям;
 формирование накопительных ведомостей по приходам
и по расходам;
 контроль неликвидов, сверхнормативов, дефицитных позиций;
 контроль соответствия накладных и складских ордеров;
 просмотр бухгалтерских проводок по складским ордерам.
Реализованную в модуле Складской учет технологию выполнения складских операций иллюстрирует схема на рис. 31.
60
Учет операций с внешними конрагентами и с производством
Управление
снабжением
Управление
сбытом
Учет материалов
в производстве
Складские операции
Складские операции
Ввод остатков
МЦ
Учет
пересортицы
База
данных
Инвентаризация
Списание
со склада
Переоценка
Комплектование
Учет движения МЦ внутри предприятия
Внутренние
перемещения
Передача в ОС,
НМА
Передача со
склада в МБП
и обратно
Передача в
подразделения
розн. торговли
Контроль
Отчеты
Рисунок 31. Схема реализации модуля Складской учет.
Расчеты с поставщиками и получателями
Модуль Поставщики, получатели предназначен для контроля
за порядком расчетов с поставщиками и получателями по исполняемым документам-основаниям (ДО).
Функции модуля можно разделить на следующие группы:
 контроль взаиморасчетов посредством установки и просмотра связей между ДО и платежными документами; пакетное распределение платежей; создание актов взаимозачетов и договоров
уступки долга (цессии);
 расчет штрафных санкций;
 ведение счетов-фактур для учета НДС;
61
 ввод планов закупок и реализации;
 учет долгов, контроль взаиморасчетов с помощью отчетов.
 Основные отчеты:
 реестр исполняемых ДО с учетом сформированных по ним
товарных и финансовых сопроводительных документов;
 обороты и задолженности по исполняемым ДО с разноской
задолженностей по заданным периодам и подбивкой итогов по контрагенту и всем выбранным контрагентам;
 прогноз налоговых платежей;
 контроль взаиморасчетов с контрагентами, расчет сальдо
и составление платежного баланса по контрагенту;
 проверка дебиторской и кредиторской задолженностей денежных средств и МЦ/услуг.
Контур управления производством
Система
Галактика,
относясь
к
классу
финансовоэкономических систем, включает в себя не только унифицированные
компоненты, предназначенные для эксплуатации в организациях
(корпорациях) любой профессиональной ориентации, но и содержит
ряд специализированных модулей, автоматизирующих процессы
управления производством промышленной продукции. К ним относятся классические подсистемы традиционных АСУ производством –
Техническая подготовка производства, Технико-экономическое планирование, Учет затрат на производство, Управление ремонтами.
На рис. 32 приведена общая схема циркуляции информации
в контуре управления промышленным производством.
62
Клиенты
Заказы
Отдел маркетинга
Прогноз потребности в
номенклатуре и
количестве.
Информация о заказах
Техническая подготовка производства
Конструкторский
отдел
Технико-экономическое планирование
Плановоэкономическая
служба
Технологическая
служба
Служба
технической
документации
џ
џ
џ
џ
џ
џ
џ
џ
џ
Номенклатура изделий и материалов
Состав изделий
Виды работ
Извещения на конструкторские изменения
Извещения на технологические изменения
Технологические маршруты
Пооперационные ТП
Пооперац. нормы расхода материалов
Виды оборудования
џ
џ
џ
џ
џ
План производства
Статьи калькуляции
Цены покупных изделий
Состав производственных заказов
Сметы затрат
Технологическая документация:
последовательность техопераций
нормы расхода материалов
требования кперсоналу
Документация:
Конструкторская документация:
нормативная калькуляция затрат на производство
плановая потребность в сырье
отчеты по анализу производства (загруженность
оборудования, обеспечение ресурсами)
производственная программа
чертежи
ведомости применяемости
ведомости разузлования
Контур оперативного управления
ПРОИЗВОДСТВО
џ
џ
џ
Готовая продукция
Лимитно-заборные
карты
Материалы и комплектующие
Материально-техническое снабжение
Складской учет
Отдел сбыта
Сведения в контур
бух.учета
Рисунок 32. Информационные потоки в контуре управления производством.
Модули Контура управления производством системы Галактика
ориентированы на большой спектр предприятий следующих отраслей
промышленности:
 добыча, транспортировка и первичная переработка сырьевых ресурсов;
 горнорудная и горнообогатительная промышленность;
 черная и цветная металлургия;
 транспортировка нефти и газа;
 химическая и нефтехимическая промышленность;
 легкая промышленность;
 пищевая промышленность;
 машиностроение;
 приборостроение;
 стройиндустрия.
63
Данные предприятия характеризуются следующими параметрами:
 непрерывный, дискретный либо смешанный характер производства;
 массовый, серийный, мелкосерийный, единичный тип производства;
 позаказное либо попередельное планирование;
 наличие нормативного метода учета:
 специфицированные нормы расхода материалов;
 пооперационные технологические процессы.
Программные модули Контура управления производством используют в качестве нормативно - справочной информации структуры
базы данных Галактики, а также более 20 дополнительных каталогов
и справочников.
Техническая подготовка производства
Программный модуль Техническая подготовка производства
(ТПП) обеспечивает описание структуры продукции и технологии ее
изготовления и предназначен для использования в конструкторских
отделах, службах технической документации, технологических, планово-экономических и планово-диспетчерских службах предприятия.
ТПП выполняется при освоении изделий в серийном производстве и при подготовке к запуску каждого заказа в единичном производстве. Качество и полнота технической подготовки производства
определяет в конечном итоге качество планирования и управления
процессом производства.
Модуль ориентирован, в основном, на предприятия машиностроительного профиля, но с успехом может быть использован
для автоматизации служб обеспечения производства (в первую очередь служб главного механика, главного энергетика) предприятий
практически всех отраслей промышленности.
Состав решаемых задач по направлениям:
1. Конструкторская подготовка производства:
 поддержка (формирование и ведение базы данных) номенклатуры изделий;
 поддержка состава изделий (конструкторских спецификаций в стандарте ЕСКД);
 поддержка извещений на конструкторские изменения.
64
Описание иерархической структуры изделий допускает 99 уровней входимости. На каждом уровне возможно использовать до 99 альтернативных вариантов технологического исполнения.
2. Технологическая подготовка производства:
 поддержка подетально-специфицированных норм расхода
материалов в разрезе технологических операций;
 поддержка пооперационных технологических процессов
в стандартах ЕСТД;
 поддержка извещений на технологические изменения.
3. Расчетные функции:
 разузлование изделий;
 расчет потребностей в материальных ресурсах на изделие
(партию);
 расчет потребностей в трудовых ресурсах на изделие (партию);
 расчет потребностей в оборудовании, оснастке, инструменте на изделие (партию) в разрезах предприятия, подразделения, изделия, группы продукции, производственной программы, заказа, плана
производства.
Технико-экономическое планирование
Программный модуль Технико-экономическое планирование
(ТЭП) предназначен для использования в планово-экономической
службе предприятий.
Модуль включает в себя 3 блока задач:
1. Поддержка нормативно-справочной информации:
 состав выпускаемой продукции;
 специфицированные
(подетально-специфицированные)
нормы расхода сырья, материалов в разрезе технологических операций и структурных подразделений;
 пооперационные технологические процессы (нормы времени, расценки, технологическое оборудование, инструмент, оснастка).
2. Планирование производства:
 формирование портфеля заказов (при позаказном планировании);
 формирование плана производства на каждый месяц
по номенклатуре и объему;
65
 пересчет производственных показателей при изменении
плана;
 формирование производственной программы;
 оценка выполнимости производственной программы;
 формирование сбалансированного по ресурсам плана;
 учет или расчет фактических объемов выпуска готовой
продукции;
 оценка сводных потребностей в материалах и трудозатратах на производственный заказ, план производства, производственную программу в разрезах структурных подразделений и номенклатуры продукции.
3. Расчет плановой себестоимости:
 расчет нормативных затрат на производство (в разрезах
центров их возникновения);
 расчет свода затрат на производство;
 расчет сводных смет затрат по цехам и сметы затрат
по предприятию;
 расчет нормативных калькуляций себестоимости изделий
и полуфабрикатов на месяц по предприятию и в разрезе цехов;
 расчет плановых цен изделий на основе себестоимости.
Минимальным периодом планирования в модуле является месяц. План также может быть рассчитан на год или на квартал. Модуль
предоставляет возможность формировать план производства несколькими способами: по сумме договоров на поставку продукции;
по сумме производственных заказов; по результатам предшествующего года; исходя из плана на год или на квартал пропорционально количеству рабочих дней в месяце; интерактивно. Допустимые на предприятии варианты формирования задаются в настройке модуля.
Модуль позволяет формировать производственные заказы, оценивать объемы производства переделов/полуфабрикатов по структурным подразделениям и потребности в сырье, материалах, покупных
комплектующих изделий, трудозатратах для их выполнения, производить включение заказов в производственную программу.
Производственная программа по структурным подразделениям
(цехам, сменам, участкам, бригадам, рабочим местам) на месяц может
формироваться либо на основе плана производства, либо по сумме
66
производственных заказов с учетом имеющихся в начале месяца запасов сырья, заделов, полуфабрикатов.
Плановая себестоимость рассчитывается на основе норм расхода
материалов и трудозатрат на изготовление продукции (переделов, полуфабрикатов), планово-учетных или средних за месяц отпускных цен
материалов и покупных деталей, тарифных ставок оплаты труда производственного персонала, смет накладных расходов по структурным
подразделениям и общезаводских смет, объемов выпуска продукции
по производственной программе или фактических объемов выпуска
за месяц. Калькуляция себестоимости может быть рассчитана на любой полуфабрикат (передел) в технологической цепочке с учетом себестоимости запасов.
Затраты на объем выпуска рассчитываются в разрезе структурных подразделений, статей калькуляции и экономических элементов
затрат. Калькуляции себестоимости изделий рассчитываются в разрезе подразделений и статей калькуляции.
Модуль также позволяет рассчитывать фактические затраты
за период по данным оперативного (управленческого) учета в производстве. При этом обеспечиваются следующие функции:
 обработка производственных отчетов цехов основного
производства;
 ввод отчетов вспомогательных служб предприятия о расходах за период и оказанных услугах подразделениям основного производства;
 расчет статей прямых затрат в себестоимости изделий
на основе производственных отчетов;
 распределение косвенных расходов на продукцию пропорционально заданным базам распределения;
 возможность задавать любое количество стоимостных
и натуральных баз распределения;
 анализ отклонений между плановой и фактической себестоимостью.
Учет материалов в производстве
Модуль Учет материалов в производстве предназначен для учета
движения материальных ценностей (сырья, полуфабрикатов, готовой
продукции) между складами и производственными подразделениями.
В этом модуле отрабатывается следующий цикл операций (рис. 33):
67
 ввод или формирование по производственному заказу документа-основания на отпуск в производство (ЛЗК);
 формирование накладной на отпуск МЦ в производство
и расходного складского ордера;
 формирование накладных на прием готовой продукции
и возврат остатков сырья;
 оприходование на склад с созданием приходных складских
ордеров;
 создание сопроводительных документов на внутреннее перемещение сырья в производстве, переработку сырья в полуфабрикаты, списание израсходованного сырья;
 формирование производственных отчетов цехов о балансе
движении материалов за период, объемах выпущенной продукции,
затратах материалов на изготовление продукции;
 расчет цен в производственных отчетах по данным отпуска
материалов в производство с учетом сальдовых остатков прошлого
периода.
Спецификация ЛЗК формируется по заданному производственному заказу с учетом описанного в нем способа расчета норм.
Реализован учет количественных и стоимостных лимитов при
отпуске МЦ в производство. Лимиты вводятся при оформлении ЛЗК,
в случае сверхлимитного отпуска в накладной на отпуск в производство необходимо указывать реквизиты соответствующего разрешения. Предоставляется возможность сформировать ведомости операций по отпуску МЦ в производство сверх лимита, а также отчеты
по остаткам (перерасходу) лимита.
68
Планирование
производства
Оформление
лимитно-заборной карты
Резервирование
Контроль дефицита
и остатков
Списание по наличию
Формирование
накладных на от
-пуск в произв.
Отпуск со
склада
Формирование
накладных на
прием из произв
Формирование
акта на списание из произв.
Распределение
затрат сырья
Распределение
затрат сырья
Складской
учет
Распределение
по складам
Оформление
межцеховых
накладных
Планирование
производства.
Обработка дан
ных об объеме
выпуска
Оформление
накладных на
перемещение
Ввод
производственных
отчетов
Фактические
затраты
База
данных
Контроль
Отчеты
Рисунок 33. Схема работы модуля Учет материалов в производстве.
При отпуске в производство анализируется наличие перечисленных в спецификации матценностей и в случае недостаточного количества на складе предлагается заменить их другими МЦ согласно
таблице взаимозаменяемости.
Для корректного учета и распределения материальных затрат
в процессе производства реализован учет отпускаемых материалов
69
в разрезе партий готовой продукции. В ЛЗК, накладных на отпуск
в производство, актах на списание сырья выполняется распределение
сырья и материалов по партиям готовой продукции.
Расчет цен списания израсходованных в процессе производства
матценностей можно проводить по одной из следующих методик:
средняя за период на конец месяца по подразделениям, текущая
по подразделениям, текущая по разрезу хранения.
Сведения о материальных затратах и объемах выпуска готовой
продукции можно также вводить путем создания производственных
отчетов цехов. Данные в отчете по движению матценностей можно
формировать на основе накладных на перемещение. По расходной
части отчета можно создавать акты списания материалов в производстве. Производственный отчет позволяет связать назначения использования материалов в цехе (например, на выпуск готовой продукции,
отходы, потери) со статьями затрат для дальнейшего расчета фактической себестоимости готовой продукции.
Блок отчетов позволяет получить всю необходимую информацию о наличии и движении материальных ценностей в производстве.
Материальный отчет содержит сведения о нормативных и фактических затратах сырья на производство готовой продукции с учетом различных схем оприходования изделий и списания сырья:
по производственному заказу, по ЛЗК, с распределением сырья по
накладной в целом или по каждой позиции и т. д. Для каждого изделия приводятся данные об израсходованном сырье по норме и фактически, выполняется расчет отклонений.
Управление ремонтами
Модуль Управление ремонтами предназначен для использования в ремонтных службах предприятия (ОГМ, ОГЭ, службе содержания зданий и сооружений). Основной задачей модуля является обеспечение надежного функционирования оборудования и должного содержания производственных помещений, планирование для этого потребностей в ресурсах, учет использования затрат на ремонтные
и профилактические работы.
В качестве системы, обеспечивающей надежность производственного процесса, выступает "Система управления техническим обслуживанием и ремонтом оборудования" (ТОРО), (рис. 34).
70
Складской
учет
Маркетинг
Управление
персоналом
Управление
ремонтами
Управление
закупками
Техникоэкономическое
планирование
Техническая
подготовка
производства
Управление
договорами
Рисунок 34. Схема управления техническим обслуживанием
и ремонтом оборудования.
Работа системы ТОРО основывается на принципах классической
системы планово-предупредительных ремонтов (ППР), применяемой
многими предприятиями различных отраслей промышленности.
Под системой ППР понимается совокупность организационных
и технических мероприятий по эксплуатации, уходу и ремонту оборудования, направленных на предупреждение преждевременного износа
деталей, узлов и механизмов и выхода оборудования из строя.
Сущность системы ППР заключается в том, что после отработки
определенного количества часов производятся технические осмотры
и различные виды плановых ремонтов, чередование и периодичность
которых определяется нормативами, конструктивными особенностями и условиями эксплуатации.
Основным методом системы ППР является метод периодического ремонта, при котором очередные плановые ремонты производятся
в заранее установленные сроки после отработки определенного количества часов, причем содержание каждого ремонта окончательно
устанавливается в процессе проведения технического осмотра, в зависимости от состояния отдельных деталей и узлов.
Модуль Управление ремонтами выполняет следующие функции:
71
 ведение нормативно-справочной базы данных;
 настройка модуля на особенности конкретного предприятия;
 планирование ремонтов и ресурсов;
 получение перспективного плана закупки (производства)
запчастей и материалов;
 анализ обеспеченности ремонтов материальными и трудовыми ресурсами;
 учет результатов выполнения ремонтов;
 анализ отклонений в сроках и объемах выполнения ремонтов;
 ведение журналов регистрации простоев оборудования
и выявления дефектов.
Объектами ремонта могут выступать, кроме оборудования, здания и сооружения, средства измерения, вычислительная техника
и т. п. Каталог объектов ремонта может быть представлен либо в виде
линейного списка, либо в виде дерева связей объектов с иерархией
по любому признаку. Например, если в качестве узлов дерева взять
подразделения, то получится иерархия по месту установки объектов,
а если включить одни объекты в состав других, то можно описать
структуру оборудования по узлам или по агрегатам.
Система планирования ремонтов основывается на расчете графика по установленным нормам периодичности и продолжительности
межремонтного периода, с возможностью автоматического формирования заявок на ремонт по типовым ремонтам. Этот график позволяет
составлять как долгосрочные (годовые), так и ближайшие (месячные)
планы работ.
Полученные в процессе планирования заявки на ремонт служат
основанием для исполнителя ремонта. Для списания материалов
и запчастей со склада, а также для возврата на склад неиспользованных
МЦ, предназначены накладные на отпуск и возврат МЦ. После завершения ремонта составляются акты выполненных работ, отражающие
фактическое использование материальных и трудовых ресурсов.
Особенностью модуля является использование различных методов расчета даты очередного ремонта, в зависимости либо от даты
предыдущего ремонта, либо от даты другого ремонта (ремонтный
цикл), либо от даты ремонта другого объекта (для одновременного
ремонта оборудования, входящего в состав узлов или блоков).
72
Для автоматизации процесса перепланирования сроков выполнения ремонтных работ используется механизм перерасчетов либо
всего графика, либо указанной части графика по выбранному критерию (с использованием коэффициентов).
В модуле учитываются не только плановые ремонты, но и те ремонты, которые носят внеплановый характер в случаях аварийной
остановки или отказов в работе объекта ремонта. Они дополняют
график плановых ремонтов и используются во всех отчетах и выходных формах. Предусмотрена возможность формирования записей в
Журнале регистрации простоев оборудования с указанием даты и
времени остановки и запуска, причинах и виновниках простоя, а также мероприятиях и исполнителях ликвидации аварии.
Для систематического накопления данных о техническом состоянии и работоспособности объектов ремонта предусмотрен Журнал
регистрации выявленных дефектов. Он является основным документом для установления характера и объема планового ремонта объекта,
а также сроков службы узлов и деталей.
Модуль Управление ремонтами позволяет получать множество
отчетов:
 по планированию и учету выполнения ремонтов (годовой
и месячный графики ремонтов);
 по планированию ремонтных работ (заявки на ремонт, потребности в материальных, трудовых ресурсах и ремонтной техники);
 по подготовке производственных программ (для служб
снабжения, изготовления и исполнителей ремонтов);
 по анализу обеспеченности ремонтов необходимыми ресурсами;
 по учету выполнения ремонтных работ (акты выполненных работ, фактические затраты на проведение ремонтов);
 по учету затрат (сводные и аналитические ведомости);
 по анализу проведения ремонтов (отклонение планового
и фактического объемов и сроков проведения ремонтов).
Контур бухгалтерского учета
Хозяйственные операции
Модуль Хозоперации обеспечивает разноску суммы хозяйственного документа по счетам бухгалтерского учета путем выбора
требуемой типовой хозяйственной операции (ТХО) для обработки
73
данного документа. В результате формируются бухгалтерские проводки с учетом аналитики, определяемой настройкой ТХО. Настройка
ТХО позволяет вести параллельный учет соответствующих сумм
в валюте. Один и тот же документ может обрабатываться с помощью
нескольких ТХО.
Режим группового формирования проводок обеспечивает создание проводок по всем хозяйственным операциям, первичные документы которых связаны с одной или несколькими указанными пользователем ТХО, а также аналогичным образом произвести отмену
сформированных проводок.
Суммы проводок рассчитываются посредством настраиваемых
пользователем алгоритмов, использующих функции встроенного языка проектирования отчетных форм. Одна ТХО позволяет сформировать одновременно несколько проводок по данному документу.
При изменении настройки ТХО возможен групповой пересчет сумм
проводок, сформированных с ее помощью.
Финансово-расчетные операции
В Контуре бухгалтерского учета предусмотрено формирование
всего спектра финансовых документов, сопровождающих движение
денежных средств (платежные поручения, платежные требования
и т. п.). Эти документы могут быть связаны с документамиоснованиями, созданными в других контурах Галактики.
Система обеспечивает контроль соответствия платежей, оформленных финансовыми документами, и сумм, указанных в документахоснованиях, а также получение баланса взаиморасчетов с контрагентами по каждому ДО в динамическом режиме (рис. 35).
Предусмотрена возможность ведения учета как в национальной
денежной единице, так и в иностранной валюте.
Система может производить расчет и учет курсовой разницы,
возникающей при совершении экспортно-импортных операций и операций с валютой.
74
Документыоснования
Контрагенты
Банк ТХО
Привязка
платежей к ДО
Платежные
документы
ТХО
Разноска
платежей
Проводки
Книга проводок
Рисунок 35. Схема учета финансовых операций.
Программные средства позволяют осуществлять импорт банковской выписки, принятой из банка средствами электронной системы
платежей. На основе ее анализа программа формирует входящие
и исходящие платежные документы, осуществляя контроль корректности сумм, реквизитов банков и предприятий. Вновь сформированные исходящие документы сравниваются с исходными документами,
хранящимися в базе данных. Если их реквизиты совпадают, то в хранящихся документах автоматически устанавливается дата оплаты, соответствующая дате банковской выписки. Документы, для которых
соответствия не установлены, а также входящие документы, отредактированные пользователем, добавляются в базу данных.
Настройка на конкретную форму выписки производится пользователем и сохраняется в системе для дальнейшего использования.
Модуль обеспечивает формирование разнообразных отчетов:
 аналитические ведомости по бухгалтерским счетам;
 группировочные ведомости;
 оборотно-сальдовые ведомости;
 журналы-ордера;
 "шахматки".
75
Гибкая система настроек позволяет:
 производить отбор данных, требуемых для формирования
отчетов;
 осуществлять необходимую в отчетах группировку и сортировку записей;
 сворачивать или расшифровывать сальдо по различным
уровням аналитики;
 настраивать внешний вид отчетных форм.
Касса
Модуль позволяет осуществлять учет:
 расчетов наличными средствами с поставщиками и покупателями;
 командировочных расходов;
 всех видов расчетов с подотчетными лицами;
 зарплаты и выплат, выданных через кассу;
 депонированной зарплаты.
Средства модуля Касса позволяют вести учет кассовых операций, как с национальной, так и иностранной наличной валютой.
Векселя и кредиты
Модуль позволяет:
 производить учет расчетов при помощи векселей;
 производить учет банковских кредитов;
 производить учет покупки и продажи акций и облигаций;
 формировать отчеты по финансовым вложениям и займам.
Операция с ценными бумагами оформляется в виде акта приемапередачи. Данный документ связывается с документом-основанием,
по которому производится взаиморасчет с контрагентом. В акте производится перечисление ценных бумаг, передаваемых в счет погашения дебиторской или кредиторской задолженности. С помощью выбора ТХО осуществляется формирование бухгалтерских проводок,
обеспечивающих учет совершенной хозяйственной операции.
Основные средства и нематериальные активы
 Модуль Основные средства позволяет:
 создавать и вести картотеку основных средств (ОС);
76
 вести учет нескольких однотипных объектов ОС с помощью
одной инвентарной карточки;
 вести учет сложных иерархических объектов;
 вести параллельный учет основных фондов на основе различных методов, характеризующихся различной валютой учета, используемым планом счетов бухгалтерского учета, алгоритмами начисления износа, ТХО для формирования проводок;
 осуществлять все операции по учету основных фондов (поступление, начисление амортизации, изменение стоимости, переоценка, выбытие, внутреннее перемещение);
 производить расчет амортизации как по всей картотеке,
так и по группе выбранных объектов учета;
 производить расчет амортизации ОС как в зависимости
от срока их использования, так и в зависимости от их выработки, пробега и т. п.;
 вести учет содержания драгоценных металлов в ОС;
 учитывать размещение ОС по территории страны с целью
расчета налога на имущество территориально распределенных предприятий;
 получать различные настраиваемые статистические и бухгалтерские отчеты с учетом требуемой группировки данных и накладываемых ограничений;
 сохранять историю начисления износа ОС и на ее основе возвращаться к предыдущим отчетным периодам для проведения корректировок и исправления ошибок.
МБП
Средствами модуля выполняются учет наличия и движения,
проведение операций оприходования, внутреннего перемещения,
начисления износа, списания малоценных и быстроизнашивающихся
предметов (МБП).




Бухгалтерская отчетность
Модуль обеспечивает:
закрытие временных счетов;
формирование главной книги;
составление баланса.
77
Состав исходящей бухгалтерской отчетности, форма представления данных в них и методики расчета периодически требуют корректировки в связи с изменением действующего законодательства,
специфики деятельности и структуры предприятия, требований статистических и налоговых органов. Воздействие перечисленных факторов приводит к необходимости доработки отчетных форм. Эта проблема решается путем использования встроенного языка проектирования отчетных форм. Он позволяет скорректировать любую существующую или создать новую форму требуемого отчета. На данном
языке выполнены все поставляемые в составе системы Галактика исходящие формы бухгалтерской отчетности и документы, отражающие
экономические показатели.
Фактические затраты
Одной из основных задач всех предприятий является расчет
фактической себестоимости продукции или услуг и формирования
отпускных цен на них, отвечающих цели получения прибыли.
С помощью средств модуля Фактические затраты, при ведении
соответствующей аналитики по счетам бухгалтерского учета, можно
производить расчет фактических затрат на производство изделий, составляющих производственную номенклатуру предприятия, группам
изделий и производственным заказам. Схема процесса расчета показана на рис. 36.
Программный модуль Фактические затраты предназначен
для использования специалистами производственного бюро (сектора)
бухгалтерии предприятия. Он автоматизирует функции расчета фактических затрат по данным бухгалтерского учета. Расчеты выполняются
на основе сформированного за период файла бухгалтерских проводок.
Программный модуль решает следующие задачи:
1. Учет фактических объемов выпуска:
 расчет по данным складских приходов фактического выпуска
готовых изделий и полуфабрикатов по цехам за отчетный период.
2. Расчет фактических затрат:
 расчет фактических смет расходов по комплексным статьям
калькуляции;
 закрытие производственных счетов;
 расчет сумм фактических прямых затрат по статьям калькуляции в разрезе подразделений и по предприятию;
78
 расчет сумм фактических затрат по экономическим элементам;
 расчет полных смет фактических затрат по подразделениям;
 расчет сметы и свода фактических затрат по предприятию;
 расчет калькуляций фактической себестоимости производственных заказов;
 расчет калькуляций фактической себестоимости изделий;
 контроль и анализ отклонений плановых и фактических затрат.
Функционирование модуля возможно при наличии на предприятии работающего бухгалтерского контура системы Галактика.
Проводки по учету
прямых и косвенных
затрат
Распределение
косвенных затрат
путем закрытия
счетов
ТХО
Отчетные
формы
Расчет свода
затрат
Расчет смет
затрат
Калькуляция
себестоимости
Базы распределения
косвенных затрат
Расчет объема
выпущенной продукции
Отчетные
формы
Настройка статей
элементов и смет
затрат на корреспон
денцию счетов
бухгалтерского
учета
Ввод данных об объемах
выпуска по номенклатуре
Складские ордера на
оприходование готовой
продукции на склад
Рисунок 36. Схема расчета фактических затрат.
Консолидация
С помощью модуля Консолидация в Галактике реализуется возможность ведения параллельного учета в нескольких планах счетов
бухгалтерского учета, т.е. многоплановость счетов. Один план счетов
может быть, например, российским, второй – белорусским, третий –
79
в стандарте GAAP и т. д. Количество планов счетов программой
не ограничивается. Переключение между ними производится нажатием определенной комбинации клавиш.
Пользователь может самостоятельно определять наименования
планов счетов, вводить любые номера счетов (до 19-ти алфавитноцифровых символов) и их названия. Во всех планах можно вводить
субсчета, коды аналитического учета, вести контроль допустимой
корреспонденции.
Типовые хозяйственные операции могут быть настроены таким
образом, что они будут одновременно формировать проводки по всем
существующим планам счетов, причем в каждом из них – в требуемой
корреспонденции и с расчетами сумм оборотов.
Модуль Консолидация обеспечивает возможность ведения консолидированной (совместной) базы данных корпорации и получения
консолидированной отчетности.
Общая (консолидированная) база данных создается различными
способами:
 При ведении учета по филиалам на одном компьютере
или в единой вычислительной сети. Дополнительные программные
средства не требуются.
 При передаче данных через электронную почту, модем
или на дискетах. В этом случае требуется их объединение с помощью
модуля Репликация данных.
 В модуле Консолидация пользователь имеет возможность:
 Устанавливать нужный ему план счетов и вид консолидированных отчетов. Для каждого вида определяется набор включаемых
филиалов.
 Для выбранного вида отчета определять, какие операции
филиалов отбирать для работы: только внешние, только внутренние,
все (и внешние и внутренние).
 Внутренними считаются операции между участниками корпорации, внешними - с контрагентами, не входящими в корпорацию.
Контур управления взаимоотношениями с клиентами
Этот контур включает модули Клиент и Рекламные кампании.
Основное назначение первого модуля – накопление всесторонней информации о потенциальных и реальных клиентах предприятия, дилерах, партнерах, рекламных фирмах, конкурентах, товарах и т. п., тогда
80
как второй модуль ориентирован на проведение маркетингового анализа на основе сформированной базы данных.
Клиент
В процессе работы внутренних служб любого предприятия возникают взаимоотношения с клиентами, которые требуют своего отражения в базе данных. Регистрируя эти взаимоотношения, указанные
службы накапливают информацию о клиентах, которая может использоваться при проведении маркетинговых исследований, формировании политики предприятия в области взаимоотношений с клиентами и т. п.
Модуль ориентирован на сотрудников отделов сбыта, технической поддержки, маркетинга. Формируемая модулем агрегированная
отчетность предназначена для менеджеров предприятий, начальников
отделов сбыта и маркетинга и, возможно, президента или исполнительного директора.
Модуль Клиент предоставляет следующие возможности:
 создавать и вести каталоги объектов базы данных – клиентов, дилеров, партнеров, рекламных фирм, конкурентов, контактных
лиц клиентов, товаров, услуг, контактов с клиентами, сделок, договоров на гарантийное и абонентское обслуживание;
 формировать произвольное число пользовательских классификаторов и атрибутов и присваивать значения этих классификаторов и атрибутов перечисленным выше объектам;
 отображать каталоги объектов базы данных, группируя их
элементы по любому набору пользовательских и системных классификационных признаков;
 регистрировать обыкновенные и групповые, предварительные и совершенные продажи товаров и услуг;
 заключать договоры с клиентами на гарантийное и абонентское обслуживание приобретенных ими товаров;
 отображать текущие, отработанные и планируемые задания (контакты, продажи, сделки) для менеджеров своего предприятия;
 строить иерархию каналов сбыта, позволяющую наглядно
показать цепочки продвижения товаров от производителя, через дилеров, к клиентам и быстро находить клиентов, которым осуществляется продажа данного товара через выбранного дилера.
81
Для проведения маркетингового анализа можно создать группировку товаров по типу сбыта, жизненному циклу и ассортиментной
группе, а затем модуль будет автоматически поддерживать эту группировку. Классификация по ассортиментной группе основывается на
упрощенной "Бостонской" модели, которая учитывает только два фактора успеха товара: долю предприятия на рынке и темп роста продаж.
Контур управления персоналом
Контур позволяет автоматизировать учет кадров на предприятии
и выполнять вычислительные процедуры, связанные с оплатой труда
персонала. Модуль Управление персоналом имеет тесную взаимосвязь с модулем Заработная плата. Учетные данные работников, введенные в одном из этих модулей, становятся доступными для другого.
Таким образом, исключается необходимость повторного ввода идентичных данных о работниках предприятия.
Управление персоналом
Модуль Управление персоналом предназначен для:
 планирования, формирования и управления штатным расписанием и резервом на замещение должностей;
 автоматизации процесса ведения личных дел сотрудников;
 планирования и учета рабочего времени сотрудников;
 получения отчетов по кадровой информации о сотрудниках предприятия.
Состав хранимых данных полностью охватывает личную карточку (форма № Т-2), типовую анкету (личный листок по учету кадров), а также содержит много другой информации.
Планирование и управление штатами обеспечивает составление
штатного расписания предприятия с указанием основных характеристик рабочих мест. При необходимости можно завести дополнительные характеристики, состав которых определяется пользователем
(требования к квалификации, образованию, возрасту, должностные
инструкции, оснащение рабочего места и т. д.).
Личное дело сотрудника состоит из 9 разделов, содержащих
в сумме более 150 показателей.
Учет рабочего времени обеспечивает ведение планового и фактического учета табелей рабочего времени, интегрированно с отпусками, больничными, назначениями и перемещениями.
82
Средства подготовки отчетов предоставляют возможность гибкой настройки выходных документов на потребности конкретного
предприятия. Создание отчета включает в себя определение правил
отбора данных о сотрудниках для отчета, порядок их сортировки
и выбор формы выходного документа. Пользователь может создать
свой собственный отчет в дополнение к уже имеющимся и включить
его в список стандартных отчетов для дальнейшего использования.
Управление рабочими
местами
Упраление
кадрами
предприятия
Управление
документооборотом
Штатное
расписание
Управление резервом
на замещение
Управление рабочим
временем
Картотека
сотрудников
Заработная
плата
Средства
подготовки
отчетов
Рисунок 37. Схема функционирования модуля Управление кадрами.
Заработная плата
Модуль Заработная плата полностью автоматизирует работу
бухгалтеров-расчетчиков и табельщиков и позволяет выполнять: разработку графиков работы персонала (по любому режиму работы,
а также формирование индивидуальных графиков); формирование
табелей; расчет начислений, удержаний и налогов на фонд оплаты
труда (ФОТ) при повременной и сдельной форме оплаты; сторнирование ранее начисленных и удержанных сумм; формирование и печать платежных ведомостей, сводов, реестров, различных справок
о заработной плате и налогах.
При разработке модуля реализованы два основных принципа:
 универсальность – возможность использования в любых
организациях (независимо от форм собственности), начиная от круп83
ных, со штатом в несколько тысяч человек, до предприятий малого
бизнеса;
 адаптируемость – обеспечение возможности бухгалтеру
самостоятельно проводить настройку с учетом специфики конкретного предприятия и изменений законодательства.
Модуль Заработная плата позволяет получать разнообразную
выходную документацию, начиная от расчетных листков, платежных
ведомостей, расходных кассовых ордеров (с возможностью передачи
их в модуль Касса) и кончая различными сводами и контрольным
журналом по оплате труда. Основной документ по оплате труда –
расчетно-платежная ведомость – допускает настройку формы в зависимости от специфики конкретного предприятия.
Контур отраслевых и специализированных решений
Розничная торговля
Модуль Розничная торговля ориентирован на широкий круг
предприятий оптово-розничной торговли и обеспечивает учет товаров
при их реализации через розничную торговую сеть. При помощи этого
модуля можно создать на предприятии функциональную и эффективно
работающую автоматизированную систему учета торговых операций.
В модуле Розничная торговля реализована возможность ведения
как количественного, так и стоимостного учета в подразделениях розничной торговли. Все сведения о материальных ценностях хранятся
в карточках учета товара. Учет ведется в отпускных ценах. При формировании цен выполняется контроль регламентированных законодательством предельных процентов надбавки для всех звеньев обращения. В зависимости от настроек, отпускные цены формируются на основании указанных процентов оптовой и розничной надбавок или берутся из прайс-листа.
Модуль Розничная торговля позволяет учитывать операции возврата товара от покупателя и возврата товара поставщику. Полнота учета обеспечивается возможностью формирования документов на внутреннее перемещение и списание товаров, а также проведения операций
инвентаризации и переоценки. Реализован учет товарных потерь.
Предусмотрена возможность получения отчетов по закупкам
и продажам товаров, наличию и движению товаров за указанный период и в различных разрезах. Кроме того, возможно формирование
оборотной ведомости и реестров розничных цен.
84
Управление автотранспортом
Данный модуль решает задачи автоматизации управления автотранспортом не только для предприятий, оказывающих услуги по перевозке грузов и пассажиров, но и для многих предприятий других
видов деятельности, обеспечивающих перевозку грузов собственным
транспортом. Модуль ориентирован на работников диспетчерской
службы, непосредственно занимающихся выпиской и обработкой путевых листов, а также на управленческий персонал предприятия,
для которого формируются многочисленные отчеты, позволяющие
оценить состояние и проанализировать эффективность использования
транспортных средств.
Модуль предоставляет следующие возможности:
 Вести картотеки подвижного состава и водителей. Составлять табели транспортных средств и водителей.
 Создавать картотеки шин, аккумуляторов и комплектующих на основе картотеки малоценных и быстроизнашивающихся
предметов, ведущейся в модуле МБП.
 Формировать картотеки заказов на внешние и внутрихозяйственные работы как на основании накладных (актов на услуги),
так и независимо от них.
 Выписывать счета на продажу, счета-фактуры и акты на оказание услуг на основании заказов на внешние транспортные работы.
 Программировать формулы для расчета нормативного расхода топлива на движение, работу автономного и специального оборудования, которые могут включать большое количество параметров
и поправочных коэффициентов.
 Выписывать и обрабатывать путевые листы.
 Рассчитывать расход ГСМ, выручку и стоимость услуг.
 Учитывать документы, относящиеся к водителю, транспортному средству и грузу, например, водительское удостоверение
международного образца, свидетельство о регистрации автотранспортного средства, грузовую таможенную декларацию и многие другие. Состав документов определяется пользователем.
 Получать оперативную информацию о состоянии транспортных средств и данных о водителях и на основании этой информации
направлять транспортные средства на ТО и капитальный ремонт.
85
 Просматривать текущие данные о распределении работ
среди водителей.
 Учитывать показатели работы комплектующих, например,
пробег шин и работу аккумуляторов, на основе данных из путевых
листов.
 Выдавать отчеты по технико-эксплуатационным показателям работы автотранспорта, техническому обслуживанию, расходу
ГСМ, оплате водителей, расходам водителей в пути, сведениям о заказчиках, пробегах шин и работе аккумуляторов.
На рис. 38 показана схема информационных потоков, связывающих модуль с остальными модулями системы.
Данные об оплате водителей и сопровождающих лиц из
путевых листов
Управление автотранспортом
Информация из картотеки основных средств поступает в
карточки транспортных средств
Заработная
плата
Основные
средства
Передача пробегов транспортных средств, зафиксированных
в путевых листах
Отпуск по накладным комплектующих и ГСМ на транспортные средства с регистрацией количества ГСМ в пут. листах
Учет материалов
в производстве
Формирование актов на списание ГСМ по данным
обработанных путевых листов
Сопроводительные документы используются при формировании картотеки заказов автотранспорта
Управление сбытом, снабжением,
скл.учет, давальчес
кое сырье
По заказам на внешние работы формируютя ДО, акты
на услуги и счета-фактуры
Управление сбытом
Передача данных о шинах, аккумуляторах и других узлах
при формировании картотек комплектующих
МБП
Рисунок 38. Схема информационных потоков модуля
Управление автотранспортом.
86
Сервисное обслуживание
Модуль Сервисное обслуживание предназначен для учета услуг
по ремонту либо усовершенствованию изделий заказчика, например,
на станциях техобслуживания автомобилей, в мастерских по ремонту
бытовой техники и т. д.
В этом модуле отрабатывается следующий цикл операций:
 ввод заявки на обслуживание;
 формирование по заявке накладной на отпуск МЦ в производство и расходного складского ордера;
 формирование по заявке накладной на возврат не использованных при ремонте МЦ на склад и их оприходование;
 формирование акта на выполненные работы;
 учет платежных документов на оплату выполненных работ
и израсходованных материалов (модуль ФРО или Касса).
 Основные отчеты:
 по отпуску МЦ для ремонта в разрезе подразделений;
 о движении отпущенных по заявкам на обслуживание запчастей в разрезе заявок, наименований запчастей, подразделений;
 о выполненных работах в разрезе подразделений и исполнителей;
 по реализации запчастей в разрезе заявок и матценностей;
 реестры заявок на обслуживание и сопроводительных документов.
Учет спецодежды
Многие предприятия и организации по роду своей деятельности
обязаны обеспечивать своих работников и сотрудников специальной
и форменной одеждой. Особенностью учета спецодежды является ее
широкая номенклатура, необходимость наличия на складах требуемого запаса, а также разветвленная система норм, устанавливающая перечень и периодичность выдачи вещевого довольствия работникам
в зависимости от их категории. Еще одной отличительной чертой
спецодежды является необходимость ее персонального учета по сотрудникам. Все это делает процесс учета подобных объектов трудоемким и требует наличия специального бухгалтерского персонала.
Учет спецодежды на складах ничем не отличается от складского
учета других материальных ценностей. Особенности проявляются при
выдаче одежды сотрудникам и в последующем процессе ее эксплуа87
тации. Средства модуля Специальная и форменная одежда (СФО)
призваны облегчить труд бухгалтерии в этой сфере. Основными задачами, решаемыми модулем, являются:
 ведение норм вещевого довольствия;
 ведение номенклатурных и персональных (личных) карточек учета спецодежды;
 учет наличия спецодежды на складах;
 регистрация в персональных учетных карточках выдачи
спецодежды сотрудникам предприятия в соответствии с нормами,
установленными для их категорий;
 контроль сроков носки спецодежды, соответствующее изменение ее стоимости путем начисления износа и списание;
 предоставление необходимой информации при расчете
с работниками как с подотчетными лицами;
 формирование требуемой отчетности.
Давальческое сырье
Модуль Давальческое сырье предназначен для учета сырья, переданного для переработки сторонней организации, а также полученной от этой организации готовой продукции.
Схема документооборота для учета переработки давальческого
сырья представлена на рис. 39.
Модуль Давальческое сырье оперирует с договорами на переработку (ДО), накладными на отпуск сырья, прием готовой продукции
и возврат неиспользованного сырья. По накладным на отпуск формируются расходные складские ордера, сырье закрепляется за обработчиком.
По накладным на прием и возврат – приходные складские ордера, сырье
списывается с обработчика. Услуги, оказанные контрагентами,
в том числе обработчиком, могут вводиться во всех видах накладных.
При формировании документов автоматизирован расчет следующих количественных и стоимостных показателей:
 количество сырья в спецификации ДО по выбранным нормам выхода готовой продукции для заданного количества норм;
 количество получаемой готовой продукции и расход сырья
по заданному количеству норм с учетом нормы потерь;
 количество возвращаемого сырья с учетом произведенной
продукции;
 сумма по накладной на отпуск сырья;
88
 плановая себестоимость полученной готовой продукции по
заданному количеству норм;
 фактическая себестоимость полученной готовой продукции с учетом израсходованного сырья и услуг по переработке.
 Основные отчеты:
 о плановой и фактической себестоимости полученной продукции;
 баланс расчетов по видам оплаты (деньгами и встречными
поставками);
 ведомость движения переданного на обработку сырья;
 о полученной готовой продукции и затраченном на ее изготовление давальческом сырье с указанием реквизитов сопроводительных документов на отпуск;
 реестры договоров на переработку и сопроводительных
документов.
Движение МЦ по
договору
переработки
Договор
переработки (ДО)
Оплата по договору
переработки
Платежное
поручение на
оплату стоимости
переработки
Накладная на
отпуск сырья
Накладная на
прием гот. прод.
Бартерный ДО
на продажу
Накладная на
возврат сырья
Акт на получение
услуг на другого
контрагента
Услуги по
переработке
Рисунок 39. Схема документооборота модуля Давальческое сырье.
89
Контур системного администрирования
Контур системного администрирования является инструментом
администратора (или группы администрирования) системы Галактика.
Контур предоставляет администратору следующие возможности:
 Обеспечивать режим оперативного совместного использования части информации базы данных несколькими предприятиями
в рамках корпоративной структуры организации.
 Устанавливать разграничение прав доступа к модулям системы, таблицам, записям и полям базы данных.
 Осуществлять оперативное наблюдение за действиями
пользователей в системе Галактика и, при необходимости, вмешиваться в действия пользователей.
 Вести автоматическую регистрацию действий пользователей по модификации базы данных.
 Восстанавливать базу данных, модифицированную в результате ошибочных действий некоторых пользователей.
 Проводить корпоративный межофисный обмен между базами данных, расположенными в территориально удаленных локальных вычислительных сетях.
 Осуществлять электронный обмен документами с организациями и банками.
 Обеспечивать конвертацию словаря с целью получения доступа к базе данных системы Галактика из приложений, использующих ODBC-доступ к данным (для платформы Btrieve).
 Производить диагностику групп таблиц базы данных и исправлять испорченные таблицы (для платформы Btrieve).
 Адаптировать систему Галактика к языковым и отраслевым особенностям организации, использующей систему.
НАСТРОЙКА СИСТЕМЫ ГАЛАКТИКА
Система Галактика – тиражно-заказной продукт. Этап настройки
является обязательным при вводе системы в эксплуатацию, модуль
Настройка входит в любой комплект поставки. В процессе настройки
выполняется первичное заполнение основных каталогов, классификаторов и справочников, которые составляют единую информационную
базу и используются всеми модулями системы. Дальнейшее пополнение классификаторов происходит в процессе оперативной работы.
90
 Параметры общесистемной настройки позволяют выбрать
из поставляемых с системой алгоритмов выполнения различных
функций те, которые максимально соответствуют специфике данного
предприятия. Параметры настройки пользователя определяют особенности работы конкретного пользователя. Часть из них, касающаяся прав доступа к документам и возможностей их редактирования,
устанавливается только администратором системы.
Кроме того, большинство модулей имеет собственный блок
настройки. В него, в частности, включены функции настройки универсальных иерархических отчетов (Управление снабжением, Управление сбытом, Складской учет), типовых хозяйственных операций
(Хозоперации), формата входящих и исходящих документов (Обмен
бизнес-документами) и т. д.
К настроечным функциям можно отнести также разграничение
прав доступа пользователей и настройку корпоративного межофисного обмена данными, если организация состоит из нескольких удаленных филиалов. Эти функции выполняются с помощью специальных
модулей Права доступа и Репликация данных, входящих в Контур системного администрирования.
Таким образом, входной информацией для настройки ИП “Галактика” на конкретное предприятие является информация предметной области и техническая документация пакета.
Система 1С Предприятие.
В архитектуре программного комплекса 1С:Предприятия выделяется следующие составляющие:
 платформа;
 информационная база;
1. база данных;
2. конфигурация.
Платформа – набор компонентов, обеспечивающих возможность
работы с системой. Информационная база – это конкретное описание
того, какие данные будут использоваться, алгоритмов работы с данными и сами данные. Одна платформа может быть связана с несколькими информационными базами.
В информационной базе совокупность описаний используемых
данных, алгоритмов работы с ними, используемых диалоговых и печатных форм выделяется под понятием конфигурация.
91
Для создания одного прикладного решения, то есть экземпляра
программного комплекса, обеспечивающего решение отдельной задачи по учёту деятельности, необходимо
 Установить платформу
 Создать информационную базу.
Так как с одной платформой может быть связано несколько информационных баз, то можно сказать что одно решение определяется
отдельной информационной базой.
Установка платформы производится на основе отдельного экземпляра установочного пакета, обеспечиваемого ключом защиты.
Тема 2. Концепция системы 1С: Предприятие 8.3
Платформа и конфигурация
Система программ «1С: Предприятие 8.3» включает в себя
платформу и прикладные решения, разработанные на ее основе, для
автоматизации деятельности организаций и частных лиц.
Сама платформа не является программным продуктом для использования конечными пользователями, которые обычно работают
с одним из многих прикладных решений (конфигураций), разработанных на данной платформе. Такой подход позволяет автоматизировать различные виды деятельности, используя единую технологическую платформу.
Гибкость платформы позволяет применять 1С: Предприятие 8.3
в самых разнообразных областях:
 автоматизация производственных и торговых предприятий, бюджетных и финансовых организаций, предприятий сферы обслуживания и т. д.;
 поддержка оперативного управления предприятием;
 автоматизация организационной и хозяйственной деятельности;
 ведение бухгалтерского учета с несколькими планами счетов
и произвольными измерениями учета, регламентированная отчетность;
 широкие возможности для управленческого учета и построения аналитической отчетности, поддержка многовалютного учета;
 решение задач планирования, бюджетирования и финансового анализа;
92
 расчет зарплаты и управление персоналом;
 другие области применения.
При разработке новой платформы «1С: Предприятие 8.0» был
обобщен 7-летний опыт решений на российском рынке на платформе
«1С:Предприятие 7.7», проанализированы международные методики
управления предприятием (MRP, MRP II, CRM, SCM, ERP, ERP II
и др.), а также учтены все пожелания клиентов. В результате зарекомендовавшая себя система программ была дополнена рядом новых
возможностей, позволяющим значительно расширить спектр прикладных задач, которые решаются при автоматизации средних
и крупных предприятий. Несмотря на значительные изменения, новая
версия 8.0 сохранила идеологическую преемственность с предыдущими версиями.
Можно выделить следующие основные направления развития
платформы:
 повышение масштабируемости и производительности;
 расширение спектра решаемых задач;
 создание нового эргономичного интерфейса;
 развитие средств построения экономической и аналитической отчетности;
 совершенствование средств быстрой разработки прикладных решений;
 развитие возможностей интеграции;
 развитие технологии поставки и поддержки прикладных
решений;
 развитие средств администрирования.
Основу концепции системы 1С: Предприятие составляет понятие конфигурация.
Конфигурацией в системе 1С: Предприятие называется совокупность взаимосвязанных составных частей:
 структуры учетных данных, форм их ввода, выбора, печати;
 состав механизмов учета итоговых данных и движений
учетных данных;
 состав различных отчетов и обработок;
 набора пользовательских интерфейсов;
 набора ролей (прав доступа);
93
 набора общих процедур и функций (Глобальный модуль
и общие модули), макетов табличных документов и др.;
 вспомогательных объектов: наборы пользовательских интерфейсов, наборы прав, а также различная вспомогательная информация (картинки, шаблоны, стили и т. д.).
Фактически, структура конфигурации является моделью предметной области.
Компанией 1С: Предприятие было выпущено несколько тиражных прикладных решений (конфигураций), предназначенных для автоматизации типовых задач учета и управления в коммерческих
предприятиях реального сектора и бюджетных организациях. В каждом программном продукте сочетается использование стандартных
решений (общих для всех или нескольких программ) и максимальный
учет специфики задачи конкретной отрасли или рода деятельности
предприятия.
Основные тиражные решения 1С: Предприятие 8.3
 1С: Бухгалтерия.
 1С: Управление торговлей.
 1С: Зарплата и управление персоналом.
 1C: Управление небольшой фирмой.
 1C: Управление автотранспортом.
Конфигурация обычно поставляется фирмой «1С» в качестве
типовой для конкретной области применения, но может быть изменена, дополнена пользователем системы, а также разработана заново.
В данном пособии будет рассматриваться прикладное решение
(конфигурация) «1С: Бухгалтерия», предназначенное для автоматизации работы учетных служб предприятия.
Объекты конфигурации
Структура прикладного решения (конфигурации) определяется
составом объектов конфигурации и взаимосвязями между ними. Под
объектами конфигурации понимаются средства 1С: Предприятие,
предназначенные для отражения реальных объектов и явлений предметной области, например, справочник «Контрагенты», документ
«Счет-фактура» и т. д. Разработчик может создавать объекты,
не имеющие явного физического воплощения в предметной области,
но необходимые для решения задачи, например, регистры сведений,
обработки и т. д.
94
В платформе «1С: Предприятие 8.3» существуют следующие
объекты конфигурации:
Константы
В константах хранятся редко изменяемые значения, например,
название организации, ИНН, ФИО руководителя и т. д.
Справочники
В справочниках содержится условно-постоянная списковая информация, например, список материалов, список сотрудников.
Следует иметь в виду, что периодических реквизитов справочников в версии 8.0 больше нет и вместо них для хранения истории изменения данных можно использовать периодические регистры сведений.
Перечисления
Перечисления представляют собой жестко заданный список,
из которого пользователи могут выбирать информацию, но не могут
этот список изменять, например, перечислениями являются способы
поступления активов, группы основных средств и т. д.
Документы
Документы служат для ввода информации о фактах хозяйственной деятельности предприятия. С их помощью регистрируются операции по движению денежных средств, получению и отпуску МПЗ,
начислению амортизации и т. д.
Журналы
Журналы служат для хранения уже введенной информации. Документы, попавшие после их записи и проведения в журналы, можно
редактировать, удалять, а так же непосредственно из журналов можно
осуществлять ввод новых документов и операций.
Нумераторы
Нумераторы предназначены для единой (сквозной) нумерации
документов нескольких видов. Например, нумератор Кадровый используется для присвоения номеров всем кадровым приказам.
Планы видов характеристик
Планы видов характеристик предназначены для хранения дополнительных видов характеристик объектов, например, дополнительных свойств товаров (вес, цвет, размер). Новые виды характеристик можно вводить в режиме «Предприятие». Через этот объект также реализован механизм аналитического учета по субконто в бухгалтерском учете.
95
Регистры сведений
Регистры сведений предназначены для хранения любой информации об объектах в разрезе заданных измерений, например, ставки
налогов, сведения о параметрах амортизации основных средств. Если
требуется хранить историю изменения информации, то регистр сведений делается периодическим, например, регистр КурсыВалют.
Регистры накопления
Регистры накопления накапливают числовую информацию
в разрезе заданных измерений, например, исчисленные за каждый месяц суммы ЕСН, стоимость покупок и продаж. Движения регистров
накопления всегда связаны с документами (регистраторами) и обычно
создаются в момент проведения документа.
Регистры бухгалтерии
Регистры бухгалтерии хранят записи (проводки), основанные
на определенном плане счетов, например, регистр бухгалтерии
«Управленческий».
Планы счетов
Планы счетов содержат список счетов бухгалтерского учета,
предназначенных для группировки информации о хозяйственной деятельности предприятия по определенным признакам.
Отчеты
Отчеты предназначены для получения аналитической информации по определенному алгоритму. На основе информации из базы
данных отчеты выдают печатные формы, содержащие детальную
и сводную информацию. В качестве примера можно привести отчеты
«Оборотно-сальдовая ведомость», «Список сотрудников» и т. д.
Обработки
Обработки предназначены для выполнения некоторых регламентных и сервисных функций, например, для выгрузки и загрузки
различной информации, настройки аналитического учета и т. д.
Интерфейсы
Представляют собой совокупность панелей интерфейса: меню
и панели инструментов, например, интерфейсы «Бухгалтер», «Руководитель».
96
Роли
Роли предназначены для определения прав пользователей, работающих с информационной базой, например, роли «Бухгалтер», «Администратор». Каждый пользователь может иметь несколько ролей.
В самом общем виде взаимосвязь всех объектов можно представить следующим образом:
Рисунок 40. Связь объектов в 1С Предприятие.
Блок «Условно-постоянная информация» содержит объекты, сохраняемые в базе данных и содержащие данные, меняющиеся сравнительно редко. Можно сказать, что в этот блок данные вводятся один раз
и используются много раз, в нескольких хозяйственных операциях.
Блок «Документы» включает, во-первых, документы, предназначенные для регистрации событий и операций, и, во-вторых, журналы, как средство их смысловой группировки. Например, документы
«Приходный кассовый ордер», «Расходный кассовый ордер» и журнал «Кассовые документы». Документ характеризуется номером
и датой. С помощью служебный объектов «Нумераторы» можно организовать «сквозную» нумерацию документов разного типа.
Блок «Регистры» предназначен для хранения информации о состояниях и количествах объектов базы данных.
97
Блок «Обработка и вывод информации» включает обработки
и отчеты, которые используют уже введенные в базу данные для их
обработки и представления пользователю (печати).
Режимы запуска программы
Функционирование системы подразделяют на два разделенных
во времени процесса: настройку (конфигурирование) и исполнение,
исходя из чего система 1С: Предприятие имеет два основных режима
запуска – «Конфигуратор» и «1С:Предприятие».
Первый из этих режимов предназначен для создания информационной базы, внесения изменений в ее Конфигурацию, а также
для выполнения административных функций.
В режиме «1С: Предприятие» пользователь запускает Конфигурацию на выполнение, как бы «проигрывая» файл информационной
базы. При этом программная часть системы использует структуры,
созданные на этапе конфигурирования, предоставляя пользователю
возможность заполнить их конкретными значениями.
Если на этапе конфигурирования с помощью встроенного языка
определены соответствующие алгоритмы обработки, то в режиме
«1С: Предприятие» пользователь будет вызывать их работу, давая системе соответствующие команды.
Тема 3. Установка, обновление и удаление платформы
1С: Предприятие 8.2, 8.3»
Установка платформы «1С: Предприятие 8.2, 8.3»
Система 1С: Предприятие 8.3 представляет собой совокупность
программных модулей, предназначенных для разработки и использования решений (конфигураций) по ведению учета и автоматизации
хозяйственной деятельности предприятий, и конфигурации или совокупности конфигураций. Программные модули системы 1С: Предприятие 8.3 универсальны и способны работать с любой конфигурацией (в рамках имеющегося Лицензионного соглашения). Одновременно с установкой 1С: Предприятие 8.3 также производится установка драйвера защиты от несанкционированного использования.
Программа установки позволяет устанавливать на один компьютер несколько версий 1С: Предприятие 8.3, выбирать устанавливаемые компоненты системы, выбирать вариант установки сервера 1С:
98
Предприятие 8.3. Программа запуска, входящая в состав системы 1С:
Предприятие 8.3, позволяет работать с единым списком информационных баз всех версий системы программ 1С: Предприятие 8 (версий
8.0, 8.1, 8.2, 8.3).
ПРИМЕЧАНИЕ. На ОС Linux возможно установка только серверной части 1С: Предприятие 8. Для ОС Windows установка выполняется с помощью специальной программы установки. Для ОС Linux такая программа отсутствует, поэтому в соответствующих разделах будут описаны конкретные действия для выполнения той или иной операции. Перед тем как приступить к установке, следует убедиться,
что компьютер не заражен вирусами, а жесткий диск не содержит ошибок и имеется достаточно свободного места для выполнения установки.
ПРИМЕЧАНИЕ. Для установки могут понадобиться дистрибутивные носители операционной системы, установленной на компьютере, а также права локального или сетевого администратора.
Приветствие С этого окна начинается работа помощника установки системы 1С: Предприятие 8.3. Приветствие Выбор компонент.
На этой странице необходимо выбрать те компоненты, которые будут
устанавливаться. Перечень компонентов зависит от того, что необходимо установить. Некоторые типовые сценарии установки будут рассмотрены ниже. Выбор компонентов. Если необходимо установить
какой-либо компонент, нужно отметить его. Если какой-либо компонент устанавливать нет необходимости – следует запретить его
Выбор языка интерфейса
Следует указать один из языков интерфейса в качестве языка
интерфейса по умолчанию. После завершения работы программы
установки в каталоге конфигурационных файлов будет создан файл,
имеющий расширение *.res, имя которого совпадает с кодом языка
интерфейса. Содержимое файла не имеет значения. Если файл с расширением *.res отсутствует, при запуске будет выбираться интерфейс, соответствующий региональным установкам операционной системы. Указание неизвестного или несуществующего кода языка интерфейса эквивалентно отсутствию такого файла. Если в процессе работы необходимо использование языка интерфейса, отличного
от установленного по умолчанию, необходимо указать его с помощью
ключа командной строки /L. Установка сервера 1С: Предприятие 8.3
Если для установки выбран компонент Сервер 1С: Предприятие 8.3,
99
то будет доступна страница помощника, на которой следует выбрать
режим установки сервера 1С: Предприятие 8.3 и пользователя, под которым будет работать сервер в случае его установки в режиме сервиса.
ПРИМЕЧАНИЕ. Если выбран режим установки сервера как
сервис, то необходимо указать пароль для выбранного пользователя,
иначе программа установки не сможет запустить сервер. Если
на компьютере существует установленная версия 1С: Предприятие 8.3
с сервером, установленным в качестве сервиса ОС Windows, то программа установки переустановит сервис. После нажатия кнопки
«Установить» начнется процесс установки: создаются необходимые
папки, копируются файлы выбранных компонентов, ·создаются конфигурационные файлы, выполняется регистрация программных компонентов системы, выполняется запуск сервера 1С: Предприятие 8.3,
если выбрана установка сервера как сервиса ОС Windows. 1С: Предприятие 8.3. После окончания процесса установки помощник установки предлагает произвести установку драйвера защиты от несанкционированного использования – HASP Device Driver.
Установка драйвера требуется, если к USB-порту данного компьютера будет присоединяться аппаратный ключ защиты:
пользователь владеет:
 Лицензионным соглашением на использование системы
1С: Предприятие 8.3 на одном рабочем месте;
 дополнительным Лицензионным соглашением на использование системы 1С: Предприятие 8.3 на одном дополнительном рабочем месте;
 Лицензионным соглашением на использование сервера 1С:
Предприятие 8.3.
ПРИМЕЧАНИЕ. Рекомендуется выполнять установку драйвера
защиты до того, как ключ защиты будет присоединен к USB-порту
компьютера. Также установку драйвера можно выполнить, используя
пункт меню Пуск – Программы – 1С Предприятие 8.3 – Установка
HASP Device Driver. Если установка завершена успешно, откроется
завершающая страница помощника установки, после нажатия на которую установка будет завершена..
Для установки новой версии администратору достаточно скорректировать пути общих сетевых ресурсов и код продукта, который
нужно взять из файла setup.ini. Дополнительно нужно указать файл
100
трансформации adminstallrelogon.mst. В этом случае, система 1С:
Предприятие 8.3, при несовпадении версий клиента и сервера, будет
предлагать завершить текущий сеанс пользователя для установки новой версии. Администратор должен позаботиться, чтобы скрипт был
актуализирован, и дистрибутив с новой версии был доступен на сетевом ресурсе. При установке платформы с использованием административных средств, в каталоге конфигурационных файлов создается
файл adminstall.cfg. Если при запуске информационной базы, требуемая версия 1С: Предприятие 8.3 не обнаружена на компьютере и если
у пользователя недостаточно прав для установки требуемой версии,
пользователю будет предложено выполнить действие, указанное в
файле adminstall.cfg: перезагрузка компьютера или повторный вход в
систему.
Рекомендации по развертыванию системы
Для начальной установки достаточно запустить программу запуска из этого сетевого каталога.·ibcommon.v8i – список общих информационных баз, если он существует (имя условное и не является
обязательным). 1CESCmn.cfg – общий конфигурационный файл. Рекомендуется указать в нем следующие параметры:
CommonInfoBases=ibcommon.v8i – если необходимо, чтобы
у пользователя при запуске системы был необходимый список информационных баз.
InstallComponents – указать те компоненты, которые необходимы для установки на компьютеры пользователей.
8.3.2.XXX и 8.3.2.YYY – каталоги с дистрибутивами соответствующих версий 1С: Предприятие 8.3. Setup.exe – программа запуска
установки системы программ 1С: Предприятие 8.3. После выхода новой версии системы 1С: Предприятие 8.3 (например, 8.3.2.ZZZ), будет
необходимо только скопировать файлы дистрибутива в каталог
\\Server\1CDistr\8.3.2.ZZZ , остальное система выполнит автоматически при запуске 1С: Предприятие 8.3 пользователем.
Установку, условно, можно разделить на 2 шага:
 Установка платформы и ключа защиты.
 Установка конфигурации 1С.
Установка и настройка платформы 1С Предприятие 8.3
Как правило, файлы конфигурации упакованы в архив, в котором установочные файлы, выглядит это примерно так:
101
Рисунок 41. Корневая папка с установкой 1С Предприятие.
В архиве вам необходимо найти и запустить файл «setup.exe».
Будет открыто следующее окно:
Рисунок 42. Начальная форма установки 1С: Предприятие 8.2.
102
На всех вкладках можно нажать далее, кроме одной:
Рисунок 43. Выбор необходимых компонентов 1C: Предприятие 8.2.
На данном этапе необходимо для первых трех пунктов,
как на картинке, установить параметр «Данный компонент будет
установлен на жесткий диск». Так же, в меню языков интерфейсов,
можно указать нужный вам (по умолчанию стоят русский/английский), рис. 44.
103
Рисунок 44. Выбор языка интерфейса 1C: Предприятие 8.2..
После установки, последним пунктом, система предложит установить драйвер ключа защиты. Установите флажок и система установит драйвера автоматически.
На этом с установкой платформы 1С предприятие закончено,
переходим к установке конфигурации.
Обновление платформы «1C: Предприятие 8.2, 8.3».
В случае, если будет запущена программа setup.exe из каталога
дистрибутива версии, которая уже установлена на компьютере пользователя, произойдет автоматическое обновление установленной версии в соответствии с настройками, заданными параметром Install
Components конфигурационных файлов.
Запуск программы setup.exe из каталога дистрибутива версии,
не установленной на компьютере, приведет к установке этой версии,
а не к обновлению какой-либо из установленных предыдущих версий.
Обновление 1С: Предприятие 8.3 пользователями
Microsoft Windows без прав администратора
Чтобы разрешить пользователям Microsoft Windows, не обладающим административными правами в операционной системе, выполнять обновление 1С: Предприятие 8.3 с административной установки,
необходимо установить политику Always Install Elevated для компьютера и пользователя. Установить политику можно как локально,
в панели управления групповых политик (запустив gpedit.msc),
так и через управление политиками Active Directory.
Вышеуказанные действия можно проделать не для конкретных
пользователей, а для группы Authenticatedusers.
Удаление платформы «1C: Предприятие 8.2, 8.3».
Удаление технологической платформы
Удаление 1С: Предприятие 8.2, 8.3 выполняется специальной
программой, которая удаляет компоненты системы с жесткого диска
компьютера, производит изменения в меню Пуск и системной информации Microsoft Windows.
Перед удалением необходимо закончить работу с системой 1С:
Предприятие 8.3 (включая завершение работы сервера 1С: Предприятие 8.3).
104
Для удаления системы 1С: Предприятие 8.3 необходимо выполнить следующие действия:
 запустите панель управления операционной системы
Microsoft Windows и щелкните мышью пиктограмму Установка
и удаление программ (Программы и компоненты для Windows Vista);
 если необходимо, в выданном на экран диалоге щелкните
мышью на пиктограмме Замена или удаление;
 в списке установленных программ выберите строку
1С:Предприятие 8.3 (8.3.2.XXX) и нажмите кнопку «Удалить».
Будет задан вопрос о необходимости выполнения удаления.
В случае утвердительного ответа будет запущено удаление выбранной версии с компьютера и выполнение необходимых изменений
в системной информации.
Удаление информационной базы
Программа удаления системы 1С: Предприятие 8 не производит
автоматического удаления каталогов на жестком диске, содержащих
информационные базы. Эти каталоги следует удалить самостоятельно.
Если на каталоги с информационными базами, которые необходимо удалить, существуют ссылки в списке информационных баз,
следует сначала удалить соответствующие строки из списка информационных баз, а затем удалить сами каталоги.
Удаление кластера серверов под Linux
Для удаления сервера 1С: Предприятие 8.3 с компьютера следует воспользоваться программой менеджера пакетов используемой
операционной системы. В данном разделе приведен пример использования менеджера пакетов rpm.
ВНИМАНИЕ. Как и установка, удаление должно выполняться
от лица пользователя root.
Перед удалением необходимо завершить работу кластера серверов, для чего следует выполнить команду: /etc/init.d/srv1cv82 stop
Для удаления следует выполнить команду: rpm –e
<Имя_пакета_rpm>
<Имя_пакета_rpm>в данном случае – это имя установленного
rpm—пакета
1С:Предприятия8. Имя установленного rpm—пакета соответствует названию файла пакета, безсуффикса«.i386.rpm», например,
1C_Enterprise-common-8.3.2.100. Таким образом, для удаления пакета
105
1С_Enterprise-common-8.3.2.100.rpm следует ввести команду: rpm —e
1C_Enterprise-common-8.3.2.100
Удаление rpm-пакетов должно выполняться в порядке, обратном
установке, чтобы зависимый пакет удалялся до того пакета, от которого он зависит. В применении к 1С: Предприятие 8.3 это означает,
что rpm-пакет 1C_Enterprise-common должен быть удален в последнюю очередь.
Удаление системы
Также можно выполнить удаление rpm-пакетов командой:
rpm —e`rpm —qa|grep 1C_`
Данная команда удалит все установленные пакеты, которые начинаются с префикса «1C_". Зависимости будут отслежены автоматически.
Удаление информационной базы
Рисунок 45. Окно запуска 1С Предприятие.
Для удаления информационной базы из системы необходимо
выбрать базу для удаления и нажать на кнопку Удалить, рисунок 45.
106
Рисунок 46. Подтверждение удаления информационной базы.
107
Тема 4. Установка информационных баз в системе
«1С: Предприятие 8.2, 8.3». Запуск системы 1C: Предприятие 8.2,
8.3. Ведение списка информационных баз.
Создание новой информационной базы
При первом запуске система не обнаруживает ни одной зарегистрированной информационной базы и предлагает создать новую базу.
Рисунок 47. Добавление новой информационной базы.
Нажимаем кнопку «Да». Итак, на первом этапе мы определили,
что будем создавать новую информационную базу, а не регистрировать уже существующую. Если пойти по второму пути, то достаточно
будет только указать, где находится информационная база.
108
Рисунок 48. Выбор конфигурации добавления информационной базы.
Устанавливаем переключатель в положение «Создание новой
информационной базы» и нажимаем кнопку «Далее».
109
Рисунок 49. Выбор шаблона информационной базы.
На следующем этапе мы определяем вариант создания информационной базы: из имеющегося шаблона или пустую. При первом
варианте будет использована уже готовая настройка (конфигурация),
при втором – создана информационная база, которая еще не содержит
описания предметной области.
Выбираем вариант «Создать информационную базу из шаблона»
и указываем курсором готовую настройку для ведения бухгалтерского
учета.
На следующем шаге необходимо дать нашей новой базе наименование и указать тип ее расположения.
Рисунок 50. Задание имени информационной базе.
На последнем этапе необходимо выбрать место хранения информационной базы на Вашем компьютере и определиться с выбором
языка интерфейса.
110
Рисунок 51. Выбор каталога для хранения информационной базы.
В результате проделанной работы в списке окна запуска программы появится новая строка с реквизитами Вашей информационной базы.
Рисунок 52. Результат создания информационной базы.
111
В поставку «1С: Бухгалтерия» входят два шаблона информационных баз: демонстрационная и основная. После установки основной
базы для ведения учета в Вашей организации целесообразно воспользоваться шаблоном демонстрационной базы, чтобы установить на
компьютер демо-базу, уже содержащую информацию о хозяйственной деятельности некоторой абстрактной организации в течение некоторого периода времени. Демонстрационную базу целесообразно
использовать для ознакомления с программным продуктом.
Следует так же иметь в виду, что «1С: Предприятие 8.3» имеет
защиту от несанкционированного использования: аппаратный ключ
защиты, который должен быть присоединен к USB-порту компьютера. Отсоединение ключа защиты из USB-порта во время работы не
допускается. На одном компьютере допускается использование только одного клиентского ключа (однопользовательского или сетевого).
Запуск системы «1C: Предприятие 8.2, 8.3».
На платформе 1С 8.1 существовал всего один вариант запуска
приложения 1С – это толстый клиент. Немного расшифрую это понятие. 1С является клиент серверным программным обеспечением
и для его запуска используются клиентские приложения.
Понятия толстый клиент не существовало до того как появилось
понятие тонкий клиент, оно означает большую требовательность к
ресурсам компьютера конечного пользователя.
С выходом платформы 1С 8.3 появилась возможность использования еще и тонкого клиента и веб-клиента. Все эти клиентские приложения имеют свои преимущества и ограничения.
Отметим основные моменты.
 Конфигуратор работает только в режиме толстого клиента.
 Толстый клиент самый требовательный к ресурсам компьютера.
 Тонкий клиент не требователен к ресурсам компьютера
пользователя при клиент-серверном режиме работы, т. К. вся нагрузка
идет на сервер.
 Веб-клиент требует только браузер и подключение к интернету. Работать в программе можно из любой точки мира. Комфортная работа зависит только от скорости соединения с интернетом.
Вся нагрузка осуществляется на веб-сервер.
112
 Также нужно отметить, что по умолчанию в настройках
запуска баз стоит “Выбирать автоматически” и задумываться каким
клиентом и какую базу запускать Вам не нужно.
Рисунок 53. Выбор режима запуска.
Режимы запуска «1С: Предприятие».
Данный режим предназначен для использования ИБ и предназначен для пользователя.
Также можно отметить еще 2 режима запуска приложения,
113ассательно другой классификации:
 1С Предприятие.
 Конфигуратор.
Для входа, необходимо запустить 1С, выбрать необходимую
информационную базу и нажать кнопку «1С: Предприятие».
113
Рисунок 54. Стартовая форма приложения 1С Предприятие.
В результате у вас должна загрузиться «пользовательская часть»
(рис. 55). Т. К. ИБ «Курсы» пустая появится пустое окно.
Рисунок 55. Пользовательская часть приложения 1С Предприятие.
Режим запуска «Конфигуратор»
Данный режим предназначен для редактирования конфигурации
и различных административных действий (управление пользователями, создание резервной копии, восстановление и т. Д.).
114
Для входа, необходимо запустить 1С, выбрать необходимую
информационную базу и нажать кнопку «Конфигуратор» (рис. 56).
Рисунок 56. Запуск 1С в режиме Конфигуратор.
115
В результате у вас должен загрузиться конфигуратор (рис. 57).
Рисунок 57. 1С: Предприятие Режим Конфигуратора.
Ведение списка информационных баз.
Управляющие элементы, расположенные в окне Запуск 1С:
Предприятие, позволяют управлять списком информационных баз:
добавлять новые базы и группы баз, перемещать базы из одной группы в другую, изменять свойства существующих информационных баз
и удалять из списка ненужные информационные базы.
Список информационных баз представлен в виде списка (используется по умолчанию) или в виде дерева. Выбор режима осуществляется в диалоге настройки запуска.
116
Рисунок 58. Стартовая форма 1С: Предприятие.
Добавление информационной базы
Добавление новой информационной базы
Для добавления в список новой информационной базы следует
нажать кнопку «Добавить». На экран будет выдан диалог для выбора
режима добавления.
Рисунок 59. Выбор режима добавления в список информационных баз.
В режиме Создание новой информационной базы система «1С:
Предприятие 8.3» предоставляет возможность создания информационной базы на основании базы-шаблона или создания пустой базы.
117
После нажатия кнопки Далее> на экран выводится диалог выбора.
Рисунок 60. Выбор добавляемой конфигурации.
Если выбран способ создания информационной базы из шаблона, то в списке шаблонов нужно выбрать исходный шаблон.
На следующем шаге будет предложено указать название информационной базы и выбрать тип расположения информационной базы.
Наименование информационной базы представляет собой произвольную строку символов. Длина наименования информационной
базы ограничена 255 символами, поэтому можно присваивать информационным базам смысловые имена. Наименование информационной
базы должно быть уникально во всем списке информационных баз.
ПРИМЕЧАНИЕ. Разрешается создавать несколько информационных баз с одинаковой строкой соединения с базой данных. Это может понадобиться в случае, если необходимо осуществлять доступ
к одной информационной базе с помощью различных клиентов,
не изменяя свойства самой информационной базы.
Создание в файловом варианте
118
Для создания информационной базы в файловом варианте необходимо выбрать тип расположения информационной базы,
как на рис. 61.
Рисунок 61. Добавление файлового варианта информационной базы.
Следует выбрать каталог, в котором будет находиться информационная база. Если будет указано имя несуществующего каталога,
то при запуске системы «1С: Предприятие» он будет автоматически
создан.
119
Рисунок 62. Выбор каталога размещения и языка информационной базы.
Нажатием кнопки выбора можно открыть стандартный диалог
выбора существующего каталога.
ПРИМЕЧАНИЕ. Имя каталога с информационной базой должно удовлетворять требованиям RFC 2396, раздел 2.4.3 Excluded USASCII Characters (http://tools.ietf.org/html/rfc2396.html). В имени каталога нельзя использовать следующие символы: «<», «>», «#», «%»,
«"», «{", «}», «[», «]», «|», «\», «^», «`», а также символы с кодами
от 0 до 31 и 127.
Если выбран режим создания пустой информационной базы,
то в поле Язык выбирается язык, по правилам которого будут храниться и сортироваться данные в информационной базе. Если выбран
шаблон, то поле для выбора языка может не выводиться.
Если была создана пустая информационная база и в указанном
каталоге отсутствуют файлы конфигурации, то при выборе режима запуска 1С: Предприятие также будет выводиться окно выбора режима
создания информационной базы. Если выбрать режим использования
шаблона, то будет создана информационная база по данному шаблону.
Создание в клиент-серверном варианте
Для создания информационной базы в клиент-серверном варианте необходимо выбрать тип расположения информационной базы,
как на рис. 63.
120
Рисунок 63. Добавление информационной базы на сервере.
Информационная база в клиент-серверном варианте идентифицируется двумя параметрами:
 адресом кластера серверов «1С: Предприятие»;
 именем информационной базы.
Как было отмечено выше, адрес кластера серверов «1С: Предприятие» состоит из имени центрального сервера и номера сетевого
порта, через который работает менеджер кластера (например,
Test_Server:1541). Если менеджер кластера использует сетевой порт,
назначаемый по умолчанию (1541), то достаточно указать только имя
сервера. Имя информационной базы уникально в пределах кластера
серверов «1С: Предприятие».
Рисунок 64. Создание новой базы.
ПРИМЕЧАНИЕ 1. Если используется кластер с несколькими
центральными серверами, то список центральных серверов может задаваться непосредственно в поле Кластер серверов 1С: Предприятие: в
форматеServer1, Server2:Port, Server3. В таком виде его удобнее использовать, например, при создании списка общих информационных баз.
121
ПРИМЕЧАНИЕ 2. Имя базы данных СУБД должно удовлетворять требованиям RFC 2396, раздел 2.4.3 Excluded US-ASCII
Characters (http://tools.ietf.org/html/rfc2396.html). В имени базы данных
нельзя использовать следующие символы: «<», «>», «#», «%», «"»,
«{», «}», «[»,«]»,«|»,«\»,«^»,«`», а также символы с кодами от 0 до 31
и 127. Кроме того, эти требования могут конкретизироваться конкретной СУБД.
Характеристики информации, вводимые в данном окне и необходимые для создания информационной базы, зависят от используемой
СУБД. Дальнейшая информация приведена в разрезе конкретной СУБД.
Microsoft SQL Server
 Тип СУБД: Microsoft SQL Server.
 Сервер баз данных: имя сервера. Может задаваться именем
компьютера (если на компьютере установлен один экземпляр сервера)
или именем конкретного экземпляра (если установлено несколько экземпляров). Например,Server/instance.
Если сервер «1С: Предприятие» и Microsoft SQL Server расположены на одном компьютере, и для Microsoft SQL Server установлен
Native Client (собственный клиент), то имеется возможность использовать для связи серверов протокол SHARED MEMORY. Для этого
необходимо перед именем Microsoft SQL Server указать префикс lpc:.
В этом случае имя сервера СУБД будет выглядеть следующим образом: lpc:Server/instance.
 Имя базы данных: первым символом имени базы данных может быть буква латинского алфавита, а также символ «_». Последующими символами могут быть буквы латинского алфавита, цифры,
а также символы «_», «$». Длина имени ограничена 63 символами.
В имени недопустимы пробелы. Имя не может быть зарезервированным словом языка запросов сервера баз данных.
 Пользователь базы данных: имя пользователя сервера баз
данных, от лица которого будет осуществляться доступ к базе данных. Существенно, чтобы указанный пользователь был либо администратором сервера баз данных (sa), либо владельцем базы данных (если она уже существует), для того чтобы в дальнейшем беспрепятственно модифицировать структуру выбранной базы данных. В последнем случае этот пользователь должен иметь доступ на чтение к
базе данных master и полный доступ к базе данных tempdb. Кроме пе122
речисленного, указанный пользователь должен быть членом фиксированной серверной роли processadmin или sysadmin.
 Пароль пользователя: пароль пользователя, от лица которого
будет выполняться доступ к базе данных.
 Смещение дат – 0 или 2000. Данный параметр определяет число лет, которое будет прибавляться к датам при их сохранении в базе
данных Microsoft SQL Server и вычитаться при их извлечении. Наличие
данного параметра определяется особенностями хранения дат
в Microsoft SQL Server. Тип DATETIME, используемый в Microsoft
SQL Server, позволяет хранить даты в диапазоне с 1 января 1753 года
по 31 декабря 9999 года. И если при работе с информационной базой
может возникнуть необходимость хранения дат, предшествующих
нижней границе данного диапазона, то в качестве значения параметра
следует выбрать 2000. Если же такие даты встречаться не будут,
то в качестве смещения дат можно выбрать 0. После создания информационной базы значение данного параметра не может быть изменено.
ВНИМАНИЕ! Если в прикладном решении используются регистры накопления или регистры бухгалтерии, то в поле Смещение дат
необходимо установить значение 2000. Если при создании базы данных в это поле было введено значение 0, то следует выгрузить информационную базу в файл, заново создать базу данных с указанием
в поле Смещение дат значения 2000 и выполнить загрузку информационной базы.
PostgreSQL
 Тип СУБД: PostrgeSQL.
 Сервер баз данных: имя экземпляра сервера.
 Имя базы данных: первым символом имени базы данных может быть буква стандарта Юникод 3.2, а также символы «_», «@». Последующими символами могут быть буквы, определенные стандартом
Юникод 3.2, а также символы «_», «@», «$». Длина имени ограничена
128 символами. В имени недопустимы пробелы. Имя не может быть
зарезервированным словом языка запросов сервера баз данных.
 Пользователь базы данных: имя пользователя сервера баз
данных, от лица которого будет осуществляться доступ к базе данных. Указанный пользователь должен обладать привилегиями
SUPERUSER.
IBM DB2
123
 Тип СУБД: IBM DB2.
 Сервер баз данных: имя экземпляра сервера. Если на компьютере имеются экземпляры сервера баз данных, отличные от установленного по умолчанию, то необходимо указать также имя установленного экземпляра IBM DB2, заданное при его установке, через
слеш. Например, computer/db2name.
 Имя базы данных: имя базы данных должно быть уникальным в пределах того расположения, в котором она занесена в каталог.
В реализациях менеджера баз данных DB2 для систем Linux это положение представляет собой каталог, а в Windows – логический диск.
Имя базы данных может начинаться только с буквы латинского алфавита, последующие символы могут быть буквами латинского алфавита, а также цифрами. Длина имени ограничена 8 символами.
 Пользователь базы данных: имя пользователя сервера баз
данных, от лица которого будет осуществляться доступ к базе данных. Указанный пользователь должен либо обладать привилегиями
CREATEDB или SUPERUSER, либо быть собственником базы данных (если она уже существует). Длина имени пользователя базы данных не должна превышать 8 символов.
Oracle Database
 Тип СУБД: Oracle Database.
 Сервер баз данных: имя экземпляра сервера. При создании
информационной базы в качестве имени сервера баз данных указывается TNS-name. Это означает, что при создании информационной базы необходимо в качестве имени сервера баз данных написать строку
типа //имя_сервера_БД/имя_сервиса (возможны и другие вариации
написания TNS-name).
 Имя базы данных: базе данных в терминах «1С: Предприятие» соответствует схема данных в терминах Oracle Database. При
создании информационной базы данных в «1С: Предприятие» в
Oracle Database создается пользователь и его схема данных. Имя схемы данных должно содержать только английские буквы, цифры и
символ «_». Имя базы данных может начинаться только с буквы латинского алфавита. Длина имени ограничена 30 символами.
 Пользователь базы данных: при создании информационной базы данных в «1С: Предприятие» необходимо указать пользователя,
от имени которого будет выполняться обращение к базе данных. Сле124
дует указать пользователя, обладающего правами DBA (например,
SYSTEM) в том случае, если схема данных будет создаваться системой
и другого пользователя, если схема уже создана администратором базы
данных Oracle Database. Это может быть пользователь, чья схема данных используется для «1С: Предприятие», т. е. можно указать в свойствах Имя базы данных и Пользователь базы данных одно и тоже имя.
Если используется существующая схема данных, то пользователь, от имени которого будет выполняться обращение к базе данных,
может не иметь права DBA. В этом случае для этого пользователя
должны быть установлены следующие права доступа:
 CREATE SESSION,
 CREATE PROCEDURE,
 CREATE TRIGGER,
 CREATE SEQUENCE,
 CREATE TABLE.
Вместо указания конкретных прав, можно задать права на следующие роли:
 CONNECT,
 RESOURCE.
Также пользователю должны быть выделены квоты на табличные пространства V81C_DATA, V81C_INDEX, V81C_LOB,
V81C_INDEX_BIG (если оно существует).
Для задания прав доступа можно воспользоваться следующим
примером:
Копировать в буфер обмена
create user <username> identified "<password>";
grant create session to <username>;
grant create table to <username>;
grant create trigger to <username>;
grant create sequence to <username>;
grant create procedure to <username>;
alter user <username> quota UNLIMITED on v81c_data;
alter user <username> quota UNLIMITED on v81c_index;
alter user <username> quota UNLIMITED on v81c_lob;
При использовании Oracle Database версии 11 с настройками по
умолчанию срок действия пароля установлен 180 дней. По истечении
180 дней может произойти ошибка: Сервер баз данных не обнаружен.
125
Ошибка СУБД: ORA-28002: дата действия пароля истечет в течение 7
дней. В этом случае необходимо сменить пароль средствами СУБД:
 запустить утилиту SQL*Plus;
 подсоединиться к базе данных;
 Выполнить команду ALTER USER <ИмяПользователя>IDENTIFIED BY <Пароль>.
Пароль изменится на тот, который будет указан в запросе.
Необходимо помнить, что сервер «1С: Предприятие» хранит пароль
в файле настроек и будет пытаться зайти со старым паролем. Поэтому
проще при исполнении команды ALTER USER указать старый пароль, тем самым не меняя пароль фактически. Чтобы отключить срок
действия пароля, следует обратиться к документации по Oracle
Database соответствующей версии.
Общие параметры
 Пароль пользователя: пароль пользователя, от лица которого
будет выполняться доступ к базе данных.
 При установленном флажке «Создать базу данных» в случае
ее отсутствия база данных будет создана, если указанный сервер баз
данных не содержит базу данных с указанным именем. Если же флажок не установлен, то попыток создания базы данных предприниматься не будет.
 Значение параметра Язык (Страна) выбирается из предложенного списка и определяет набор национальных настроек, которые
будут использованы при работе с информационной базой. В дальнейшем значение данного параметра можно изменить с помощью
конфигуратора. Если создается новая информационная база из шаблона, содержащего файл выгрузки информационной базы (*.dt),
то параметр Язык не отображается, т. к. информация о языке уже содержится в файле выгрузки информационной базы.
 Если установлен флажок «Установить блокировку регламентных заданий», то в созданной информационной базе выполнение
регламентных заданий будет запрещено. Если же флажок не установлен, то при подключении базы к серверу имеющиеся регламентные
задания незамедлительно запустятся.
Создание базы данных
Если все параметры указаны корректно, то выполняются следующие действия:
126
 Производится попытка установить соединение с указанной
базой данных в указанном сервере баз данных с применением указанных параметров пользователя.
 Если база данных отсутствует и установлен флажок «Создать
базу данных» в случае ее отсутствия, то производится попытка создания требуемой базы данных. При создании информационной базы
данных в Oracle Database создается пользователь с таким же паролем,
как и имя пользователя. Во время создания пользователя его учетная
запись блокируется. Сервер «1С: Предприятие» при установке соединения к Oracle Database использует имя пользователя и пароль, заданные при создании информационной базы данных.
 Если в указанной базе данных обнаруживается уже существующая информационная база «1С: Предприятие», то устанавливается связь с ней.
Если же не обнаруживается, то инициализируется новая информационная база. Если при указании параметров создания новой информационной базы был указан шаблон, то данный шаблон будет
применен при инициализации.
Одновременное использование одной базы данных
несколькими информационными базами
Платформа не запрещает при создании информационной базы
на сервере «1С: Предприятие» указывать в нескольких информационных базах одну и ту же базу данных. Однако организация служебных
данных кластера подразумевает, что одной базе данных соответствует
одна совокупность служебных данных. Одновременное использование нескольких экземпляров служебных данных с одной базой данных нарушает их логическую целостность.
Если несколько информационных баз одновременно используют
одну базу данных, то не будет работать:
 механизм блокировки информационной базы (в частности,
запуск двух конфигураторов может привести к разрушению конфигурации);
 механизм блокировки объектов;
 менеджер управляемых блокировок;
 получение оперативной отметки времени;
 другие механизмы, использующие разделяемые данные,
хранимые менеджером кластера.
127
Параллельная модификация данных в таких условиях может
привести к их непоправимому разрушению. Чтение из базы данных
также может выдать недостоверный результат.
Поэтому при штатном использовании информационной базы
одновременно использовать одну базу данных несколькими информационными базами не следует.
В то же время одновременное подключение нескольких информационных баз к одной базе данных может оказаться полезным
для целей отладки конфигураций и для расследования ошибок конфигураций и платформы.
Поэтому в системе «1С: Предприятие» не предусмотрено программного запрета на одновременное подсоединение нескольких информационных баз к одной базе данных. Однако пользоваться этой
возможностью следует лишь в исключительных случаях с соблюдением необходимых предосторожностей:
 Параллельная модификация данных несколькими информационными базами в одной базе данных может привести к их непоправимому разрушению.
 Чтение данных одной информационной базой при параллельном использовании их другой информационной базой в обеих
информационных базах может оказаться недостоверным, если хотя
бы одна информационная база их модифицировала или устанавливала
любые блокировки.
Добавление существующей информационной базы
Если выбран режим добавления существующей информационной базы, то в список может быть добавлена информационная база,
расположенная на локальном рабочем месте, в локальной сети,
на сервере «1С: Предприятие» или на веб-сервере (только для тонкого
клиента и веб-клиента).
128
Рисунок 65. Добавление существующей информационной базы.
После нажатия кнопки «Далее» на экран выводится диалог ввода наименования и выбора типа расположения информационной базы.
Наименование информационной базы представляет собой произвольную строку символов. Длина наименования информационной
базы ограничена 255 символами, поэтому можно присваивать информационным базам смысловые имена.
Добавление существующей файловой информационной базы
рассмотрено в следующем разделе, а добавление существующей информационной базы на сервере «1С: Предприятие».
Файловый вариант
Для файлового варианта следует выбрать каталог, в котором будет находиться информационная база. Если будет указано имя несуществующего каталога, то при запуске системы «1С: Предприятие»
он будет автоматически создан.
Нажатием кнопки выбора можно открыть стандартный диалог
для выбора существующего каталога с информационной базой.
ПРИМЕЧАНИЕ. Имя каталога с информационной базой должно удовлетворять требованиям RFC 2396, раздел 2.4.3 Excluded USASCII Characters (http://tools.ietf.org/html/rfc2396.html). В имени ката129
лога нельзя использовать следующие символы: «<», «>»,«#», «%»,
«"», «{», «}», «[», «]», «|», «\», «^», «`», а также символы с кодами от 0
до 31 и 127.
Клиент-серверный вариант
При добавлении в список уже существующей информационной
базы на экран выводится окно Добавление информационной базы/группы.
Рисунок 66. Добавление существующей информационной базы.
В полях потребуется указать:
 Адрес кластера серверов «1С: Предприятие». Адресом
кластера считается адрес центрального сервера этого кластера с указанием номера сетевого порта процесса менеджера кластера
(по умолчанию 1541).
 Имя информационной базы.
ПРИМЕЧАНИЕ 1. Если в качестве адреса центрального сервера «1С: Предприятие» указан IP-адрес в точечной нотации, то его
присутствие в DNS (hosts) не требуется. Если используется кластер с
несколькими центральными серверами, то список центральных серверов может задаваться непосредственно в поле Кластер серверов 1С:
Предприятие: в формате Server1, Server2:Port, Server3. В таком виде
130
его удобнее использовать, например, при создании списка общих информационных баз.
ПРИМЕЧАНИЕ 2. Если используется кластер с несколькими
центральными серверами, то список центральных серверов может задаваться непосредственно в поле Кластер серверов 1С: Предприятие:
в форматеServer1, Server2:Port, Server3. В таком виде его удобнее использовать, например, при создании списка общих информационных
баз.
ПРИМЕЧАНИЕ 3. Имя базы данных СУБД должно удовлетворять требованиям RFC 2396, раздел 2.4.3 Excluded US-ASCII
Characters (http://tools.ietf.org/html/rfc2396.html). В имени базы данных
нельзя использовать следующие символы: «<», «>», «#», "%», «"»,
«{», «}», «[», «]», «|», «\», «^», «`», а также символы с кодами от 0
до 31 и 127. Кроме того, эти требования могут конкретизироваться
конкретной СУБД.
При этом не производится проверка того, существует ли информационная база с указанными параметрами или нет.
Если при запуске конфигуратора информационная база с указанными параметрами не обнаружена, будет выдано соответствующее
сообщение и вопрос о создании новой информационной базы. В случае положительного ответа конфигуратор выводит форму Создание
информационной базы/группы.
Рисунок 67. Параметры информационной базы.
131
В поля данной формы нужно внести параметры, необходимые
для создания новой информационной базы.
База, расположенная на веб-сервере
Для добавления существующей информационной базы, расположенной на веб-сервере, необходимо запускать тонкий клиент «1С:
Предприятие» (файл 1cv8c).
В диалоге добавления информационной базы следует выбрать
вид расположения информационной базы на веб-сервере.
Рисунок 68. Добавление информационной базы на веб-сервере.
На следующей странице следует указать параметры подключения к веб-серверу (строку соединения, скорость соединения и т. д.).
Рисунок 69. Параметры подключения к веб-серверу.
132
Параметр «Выберите способ аутентификации пользователя вебсервера» позволяет выбрать способ аутентификации:
 Выбирать автоматически – в этом случае происходит попытка аутентификации на веб-сервере средствами ОС. Если попытка
завершилась неудачно, запросить логин/пароль явным образом.
 Запрашивать имя и пароль – всегда запрашивать логин/пароль для аутентификации на веб-сервере.
Параметры запуска информационной базы
На данной странице можно указать параметры запуска информационной базы.
Рисунок 70. Параметры запуска информационной базы.
Параметр Вариант аутентификации может принимать следующие значения:
 Выбирать автоматически – в этом случае вначале будет
предпринята попытка выполнить аутентификацию средствами ОС,
а в случае неудачи – предложено ввести логин/пароль для доступа
к информационной базе.
 Запрашивать имя и пароль – в этом случае аутентификация
будет всегда выполняться с помощью окна ввода логина и пароля.
Параметр Скорость соединения позволяет определить скорость
соединения с информационной базой или сервером «1С: Предприятие». Параметр может принимать следующие значения:
133
 Выбирать при запуске – в этом режиме выбирать скорость
соединения можно будет при каждом запуске информационной базы
с помощью флажка Низкая скорость соединения в нижней части окна
Запуск 1С: Предприятие. Если в свойствах информационной базы
указано конкретное значение (Обычная или Низкая), то флажок Низкая скорость соединения в диалоге «Запуск 1С:Предприятие» недоступен для изменения и отражает значение, выбранное в свойствах
информационной базы.
 Обычная – обычная скорость. При работе системы не будет никаких особенностей.
 Низкая – низкая скорость соединения. В этом режиме работа «1С: Предприятие» будет сопровождаться некоторыми особенностями, которые описаны в книге «1С: Предприятие 8.3. Руководство разработчика».
Флажок Низкая скорость соединения в диалоге Запуск
1С:Предприятие тонкого клиента будет доступен для изменения в том
случае, если в списке информационных баз есть хотя бы одна информационная база с требуемой версией «1С:Предприятие» 8.2 и выше
и с параметром Скорость соединения, установленным в значение Выбирать при запуске. В остальных случаях флажок недоступен для изменения и отображает скорость соединения, указанную в свойствах
информационной базы.
Поле Дополнительные параметры запуска позволяет указать
различные параметры командной строки, которые будут переданы
исполняемому файлу. Подробнее про параметры командной строки
можно прочитать во встроенной справке (раздел Запуск 1С: Предприятие 8 и параметры запуска).
Параметры L и VL, указанные в этом поле, будут действовать
только в случае запуска информационной базы с помощью интерактивной программы запуска.
Параметр Основной режим запуска определяет, какой клиент
будет использоваться для доступа к информационной базе:
 Выбирать автоматически – в этом режиме вид клиентского
приложения будет определяться исходя из свойства конфигурации
Основной режим запуска и свойства пользователя Режим запуска.
 Тонкий клиент – для запуска будет использоваться тонкий
клиент.
134
 Веб-клиент – для запуска будет использоваться вебклиент. Данный вид клиента доступен только в том случае, если доступ к информационной базе выполняется через веб-сервер.
 Толстый клиент – для запуска будет использоваться толстый клиент. Данный вид клиента будет недоступен, если доступ к
информационной базе выполняется через веб-сервер.
Поле Версия 1С: Предприятие позволяет указать конкретный
номер версии, который необходимо использовать для доступа к данной информационной базе. Кроме того, в этом поле можно указывать
значения 8.1, 8.0. В этом случае для доступа к информационной базе
будет использоваться версия 8.0 или 8.1 «1С: Предприятие», установленная на данном компьютере. Указывать конкретный номер версии
в этом случае не имеет смысла.
Параметры настройки сертификатов
В случае если выбрано добавление информационной базы
на веб-сервере, а в поле, укажите строку адреса информационной базы указать протокол HTTPS, например, вместо адреса
http://localhost/DemoMA указать адрес https://localhost/DemoMA,
то будет доступна страница с указанием параметров настройки сертификатов.
Рисунок 71. Параметры настройки сертификатов.
135
На этой странице настраивается, откуда выбирать клиентский
сертификат и как проверять серверный сертификат. Опишем эти
группы параметров более подробно:
 Выберите клиентский сертификат – выбирается месторасположение клиентского сертификата:
 Не предоставлять сертификат – установка соединения возможна только с веб-серверами, которые не требуют предоставления
клиентского сертификата.
 Файл сертификата – позволяет выбрать файл, хранящий
клиентский сертификат и его закрытый ключ. Если файл защищен паролем, то при установлении соединения пользователю будет предложено ввести пароль.
 Сертификат Windows – клиентский сертификат получается
из системного хранилища сертификатов ОС Windows. В том случае,
если в системе окажется более одного клиентского сертификата, подходящего для устанавливаемого соединения, существует возможность
указать системе, что делать в этом случае:
 Выбирать, используя ранее выбранный – пользователю
предоставляется выбор используемого сертификата через системный
диалог выбора сертификата. В дальнейшем выбранный сертификат
используется автоматически.
 Выбирать всегда – пользователю предоставляется выбор
используемого сертификата через системный диалог выбора сертификата независимо от того был ли ранее выбран какой либо сертификат.
Выбранный сертификат в дальнейшем может использоваться автоматически с опцией «Выбирать», используя ранее выбранный.
 Подбирать автоматически – используется произвольный
сертификат, подходящий для устанавливаемого соединения. Диалог
выбора сертификата не отображается.
 Сертификат NSS – клиентский сертификат получается
из хранилища сертификатов NSS. В этом случае необходимо указать
дополнительно следующие настройки:
 Каталог хранилища NSS – необходимо выбрать каталога,
содержащий файлы хранилища сертификатов NSS. Если доступ
к хранилищу защищен паролем, то при установке соединения пользователю будет предложено указать пароль доступа.
136
 Имя сертификата – имя конкретного клиентского сертификата в выбранном хранилище сертификатов NSS. Если имя не указано, то используемый сертификат будет выбираться автоматически.
При использовании для хранения сертификатов хранилища веббраузера Mozilla Firefox, указывать значение для данного свойства
не рекомендуется, т. к. имя сертификата зависит от используемого
браузера и может быть нечитаемым.
 Выберите способ проверки сертификатов сервера – указывает, каким образом должны проверяться сертификаты, предъявленные веб-сервером:
 Не проверять сертификат сервера – сертификат вебсервера не проверяется, и, соответственно, не используются сертификаты удостоверяющих центров (УЦ).
 Файл сертификатов CA – позволяет выбрать файл, хранящий сертификаты удостоверяющих центров. Если файл защищен паролем, то при установлении соединения пользователю будет предложено указать пароль доступа.
Данный параметр недоступен, если в качестве клиентского сертификата выбран сертификат NSS.
 Сертификаты Windows – указывает, что сертификаты удостоверяющих центров следует получать из системного хранилища
сертификатов Windows.
 Данный параметр недоступен, если в качестве клиентского
сертификата выбран сертификат NSS.
 Сертификаты NSS – указывает, что сертификаты удостоверяющих центров следует получать из хранилища сертификатов NSS,
указанного в настройках клиентского сертификата.
Данный параметр доступен только в том случае, если в качестве
клиентского сертификата выбран сертификат NSS.
Редактирование информационной базы
Для корректировки имени или каталога какой-либо информационной базы из списка следует выбрать в списке название базы и
нажать кнопку «Изменить». Для изменения свойств информационной
базы будет использоваться диалог, аналогичный диалогу добавления
существующей информационной базы.
137
Удаление информационной базы из списка
Для удаления информационной базы из списка следует выбрать
в списке ее название и нажать клавишу «Удалить». Выбранная информационная база будет удалена из списка.
Примечание. Выполнение этой операции удаляет только информацию из списка, но не удаляет каталог с информационной базой
с жесткого диска компьютера или базу, находящуюся на сервере «1С:
Предприятие». Эту операцию следует провести самостоятельно.
Порядок информационных баз в списке
Если в настройках диалога запуска не установлен режим сортировки по наименованию, то положение информационных баз в списке
можно изменить с помощью мыши или команд контекстного меню.
Для перемещения строки информационной базы следует выбрать
в списке нужную строку, нажать левую клавишу мыши и, не отпуская
ее, переместить указатель в нужном направлении. При перемещении
выводится контур предполагаемого места размещения.
Затем следует переместить указатель в нужное место списка
и отпустить клавишу мыши.
Порядок строк списка информационных баз также можно изменить с помощью команд контекстного меню «Переместить вверх»
(Ctrl + Shift + Стрелка вверх) и «Переместить вниз» (Ctrl + Shift +
Стрелка вниз). Действие команд «закольцовано», т. е. при достижении
первой или последней позиции и повторном выполнении команды
строка переместится в конец или начало списка.
Также доступны команды «Сортировать по возрастанию» и
«Сортировать по убыванию», которые соответствующим образом
упорядочивают список информационных баз.
Если в настройках диалога запуска включено отображение в виде дерева, то при перетаскивании строки информационной базы следует помнить о следующих особенностях:
 Если контур указывает на группу, то перетаскиваемая
строка будет размещена в конце списка указанной группы.
 Для перемещения информационной базы или группы
в нужную позицию группы предварительно нужно раскрыть эту группу.
Ведение иерархического списка информационных баз
В данном разделе описываются действия по созданию и реорганизации списка информационных баз, отображаемого в виде дерева.
138
Добавление группы информационных баз
Группы информационных баз имеет смысл создавать, когда
на рабочем месте осуществляется работа с несколькими однотипными
информационными базами или когда число баз достаточно велико
и не сразу удается найти требуемую базу.
Режим создания групп доступен, если в настройке диалога запуска был установлен режим «Отображать в виде дерева».
При включенном режиме список баз представляется в виде дерева, в котором уже существует корневая группа «Информационные
базы». Эту группу нельзя изменять и удалять.
Для добавления группы информационных баз нужно выбрать
группу, в которой требуется создать новую группу (указать строку
группы или любую строку с информационной базой этой группы),
и нажать кнопку «Добавить». На экран будет выдан диалог для выбора режима добавления.
Рисунок 72. Создание новой группы.
Выбрать режим «Создание новой группы» и нажать кнопку
«Далее».
139
Рисунок 73. Название новой группы.
Затем ввести наименование группы (в наименовании группы недопустим символ «/») и нажать кнопку Готово. Созданная группа помещается в указанную группу информационных баз (в конец списка указанной группы, если не установлен режим сортировки по наименованию).
Редактирование группы информационных баз
Для корректировки наименования группы информационных баз
следует выбрать в списке строку, содержащую группу, и нажать
кнопку «Изменить». На экран будет выдано окно «Редактирование
группы», содержащее название выбранной группы информационных
баз.
Рисунок 74. Редактирование группы.
140
Нужно ввести новое наименование (в наименовании группы недопустим символ «/») и нажать кнопку Готово.
Удаление группы информационных баз
Для удаления группы информационных баз из списка следует
выбрать в списке ее название и нажать кнопку «Удалить». Выбранная
группа информационных баз будет удалена из списка.
ВНИМАНИЕ! Из списка будут удалены все информационные
базы, входящие в группу.
Настройка окна запуска
В диалоге запуска нужно нажать кнопку «Настройка». На экран
выводится диалог настройки запуска.
Рисунок 75. Настройка диалога запуска.
Данный диалог вызывается в том случае, если настройка выполняется из интерактивной программы запуска. При выполнении
настройки из толстого клиента (1cv8) в окне настройки будет отсутствовать поле «Используемые версии», а в случае вызова настройки
из тонкого клиента (1cv8c) также не будет поля Каталоги шаблонов
конфигураций и обновлений.
141
Если флажок «Отображать в виде дерева» установлен, то список
информационных баз показывается в виде дерева.
Если флажок «Сортировать по наименованию» установлен,
то список сортируется по наименованиям внутри каждой группы.
Если флажок «Показывать последние выбранные информационные базы» установлен, то в поле «Запоминать последние выбранные»
указывается число последних вызванных баз.
Список последних выбранных баз показывается в верхней части
общего списка. Наименования информационных баз выделяются
жирным шрифтом. Этот список выводится в порядке выбора – вверху
списка располагается база, которая выбиралась последней. Установка
сортировки списка не влияет на порядок следования баз в списке последних выбранных.
В данном списке допускается только выбор. Редактирование
и удаление информационной базы становятся доступными при выборе ее в общем списке баз.
В поле Каталоги шаблонов конфигураций и обновлений указывается перечень каталогов, в которых располагаются шаблоны конфигураций и обновлений. Например, в этом списке может быть общефирменный каталог шаблонов и каталог шаблонов, используемый
для локальных задач.
ПРИМЕЧАНИЕ. Поле Каталог шаблонов конфигураций и обновлений недоступно для окна настройки тонкого клиента.
Поле Адреса Интернет-сервисов и списки общих информационных баз предназначено для редактирования состава списков общих
информационных баз. При запуске системы «1С:Предприятие» информационные базы, указанные в списках общих информационных
баз, будут добавлены к основному списку информационных баз. Если
в
локальном
конфигурационном
файле
указан
параметр
CommonCfgLocation, то к основному списку информационных баз
также будут добавлены информационные базы, указанные в параметрах CommonInfoBases (если указаны) общего конфигурационного
файла (1cescmn.cfg).Также к списку информационных баз будут добавлены информационные базы, полученные через Интернетсервисы. Описание Интернет-сервисов получения списка общих информационных баз.
142
Пути к каталогу шаблонов или списку общих информационных
баз отображаются в окне настройки только в том случае, если эти пути заданы с помощью соответствующих параметров локального конфигурационного файла 1cestart.cfg. Если эти пути указаны в общем
конфигурационном файле (1cescmn.cfg), то в диалоге настройки они
не отображаются.
Поле Используемые версии содержит перечень уточнений номеров версий, используемых системой. Этот перечень используется
в тех случаях, когда с информационными базами необходимо работать с помощью версии, которая отличается от максимальной версии,
установленной на компьютере.
Например, если при указании строки сопоставления вида
8.3=8.3.3.100 в свойствах информационной базы будет указана версия
8.3, для ее запуска будет использоваться версия 8.3.3.100, а не версия
с максимально доступным номером.
Параметр Использовать аппаратную лицензию (ключ защиты)
отвечает за поиск аппаратного ключа защиты при запуске клиентского приложения. Изменение параметра начинает действовать со следующего сеанса работы и изменяет значение параметра
UseHwLicenses в файле 1cestart.cfg.
ПРИМЕЧАНИЕ. При настройке диалога запуска параметры
CommonInfoBases, ConfigurationTemplatesLocation,DefaultVersion, Use
HwLicenses изменяются только в локальном конфигурационном файле пользователя, от имени которого выполняется настройка диалога
запуска.
Параметр «Устанавливать автоматически новую версию» управляет возможностью автоматической установки новой версии. Изменение
флажка
влияет
на
значение
параметра AppAutoInstallLastVersion
в файле 1cestart.cfg.
Списки общих информационных баз
Списки общих информационных баз представляют собой файлы
с расширением v8i, которые содержат ссылки на общие информационные базы.
Расположение списков общих информационных баз задается
в параметре CommonInfoBases конфигурационных файлов.
143
Список общих информационных баз может быть сформирован
вручную или с использованием возможности сохранения существующих ссылок на информационные базы в файл. Для этого следует
выполнить команду контекстного меню списка информационных баз
Сохранить ссылку в файл.
Список общих информационных баз может быть непосредственно использован для запуска системы «1С:Предприятие». При запуске
файла с расширением v8i будет запущена система «1С:Предприятие»,
и в диалоге запуска будут отображены только те ссылки, которые содержатся в данном списке общих информационных баз.
Рекомендуется в списках общих баз указывать скорость соединения Обычная (если нет удаленных пользователей или информационная база не находится на удаленном сервере), что исключит отображение флажкаНизкая скорость соединения.
Имеется возможность также указать адрес Интернет-сервиса,
который будет предоставлять список общих информационных баз
в тех случаях, когда невозможно использовать список общих информационных баз, расположенный в локальной сети. Например, информационная база используется через Интернет (подключение через
веб-сервер). Подробнее об
При первом получении списка общих информационных баз,
этот список размещается в корне списка или группе, указанной в этом
списке. При повторном получении списка поведение будет следующим: информация о базе будет обновлена, но расположение общей
информационной базы в списке пользователя не изменится. Это означает, что если пользователь перенес общую информационную базу в
свою группу, то повторное получение списка общих информационных баз не изменит положение информационной базы.
Тема 5. Администрирование информационных баз
На платформе 1С: Предприятие 8.3 значительно облегчено администрирование информационных баз. К задачам по администрированию можно отнести следующие:
 установку и обновление системы,
 ведение списка пользователей,
 настройку прав доступа на основе механизма ролей,
144
 мониторинг действий пользователей и системных событий,
 резервное копирование,
 тестирование и исправление информационной базы,
 установку региональных настроек,
 обновление конфигураций.
Для каждой задачи система 1С: Предприятие 8.3 предоставляет
удобные инструменты. Фактически, администрирование – это вторая
профессия Конфигуратора, входящего в стандартную поставку. Основные инструменты администратора включены в подменю Администрирование:
Рисунок 76. Администрирование в 1С:Предприятие.
Список пользователей
Список пользователей, имеющих возможность работать с информационной базой, редактируется в следующем окне:
Рисунок 77. Список пользователей.
145
 Для каждого пользователя указывается его имя, полное
имя, тип аутентификации, пароль, доступные роли, основной интерфейс и язык.
 В 1С:Предприятие 8 можно использовать аутентификацию
пользователя средствами Windows. Для этого нужно установить соответствующий флажок и указать пользователя.
 Можно сделать так, чтобы пользователь не показывался
в списке выбора при запуске системы.
 Впоследствии пользователь сам сможет поменять себе пароль через пункт меню "Сервис => Параметры пользователя".
Рисунок 78. Настройка параметров пользователей.
Список активных пользователей
Всегда можно узнать, кто в данный момент подключен к информационной базе, для чего предназначен список активных пользователей.
Он вызывается в обоих режимах работы 1С: Предприятие 8: Конфигуратор и Предприятие. В этом списке отображается имя пользователя, имя
компьютера, режим запуска и другая информация. Оттуда же можно открыть журнал регистрации действий данного пользователя.
Журнал регистрации
По долгу службы администратору часто требуется узнать, какие
действия и события происходили в определенный момент времени.
146
Для этого предназначен журнал регистрации, который по умолчанию
отключен, так как его ведение требует некоторых дополнительных затрат. С помощью пункта "Настройка журнала регистрации" указывается важность событий, регистрируемых в журнале. К ним относятся
ошибки, предупреждения, информационные сообщения и примечания.
При работе с журналом регистрации можно указать интересующий интервал времени, произвести отбор событий по определенному
пользователю или компьютеру и другим параметрам. Журнал регистрации — очень удобное средство для мониторинга действий пользователей и восстановления последовательности событий, происходивших в определенный момент времени.
Роли и интерфейсы
Роль – это набор прав доступа к объектам конфигурации. У
каждого пользователя может быть несколько доступных ему ролей,
например, главному бухгалтеру доступны роли "Бухгалтер", "Расчетчик", "Учет материалов" и т.д. Редактирование прав доступа к объекту относится уже к изменению конфигурации и производится в окне
редактирования объекта на закладке "Права" или из окна самой роли.
Часто на администратора возлагаются задачи по модификации
интерфейса пользователя, например, добавление и удаление пунктов
меню, их перегруппировка, редактирование панелей инструментов.
Все эти функции доступны администратору, хотя интерфейс
(как и роль) не входит в административную информацию, а является
объектом конфигурации (ветвь "Общие"). Интерфейсы редактируются визуальными средствами в специальном редакторе интерфейсов.
Изменения в интерфейсе для пользователя будут действительны
только после обновления конфигурации базы данных, хотя пользователь может переключить свой интерфейс на другой "на лету" без перезапуска программы.
147
Рисунок 79. Окно интерфейса.
148
Резервное копирование
С помощью пункта «Выгрузить информационную базу» можно
выгрузить данные, конфигурацию и список пользователей в один файл.
Следующий пункт «Загрузить информационную базу» позволяет восстановить информационную базу из файла. Этот механизм может также применяться для переноса баз между файловым и клиентсерверным вариантом.
В клиент-серверном варианте резервное копирование может
производиться штатными средствами Microsoft SQL Server, при этом
прерывать работу всех пользователей не требуется. В файловом варианте для резервного копирования можно скопировать файл информационной базы.
Резервные копии рекомендуется архивировать, чтобы они занимали меньше места.
В целях резервного копирования или для других целей из информационной базы можно выгрузить только конфигурацию в cfфайл (аналог md-файла в версии 7.7). Т. е. в этот файл не попадут
данные и сведения о пользователях. Другими словами, там будут
только объекты конфигурации и программные модули.
Тестирование и исправление
Платформа 1С: Предприятие 8.3 имеет повышенную надежность, поддерживает целостность информационной базы при интенсивной работе. Но если с базой вдруг возникли неполадки, например,
при неожиданном выключении электричества, то на этот случай в системе 1С: Предприятие 8.3 предусмотрены средства диагностики и
исправления ошибок в базе данных.
Для этого предназначена команда «Тестирование и исправление» меню «Администрирование». В появившемся окне можно указать, какие необходимо выполнить проверки и операции, требуется ли
только тестирование или тестирование с исправлением ошибок,
а также режим исправления. В абсолютном большинстве случаев
неполадки устраняются системой автоматически и можно успешно
продолжать работу.
149
Рисунок 80. 1С: Предприятие Тестирование и исправление информационной базы.
Региональные установки
При необходимости администратор 1С: Предприятие 8 может
настроить региональные установки информационной базы, к которым
относятся язык, разделитель дробной части числа и разделитель групп
разрядов, формат даты и времени, представление логических значений и другие параметры.
Рисунок 81. Региональные установки информационной базы.
150
Обновление конфигураций
В современном динамичном мире вполне естественно, что многие конфигурации регулярно меняются. Изменения могут быть связаны с учетом изменений законодательства, добавлением новых функциональных возможностей или внесением исправлений. Особенно это
касается типовых или тиражных конфигураций. Система 1С: Предприятие 8.3 содержит встроенный механизм поставки и поддержки
конфигураций как для типовых, так и индивидуальных конфигураций.
Разработчики конфигураций при выпуске новых релизов подготавливают файлы поставки. Различают полную поставку и поставку
обновлений. Последний вид поставки предназначен для обновления
имеющейся конфигурации и содержит только изменения.
Администратор или пользователь может легко произвести обновление своей конфигурации. Чтобы его собственные изменения
не были потеряны, производится детальное сравнение и объединение
конфигурации пользователя и конфигурации поставщика.
Резюме
 Платформа 1С: Предприятие 8.3 содержит удобные инструменты для администратора информационной базы, включая список пользователей, систему настройки прав (ролей) и интерфейсов,
журнал регистрации.
 Установка (обновление) системы и конфигураций производятся простыми средствами. Достаточно легко осуществляется
настройка клиент-серверного варианта.
 Как и в версии 7.7, система 1С: Предприятие 8.3 имеет
средства тестирования и исправления ошибок в информационной базе.
В абсолютном большинстве случаев неполадки устраняются системой
автоматически и можно успешно продолжать работу.
Информационная база может быть выгружена в файл, куда выгружаются данные, конфигурация и сведения о пользователях. В клиент-серверном варианте можно использовать штатные средства
151
Microsoft SQL Server. В файловом варианте можно просто скопировать файл информационной базы.
Блокировка информационной базы 1С: Предприятие
В типовую обработку «Блокировка соединений с информационной базой» внесены интерфейсные изменения, призванные сделать
работу в ней более удобной. Также обработка сделана максимально
универсальной и может быть использована в любой, полностью
не типовой базе.
Рисунок 82. Блокировка установки соединений.
Рисунок 83. Блокировка установки соединений.
152
Рисунок 84. Блокировка установки соединений.
Рисунок 85. Блокировка установки соединений.
Тема 10. Защита от несанкционированного использования:
особенности и настройка
Для защиты от несанкционированного использования системы
1С: Предприятие 8.3 может использоваться сетевая система защиты
HASP4 Net.
Особенностью данной системы защиты является то, что с помощью одного аппаратного ключа защиты HASP4 Net может разрешаться одновременная работа 1С:Предприятия 8 на нескольких компьютерах в рамках локальной сети. Использование системы 1С: Предприя153
тие 8.3 регламентируется дополнительной многопользовательской
лицензией.
Для этого в локальной сети должен находиться компьютер,
к USB-порту которого присоединен сетевой аппаратный ключ HASP4
Net, предназначенный для защиты 1С:Предприятие 8, и на этом же
компьютере должен быть запущен HASP License Manager. При этом
на N компьютерах, находящихся в той же локальной сети, к USBпортам которых не присоединен клиентский аппаратный ключ защиты 1С: Предприятие 8.3, будет разрешена одновременная работа 1С:
Предприятие 8.3. Число N определяется сетевым аппаратным ключом
HASP4 Net.
ВНИМАНИЕ. К USB-портам одного компьютера не имеет
смысла присоединять несколько аппаратных ключей HASP4 Net, предназначенных для защиты 1С: Предприятие 8.3, так как эти ключи неразличимы и фактически будет задействован только один из них (выбранный произвольно). Однако в локальной сети может быть несколько компьютеров с сетевыми аппаратными ключами HASP4 Net, предназначенными для защиты 1С: Предприятие 8.3, и запущенным HASP
License Manager. В этом случае число компьютеров, на которых может
быть запущено 1С: Предприятие 8.3, определяется как сумма «возможностей» каждого из отдельно взятых клиентских аппаратных ключей.
HASP License Manager может быть запущен как обычное приложение Windows или как служба (только в операционных системах
Windows 2000/XP/Server 2003/Vista/Server 2008).
При использовании многопользовательской системы защиты нет
необходимости устанавливать HASP Device Driver на пользовательских компьютерах, на которых запускается 1С: Предприятие 8.3
и к USB-порту которых не присоединен клиентский ключ защиты 1С:
Предприятия 8.3.
СОВЕТ. Загрузить последние версии HASP Device Driver
и HASP License Manage.
Маркировка ключей защиты
Однопользовательские версии основных поставок и клиентских
ключей
154
Таблица 2
Ключи защиты в 1С:Предприятие. Однопользовательские версии.
Внешний
вид
USB HASP
HL Pro
Используется для следующих
программных продуктов
1C: Бухгалтерия 8 ПРОФ
1С: Бухгалтерия 8 ПРОФ. Поставка
для розничного распространения
1С: Бухгалтерия 8 КОРП
1С: Бухгалтерия бюджетного учреждения 8
1С: Бухгалтерия автономного учреждения 8 ПРОФ
1С: Бухгалтерия автономного учреждения 8 КОРП
1С: Управление торговлей 8
1С: Зарплата и Управление Персоналом 8
1С: Зарплата и кадры бюджетного учреждения 8
1С: Управление небольшой фирмой 8
1С: Комплексная автоматизация 8
1С: Предприятие 8. Управление производственным предприятием
1С: Документооборот 8
1С: Предприятие 8. Клиентская лицензия
на 1 рабочее место
155
Маркировка
H4 M1
ORGL8
Сетевые версии основных поставок
и многопользовательские ключи USB HASP HL Net
маркировка: H4 NET5 ORGL8
Используется для следующих программных продуктов:
1С: Бухгалтерия 8. Комплект на 5 пользователей
1С: Бухгалтерия 8 ПРОФ на 5 пользователей. Поставка для розничного распространения
1С: Предприятие 8. Комплект прикладных решений на 5 пользователей
1С: Предприятие 8. Клиентская лицензия на 5 рабочих мест
маркировка: H4 NET10 ORGL8 1С: Предприятие 8. Клиентская
лицензия на 10 рабочих мест
маркировка: H4 NET20 ORGL8 1С: Предприятие 8. Клиентская
лицензия на 20 рабочих мест
маркировка: H4 NET50 ORGL8 1С: Предприятие 8. Клиентская
лицензия на 50 рабочих мест
маркировка: H4 NET100 ORGL8 1С: Предприятие 8. Клиентская
лицензия на 100 рабочих мест
маркировка: NET250+ ORG8A 1С: Предприятие 8. Клиентская
лицензия на 300 рабочих мест
маркировка: NET250+ ORG8B 1С: Предприятие 8. Клиентская
лицензия на 500 рабочих мест
Ключи на сервер 1С:Предприятие 8*
USB HASP HL Pro
маркировка: H4 M1 ENSR8 1С: Предприятие 8.* Лицензия
на сервер (х32)
USB HASP HL Max
маркировка: Max EN8SA 1С: Предприятие 8.2. Лицензия на сервер (x86-64)
Комплекты
USB HASP HL Net
маркировка:
H4 NET10 ORGL8; H4 M1 ENSR8
1С: Предприятие 8. Управление производственным предприятием для 10 пользователей + клиент-сервер В комплект поставки входит
два ключа:
Многопользовательский на 10 рабочих мест
156
На сервер 1С:Предприятия 8.* (х32)
USB HASP HL Pro
маркировка:
H4 NET10 ORGL8 H4 M1 ENSR8
1С: Комплексная автоматизация 8 для 10 пользователей + клиент-сервер В комплект поставки входит два ключа:
Многопользовательский на 10 рабочих мест
На сервер 1С: Предприятие 8.* (х32)
маркировка:
H4 NET20 ORGL8 H4 M1 ENSR8
1С: Предприятие 8. Комплект для обучения в высших и средних
учебных заведениях. В комплект поставки входит два ключа:
Многопользовательский на 20 рабочих мест
На сервер 1С: Предприятие 8.* (х32)
USB HASP HL Max
маркировка: HHL Max ADSERVER 1С:Архив 3.0
USB HASP HL Pro
маркировка: 1CFOOD[1]
1C:Предприятие 8. Общепит В комплект поставки входит два
ключа:
на конфигурацию «Общепит» - 1СFOOD[1]
на платформу 1С: Предприятие USB HASP HL Pro H4 M1
ORGL8
маркировка: 1CBSO[1]
1C: Бухгалтерия строительной организации 8 (БСО). В комплект
поставки входит два ключа:
на конфигурацию «БСО» - 1СBSO[1]
на платформу 1С: Предприятие USB HASP HL Pro H4 M1
ORGL8
Примечание:
Размер USB-ключей может отличаться от размера ключей изображенных на рисунках. Программные продукты системы 1С: Предприятие выпускавшиеся до 2009 г. комплектовались USB-ключами в
более длинном форм-факторе – 52 мм. Цветовая схема
и маркировка ключей осталась без изменений.
157
Для предотвращения возможности незаконного использования
система 1С: Предприятие 8.3 предоставляется пользователям в защищенном виде.
Возможность использования программного продукта на одном
или нескольких рабочих местах, а также возможность использования
сервера 1С: Предприятие 8.3 определяются имеющимися лицензионными соглашениями. Одной из составных частей используемой системы защиты является аппаратный ключ защиты от несанкционированного использования.
При установке 1С: Предприятие 8.3 программа установки запускает инсталлятор драйвера защиты, который производит установку
HASP Device Driver (если соответствующий флажок не был снят). Для
работы продукта, использование которого регулируется Лицензионным соглашением на одно рабочее место или на одно дополнительное
рабочее место, к USB-порту компьютера необходимо присоединить
аппаратный ключ.
Если использование продукта регулируется дополнительной
многопользовательской лицензией, необходимо присоединить аппаратный ключ защиты к USB-порту компьютера, на котором запущена
программа HASP License Manager.
Информация о последних изменениях в системе защиты размещается в файле readme.txt.
Защита клиентского приложения
Для обеспечения взаимодействия системы 1С: Предприятие 8.3
с аппаратным ключом защиты необходимо установить драйвер защиты, входящий в комплект поставки системы.
Установка драйвера защиты
Для установки драйвера защиты от несанкционированного использования в операционной системе Microsoft Windows выберите
пункт меню Пуск – Программы – 1С Предприятие 8.3 – Дополнительно – Установка HASP Device Driver.
Можно также установить HASP Device Driver «вручную».
Для этого из командной строки Многопользовательский клиентский
ключ 1С: Предприятие 8 на 500 пользователей NET250+ ORG8B
Локальный ключ 32-битного сервера 1С: Предприятие 8 ENSR8
Локальный ключ 64-битного сервера 1С: Предприятие 8 EN8SA
158
следует запустить программу hinstall.exe, размещенную в каталоге \Program Files\1cv82 \common\, с ключом —i. Таким образом, командная строка для установки HASP Device Driver имеет следующий
вид: hinstall -i
СОВЕТ. Рекомендуется сначала произвести установку драйвера
защиты, а затем присоединить аппаратный ключ к USB-порту компьютера.
ВНИМАНИЕ. Отсоединение аппаратного ключа защиты
из USB—порта во время работы не допускается!
Удаление драйвера защиты
В случае ненадобности драйвер защиты может быть удален из
системы. Для удаления драйвера защиты в операционной системе
Microsoft Windows выберите пункт меню Пуск – Программы – 1С:
Предприятие 8.3 – Дополнительно – Удаление HASP Device Driver.
Для удаления драйвера защиты можно также воспользоваться командной строкой вида: hinstall -r
Защита серверного приложения
Кластер серверов 1С: Предприятия 8.3 защищен от несанкционированного использования с помощью ключа аппаратной защиты
HASP4.
Защита кластера серверов под Windows
Чтобы кластер сервера успешно работал, к USB-порту компьютера, используемого в качестве сервера кластера 1С: Предприятие 8.3,
должен быть присоединен ключ аппаратной защиты сервера. Кроме
того, чтобы обеспечить доступ к ключу, на этом же компьютере должен быть установлен HASP Device Driver. Программа установки
HASP Device Driver (hinstall.exe) входит в комплект поставки и устанавливается на центральный сервер кластера при установке кластера
серверов 1С: Предприятие 8.3.
Для установки HASP Device Driver выберите пункт меню Пуск –
Программы – 1С Предприятие 8.3 – Дополнительно – Установка
HASP Device Driver. Можно также установить HASP Device Driver
«вручную». Для этого из командной строки следует запустить программу hinstall.exe, размещенную в каталоге \Program Files\1cv82
\common\, с ключом – i. Таким образом, командная строка для установки HASP Device Driver имеет следующий вид: hinstall -i
159
СОВЕТ. Рекомендуется сначала произвести установку HASP
Device Driver, а затем присоединить ключ к USB-порту.
ВНИМАНИЕ. Отсоединение аппаратного ключа защиты
из USB-порта во время работы не допускается!
В случае ненадобности HASP Device Driver может быть удален
из системы. Для удаления HASP Device Driver выберите пункт меню
Пуск – Программы – 1С Предприятие 8.3 – Дополнительно – Удаление HASP Device Driver. Для удаления HASP Device Driver можно
также воспользоваться командной строкой следующего вида: hinstall r
Защита кластера серверов под Linux
Установка драйвера ключа защиты HASP должна производиться
в соответствии с инструкциями производителя, входящими в комплект поставки драйвера ключа защиты HASP для Linux.
160
Особенности учета клиентских лицензий
В зависимости от вида клиента и места расположения ключа
с клиентскими лицензиями (локального или сетевого), возможны несколько вариантов учета лицензий. Рассмотрим их более подробно.
Файловый вариант
В данном случае возможны следующие варианты получения лицензий:
Обеспечивает запуск на компьютере с ключом произвольное количество экземпляров системы в режиме «1С: Предприятие» или
«Конфигуратор».
Обеспечивает одновременную работу количеству компьютеров,
на сколько пользователей имеется ключ. На одном компьютере возможен запуск произвольного количества экземпляров системы в режиме «1С: Предприятие» или «Конфигуратор».
Количество лицензий ограничено количеством компьютеров
в сети, на которых установлены и настроены HASP License Manager.
Клиент-серверный вариант
В данном случае возможны следующие варианты получения лицензий:
Обеспечивает запуск на компьютере с ключом произвольное количество экземпляров системы в режиме 1С:Предприятие или Конфигуратор.
Обеспечивает одновременную работу количеству компьютеров,
на сколько пользователей имеется ключ. На одном компьютере возможен запуск произвольного количества экземпляров системы в режиме «1С: Предприятие» или «Конфигуратор». Количество лицензий
ограничено количеством компьютеров в сети, на которых установлены и настроены HASP License Manager. В этом случае ключ может
располагаться как на компьютере, где установлен сервер 1С: Предприятие 8.3, так и в сети.
Подсчетом лицензий занимается непосредственно сервер.
В этом случае лицензии расходуются из расчета «один сеанс — одна
лицензия». Таким образом, если на одном компьютере запущено два
экземпляра 1С: Предприятие 8 (в любом режиме запуска и с любым
видом клиента), то на это будет израсходовано 2 лицензии. Следует
учитывать следующую особенность: если в сети будет обнаружено
несколько многопользовательских клиентских ключей серии ORGL8,
161
то будет выбран один произвольный ключ, после исчерпания лицензий этого ключа, возможно использование одного многопользовательского ключа ORGL8A и затем возможно использование одного
многопользовательского ключа ORGL8B.
Максимальное количество лицензий, которое можно получить
через сервер 1С: Предприятие 8.3, равно 1800: до 900 лицензий в многопользовательских ключах, расположенных локально и до 900 лицензий в многопользовательских ключах, доступных по сети.
Локальный ключ
 многопользовательский клиентский ключ, доступный по сети
через менеджер лицензий
 многопользовательский клиентский ключ без установленного
менеджера лицензий и
 многопользовательский клиентский ключ, доступный по сети
через HASP License Manager.
Установка Hasp License Manager
Рисунок 86. Выбор языка.
Выберите английский язык для программы установки, затем
подтвердите, что вы согласны с предлагаемой лицензией.
162
Рисунок 87. Согласие с лицензией.
В случае установки HASP LicenseManagerна компьютере, работающем под управлением операционных систем Windows
2000/XP/Server 2003/Vista/Server 2008, будет предложено два варианта установки HASP LicenseManager – как приложение (Application)
или как служба (Service). В случае установки HASP LicenseManagerна
компьютере, работающем под управлением операционных систем
Windows 98/Me, этот диалог будет пропущен, так как в этих операционных системах может быть установлено только приложение.
Рисунок 88. Выбор режима установки.
163
Далее будет предложено выбрать каталог, где будут размещены
исполняемые файлы HASP License Manager ифайлпомощи. В случае
установки HASP LicenseManager, как службы Windows исполняемые
файлы будут размещены в системном каталоге Windows, а в выбранном каталоге будет установлен только файл помощи.
Рисунок 89. Выбор пути установки лицензионного менеджера.
На следующем этапе установки предлагается выбрать группу,
в которой будут размещены ярлыки запуска HASP LicenseManager
и файла помощи. По умолчанию создается новая группа с названием
HASP LicenseManager, но можно выбрать уже существующую группу
или изменить название создаваемой.
Рисунок 90. Указание имени группы.
164
В случае установки HASP LicenseManagerв качестве приложения Windows будет предложено поместить ярлык HASP
LicenseManager в каталог Автозагрузка (Startup). В этом случае будет
осуществляться автоматический запуск HASP LicenseManager при загрузке операционной системы. При выборе альтернативного варианта
придется запускать HASP LicenseManager вручную.
Рисунок 91. Выбор режима запуска.
На следующем этапе предлагается установить HASP
DeviceDriver, необходимый для нормальной работы HASP
LicenseManager. С помощью этого драйвера осуществляется взаимодействие HASP LicenseManagerс аппаратным ключом HASP4 Net. Если HASP Device Driver уже был установлен на компьютере, то повторная установка HASP LicenseManager не требуется.
Рисунок 92. Установка драйвера защиты.
165
После завершения процесса установки будет предложено запустить HASP LicenseManager.
При отказе можно будет запустить его позже вручную. Процедуры запуска HASP License Manager для различных вариантов установки описаны ниже.
Рисунок 93. Необходимость запуска лицензионного менеджера.
РАЗДЕЛ 3. РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ
В СИСТЕМЕ 1С: ПРЕДПРИЯТИЕ 8.2, 8.3
Тема 1. Типы данных, операторы и конструкции языка
Система типов
Система типов - это особая система, по которой организуются
данные, используемые прикладными решениями. Система типов позволяет представить информацию реального мира в терминах, "понятных" для 1С: Предприятие 8.
Система типов предоставляет широкие возможности как
для описания непосредственно бизнес - логики прикладных решений,
так и для выполнения задач промежуточной обработки данных.
Описание системы типов содержится в синтакс - помощнике,
во встроенной справке и в документации.
Основной особенностью системы типов является то, что есть
типы, существующие в любом прикладном решении. Сами эти типы
определены на уровне платформы и присутствуют всегда, независимо
166
от действий разработчика. Наряду с ними в конкретном прикладном
решении могут существовать различные типы данных, присущие
именно этому конкретному прикладному решению. Для таких типов
данных на уровне платформы определены лишь общие правила их
создания, шаблоны. А конкретные типы данных создаются платформой уже исходя из того, каким образом разработчик формирует и модифицирует структуру прикладного решения.
Классификация типов данных
 Типы данных, определенные на уровне платформы
 Примитивные типы
 Универсальные коллекции значений
 Общие типы
 Интерфейсные типы
Набор типов, которыми могут оперировать прикладные решения, довольно разнообразен. Он позволяет решать как задачи обработки данных, так и задачи представления этих данных пользователю
и интерактивной работы с ними. Можно выделить несколько основных категорий типов данных.
Примитивные типы
Примитивные типы данных - это такие типы как Строка, Число,
Дата, Булево и другие. Эти типы не являются чем-то особенным
для 1С:Предприятие 8. Как правило, такие типы данных существуют
и в других программных системах.
167
Рисунок 94. Синтакс – помощник. Примитивные типы.
Значения примитивных типов являются простыми неделимыми
значениями, в которых нельзя выделить отдельные составляющие.
Например, значениями типа Число могут быть 1, 8, 15 и др.
Чтобы создать значение примитивного типа, в тексте программы
нужно указать его литерал - символьный идентификатор значения.
Универсальные коллекции значений
Также, существуют более сложные типы данных. Например,
платформа поддерживает целый ряд типов, которые представляют
собой универсальные коллекции значений: Массив, Структура, Список Значений и другие.
168
Рисунок 95. Синтакс – помощник. Универсальные коллекции значений.
Общие типы
Кроме этого в платформе реализованы специфические типы
данных, реализующие ту или иную функциональность прикладных
решений: ТекстовыйДокумент, ТабличныйДокумент, ХранилищеЗначения, ПостроительЗапроса и другие.
169
Рисунок 96. Синтакс – помощник. Общие объекты.
Общие типы называют также общими объектами. Значения этих
типов, в отличие от значений примитивных типов, представляют собой совокупность значений отдельных свойств объекта. Поэтому их
называют экземплярами объектов.
Экземпляры объектов создаются с помощью специального оператора встроенного языка - Новый.
Интерфейсные типы
Интерфейсные типы позволяют организовывать визуальное взаимодействие прикладного решения с пользователем. В основном это
типы, связанные с работой форм и их элементов.
170
Рисунок 97. Синтакс – помощник. Интерфейс.
Типы данных, образуемые в прикладном решении
Однако, наряду с типами данных, которые определены на
уровне платформы, конкретное прикладное решение может использовать уникальные типы данных, существующие только в этом конкретном прикладном решении. Причем платформа будет полностью
поддерживать работу с этими типами данных точно так же, как и с
типами, которые определены на уровне самой платформы.
Как правило, появление новых типов данных в прикладном решении связано с использованием прикладных объектов конфигурации. Поэтому такие типы называют еще прикладными типами
или прикладными объектами.
171
Рисунок 98. Синтакс – помощник. Прикладные объекты.
На уровне платформы поддерживается несколько классов (шаблонов) прикладных объектов, которые сами по себе не могут быть использованы в конкретном прикладном решении. Например, можно
перечислить такие классы прикладных объектов как Справочники,
Документы, Регистры сведений, Планы видов характеристик и пр.
172
Для каждого класса прикладных объектов определена соответствующая ему базовая функциональность: типы таблиц базы данных,
которые должны быть созданы для хранения данных, типовые формы,
типовые объекты языка, наборы прав и пр.
Разработчик, создавая прикладное решение, не имеет возможности использовать эти классы напрямую, однако может добавить в свое
прикладное решение новый объект конфигурации, наследующий всю
функциональность того или иного класса:
Рисунок 99. Схема прикладного решения.
Например, разработчик может добавить в свое прикладное решение новый справочник Номенклатура, который будет наследовать
функциональность класса Справочники, или новый документ КассовыйОтчет, который будет наследовать функциональность класса Документы.
Сразу же после такого добавления разработчику становятся доступны новые типы данных, состав которых определяется принадлежностью объекта конфигурации к тому или иному классу прикладных объектов.
173
Например, после создания нового справочника Номенклатура,
становятся доступны следующие типы данных:
СправочникМенеджер.Номенклатура,
СправочникСсылка.Номенклатура,
СправочникОбъект.Номенклатура,
СправочникВыборка.Номенклатура,
СправочникСписок.Номенклатура.
Система типов описывает лишь общую "структуру" такого типа,
правила, по которым будут формироваться объекты этого типа. Конкретное имя типа, состав свойств и методов объекта будут зависеть от
того, как разработчик назовет объект конфигурации и какие, например, реквизиты, табличные части он в него добавит.
Рисунок 100. Синтакс – помощник. Справочники.
В то же время, после создания нового регистра накопления ПродажиКомпании, состав новых типов данных будет уже другим:
РегистрНакопленияМенеджер.ПродажиКомпании,
РегистрНакопленияВыборка.ПродажиКомпании,
174
РегистрНакопленияСписок.ПродажиКомпании,
РегистрНакопленияНаборЗаписей.ПродажиКомпании,
РегистрНакопленияЗапись.ПродажиКомпании,
РегистрНакопленияКлючЗаписи.ПродажиКомпании.
Следует еще раз отметить, что эти типы данных не поддерживаются платформой изначально, и существуют только в конкретном
прикладном решении.
Еще один момент, на котором следует акцентировать внимание,
проще всего продемонстрировать на примере.
Допустим, в прикладном решении созданы два новых справочника: Номенклатура и Цены. Несмотря на то, что оба эти объекта унаследовали функциональность соответствующего класса Справочники,
и для них в прикладном решении был создан один и тот же состав типов данных, "одноименные" типы данных будут являться различными
типами данных.
Например, СправочникОбъект. Номенклатура и СправочникОбъект.Цены - это различные типы данных.
Так происходит потому, что разработчик может дополнительно
к базовой функциональности, унаследованной от соответствующего
класса, добавить свою, особенную для каждого объекта конфигурации. Например, оба упомянутых выше справочника могут содержать
табличные части (это унаследовано от класса Справочники).
Однако для справочника Цены разработчик не создаст ни одной
табличной части, в то время как для справочника Номенклатура он
создаст, например, три табличные части. Очевидно, что структура
хранения данных типа СправочникОбъект. Номенклатура будет значительно отличаться от структуры хранения данных типа СправочникОбъект.Цены.
Процедура
Процедура - часть программного модуля, предназначенная
для выполнения определенной задачи.
Процедура может иметь входящие параметры, а может их не
иметь - все зависит от ее назначения.
Синтаксис процедуры
Процедура ВашеИмяПроцедуры (Параметр1, Параметр2,..., ПараметрN) // Процедура с параметрами
175
//... операторы программы....
КонецПроцедуры
Процедура ВашеИмяПроцедуры2( ) // Процедура без параметров
//... операторы программы....
КонецПроцедуры
После слова "КонецПроцедуры" точка с запятой не нужна, потому что это не оператор, а операторная скобка.
Вызов процедуры на выполнение в тексте программного модуля
осуществляется следующим образом:
ВашеИмяПроцедуры(Параметр1,Параметр2,...,ПараметрN ); //
вызов процедуры с параметрами
ВашеИмяПроцедуры2( ); //вызов процедуры без параметров
Если процедура имеет параметры, то в скобках указываются
имена переменных, содержащих значения, которые передаются
в процедуру.
Строка вызова процедуры должна заканчиваться точкой с запятой, как и любая другая самостоятельная строка кода.
Подобным образом вызываются пользовательские процедуры.
Кроме них в программном модуле могут существовать предопределенные процедуры, которые запускаются системой автоматически
при наступлении соответствующего события и не требуют явного вызова. Например, процедура "ПриОткрытии()" модуля формы. Запускается автоматически в момент открытия формы.
Однако, в случае необходимости, предопределенные процедуры
могут быть запущены на выполнение явным способом, описанным
выше.
Функция
Тоже что и процедура, но есть одна особенность - функция возвращает некий результат, что оформляется с помощью служебного
слова "Возврат". В отличие от процедуры, после слова "Возврат" следует записать имя переменной, выражение или значение простого типа,
которое будет возвращено функцией. В процедуре "Возврат;" пишется
без каких-либо переменных и вызывает прерывание выполнения процедуры. В функциях "Возврат;" прерывает выполнения функции и возвращает некое значение, являющееся результатом работы функции.
176
Если в теле функции служебное слово "Возврат" отсутствует,
либо строка кода, его содержащая, не выполнена по каким-либо причинам, то функция вернет значение типа Неопределено (происходит
выполнение неявного оператора "Возврат").
Синтаксис функции
Функция
ВашеИмяФункции(Параметр1,Параметр2,
...,ПараметрN ) // Функция с параметрами
//... операторы программы....
Возврат ""; // в данном случае функция возвращает пустую
строку
КонецФункции
Функция ВашеИмяФункции2( ) // Функция без параметров
//... операторы программы....
Возврат перем1; // в данном случае функция возвращает значение некой переменной Перем1
КонецФункции
После слова "КонецФункции" точка с запятой также не нужна,
потому что это тоже операторная скобка.
Т. к. назначение функции - возврат какого-то значения, которое
является результатом ее работы, то вызов функции на выполнение в
тексте программного модуля обычно осуществляется немного иначе,
чем вызов процедур:
Перем1
=
ВашеИмяФункции(Параметр1,Параметр2,
...,ПараметрN ); //вызов
Функции с параметрами
Перем2 = ВашеИмяФункции( ); //вызов функции без параметров
Как правило, вызов функции располагается в правой части оператора присваивания. Функция возвращает какое-то значение и оно
присваивается переменной, находящейся в левой части оператора
присваивания (в нашем случае "Перем1" и "Перем2"). Если функция
имеет параметры, то в скобках указываются имена переменных, содержащих значения, которые передаются в функцию.
Однако, вызов любой функции в тексте программного модуля
можно записывать как вызов процедуры, т. е. в языке допускается
не принимать от функции возвращаемое значение.
177
Строка вызова функции должна заканчиваться точкой с запятой,
как и любая другая самостоятельная строка кода.
Объявление переменных
Переменные в 1С могут объявляться либо явным образом - переменная начинает свое существование в момент ее объявления с помощью служебного слова "Перем", либо неявным - переменная начинает свое существование в момент присвоения ей какого-то значения.
Пример
Явное объявление с помощью служебного слова Перем
Процедура ВашеИмяПроцедуры( )
Перем Итог; // Переменная итог объявлена и существует в пределах процедуры ВашеИмяПроцедуры( ).
//В этот момент имеет значение неопределенного типа.
//... операторы программы....
КонецПроцедуры
Неявное объявление
Процедура ВашеИмяПроцедуры( )
//... операторы программы....
Итог=0; // Переменная итог объявлена в момент присвоения
значения. В этот момент
//имеет значение присваиваемого типа (в данном случае числовое, равное нулю)
//... операторы программы....
КонецПроцедуры
Операция присваивания
Синтаксис операций присваивания
Перем1 = 3456789;
В этом примере переменной Перем1 присваивается значение
числового типа "3456789".
Комментарии
Комментарий - строка, которая не выполняется программой.
Служит для записи пояснений к коду, а так же исключения (комментирования) строк кода, которые не надо выполнять, но и удалять
нельзя (например чтоб были видны проведенные изменения).
Оформляется путем установки символов "//" в начале комментария (не обязательно в начале строки).
178
Пример комментария
// Это комментарий
// а = а+2; - это закомментированный старый код.
а = а+7; // а это выполняемый новый код.
Конструкция перехода по условию
Простое условие
Если условие выполняется, то выполняется блок кода 1, а блок
кода 2 игнорируется. Если условие НЕ выполняется, то выполняется
блок кода 2, а блок кода 1 игнорируется
Если Рейтинг > 7 Тогда
//блок кода 1
Результат = "Хороший фильм!";
Иначе
//блок кода 2
Результат = "Фильм на один раз.";
КонецЕсли;
После слова "КонецЕсли" должна быть точка с запятой.
Краткая запись простого условия
Результат = (Рейтинг > 7, "Хороший фильм!","Фильм на один
раз.");
Если значение переменной Рейтинг больше 7, то переменная Результат получит значение "Хороший фильм!", в противном случае ей
будет присвоено значение "Фильм на один раз.".
Множественное условие
Если первое условие не выполняется, то проверяется второе. Если второе условие не выполняется, то третье. Если ни одно из условий не выполняется то выполняется блок Иначе.
Пример
Если Рейтинг > 7 Тогда
Результат = "Хороший фильм!";
ИначеЕсли (Рейтинг < 7) и (Рейтинг > 4) Тогда // В составном
логическом выражении
//скобки обязательны! (в версии 8.0 необязательны)
Результат = "Смотреть можно";
Иначе
Результат = "Не тратьте зря время!";
КонецЕсли;
179
Блоков "ИначеЕсли" может быть сколько угодно. Условия в
этих блоках будут проверяться в порядке их записи в конструкции,
т.е. по очереди сверху-вниз.
Для 1С 8.х : В 1С версий 8.х наряду с условиями сравнения
применяются проверка на соответствие значению "Истина"
Пример
Если ЕстьПравоДоступа Тогда
//блок кода 1
Сообщить("Доступ открыт!");
Иначе
//блок кода 2
Сообщить("Недостаточно прав доступа!");
КонецЕсли;
где "ЕстьПравоДоступа" - переменная со значением типа Булево
(может принимать два значения - "Истина" и "Ложь"). Если значение
переменной равно "Истина", то будет выполнен блок кода 1, если
"Ложь" - блок кода 2.
Кроме того, в 1С 8 в составных условиях проверка условий делается в порядке их следования, пока логическое условие имеет значение "Истина". Как только общее составное условие принимает значение "Ложь", проверка всех последующих условий прерывается.
В 1С 7.7 проверяются все составляющие условия независимо от принимаемого ими значения.
Пример
Если (Рейтинг = 15) и (ЕстьБилеты = 1) Тогда // В составном логическом выражении в 1С 7.7
//скобки обязательны! (в версии 1С 8 необязательны)
Результат = "Идем в кино!";
Иначе
Результат = "Сегодня нам не повезло :(";
КонецЕсли;
Если переменная "Рейтинг" не равна 15, то в 1С 8 значение переменной "ЕстьБилеты" проверяться не будет, так как в целом условие все равно не выполнится, и программа перейдет на блок после
слова "Иначе". В 1С 7.7 будут проверены оба условия.
180
Циклы
Цикл с неопределенным количеством повторений
Этот вид циклов используется в тех случаях, когда количество
повторов заранее неизвестно, например, перебор строк таблицы значений, количество которых может быть разным.
Синтаксис
Пока Номер <= 50 Цикл
//.. тело цикла...
КонецЦикла;
Пока условие цикла выполняется будет выполняться блок кода в
теле цикла.
Цикл с заданным количеством повторов
Этот вид циклов используется в тех случаях, когда количество
повторов ограничено каким-то пределом, например, выполнить какието действия для каждого месяца в году.
Синтаксис
Для Номер = 1 По 12 Цикл
//.. тело цикла...
КонецЦикла;
Переменная "Номер" называется счетчиком цикла. Ее значение
автоматически увеличивается на 1 после каждого цикла. Цикл будет
выполняться до тех пор, пока значение счетчика цикла не превысит
пороговое значение.
Цикл для обхода коллекций значений (только в 1С 8.х)
Этот вид циклов используется для циклического обхода коллекций значений. При каждой итерации цикла возвращается новый элемент коллекции. Обход осуществляется до тех пор, пока не будут перебраны все элементы коллекции.
Синтаксис
Для Каждого Стр Из Товары Цикл
//.. тело цикла...
Товар = Стр.Товар;
Колич = Стр.Количество;
КонецЦикла.
Где "Товары" - табличная часть. В переменную "Стр" для каждого прохода цикла будет возвращаться объект с типом "Строка таб181
личной части". Таким образом цикл будет выполнен столько раз,
сколько строк в табличной части.
Операторы передачи управления
Оператор безусловного перехода
Оператор "Перейти" предназначен для безусловного перехода
на указанную строку кода.
Пример
Процедура Процедура1()
// блок1 операторов программы
Перейти ~метка;
// блок2 операторов программы
~метка:
// блок3 операторов программы
КонецПроцедуры
Когда программа доходит до строки "Перейти", управление передается на строку с меткой "~метка:". Все операторы программы,
находящиеся между этими строками, будут проигнорированы (блок2
операторов программы). Применение меток в коде 1С считается плохим тоном, поэтому, чем меньше в вашей программе будет меток, тем
качественнее будет код.
Оператор передачи управления в начало цикла
Оператор "Продолжить" применяется для прерывания выполнения
цикла и перехода в начало цикла. Может использоваться как в циклах
с определенным, так и неопределенным количеством повторений.
Пример
Пока <условие1> Цикл
// блок операторов тела цикла 1
Если <условие2> Тогда
Продолжить;
КонецЕсли;
// блок операторов тела цикла 2
КонецЦикла;
Если Условие2 будет выполнено, то программа перейдет в начало цикла, проигнорировав блок операторов тела цикла 2. Но блок
операторов 1 будет выполнен всегда, т.к. находится ПЕРЕД оператором "Продолжить".
182
Оператор прерывания цикла
Оператор "Прервать" применяется для прерывания выполнения
цикла и выхода из него независимо от того, выполняется ли условие
цикла. Может использоваться как в циклах с определенным, так и неопределенным количеством повторений.
Пример
Пока < условие1 > Цикл
// блок операторов тела цикла 1
Если < условие2 > Тогда
Прервать;
КонецЕсли;
// блок операторов тела цикла 2
КонецЦикла;
Если Условие2 будет выполнено, то программа выйдет из цикла,
проигнорировав блок операторов тела цикла 2. Но блок операторов 1
будет выполнен всегда, т.к. находится ПЕРЕД оператором "Прервать".
Обработка исключительных ситуаций
Применяется для предотвращения аварийного завершения программы в случае возникновения исключительной ситуации (ошибки),
при которой программа не может продолжить нормально работать
дальше. Например, в случае деления на ноль.
Пример
Попытка
а = 10 / b;
Сообщить("Операция выполнена успешно");
Исключение
Предупреждение("Деление на ноль!");
КонецПопытки;
Если переменная b не равна нулю, то операция деления будет
выполнена успешно, о чем будет выведено сообщение "Операция выполнена успешно" и программа перейдет к выполнению кода, стоящего после строки "КонецПопытки". Если переменная b будет равна нулю, то будет вызвана исключительная ситуация и программа перейдет
на выполнение операторов, стоящих после слова "Исключение" в нашем примере это вывод предупреждения - после чего перейдет
к выполнению кода, стоящего после строки "КонецПопытки". Операторы, стоящие ниже строки, вызвавшей ошибку, выполнены не будут.
183
Встроенные функции для работы со строками
Строка — примитивный тип данных в языке программирования
1С. Помимо 1С этот тип данных используется во всех известных языках программирования, обычно он называется «string».
Функции работы со строками в 1С
Рассмотрим основные функции встроенного языка программирования 1С.
Строка
Функция Строка() позволяет получить текстовое представление
переменных других типов.
Пример
Строка(ТекущаяДата()) //"23.02.2015 21:31:24"
Строка(Истина) // Да
Строка(1058) // "1 058"
СтрДлина
Функция позволяет получить количество символов в строке 1C
включая пробелы и незначащие символы.
Пример
СтрДлина("Тестовая строка") // 15
СокрЛП, СокрЛ, СокрП
Полезная функция для удаления незначащих символов в строковом значении. СокрЛ обрабатывает символы стоящие слева от последнего значащего символа, СокрП — справа. А СокрЛП справа
и слева.
Пример
СокрЛП("Слева и справа есть незначащие символы - пробелы")
// получим строку без пробелов слева и справа
Помимо пробелов функция 1C удаляет такие символы как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые
(Лев) или последние (Прав) символы в строке, а также произвольное
количество символов (Сред).
Пример
Лев("Тестовая строка", 4) // "Тест"
Сред("Тестовая строка", 5, 6) // "Новая с"
184
Найти
Функция для поиска подстроки внутри другой подстроки. Синтаксис Найти (<Строка для поиска>, <Подстрока поиска>). Функция
возвращает число — номер позиции символа (или символов) в исходной подстроке. Если подстроки не найдено, вернётся число 0. Если
в искомой подстроке есть несколько вхождений — вернется номер
позиции первого совпадения.
Пример
Найти("Тестовая строка", "строка") // 10
Найти("Тестовая строка", "123") // вернется 0, подстроки "123"
нет в исходной строке
Найти("Тестовая строка", "я") // 8
ВРег, НРег, ТРег
Функции для управления регистром строки. ВРег – преобразует
строку в верхний регистр. НРег – в нижний. ТРег – у каждого нового
слова первая буква преобразуется в верхний регистр, остальные
в нижний.
Пример
ВРег("Тестовая строка") // "ТЕСТОВАЯ СТРОКА"
НРег("Тестовая строка") // "тестовая строка"
ТРег("Тестовая строка") // "Тестовая Строка"
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой
строкой. Проверяется наличие незначащих символов.
Пример
ПустаяСтрока("Тест") //ложь
ПустаяСтрока(" ") // истина
Аналогично можно проверить строку на пустое значение следующим образом:
СокрЛП(" ") = "" // истина
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое
значение на нужное нам. Синтаксис:
Пример
СтрЗаменить("Прозвольная
Строка",
"
"
,
"")
//"ПрозвольнаяСтрока" СтрЧислоСтрок
185
Позволяет получить количество строк в многострочном тексте.
Функция считает количество переноса строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
Для Н=1 по СтрЧислоСтрок(ТекстФайла) Цикл
КонецЕсли;
СтрПолучитьСтроку
С помощью данной функции можно получить произвольную
строку из многострочного текста. Синтаксис — СтрПолучитьСтроку(<Строка>, <Номер строки>).
Пример
СтрокаНомер5 = СтрПолучитьСтроку(ИсходнаяСтрока, 5)
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например подсчитать количество вхождений определенных символов или слов в текст.
Пример
СтрЧислоВхождений ("Тестовая строка", "т") // 2
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Пример
КодСимвола("Т") // 1 058
Символ(1058) // "Т"
Конкатенация строк в 1С
Конкатенация или объединение строк в 1С делается оператором
«+».
Пример
"Первая часть строки " + "и вторая" // получим "Первая часть
строки и вторая"
Преобразование числа в строку
Достаточно использовать метод «Строка()»:
Строка(12355.44) // "12 355,44"
Присутствует наличие неразрывного пробела.
Пробел возможно убрать с помощью замены неразрывного пробела на пустую строку:
СтрЗаменить(Строка(12355.44),Символы.НПП,"") // "12355,44"
186
или с помощью метода Формат:
Строка(Формат(12355.44,"ЧГ="))
Кавычки в строке 1С
Для установления кавычек достаточно внутри строки поставить
вместо одних кавычек — двое.
Пример
Строка("Наша организация называется ""Березка"", мы работаем
на рынке с 1999 года").
Символ переноса строки
Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной
конструкции «Символы.ПС».
Пример
"Этот текст будет на первой строке" + Символы.ПС + "А этот
на второй"
Сравнение строк в 1С
Сравнить строки достаточно просто с помощью оператора сравнения — «=».
Однако, для получения корректного сравнения часто требуется
возвести строки в один регистр и убрать незначащие символы:
СокрЛП(ВРег(Строка1)) = СокрЛП(ВРег(Строка2))
Таким образом, мы получим более точнее сравнение двух строк.
Удаление пробелов в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
ИсходнаяСтрока = СокрЛП(ИсходнаяСтрока)
Если требуется убрать абсолютно все пробелы, можно заменить
их на пустую строку:
ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, " " ,"")
Если требуется убрать неразрывные пробелы из строки, которая
получена из числового типа, сделать это можно так:
ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, Символы.НПП ,"")
Встроенные функции для работы с датами
Дата — один из примитивных типов данных в системе
1С:Предприятие. Дата всегда имеет формат год, месяц, день, час, ми187
нута, секунда. Таким образом, переменная типа дата содержит не
только дату, но и время.
Способы задания переменной с типом дата
Способ 1
Присвоение переменной значения типа ‘ГГГГММДДччммсс’
или ‘ГГГГ.ММ.ДД:чч:чч:сс’
‘20100304235959’ — вернет дату 04.03.2010 23:59:59.
‘2011.10.09:22:10:12’ — вернет дату 09.10.2011 22:10:12.
Способ 2
Использование функции глобального контекста Дата (Год, Месяц, День, час, минуты, секунды).
Дата(2010, 07, 14, 12, 13, 14) — вернет значение 14.07.2010
12:13:14
Этой же функцией можно преобразовать строку в дату.
Дата(20100714121314) — вернет значение 14.07.2010 12:13:14
Способ 3 (для запросов)
Использование выражения ДАТАВРЕМЯ (Год, Месяц, День,
час, минута, секунда)
Для любого из способов указание часов, минут и секунд не является обязательным.
Дата (2010, 07, 14) — вернет значение 14.07.2010 0:00:00
Способ 4
В 1С присутствует возможность ввода даты непосредственно
пользователем. Для этого необходимо воспользоваться функцией ВвестиДату(Дата, Подсказка, ЧастьДаты).
Первый параметр задает переменную, которой будет присвоено
введенное значение.
Второй параметр — это заголовок диалогового окна, третий параметр определяет, какую часть типа дата необходимо ввести. Он
может принимать следующие значения:
ЧастиДаты.Дата — будут введены только год, месяц и день;
ЧастиДаты.Время — будут введены только часы, минуты, секунды. В этом случае дата будет иметь вид 0001.01.01 чч:мм:сс.
ЧастиДаты.ДатаВремя — будут введены все составляющие даты
и времени.
Способ 5 (получение текущей даты и времени)
Дата=ТекущаяДата();
188
Проверка пустой даты
Часто бывает необходимо проверить, введена дата или нет. Пустая дата — это первое января 1 года, 0 часов, 0 минут, 0 секунд. Проверка может выглядеть следующим образом:
Если ПроверяемаяДата=Дата(1,1,1) Тогда //действие при пустой
дате КонецЕсли;
Использование даты в реквизитах
В реквизитах справочников, документов и т.д. можно использовать:
 дату, тогда время всегда равно 00:00:00;
 только время, тогда дата равна 01.01.0001;
 дату и время.
Получение отдельных составляющих даты
Получить год
Результат=Год(Дата);
Получить месяц
Результат=Месяц(Дата);
Получить номер дня в месяце
Результат=День(Дата);
Получить номер дня в году
Результат=ДеньГода(Дата);
Получить номер дня в неделе
Результат=ДеньНедели(Дата);
Получить номер недели в году
Результат=НеделяГода(Дата);
Получить час
Результат=Час(Дата);
Получить минуту
Результат=Минута(Дата);
Получить секунду
Результат=Секунда(Дата);
Операции по преобразованию дат
Дата представляет собой количество секунд, прошедших с 1 января 0001 года 00:00:00. Поэтому, чтобы добавить к дате дни, часы,
минуты и т.д., нужно прибавить соответствующее количество секунд.
Результат=Дата + 1; //Прибавили секунду
Результат=Дата + 2*60; //Прибавили 2 минуты
Результат=Дата + 3*60*60*24; //Прибавили 3 дня
189
Прибавить или отнять от даты один или несколько месяцев
Результат=ДобавитьМесяц(Дата, 2); //Добавляет к дате 2 месяца
Результат=ДобавитьМесяц(Дата, -2) //Отнимает от даты 2 месяца
Получить конец или начало периода
Результат=НачалоКвартала(Дата); // Возвращает дату начала
квартала, время 00:00:00
Результат=КонецКвартала(Дата); //Возвращает дату конца квартала,
время 23:59:59
Результат=НачалоМесяца(Дата); // Возвращает дату начала месяца,
время 00:00:00
Результат=КонецМесяца(Дата); //Возвращает дату конца месяца, время 23:59:59
Результат=НачалоНедели(Дата); // Возвращает дату начала недели,
время 00:00:00
Результат=КонецНедели(Дата); //Возвращает дату конца недели, время 23:59:59
Результат=НачалоДня(Дата); // Дата остается прежней, время 00:00:00
Результат=КонецДня(Дата); // Дата остается прежней, время 23:59:59
Результат=НачалоЧаса(Дата); //Дата и час остаются прежними, минуты и секунды 00:00
Результат=КонецЧаса(Дата); //Дата и час остаются прежними, минуты
и секунды 59:59
Результат=НачалоМинуты(Дата); //Дата, час и минута остаются
прежними, секунды 00
Результат=КонецМинуты(Дата); //Дата, час и минута остаются прежними, секунды 59
Вспомогательные функции для работы с датой в 1С Предприятие
Дата ='20130110125905';// 10 января 2013 года 12:59:05
Сообщить(ДеньГода(Дата));// 10
Сообщить(ДеньНедели(Дата));// 4 т.е. четверг (нумерация с понедельника)
Сообщить(НеделяГода(Дата));// 2
Сообщить(НачалоГода(Дата));// 01.01.2013 0:00:00
Сообщить(КонецГода(Дата));// 31.12.2013 23:59:59
Сообщить(НачалоКвартала(Дата));// 01.01.2013 0:00:00
Сообщить(КонецКвартала(Дата));// 31.03.2013 23:59:59
Сообщить(НачалоМесяца(Дата));// 01.01.2013 0:00:00
190
Сообщить(КонецМесяца(Дата));// 31.01.2013 23:59:59
Сообщить(НачалоНедели(Дата));// 07.01.2013 0:00:00
Сообщить(КонецНедели(Дата));// 13.01.2013 23:59:59
Сообщить(НачалоДня(Дата));// 10.01.2013 0:00:00
Сообщить(КонецДня(Дата));// 10.01.2013 23:59:59
Сообщить(НачалоЧаса(Дата));// 10.01.2013 12:00:00
Сообщить(КонецЧаса(Дата));// 10.01.2013 12:59:59
Сообщить(НачалоМинуты(Дата));// 10.01.2013 12:59:00
Сообщить(КонецМинуты(Дата));// 10.01.2013 12:59:59
Программные модули
В программных модулях содержится исполняемый код на языке
1С, который необходим для того, чтобы определенным образом реагировать на действия системы или пользователя, когда визуальных
средств разработки недостаточно. Также в программных модулях мы
можем описывать собственные методы (процедуры и функции).
Обычно программный модуль состоит из трех разделов:
 область объявления переменных;
 область описания процедур и функций;
 основной текст программы.
Пример структуры программного модуля
//********ОБЛАСТЬ ОБЪЯВЛЕНИЯ ПЕРЕМЕННЫХ*********
Перем Фамилия Экспорт; //это
глобальная
переменная
Перем Имя, Отчество;
//это
переменная
модуля
Перем ФИО; //это тоже переменная модуля и к ней можно обращаться
//из любой процедуры и функции нашего модуля
//*******ОБЛАСТЬ ОПИСАНИЯ ПРОЦЕДУР И ФУНКЦИЙ *******
Процедура Процедура1(
)
Перем Итог; //Итог это локальная переменная (переменная процедуры)
Итог = Фамилия+"
"+Имя+"
"+Отчество;
КонецПроцедуры
Функция Функция1( )
// операторы функции
Возврат(Фамилия + " "+ Имя);
КонецФункции
//********ОСНОВНОЙ ТЕКСТ ПРОГРАММЫ********
191
Фамилия ="Иванов";
Имя = "Иван";
Отчество = "Иванович";
//***********************************************************
В конкретном программном модуле любая из областей может
отсутствовать.Область объявления переменных размещается от начала текста модуля до первого оператора Процедура или оператора
Функция или любого исполняемого оператора. В этом разделе могут
находиться только операторы объявления переменных Перем.
Область описания процедур и функций размещается от первого
оператора Процедура или оператора Функция до любого исполняемого оператора вне тела описания процедур или функций.
Область основной текст программы размещается от первого исполняемого оператора вне тела процедур или функций до конца модуля. В этом разделе могут находиться только исполняемые операторы. Область основной текст программы исполняется в момент инициализации модуля.
Обычно в разделе основной программы имеет смысл размещать
операторы инициализации переменных какими-либо конкретными
значениями, которые необходимо присвоить до первого вызова процедур или функций модуля.
Программные модули располагаются в тех местах конфигурации, которые могут требовать описания специфических алгоритмов
функционирования. Эти алгоритмы следует оформлять в виде процедур или функций, которые будут вызываться самой системой в заранее предусмотренных ситуациях (например, при открытии формы
справочника, при нажатии кнопки в диалоговом окне, при изменении
объекта и т. д.).
Каждый отдельный программный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля выполняются в едином контексте.
Контекст выполнения модулей делится на клиентский и серверный. Кроме того, некоторые программные модули могут быть скомпилированы как на стороне клиента, так и на стороне сервера.
Модуль приложения (управляемого или обычного)
может содержать все 3 области
выполняется на стороне клиента
192
располагается в корневом разделе конфигурации
В модуле приложения описываются процедуры (обработчики)
событий, которые инициализируются при старте и окончании работы
системы.
Например, при начале работы приложения можно обновить какие-либо данные конфигурации, а при завершении работы - поинтересоваться, стоит ли вообще выходить из программы. Кроме того,
в данном модуле перехватываются события от внешнего оборудования, например, торгового или фискального. Стоит отметить, что модуль приложения выполняется только в случае интерактивного запуска приложения, то есть когда запускается окно программы. Этого
не происходит, если приложение запускается в режиме com- соединения.
В платформе 1С 8 существует два различных модуля приложения. Это модуль Обычного приложения и модуль Управляемого приложения. Они срабатывают при запуске различных клиентов. Так,
модуль Управляемого приложения срабатывает при запуске вебклиента, тонкого клиента и толстого клиента в режиме управляемого
приложения. А модуль обычного приложения срабатывает при запуске толстого клиента в режиме обычного приложения. Настройка режима запуска приложения задается в свойстве конфигурации "Основной режим запуска".
В модуле приложения могут располагаться все 3 раздела – объявления переменных, описания процедур и функций, а так же основной текст программы. Модуль приложения компилируется на стороне
клиента, что сильно ограничивает нас в использовании многих типов
данных. Расширить контекст модуля приложения можно за счет методов общих модулей, для которых установлено свойство «Вызов
сервера». Все переменные и методы программного модуля приложения, помеченные как экспортные, будут доступны в любом модуле
конфигурации, работающем на стороне клиента.
Однако, как бы ни было это заманчиво, не следует размещать
здесь большое количество процедур и функций. Чем больше в данном
модуле находится кода, тем длительнее время компиляции, а, следовательно, и время запуска приложения.
Как уже отмечалось выше, модуль приложения обрабатывает
события запуска и завершения приложения. Для обработки каждого
193
из этих событий в модуле приложения существует пара обработчиков
Перед… и При…
Отличия между заключается в следующем: при выполнении кода в обработчике Перед… действие еще не свершилось и мы можем
отказаться от его выполнения. Для этого предназначен параметр Отказ. В обработчиках При.. действие уже свершилось, и отказаться
от запуска приложения или выхода из него мы не можем.
Модуль внешнего соединения
 может содержать все 3 области
 выполняется на стороне сервера
 располагается в корневом разделе конфигурации
Назначение модуля аналогично назначению модуля приложения. В нем идет обработка событий старта и завершения работы приложения. Модуль внешнего соединения срабатывает, когда запуск
приложения происходит в режиме com- соединения. Сам процесс
внешнего соединения – это процесс не интерактивный. В этом режиме происходит программная работа с информационной базой и не
происходит открытия окна приложения, что накладывает определенные ограничения на использование методов, предназначенных
для интерактивной работы. В этом режиме нельзя использовать вызовы диалоговых форм, предупреждений и сообщений пользователю
и т. п. Они просто не будут выполняться.
Как и в модуле приложения, здесь доступны все три области:
объявления переменных, описания процедур и функций, а так же основной текст программы. Главное отличие от модуля приложения заключается в том, что в режиме com- соединения вся работа с информационной базой происходит на стороне сервера, поэтому модуль
внешнего соединения компилируется на стороне сервере. Соответственно в нем не доступны экспортные переменные и методы общих
клиентских модулей.
Модуль сеанса
 может содержать область описания процедур и функций
 выполняется на стороне сервера
 располагается в корневом разделе конфигурации
Это узкоспециализированный модуль, предназначенный исключительно для инициализации параметров сеанса. Почему для этого
необходимо было делать собственный модуль? Его использование
194
обусловлено тем, что само приложение может запускаться в различных режимах (что приводит к выполнению либо модуля управляемого, либо обычного приложения, либо модуля внешнего соединения),
а инициализацию параметров сеанса необходимо производить вне зависимости от режима запуска. Чтобы не писать один и тот же программных код во всех трех указанных модулях, нам и потребовался
дополнительный модуль, который выполняется вне зависимости
от режима запуска приложения.
В модуле сеанса существует одно единственное событие «УстановкаПараметровСеанса», которое выполняется самым первым, даже
раньше события модуля приложения ПередНачаломРаботыСистемы.
В нем не доступны раздел объявления переменных и раздел основной
программы.
А так же нельзя объявлять экспортные методы. Модуль компилируется на стороне сервера.
Общие модули
 может содержать область описания процедур и функций
 выполняется на стороне сервера или клиента (зависит от
настроек модуля)
 располагается в ветке дерева объектов конфигурации «Общие» - «Общие модули»
Общие модули предназначены для описания некоторых общих алгоритмов, которые будут вызываться из других модулей конфигурации.
Общий модуль не содержит областей объявления переменных
и основного текста программы. В нем можно объявлять экспортные
методы, доступность которых будет определяться настройками модуля (на какой стороне он выполняется: на стороне сервера или клиента). В связи с тем, что раздел описания переменных не доступен,
определять глобальные переменные в общих модулях нельзя. Для
этого можно использовать модуль приложения.
Поведение общего модуля зависит от выставленных параметров
(глобальный или нет, различные флаги компиляции, доступен ли вызов
сервера и т. д.). Вот несколько советов по настройке общих модулей:
 хорошим тоном будет не использовать флаг «Глобальный»
повсеместно. Это сократит время запуска приложения, а также улучшит читаемость кода (конечно если общий модуль имеет вполне
осмысленное название);
195
 не желательно использовать больше одного флага компиляции. Методов, которые необходимо выполнять в разных контекстах
не так много, и если все же такие методы потребуются, то для них
можно выделить отдельный общий модуль;
 флаг «Вызов сервера» имеет смысл, только если модуль
компилируется «На сервере». Поэтому все остальные флаги компиляции стоит снять во избежание различных проблем;
 если в методах модуля происходит массовая обработка
данных, чтение и запись в базу данных, то для увеличения скорости
работы лучше отключить контроль прав доступа, выставив флаг
«Привилегированный».
Этот режим доступен только для общих модулей, компилируемых на сервере.
Модуль формы
 может содержать все 3 области
 выполняется на стороне сервера и клиента
Модуль формы предназначен для обработки действий пользователя с данной формой (обработка события нажатия кнопки, изменения реквизита формы и т. д.). Так же существуют события связанные
непосредственно с самой формой (например, ее открытие или закрытие). Модули управляемых и обычных форм различаются, прежде
всего, тем, что модуль управляемой формы четко разделяется на контекст. Каждая процедура или функция должна иметь директиву компиляции. Если же директива компиляции не указана, то данная процедура или функция выполняется на стороне сервера.
В обычной форме весь код исполняется на стороне клиента.
Структура управляемой формы содержит раздел объявления переменных, описания процедур и функций и основной текст программы
(выполняется в момент инициализации формы). К стандартным событиям формы можем обратиться через список ожидаемых процедур и
функций формы (Ctrl+Alt+P), либо через палитру свойств самой формы.
Если у формы назначен основной реквизит, то в модуле формы
становятся доступны свойства и методы прикладного объекта, используемого в качестве основного реквизита.
Модуль объекта
 может содержать все 3 области
196
 выполняется на стороне сервера
Данный модуль имеется у большинства объектов конфигурации
и предназначен, в общем случае, для обработки событий, непосредственно связанных с объектом. Например, события записи и удаления
объектов, проверка заполнения реквизитов объекта, проведение документа и т. д.
Некоторые события модуля объекта дублируют события модуля
формы.
Например, события связанные с записью. Однако следует понимать, что события модуля формы будут выполняться исключительно
в конкретной форме объекта, то есть при открытии конкретной формы. А события модуля объекта будут вызываться в любом случае, даже в момент программной работы с объектом. Поэтому, если необходимо методы связанные с объектом без привязки к конкретной форме
объекта, то лучше использовать для этого модуль объекта.
Модуль менеджера объекта
 может содержать все 3 области
 выполняется на стороне сервера
Модуль менеджера объектов появился только начиная с версии
1С 8.2.
Модуль менеджера существует у всех прикладных объектов
и предназначен для управления этим объектом как объектом конфигурации.
Модуль менеджера позволяет расширить функциональность
объекта за счет введения (написания) процедур и функций, которые
относятся не к конкретному экземпляру объекта базы данных, а к самому объекту конфигурации. Модуль менеджера объектов позволяет
размещать общие процедуры и функции для данного объекта и обращаться к ним из вне, например, из обработки (конечно, если эта процедура или функция будет с ключевым словом Экспорт). Что это нам
дает нового? В общем-то, ничего, кроме упорядочивания процедур по
объектам и хранения их в отдельных местах - Модулях менеджеров
объектов. Мы можем с таким же успехом эти процедуры и функции
помещать в общих модулях, но 1С советует общие процедуры
и функции объектов размещать в Модуле менеджера объектов.
Примеры использования процедур и функций Модуля менеджеров объектов: первоначальное заполнение отдельных реквизитов
197
справочника или документа по определенным условиям, проверка заполнения реквизитов справочника или документа по определенным
условиям и т. д.
Модуль команды
 может содержать раздел описания процедур и функций
 выполняется на стороне клиента
Команды – это объекты, подчиненные прикладным объектам
или конфигурации в целом. У каждой команды есть модуль команды,
в котором можно описать предопределенную процедуру ОбработкаКоманды() для выполнения этой команды.
Встроенный язык программирования
Встроенный язык программирования 1С: Предприятие — язык
программирования, который используется в семействе программ
«1С:Предприятие». Данный язык является интерпретируемым языком
высокого уровня. Интерпретация текста программного модуля в байткод выполняется в момент обращения к этому модулю в процессе работы, таким образом обычно интерпретируется только часть текстов
программных модулей.
Средой исполнения языка является программная платформа
«1С:Предприятие». Визуальная среда разработки («Конфигуратор»)
является неотъемлемой частью пакета программ «1С: Предприятие».
Диалекты языка для платформ 1С 7 версий (7.0, 7.5, 7.7) совместимы «снизу вверх» с незначительными исключениями. Языки
для платформ 1С:7х и 1С:8х совместимы по основным операторам,
но значительно отличаются в работе с прикладными объектами,
вследствие чего перенос кода из 1С:7х в 1С:8х не имеет смысла.
Встроенный язык 1С: 8 наиболее подобен по своему синтаксису
языку Visual Basic.
Платформой предоставляется фиксированный набор базовых классов, ориентированных на решение типовых задач прикладной области:
 Константа.
 Справочник.
 Документ.
 Журнал документов.
 Перечисление.
 Отчёт.
 Обработка.
198
 План счетов и др.
На основании базовых классов средствами визуального конфигурирования можно создавать любое количество порождённых классов
(возможность определить новый класс программно – отсутствует).
Допускается только одна явная ступень наследования классов.
Как правило, объекты порождённых классов представляют собой записи (или некоторые наборы записей) в базе данных. Такие классы
образуют «Дерево метаданных». В терминах встроенного языка программирования 1С такие классы называются объектами метаданных.
Основными видами объектов метаданных являются: Справочники, Документы, Отчёты, Обработки, Планы видов характеристик,
Планы счетов, Планы видов расчёта, Регистры сведений, Регистры
накопления, Регистры расчёта, Бизнес-процессы, Задачи. Поддерживаются русский и английский синтаксис команд.
Проекты на встроенном языке 1С: Предприятие называются
конфигурациями. Распространение (продажа) и внедрение таких конфигураций – это основная коммерческая деятельность фирмпартнёров 1С.
Рабочее название языка – «1Сик» («одинэсик») – очень быстро
исчезло из официальных источников. Сейчас при упоминании этого
языка в письменных документах нужно писать 1С Язык программирования. Часто этот язык называют «встроенный язык», в контексте
обсуждения 1С: Предприятие.
Встроенный язык является важной частью технологической
платформы 1С: Предприятие 8, поскольку позволяет разработчику
описывать собственные алгоритмы функционирования прикладного
решения.
Встроенный язык имеет много общих черт с другими языками,
таким как C#, что облегчает его освоение начинающими разработчиками. Однако он не является прямым аналогом C#.
Вот лишь некоторые, наиболее значимые особенности встроенного языка:
 предварительная компиляция - перед исполнением модули,
содержащие текст на встроенном языке, преобразуются во внутренний код;
 кэширование скомпилированных модулей в памяти;
199
 мягкая типизация - тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы;
 отсутствие программного описания объектов конфигурации - разработчик может использовать либо встроенные в платформу
объекты, либо объекты, созданные системой в результате визуального
конструирования прикладного решения.
Событийная ориентированность встроенного языка
Назначение встроенного языка в системе 1С:Предприятие определяется идеологией создания прикладных решений. Прикладные решения в 1С: Предприятие 8 не кодируются целиком. Большая часть
прикладного решения создается разработчиком путем визуального
конструирования - создания новых объектов конфигурации, задания
их свойств, форм представления, взаимосвязей и пр. Встроенный язык
используется лишь для того, чтобы определить поведение объектов
прикладного решения, отличное от типового, и создать собственные
алгоритмы обработки данных.
По этой причине модули, содержащие текст на встроенном языке, используются системой в конкретных, заранее известных ситуациях, которые могут возникнуть в процессе работы прикладного решения. Такие ситуации называются событиями. События могут быть
связаны с функционированием объектов прикладного решения
или с самим прикладным решением, как таковым.
Например, с функционированием объекта прикладного решения
Справочник связан ряд событий, среди которых есть событие ПередЗаписью:
200
Рисунок 101. Синтакс – помощник. Прикладные объекты.
Это событие возникает непосредственно перед тем, как данные
элемента справочника должны быть записаны в базу данных. Разработчик, используя встроенный язык, может описать алгоритм, который, например, будет проверять корректность данных, введенных
пользователем. Разместив этот алгоритм в соответствующем модуле,
разработчик обеспечит то, что каждый раз, как пользователь будет
выполнять запись элемента справочника, система будет выполнять
созданный разработчиком алгоритм и проверять, не забыл ли пользователь заполнить обязательные реквизиты справочника.
Таким образом можно сказать, что встроенный язык является
скриптовым языком для программирования бизнес-логики, а использование модулей на встроенном языке является событийно-зависимым,
т. е. выполнение модулей происходит при возникновении определенных
событий в процессе функционирования прикладного решения.
Универсальные коллекции значений
Встроенный язык поддерживает работу с большим количеством
разнообразных объектов. Безусловно, основную группу объектов со201
ставляют прикладные объекты, позволяющие описывать алгоритмы
функционирования бизнес-логики.
Однако не менее важной группой являются объекты, предназначенные для хранения временных наборов данных в течение сеанса
работы пользователя. Как правило, они служат для вспомогательного
сбора, группировки, анализа и обработки информации:
Рисунок 102. Синтакс – помощник. Универсальные коллекции значений.
Перечислим кратко их возможности:
Массив
Представляет собой пронумерованную коллекцию значений
произвольного типа. К элементу массива можно обращаться по его
индексу.
В качестве элементов массива могут выступать, в частности,
другие массивы. Это позволяет создавать многомерные массивы.
Структура
202
Представляет собой поименованную коллекцию, состоящую
из пар ключ - значение. Ключ может быть только строковым, значение - произвольного типа. К элементу структуры можно обращаться
по значению его ключа, т.е. по имени. Обычно используется для хранения небольшого количества значений, каждое из которых имеет некоторое уникальное имя.
Соответствие
Также как и структура, представляет собой коллекцию пар ключ значение. Однако, в отличие от структуры, ключ может быть практически любого типа.
Список значений
Используется, как правило, для решения интерфейсных задач.
Позволяет строить динамические наборы значений и манипулировать
ими (добавлять, редактировать, удалять элементы, сортировать). Он
может содержать значения любого типа, кроме того, в одном списке
типы хранимых значений могут быть разными.
Например, список значений может использоваться для выбора
конкретного документа из списка возможных документов, сформированного по сложному алгоритму.
Таблица значений
Таблица значений позволяет строить динамические наборы значений и манипулировать ими. Она может быть наполнена значениями
любого типа, и в одной таблице типы хранимых значений могут быть
разными.
Одним из примеров использования таблицы значений может
служить организация представления в форме списка элементов справочника, отобранных по сложному алгоритму.
Дерево значений
Дерево значений представляет собой динамически формируемый набор значений любого типа, похожий на таблицу значений.
В отличие от таблицы значений, строки дерева значений могут образовывать иерархические структуры: каждая строка дерева может
иметь набор подчиненных строк, каждая из подчиненных строк,
в свою очередь, также может иметь набор подчиненных строк и так
далее. При этом поиск значений, сортировка, получение итогов могут
203
осуществляться либо по текущему уровню иерархии, либо включая
все подчиненные.
COMSafeArray
Представляет собой объектную оболочку над многомерным
массивом SAFEARRAY из COM. Позволяет создавать и использовать
SAFEARRAY для обмена данными между COM-объектами.
ФиксированныйМассив
Неизменяемый массив. Массив заполняется системой при инициализации объектов данного типа или разработчиком, с помощью
конструктора.
Редактор текстов и модулей
Для создания и изменения текстов на встроенном языке разработчик может использовать редактор текста и модуля, обладающий
удобными средствами создания, редактирования и синтаксической
проверки модулей.
Тема 2. Работа с константами и перечислениями
Константы
Константы – это прикладные объекты конфигурации. Они позволяют хранить в информационной базе данные, которые не изменяются во времени, или изменяются очень редко. Каждая константа
позволяет хранить одно значение.
Константы в системе 1С: Предприятие, как правило, служат для
хранения информации, которая либо совсем не изменяется в процессе
функционирования системы, либо изменяется достаточно редко.
В константах хранится информация, характеризующая прикладную
задачу в целом. Наиболее простой пример подобной информации название организации, которое, как правило, не меняется.
В программных модулях для общих действий над заданными
в конфигураторе константами (получение формы для управления константами, создание набора констант) служит объект КонстантыМенеджер. Для одновременного изменения значений определенной группы
констант следует пользоваться объектом КонстантыНабор. Для чтения и записи значения определенной константы можно обращаться к
объекту КонстантаМенеджер.<Имя константы>.
204
КонстантыНабор – предоставляет возможность проведения операций чтения и записи сразу для группы констант, в частном случае –
для всех констант. Также используется в форме констант для хранения, записи и считывания констант.
КонстантаМедеджерЗначения.<имя> - используется для доступа
к константе. Любая запись константы (интерактивно в форме, объекты
КонстантыНабор и КонстантаМенеджер.<имя>) создает объект
этого типа и производит запись с его помощью, что обеспечиваем вызов модуля и обработчиков событий этого объекта.
Добавление новой константы:
Рисунок 103. Добавление константы.
Добавим две новые константы: Директор и Главный бухгалтер.
Рисунок 104. Добавление новых констант.
Создадим новую обработку:
205
Рисунок 105. Добавление констант на форму.
Рисунок 106. Задание имени константам.
Вид формы:
Рисунок 107. Форма констант.
Для кнопки Директор (установим значение константы Директор):
206
Рисунок 108. Модуль формы констант с процедурами.
Для кнопки Ок (Одновременно установим новые значения констант Директор и Главный бухгалтер):
Рисунок 109. Создание процедур ЗаписьНаСервере.
Например, в константе может храниться наименование предприятия, его ИНН и другая информация. В прикладном решении может быть создано произвольное количество констант:
207
Рисунок 110. Список констант прикладного решения.
Форма констант
Для того, чтобы пользователь мог просматривать и изменять
значения констант, система может автоматически сгенерировать форму константы:
Рисунок 111. Форма констант.
Наряду с этим разработчик имеет возможность создать собственную форму, которую система будет использовать вместо формы
по умолчанию:
208
Рисунок 112. Создание формы настройка почты.
Константы используются для хранения одного значения в базе
данных. Обычно в константах хранится редко изменяемая информация, например, название организации, адрес организации, ФИО руководителя и т. д.
Для каждой константы нужно обязательно указать ее имя и тип
данных. Обращение к константам в программном модуле осуществляется очень просто:
Чтение значения константы
Мы можем прочитать значение константы с помощью метода
Получить()
// чтение значения Константы
Название = Константы.НазваниеОрганизации.Получить();
Обратите внимание на слово Константы (а не Константа, как
было в версии 7.7).
Запись нового значения константы
Для записи (установки) нового значения константы используется метод Установить()
209
// запись нового значения Константы
Константы.НазваниеОрганизации.Установить("ООО Рога и копыта");
Работа с набором констант
Иногда может возникнуть необходимость прочитать или записать значения сразу нескольких констант. Для таких ситуаций можно
воспользоваться набором констант. При использовании набора все
входящие в него константы считываются и записываются вместе
в одной транзакции, т.е. операция над несколькими константами производится одновременно.
//создаем набор из трех констант
//обратите внимание, что мы лишь создаем набор констант и пока не знаем их значения
Набор = Константы. СоздатьНабор("Руководитель,НазваниеОрг
анизации,АдресОрганизации");
//теперь с помощью метода Прочитать() мы можем прочитать
значения констант нашего набора
Набор.Прочитать(); //прочитать из базы сразу три константы
Так как при работе с набором констант мы может изменить (записать) значения всех констант набора одновременно, то сначал нам
необходимо установить каждой константе новое значение, а затем
с помощью метода Записать() произвести их одновременную запись.
//устанавливаем значение констант в наборе (не в базе)
Набор.Руководитель = "Иванов И.И.";
Набор.НазваниеОрганизации = "ООО Новые рога и копыта";
Набор.АдресОрганизации = "Россия, г. Москва, Кремль";
Набор.Записать(); //записываем в базу сразу значения трех констант
Сравнение со значением константы в запросах
Иногда нам может потребоваться в запросе сравнить данные
со значением константы. В данном примере мы выбираем записи
из справочника Напоминания, у которых значение реквизита Код равно
значению нашей константы НашеЧисло. Более подробно язык запросов
1С мы рассмотрим в следующих материалах по встроенному языку 1С.
"ВЫБРАТЬ | НашеЧ.Значение, | Напоминания.Код, |ИЗ | Константа.НашеЧисло КАК НашеЧ, | Справочник.Напоминания КАК
Напоминания |ГДЕ | Напоминания.Код = НашеЧ.Значение"
210
Для отображения констант в системе по умолчанию создаются
формы констант, позволяющие задавать и менять значение констант.
Для каждой константы по умолчанию создаётся отдельная форма.
Форму какой либо константы можно увидеть в том разделе, к которому отнесена соответствующая константа в командной панели в группе
команд "Сервис"
Рисунок 113. Подсистемы с включенными в них формами и константами.
Отображение на командной панели доступа к формам констант
"Наименование компании", "Учёт по складам", "Учёт по сериям"
Рисунок 114. Создание записи в константе.
Форма константы "Наименование предприятия"
Форма констант
Форма констант, как видно из названия позволяет работать с несколькими константами, задавать менять их значение. В отличии
от формы константы, создаваемой по при создании константы, в форме константы можно работать с одной константой
Форма констант – одна из общих форм. Как и другие общие
объекты конфигурации, общие формы находятся в узле "общие" дерева конфигурации. Как и другие объекты конфигурации, общую форму
можно создать, как через контекстное меню узла конфигурации, таки
211
и через команду "действия" окна дерева конфигурации. Кроме того
форму констант можно создать через контекстное меню соответствующей константы.
Рисунок 115. Добавление новой константы.
Создание формы констант через контекстное меню узла константы.
Результатом выполнения команды будет запуск окна редактирования объекта конфигурации (в данном случае формы). Созданную
форму констант можно найти в узле "Общие дерева конфигурации".
Рисунок 116. Конфигурация решения.
Форма констант в дереве конфигурации
При создании формы констант из узла "Общие формы" предварительно открывается окно конструктора общих форм, в котором
необходимо выбрать тип создаваемой общей формы.
212
Рисунок 117. Окно конструктора общих форм.
Как видно из окна конструктора форм возможны следующие
типы общих форм – произвольная форма, форма констант, форма отчёта, форма настроек отчёта, форма варианта отчёта.
Отличие данных типов форм заключается в предварительно
определённых для них реквизитов.
Форму констант можно рассматривать как частный случай формы среды 1С8.Х
Общие принципы работы с конструктором форм одинаковы и не
зависят от того, для какого объекта вы создаете форму. Это несколько
этапов:
Выбор типа формы (один из ВАЖНЕЙШИХ моментов). Выбор
типа напрямую влияет на функциональность формы, предоставляемой
по умолчанию.
Определение имени формы
Определения значения флага «Использовать стандартные команды» (установка этого флага приводит к появлению стандартных
команд в интерфейсе в тех подсистемах, к которым относится данный
объект, в нашем случае это форма)
После нажатия на кнопку «Далее» можно определить состав
отображаемых (в нашем случае) констант.
213
Рисунок 118. Окно конструктора общих форм.
Конструктор общих форм
Для того что бы форму можно было увидеть в интерфейсе пользователя, форму как и другие объекты нужно отнести к одной из подсистем.
После нажатия на кнопку готово, откроется конструктора формы.
Рисунок 119. Окно конструктора формы.
214
Основные элементы окна конструктора формы
В окне конструктора формы две вкладки - вкладка "форма"
и вкладка "Модуль". На вкладке "форма" происходит работа с формой
в режиме конструктора. На вкладке модуль отображается программный модуль формы.
В правой верхней части окна определяется список реквизитов
формы (закладка "Форма"), то есть того, что входит в понятие «Данные формы».
Реквизиты также можно назвать источниками функциональности формы. На форму можно добавить реквизиты соответствующие
существующим объектам конфигурации. Для обеспечения доступа
к данным базы и их сохранения у реквизита в панели его свойств
должны быть установлены флаги "Основной реквизит", "Сохраняемые данные".
Рисунок 120. Установка свойств реквизита формы.
В той же части, в которой определены реквизиты формы,
на другой закладке определяются особые элементы формы "Команды
формы". Под командой формы понимается особый объект, с которым
может быть связан некоторая функция или процедура программного
модуля. Связь команды с процедурой или функцией задаётся через
свойство команды "Действие".
215
Рисунок 121. Реквизиты и команды формы.
Рисунок 122. Связь команды с процедурой обработчиком.
В левой верхней части формы находится дерево элементов
управления.
С помощью дерева элементов управления можно изменить какие-либо свойства элементов, определить обработчики событий. Корень данного дерева определяет саму форму (для изменения свойств
формы в целом, нужно работать со свойствами именно корневого
объекта «Форма»). По умолчанию в состав элементов управления
входит командная панель.
Настройка команд командной панели происходит отдельно.
216
Рисунок 123. Дерево управляющих элементов формы.
В нижней части находится область предосмотра (какой внешний
вид имеет форма в результате всех ваших действий).
Когда в рабочем режимы выполняется открытие формы – система выполняет следующие действия:
 создает экземпляр формы,
 производит чтение объектов, связанных с реквизитами
формы (в для формы констант, это будут константы). Прочитанные
значения «копируются» в соответствующие реквизит формы.
 Форма отправляется клиентскому приложению.
 Элементы управления отображают значения реквизитов
формы связанных с ними. Связь элемента управления со значением
свойства реквизита осуществляется через свойство «Данные» элемента.
 При настройке логики работы формы принят следующий
подход:
1. элементы управления выступают источниками событий;
2. элементы управления активизируют связанные с ними
команды.
 в качестве обработчиков событий вызываются программные модули, связанные с командами;
 программные модули в качестве данных используют реквизиты формы, при изменении реквизитов формы автоматически могут измениться свойства связанных с ними элементов управления.
217
Рисунок 124. Механизм работы формы.
Для того что бы рассмотреть разработку программных модулей
1С необходимо рассмотреть базовые принципы программирования
на языке 1с и особенности построения программных модулей.
ПЕРЕЧИСЛЕНИЯ
Перечисления – это объекты, которые задаются разработчиком
на этапе создания конфигурации и хранящие в себе ограниченный
и заранее известный набор однотипной информации.
Перечисление можно рассматривать как некий линейный и не
изменяемый список. Это может быть список видов номенклатуры,
операций того или иного документа, времен года, сторон света и т. п.
Перечисления создаются в соответствующей ветке дерева объектов конфигурации. После создания на закладке «Данные» определяется
нужный перечень значений. В режиме исполнения это список не подлежит ни исправлению, ни переопределению состава. Пользователь
может либо выбрать значение из этого списка, либо сбросить выбор.
Например перечисление ВидыТоваров('Товар','Услуга', 'Материал'). То есть перечисление ВидыТоваров может принимать значение
'Товар','Услуга', 'Материал '.
Создание перечисление в окне редактирования объектов показано на рис.125.
218
Добавление нового перечисления
Рисунок 125. Добавление нового перечисления.
Заполнение данных перечисления
Рисунок 126. Добавление новых значений в перечисление.
219
Создание новой обработки
Рисунок 127. Создание новой обработки РаботаСПеречислениями.
Открытие формы списка значений перечисления (кнопка ФП):
Рисунок 128. Процедура на открытие формы списка значений перечисления.
Вывод всех значений перечисления (кнопка Вывести значения):
220
Рисунок 129. Вывод значений перечисления.
Для использования выбранного значения перечисления:
Добавим на форму новый реквизит ПолеПол:
Рисунок 130. Обработка РаботаСПеречислениями.
221
Свойства:
Событие:
Рисунок 131. Программирование события при Изменении.
Рисунок 132. Задание значений перечислениям.
Создание перечислений
В программном модуле для доступа к перечислениям используются на стороне клиента специальный тип данных ПеречисленияСсылка. На стороне сервера используется специальный объект Перечисления.
Например, это может быть перечисление возможных ставок
НДС (БезНДС, НДС18 и т. д.), перечисление состояния заказов (Запланировано, ВРаботе, Выполнено) и пр.:
222
Рисунок 133. Перечисления и значения в дереве конфигурации.
В прикладном решении может быть создано произвольное количество перечислений:
Рисунок 134. Список созданных перечислений
в конфигурации прикладного решения 1С Предприятие.
223
Тема 3. Работа со справочниками.
Назначение справочников
Справочник является списком возможных значений того
или иного реквизита. Справочники используются в тех случаях, когда
необходимо исключить неоднозначный ввод информации. Например,
для того, чтобы покупатель, продавец, кладовщик, директор понимали, о каком товаре идет речь, каждый должен называть его одинаково.
И в этом случае необходим справочник. Обычно в торговом предприятии он имеет вид прайс-листа, а если такой справочник хранится
в компьютере, то в него заносят всю возможную номенклатуру товаров, с которыми работает торговая фирма.
Платформа 1С: Предприятие позволяет вести практически неограниченное количество необходимых справочников. Каждый справочник представляет собой список однородных объектов: сотрудников, организаций, товаров и т. д. Каждый такой объект называется
элементом справочника.
С точки зрения пользователя, следует иметь в виду, что в Конфигураторе создается не сам справочник, как список значений, а разрабатывается заготовка справочника, его шаблон. В процессе конфигурирования описывается структура информации, которая будет храниться в справочнике, разрабатывается экранное и, если необходимо,
печатное представление справочника, задаются различные особенности его «поведения».
Атрибуты справочников
В качестве обязательных реквизитов каждый справочник имеет
Код и Наименование. Код элемента справочника может быть как числовым, так и текстовым. Система 1С: Предприятие предоставляет
широкие возможности по работе с кодами элементов справочника:
автоматическое присвоение кодов, автоматический контроль уникальности кода и другие.
Помимо кода и наименования, в справочниках системы 1С:
Предприятие может храниться любая дополнительная информация об
элементе справочника. Для хранения такой информации в справочнике может быть создан список реквизитов. Используя механизм рекви224
зитов справочника, легко организовать, например, картотеку сотрудников. Например, справочник Сотрудники почти наверняка будет
иметь атрибуты Должность, Оклад и другие. Фирма 1С предвосхитила программистов и ввела во все справочники два уже заданных атрибута: Код и Наименование. Действительно, практически любой объект из реальной жизни содержит эти атрибуты. Например, для сотрудников кодом выступает табельный номер, а наименованием - фамилия, имя, отчество (ФИО).
Типы данных
Для каждого атрибута справочника нужно указать его тип данных, например, "число", "строка", "дата" (в версии 8.0 есть еще тип
Булево - Истина или Ложь). Это базовые типы, но можно указать
и сложные типы данных. Например, атрибут Должность имеет тип
данных Должности. В этом случае, значения этого атрибута будут
выбираться из справочника Должности. Так реализуется простейшая
связь между справочниками, когда значения атрибутов одного справочника выбираются из другого справочника.
Таблица 3-4
Справочники Сотрудники и Должности
Справочник Сотрудники
Код Наименование Должность
Иванов Иван
1
Бухгалтер
Иванович
Петров Петр
2
Кадровик
Петрович
Справочник Должности
Оклад
7000
5000
Код Наименование
1
Бухгалтер
2
Кадровик
Иерархические справочники
Список элементов справочника в системе 1С:Предприятие может
быть многоуровневым. В этом случае все строки справочника будут
разделяться на 2 вида: «просто» элементы справочника и группы справочника. Группы позволяют переходить на нижележащие уровни многоуровневого справочника. Использование многоуровневых справоч225
ников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в многоуровневом справочнике можно переносить из одной группы в другую.
Таблица 5
Справочники Сотрудники и Контрагенты
Справочник Сотрудники
Работающие
Иванов Иванов Иванов
Петров Петр Петрович
Уволенные
Светлов Михаил Петрович
Цветков Антон Васильевич
Справочник Контрагенты
Партнеры
Партнер 1
Партнер 2
Поставщики
Поставщик 1
Поставщик 2
Подчиненные справочники
Между справочниками может быть установлено отношение
подчиненности. В терминах реляционных баз данных, между таблицами устанавливается связь "один-ко-многим". В этом случае каждый
элемент подчиненного справочника будет связан с одним из элементов справочника-владельца. Иногда можно сказать, что элементы одного справочника принадлежат элементам другого. Например, в системе может быть справочник НалоговыеЛьготы. Тогда его можно
сделать подчиненным справочнику Сотрудники. Это означает,
что "Сотрудник владеет налоговыми льготами".
Таблица 6
Справочники Сотрудники и Налоговые Льготы
Справочник Сотрудники
Справочник НалоговыеЛьготы
Иванов Иванов Иванов
Петров Петр Петрович
Светлов Михаил Петрович
Цветков Антон Васильевич
(владелец Петров Петр Петрович)
Льгота ветеранам
Льгота на детей
Иванов Иванов Иванов
Петров Петр Петрович
Светлов Михаил Петрович
Цветков Антон Васильевич
(владелец Светлов Михаил Петрович)
Льгота афганцам
226
Табличные части (только версия 8.0)
В версии 8.0 появилась возможность для элемента справочника
иметь несколько табличных частей. Эту возможность рекомендуется
использовать для отражения информации, связанной с данным элементом, но не имеющей собственной объектной сущности (для которых рекомендуется завести подчиненный справочник). Например,
для спр. Товары может быть заведена табличная часть ЕдиницыИзмерения, для справочника Сотрудники могут быть заведены табличные
части Образование и СоставСемьи. Работа с табличными частями похожа на работу с подчиненными справочниками за исключением того,
что табличные части не могут быть типами, а значит уже будет нельзя
создать реквизит типа Образование.
Сравнение справочников с другими объектами
Таблица 7
Сравнение справочников с другими объектами
Объект
1
Константы
Документы
Сходства
Различия
2
3
хранит значение, Справочник хранит не одно
сохраняется в базе значение, а целый список одданных
нородных объектов.
Справочник хранит нормативно-справочную информацию,
а документы отражают события
реального мира. Обычно знасохраняется в базе чения реквизитов документов
данных, имеет рек- выбираются из справочников.
визиты, документы Документ обычно проводится,
могут быть подчи- документ обязательно имеет
ненными друг дру- дату и время, документ может
гу
содержать табличную часть,
чего нет в справочниках (в версии 8.0 справочники и документы могут иметь по несколько табличных частей).
227
Продолжение таблицы 7
1
2
3
Справочники могут быть многоуровневыми, в справочнике могут
быть периодические реквизиты, чего
нет в документах (в версии 8.0 периодических реквизитов нет, а есть
периодические регистры сведений).
Множество значений в справочник
вводит пользователь в режиме
хранится
Предприятие, а для перечислений
в БД, хранит
Перечисления
список значений задается разработсписок значечиком в режиме Конфигуратор. Пений
речисления обычно используются
в операторах Если.
ТаблицаЗначений предназначена для
хранения промежуточных данных
в памяти компьютера, возникающих
имеет строки во время работы программы. Таблии колонки (не ца значений может хранить разноТаблицаЗначений
хранится
родные объекты, а в справочнике все
в БД)
элементы одного типа. Таблицы
значений не могут быть многоуровневыми или подчиненными друг
другу.
хранит список значений Список значений может хранить
СписокЗначений (не сохраня- разнородные объекты, а в справочется
нике все элементы одного типа
в БД)
228
Основы программирования
Ссылка на справочник
Для работы со справочником из какого-нибудь модуля требуется сначала создать ссылку на этот справочник.
Таблица 8
Указание ссылок на справочники
7.7
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрДолж = СоздатьОбъект("Справочник.Должности");
8.0
СпрСотр = Справочники.Сотрудники;СпрДолж = Справочники["Должности"]
Создание и запись нового элемента
Таблица 9
Запись новых элементов
СпрСотр.Новый();
7.7 СпрСотр.Наименование = "Иванов Иван Иванович";
СпрСотр.Оклад = 5000;СпрСотр.Записать();
НовЭл = СпрСотр.СоздатьЭлемент();НовЭл.Наименование =
8.0 "Иванов Иван Иванович"; НовЭл.Оклад = 5000;
НовЭл.Записать();
Поиск элемента справочника
Таблица 10
Поиск элементов справочника
1
2
//например, в приказе об увольнении
СпрСотр.НайтиЭлемент(Сотрудник);
7.7
СпрСотр.НайтиПоКоду(123);
СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");
СпрСотр.НайтиПоРеквизиту("Оклад", 5000);
229
Продолжение таблицы 10
1
2
//если элемент найден, он становится текущим и его можно прочитать так:
Если СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович")=1 Тогда
........НайденныйСотр = СпрСотр.ТекущийЭлемент();
КонецЕсли;
//в версии 8.0 если элемент найден, то он возвращается, иначе возвращается Неопределено
НайденныйСотр = СпрСотр.НайтиПоКоду(123);
НайденныйСотр = СпрСотр.НайтиПоНаименованию("Иванов
Иван Иванович");
НайденныйСотр СпрСотр.НайтиПоРеквизиту("Оклад", 5000);
8.0
//далее нужно проверить найденное значение
НайденныйСотр = СпрСотр.НайтиПоНаименованию("Иванов
Иван Иванович");
Если НайденныйСотр = Неопределено Тогда
.....//элемент не найден
КонецЕсли;
Удаление элемента справочника
Таблица 11
Удаление элемента справочника
1
2
СпрСотр.Удалить(1); //непосредственное удаление
СпрСотр.Удалить(0); //пометка на удаление
СпрСотр.СнятьПометкуУдаления();
7.7 //можно проверить, помечен ли элемент на удаление
//функция возвращает 1 - если помечен, 0 - если нет
Пометка = СпрСотр.ПометкаУдаления(); //обратите внимание: это
метод
СпрСотр.Удалить(); //непосредственное удаление
СпрСотр.УстановитьПометкуУдаления (Истина); //пометка на
8.0 удаление
СпрСотр.УстановитьПометкуУдаления (Ложь); //снять пометку на
удаление
230
Продолжение таблицы 11
1
2
//можно проверить, помечен ли элемент на удаление
//есть свойство ПометкаУдаления, оно имеет тип Булево - Истина
или Ложь
Пометка = СпрСотр.ПометкаУдаления; //обратите внимание:
это свойство
Если Пометка = Истина Тогда
.....//элемент помечен на удаление
КонецЕсли;
Перебор элементов справочника
Таблица 12
Перебор элементов справочника
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл
7.7 ... //действия с очередным элементом
...Сообщить("Сотрудник " + СпрСотр.Наименование);
КонецЦикла;
выборка = Справочники.Сотрудники.Выбрать();
Пока выборка.Следующий() = 1 Цикл
8.0 ... //действия с очередным элементом
...Сообщить("Сотрудник " + выборка.Наименование);
КонецЦикла;
Родитель
Перебор элементов внутри группы. Группа в терминах 1С - это
"родитель".
231
Таблица 13
Родитель
СпрСотр.НайтиПоНаименованию("Работающие");
Работающие = СпрСотр.ТекущийЭлемент();
7.7
СпрСотр.ИспользоватьРодителя(Работающие);
//дальше, например, цикл по сотрудникам (см. выше)
СпрСотр = Справочники.Сотрудники;
ГруппаРаботающие =
СпрСотр.НайтиПоНаименованию("Работающие");
выборка = СпрСотр.Выбрать(ГруппаРаботающие);
8.0
Пока выборка.Следующий() = 1 Цикл
... //действия с очередным элементом
...Сообщить("Сотрудник " + выборка.Наименование);
КонецЦикла;
Владелец
Перебор элементов справочника принадлежащих элементу другого справочника. Один справочник подчинен другому справочнику,
например спр. НалоговыеЛьготы подчинен спр. Сотрудники.
Таблица 14
Владелец
СпрНЛ
=
СоздатьОбъект("Справочник.НалоговыеЛьготы");
7.7 СпрНЛ.ИспользоватьВладельца(Сотрудник);
//дальше, например, цикл по льготам этого сотрудника (см. выше)
выборка = Справочники.НалоговыеЛьготы.Выбрать( ,Сотрудник);
Пока
выборка.Следующий()
=
1
Цикл
8.0 ... //действия
с
очередным
элементом
...Сообщить("льгота
"
+
выборка.Наименование);
КонецЦикла;
Периодические реквизиты
Чтение и запись периодических реквизитов. Установка даты выборки периодических реквизитов для всего справочника.
232
Таблица 15
Периодические реквизиты
//так мы узнаем, какая была у сотрудника
//категория на определенную дату
Катег = СпрСотр.Категория.Получить(НекаяДата);
//так мы установим сотруднику категорию
//на определенную дату
СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория);
//можно установить дату выборки периодических
7.7
//реквизитов для всего справочника
СпрСотр.ИспользоватьДату(НекаяДата);
//тогда ниже уже нельзя использовать Установить и Получить
//доступ к периодическим реквизитам становится
//такой же, как к обычным реквизитам
Катег = СпрСотр.Категория;
СпрСотр.Оклад = 6000;
8.0
В версии 8.0 нет периодических реквизитов. Вместо них необхидом использовать регистры сведений, развернутые во времени.
Экранные формы справочников
Форма списка справочника
Для удобства работы пользователей со справочником на этапе
конфигурирования можно создать несколько видов экранных форм
для показа справочника. В зависимости от контекста вызова справочника можно задать использование определенного диалога для работы
с ним.
Лучше один раз увидеть, чем сто раз услышать, поэтому ниже
для примера приведена форма списка справочника Сотрудники:
233
Рисунок 135. Справочник Сотрудники.
Рисунок 136. Список Клиенты.
Модуль формы списка содержит процедуры и функции, которые
действуют в контексте данной формы (в контексте объекта Справочник).
Предопределенные процедуры вызываются системой 1С при
наступлении определенных событий. Предопределенные процедуры
вызываются системой 1С при наступлении определенных событий,
поэтому они являются обработчиками событий. В версии 8.0 имя
процедуры может быть любое, необязательно совпадающее с именем
события. Кроме того, в версии 8.0 список событий для всех объектов
был значительно расширен.
234
Таблица 16
События в 1С
Событие
1
При Открытии
При Закрытии
При Записи
Описание
2
Вызывается при открытии формы
списка справочника. Можно задать
начальные значения для переменных,
проверить права пользователя на открытие данного справочника и т. д.
Вызывается при закрытии формы
списка справочника.
Вызывается при записи элемента
справочника, если элементы вводятся прямо в форме списка, а не
в форме элемента. Это используется для справочников с простой
структурой, например справочник
Должности. В этой процедуре можно проверить вводимые данные
на наличие ошибок.
Пример, справочник Должности
Процедура ПриЗаписи()
Если СокрЛП(Наименование)="" Тогда
Предупреждение("Не указано
7.7
название должности!",30);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если СокрЛП(Наименование)="" Тогда
Предупреждение("Не указано
8.0
название должности!",30);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Продолжение таблицы 16
235
1
При Выборе Родителя
(НовРодитель)
При Выборе Владельца
(НовВладелец)
При Установке Отбора
(Реквизит,Значение)
При Выборе Строки()
2
Вызывается при выборе родителя
(группы). В этой процедуре можно
проверить права пользователя на
просмотр элементов данной группы.
Вызывается при выборе владельца
справочника-хозяина. Имеет смысл,
если данный справочник подчинен
другому.
Предопределенная процедура при
интерактивной установке отбора
любым способом (отбор, быстрый
отбор, отбор по значению, история
отбора) и при отключении отбора.
Режим обработки выбора строки
(двойной щелчок мыши или клавиша Enter) включается в форме
списка справочника, журнала документов, счетов, журнала операций, журнала проводок при помощи метода Форма. ОбработкаВыбораСтроки(1). Тогда при выборе
строки будет вызываться эта предопределенная процедура.
Сортировка
В форме списка справочника элементы могут быть отсортированы в различном порядке: по коду, по наименованию или по любому
реквизиту, у которого в Конфигураторе установлен флажок Сортировка. Задать тип сортировки можно программно методом Сортировка (Способ, ФлагРазрешенияИзменения)
236
Таблица 17
Сортировка
Процедура ПриОткрытии()
...... Сортировка("Код",0); //сортировка по коду, пользователь из7.7
менить не может
КонецПроцедуры
Процедура ПриОткрытии()
......СправочникСписок.Порядок.Установить("Наименование Asc,
Карточка Asc");
8.0
......//вопрос читателям: как запретить пользователю изменять порядок сортировки?
КонецПроцедуры
Отбор
В форме списка справочника элементы могут быть отфильтрованы, т. е. пользователю будут показаны только нужные элементы.
Программно установить отбор можно методом УстановитьОтбор
(Реквизит, Значение).
Для этого у реквизита должен быть установлен флажок "Отбор
по реквизиту" в Конфигураторе.
Таблица 18
Отбор
.7
.0
Процедура ПриОткрытии()
7
УстановитьОтбор("Год",1980);
КонецПроцедуры
Процедура ПриОткрытии()
СправочникСписок.Отбор.Карточка.Установить(Год,1980);
8
//вопрос читателям: как запретить пользователю изменять условия
отбора?
КонецПроцедуры
Статический фильтр (только версия 7.7)
В 1С 7.7 нельзя установить отбор по периодическому реквизиту
или по нескольким реквизитам одновременно (сложный фильтр).
237
В этом случае выходом из положения может быть метод ИспользоватьСписокЭлементов.
Этому методу нужно передать список элементов, которые должны
быть показаны. Предварительно этот список нужно сформировать.
Таблица 19
Статический фильтр
Процедура ПоказатьРаботающихПлотников()
СписокЭлементов = создатьОбъект("СписокЗначений");
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьДату(РабочаяДата());
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
.....Если (СпрСотр.Родитель = группаРаботающие) И
7.7 (СпрСотр.Должность=длжПлотник) Тогда
...........СписокЭлементов.ДобавитьЗначение(СпрСотр.ТекущийЭле
мент());
.....КонецЕсли;
КонецЦикла;
ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры
Форма элемента и форма группы
Если справочник имеет сложную структуру, тогда его элементы
удобнее редактировать в отдельном окне, а не в списке. Ниже приведена форма элемента справочника Сотрудники.
Рисунок 137. Сведения о сотруднике.
238
В форме элемента справочника также есть предопределенные
процедуры (события):
Таблица 20
Описание событий
События
При Открытии()
При Закрытии()
При Записи()
Ввод Нового()
Описание
Вызывается при открытии формы элемента справочника. Можно задать начальные значения
для переменных, проверить права пользователя на
открытие данного элемента справочника и т. д.
Вызывается при закрытии формы элемента справочника.
Вызывается при записи элемента справочника.
В этой процедуре можно проверить вводимые данные на наличие ошибок.
Пример, справочник Сотрудники
Процедура ПриЗаписи
....Если Категория.Выбран()=0 Тогда
.........Предупреждение("Не указана категория сотрудника!");
.........СтатусВозврата(0);
.....КонецЕсли;
КонецПроцедуры
Вызывается при интерактивном вводе нового элемента справочника. В этой процедуре можно проверить права пользователя на создание новых элементов справочника, а также задать начальные
значения реквизитов.
Следует заметить, что в версии 8.0 список событий всех объектов значительно расширен.
Создание и запись элемента
Программное создание элемента справочника
Ниже в справочник Сотрудники программно добавляется новый
сотрудник в группу Работающие. В справочнике заполняется поля
Наименование, ДатаПриема и пара периодических реквизитов.
239
Таблица 21
Создание и запись элементов
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьРодителя(грпРаботающие);
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов Иван Иванович";
СпрСотр.ДатаПриема = '01.01.2002';
СпрСотр.Записать();
//установка периодических реквизитов возможна только после записи элемента
СпрСотр.Категория.Установить (СпрСотр.ДатаПриема, ктгСовместители);
СпрСотр.Должность.Установить (СпрСотр.ДатаПриема, длжПлотник);
7.7
а можно сделать красивее:
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьРодителя(грпРаботающие);
СпрСотр.ИспользоватьДату(ДатаПриема); //внимание!
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов Иван Иванович";
СпрСотр.ДатаПриема = '01.01.2002';
//доступ к периодическим реквизитам становится такой же, как к
обычным
СпрСотр.Категория = ктгСовместители;
СпрСотр.Должность = длжПлотник;
СпрСотр.Записать();
Нов = Справочники.Сотрудники.СоздатьЭлемент();
Нов.Родитель = грпРаботающие;
Нов.Наименование = "Иванов Иван Иванович";
8.0 Нов.ДатаПриема = '01.01.2002';
Нов.Записать();
//в версии 8.0 нет периодических реквизитов
240
Программное создание групп
Таблица 22
Создание групп
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НоваяГруппа();
СпрСотр.Наименование = "Работающие";
7.7 СпрСотр.Записать();
СпрСотр.НоваяГруппа();
СпрСотр.Наименование = "Уволенные";
СпрСотр.Записать();
Нов = Справочники.Сотрудники.СоздатьГруппу();
Нов.Наименование = "Работающие";
Нов.Записать();
8.0
Нов = Справочники["Сотрудники"].СоздатьГруппу();
Нов.Наименование = "Работающие";
Нов.Записать();
Внимание! В Конфигураторе можно задать для реквизита то,
что он действителен только для элемента, только для группы или для
обоих.
Например, поле ДатаПриема не имеет смысла для группы Работающие.
Поэтому не стоит обращаться к реквизитам элементов, если вы
работаете с группой и наоборот.
Транзакции
При создании множества элементов справочника для ускорения
работы можно заключить цикл в транзакцию. При этом реальное создание всех элементов произойдет только по команде ЗафиксироватьТранзакцию(). На время выполнения транзакции справочник блокируется.
241
Таблица 23
Транзакции
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
НачатьТранзакцию();
Для Ном = 1 По 100 Цикл
.....СпрСотр.Новый();
7.7
.....СпрСотр.Наименование = "Новый " + Строка(Ном);
.....СпрСотр.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
СпрСотр = Справочники.Сотрудники;
НачатьТранзакцию();
Для Ном = 1 По 100 Цикл
.....Нов = СпрСотр.СоздатьЭлемент();
8.0
.....Нов.Наименование = "Новый " + Строка(Ном);
.....Нов.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Перебор элементов
Простой перебор
СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); Режим =
0; //выбирать без учета иерархии, 1 - с учетом (по умолч.)
СпрСотр.ВыбратьЭлементы(Режим);
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл .....<действия с очередным
элементом/группой> КонецЦикла;
Фильтрация (отбор)
СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); РежимИерархии = 1; //1- выбирать с учетом иерархии, 0 - без учета РежимГрупп = 0; //0 - не включать в выборку группы, 1 – включать
ИмяРеквизита = "Год"; //в Конфигураторе у реквизита должен быть
установлен флажок Отбор Значение = 1980; СпрСотр. ВыбратьЭлементыПоРеквизиту(ИмяРеквизита,Значение,РежимИерархии, РежимГрупп); Пока СпрСотр.ПолучитьЭлемент()=1 Цикл .....<действия с
очередным элементом > КонецЦикла;
Фильтрация в цикле
242
СпрСотр
=
СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьРодителя(грпРаботающие);
СпрСотр.ИспользоватьДату(РабочаяДата());
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
Если
СпрСотр.Должность
<>
длжПлотник
Тогда
....Продолжить; //этого сотрудника пропускаем, перейти в начало
цикла КонецЕсли;
<действия с очередным элементом>
КонецЦикла;
Порядок сортировки
Перед выборкой можно задать порядок сортировки следующими
методами:
ПорядокКодов()
ПорядокНаименований()
ПорядокРеквизита(ИмяРекв) //у реквизита должен быть установлен
флажок Сортировка в Конфигураторе ОбратныйПорядок()
Например, ниже открывается выборка сотрудников, отсортированных по номерам по убыванию:
СпрСотр
=
СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ПорядокКодов();
СпрСотр.ОбратныйПорядок();
СпрСотр.ВыбратьЭлементы();
Запрос к справочнику
Перебор элементов справочника можно организовать через Запрос. Часто это бывает удобнее, если применяется сложное условие
отбора или группировка элементов. Подробнее см. Запросы
Поиск элемента
СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); Если
СпрСотр.НайтиЭлемент(ВыбрСотр)=1 Тогда ....//элемент становится
текущим
....СпрСотр.Родитель
=
грпРаботающие;
....СпрСотр.Записать(); КонецЕсли;
Поиск по коду
Если СпрСотр.НайтиПоКоду(1) = 1 Тогда ....ЭлементИлиГруппа
= СпрСотр.ТекущийЭлемент(); КонецЕсли;
243
Поиск по наименованию
Если СпрСотр.НайтиПоНаименованию("Работающие")=1 Тогда
....грпРаботающие = СпрСотр.ТекущийЭлемент();КонецЕсли;
Режим = 1; // 1 - поиск внутри установленного подчинения (родителя) (по умолч.); 0 - поиск во всем справочнике ФлагПоиска = 0;
//1 - найти точное соответствие; 0 - найти наименование по первым
символам (по умолч) СпрСотр.ИспользоватьРодителя (грпРаботающие); Если СпрСотр.НайтиПоНаименованию("Ив",Режим, ФлагПоиска) =1 Тогда ....ПервыйРаботающийИв = СпрСотр.ТекущийЭлемент();
КонецЕсли;
Поиск по реквизиту
ИмяРекв = "Год"; //у реквизита должен быть установлен флажок
Сортировка в Конфигураторе ФлагГлобПоиска = 1; // 1- искать во всем
справочнике, 0 - искать в пределах подчинения Если
СпрСотр.НайтиПоРеквизиту(ИмяРекв,1980,ФлагГлобПоиска)=1 Тогда
.....НайденныйЭлемент = СпрСотр.ТекущийЭлемент(); КонецЕсли;
Поиск элемента в цикле
СпрСотр
=
СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьРодителя(грпРаботающие);
СпрСотр.ИспользоватьДату(РабочаяДата());
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
Если
СпрСотр.Должность
=
длжПлотник
Тогда
....Прервать; //нашли работающего плотника! выйти из цикла
КонецЕсли;
КонецЦикла;
<действия с найденным элементом>
Запрос к справочнику
Поиск элемента справочника можно организовать через Запрос.
Часто это бывает удобнее, если применяется сложное условие отбора.
244
Удаление элементов
Непосредственное удаление
СпрСотр
=
СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НайтиЭлемент(ВыбрСотрудник);
СпрСотр.Удалить(); //непосредственное удаление
Внимание! Если вы производите непосредственное удаление
элемента, то следите, чтобы на него не было ссылок в других объектах. Например, удаляемый сотрудник может использоваться в документе Отпуск. При его удалении ссылочная целостность базы данных
будет нарушена. В этом случае рекомендуется пользоваться пометкой
на удаление.
Можно программно получить список объектов, содержащих
ссылку на удаляемый объект методом НайтиСсылки(объект).
Пометка на удаление
Для контроля ссылочной целостности базы данных удаляемые
элементы всего лишь помечаются на удаление. Затем специальной
командой меню Операции => "Удаление помеченных объектов" в монопольном режиме система 1С проконтролирует ссылочную целостность и физически удалит элементы из базы данных, если на них нет
ссылок в других объектах.
СпрСотр
=
СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НайтиЭлемент(ВыбрСотрудник);
СпрСотр.Удалить(0); //пометка на удаление
//можно проверить, помечен ли элемент на удаление
//функция возвращает 1 - если помечен, 0 - если нет
Пометка = СпрСотр.ПометкаУдаления();
//можно
снять
пометку
на
удаление
СпрСотр.НайтиЭлемент(ВыбрСотрудник);
СпрСотр.СнятьПометкуУдаления();
Транзакции
При удалении множества элементов справочника для ускорения
работы можно заключить цикл в транзакцию. При этом реальное удаление (пометка на удаление) всех элементов произойдет только по
команде ЗафиксироватьТранзакцию(). На время транзакции справочник блокируется.
245
СпрСотр
=
СоздатьОбъект("Справочник.Сотрудники");
НачатьТранзакцию();
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл ......СпрСотр.Удалить(0);
//пометка на удаление КонецЦикла;
ЗафиксироватьТранзакцию();
Иерархические справочники
Список элементов справочника в системе 1С:Предприятие может быть многоуровневым. В этом случае все строки справочника будут разделяться на 2 вида: «просто» элементы справочника и группы
справочника. Группы позволяют переходить на нижележащие уровни
многоуровневого справочника. Возможное количество уровней вложенности справочника задается в Конфигураторе.
Использование многоуровневых справочников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в многоуровневом справочнике
можно переносить из одной группы в другую.
Внимание! Иерархический справочник - это также многоуровневый справочник, или справочник с группами. Группа справочника
в 1С часто называется "родитель".
Программное создание группы
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НоваяГруппа();
СпрСотр.Наименование = "Работающие";
СпрСотр.Записать();
СпрСотр.НоваяГруппа();
СпрСотр.Наименование = "Уволенные";
СпрСотр.Записать();
Внимание! В Конфигураторе можно задать для реквизита то,
что он действителен только для элемента, только для группы
или для обоих.
Например, поле ДатаПриема не имеет смысла для группы Работающие. Поэтому не стоит обращаться к реквизитам элементов, если
вы работаете с группой и наоборот.
246
Установка текущей группы
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьРодителя(грпРаботающие); //теперь мы внутри
группы Работающие
СпрСотр.ВыбратьЭлементы(); //открыть выборку элементов группы
Работающие.
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьРодителя(грпРаботающие);
СпрСотр.Новый(); //создание нового элемента в группе Работающие
Информация о текущем элементе
Если справочник многоуровневый, то будет полезным применение следующих методов и атрибутов, которые позволяют получить
информацию о текущем элементе справочника:
Таблица 24
Информация о текущем элементе
Метод /
атрибут
Описание
1
2
Уровень()
Этот метод возвращает уровень текущего элемента. Например, для сотрудника, который находится в группе Работающие, мы получим число 2.
Пример, вывод иерархического справочника в виде дерева:
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлементы()=1 Цикл
//вывести отступ в соответствии с глубиной вложенности
элемента
Для Ном=1 По СпрСотр.Уровень() Цикл
.....Сообщить(".....");
КонецЦикла;
Сообщить(СпрСотр.Наименование);
КонецЦикла;
247
Продолжение таблицы 24
1
2
Это Группа()
Этот метод возвращает 1, если текущий элемент справочника является группой, или 0 если группой не является.
Пример, вывод сотрудников (группы не выводятся):
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлементы()=1 Цикл
Если СпрСотр.ЭтоГруппа()=1 Тогда
......Продолжить; //группы пропускаем, перейти в начало
цикла
КонецЕсли;
Сообщить(СпрСотр.Наименование);
КонецЦикла;
Принадлежит
Группе(...)
Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того,
на каком нижележащем уровне он находится).
Возвращает: 1 - если элемент принадлежит указанной
группе , 0 - если нет.
Пример, вывод товаров, принадлежащих к группе
Спиртное, независимо от того входят ли они в подгруппы Шампанское, Пиво, Водка, Вино и т. д.:
СпрТовары = СоздатьОбъект("Справочник.Товары");
СпрТовары.ВыбратьЭлементы();
Пока СпрТовары.ПолучитьЭлементы()=1 Цикл
Если СпрТовары.ПринадлежитГруппе(грпСпиртное)=1
Тогда
.....Сообщить(СпрТовары.Наименование);
КонецЕсли;
КонецЦикла;
Этот атрибут содержит родителя текущего элемента
справочника, т. е. группу, в которой находится текущий
атрибут Роди- элемент. Доступен для чтения и записи.
тель
Пример, перенос всех товаров из группы Спиртное
в группу Распродажа:
СпрТовары = СоздатьОбъект("Справочник.Товары");
248
Продолжение таблицы 24
1
2
СпрТовары.ВыбратьЭлементы();
Пока СпрТовары.ПолучитьЭлементы()=1 Цикл
Если СпрТовары.ПринадлежитГруппе(грпСпиртное)=1 Тогда
.....СпрСотр.Родитель = грпРаспродажа;
.....СпрСотр.Записать();
КонецЕсли;
КонецЦикла;
А можно сделать красивее и перенести всю группу
Спиртное в группу Распродажа, тогда все подгруппы
и элементы также перенесутся в группу Распродажа.
СпрТовары = СоздатьОбъект("Справочник.Товары");
СпрТовары.НайтиЭлемент(грпСпиртное);
СпрТовары.Родитель = грпРаспродажа;
СпрТовары.Записать();
Полный Код()
Возвращает строку, содержащую полный код выбранного элемента справочника со всеми вышестоящими
уровнями, разделенными символом "/".
Например, "2/7/123"
Возвращает строку, содержащую полное наименоваПолное Наиме- ние выбранного элемента справочника со всеми вынование()
шестоящими уровнями, разделенными символом "/".
Например, "Спиртное/Шампанское/Советское"
Возможность выбора группы в реквизите диалога
Часто бывает удобно для реквизитов на форме, имеющих тип
Справочник, отключить возможность выбора группы. Тогда в данное
поле может быть выбран только элемент и не может быть выбрана
группа. В общем, проще один раз попробовать, чем несколько раз
объяснять.
Форма.ВыбрСотрудник.ВыборГруппы(0); //отключить возможность выбора группы
249
Подчиненные справочники
Справочник-владелец, это также справочник-хозяин. Справочник-владелец и подчиненный справочник также называются связанными справочниками.
В терминах реляционных баз данных справочник-владелец это родительская таблица, подчиненный справочник - это дочерняя таблица.
Назначение подчиненных справочников
Любой справочник может использоваться как сам по себе,
так и быть подчиненным какому-либо другому справочнику. Например, справочник договоров может использоваться отдельно, а может
быть связан со справочником организаций.
Чтобы подчинить справочник какому-либо из справочников,
уже существующих в системе, в поле «Подчинен» следует выбрать
наименование этого справочника. Такой справочник в системе
1С:Предприятие называется владельцем.
В отличие от многоуровневого справочника, в котором все элементы имеют одинаковую структуру, использование механизма подчиненных справочников позволяет связать элементы разной структуры. В этом случае каждый элемент подчиненного справочника будет
связан с одним из элементов справочника-владельца.
Внешне работа с подчиненным справочником в системе
1С:Предприятие будет выглядеть следующим образом.
Если для подчиненного справочника установлен режим показа
в виде иерархического списка, то перед использованием справочника
сначала должен быть выбран элемент справочника-владельца. При показе на экране подчиненный справочник будет содержать в своем заголовке наименование элемента-владельца, а список элементов подчиненного
справочника будет содержать только элементы, относящие к элементувладельцу. При смене элемента-владельца информация в окне подчиненного справочника будет соответствующим образом обновлена.
Если открыть подчиненный справочник, не выбрав элементвладелец, то в окне подчиненного справочника не будет отображаться
ни одного элемента, а в заголовке окна будет выдано сообщение
«Не задан элемент-владелец».
250
При работе с системой 1С:Предприятие для подчиненного справочника может быть отключен показ в виде иерархического списка. В
этом случае в окне подчиненного справочника будут отображаться
все элементы этого справочника, то есть элементы, починенные разным владельцам, будут показываться вперемешку. Тем не менее, любой элемент подчиненного справочника «знает» своего владельца:
если для справочника включен режим «Редактировать в диалоге» (см.
ниже п. «Создание форм справочника»), наименование элементавладельца будет выдаваться в заголовке окна редактирования элемента справочника.
Установка текущего владельца
СпрДоговоры
=
СоздатьОбъект("Справочник.Договоры");
СпрДоговоры.ИспользоватьВладельца(ВыбрКонтрагент);
СпрДоговоры.ВыбратьЭлементы(); //открываем выборку по договорам выбранного контрагента
Информация о текущем элементе
Если справочник подчиненный, то будет полезным применение
следующих методов и атрибутов, которые позволяют получить информацию о текущем элементе справочника:
Таблица 25
Информация о текущем элементе
Атрибут
атрибут
Владелец
Описание
Этот атрибут содержит владельца текущего элемента подчиненного справочника, т. е. элемент справочника-хозяина,
к которому относится данный элемент. Атрибут доступен
для чтения и записи.
Пример, перенос всех договоров от одного котрагента к другому (справочник Договоры подчинен справочнику Контрагенты):
СпрДоговоры = СоздатьОбъект("Справочник.Договоры");
СпрДоговоры.ИспользоватьВладельца(Контрагент1);
СпрДоговоры.ВыбратьЭлементы();
Пока СпрДоговоры.ПолучитьЭлементы()=1 Цикл
СпрДоговоры.Владелец = Контрагент2;
СпрДоговоры.Записать();
КонецЦикла;
251
Периодические реквизиты
Включение опции «Периодический» позволяет указать для реквизита справочника хранение истории изменений его значения. Такой
реквизит в системе 1С:Предприятие называется периодическим и обладает следующим свойством: в отличие от «обычных» (не периодических) реквизитов, система 1С:Предприятие хранит значения такого
реквизита по датам их изменения. При обращении к значению такого
реквизита на некоторую дату выдается его значение на эту дату,
либо, если таковое отсутствует, – на ближайшую предыдущую дату,
на которую устанавливалось значение реквизита.
Подобное свойство реквизита справочника позволяет, например,
легко организовать хранение истории изменения курсов в справочнике валют.
К периодическому реквизиту можно обращаться при помощи
встроенного языка системы 1С:Предприятие – получать и записывать
значение реквизита на указываемую дату. Однако, следует иметь в виду, что при получении значения реквизита на какую-то дату извлекается его значение на указанную или (если значение на указанную дату
отсутствует) на ближайшую предыдущую дату, а запись значения периодического реквизита выполняется всегда на указанную дату.
В режиме использования конфигурации для периодического
реквизита можно вызвать окно «История». Это окно представляет собой таблицу, состоящую из двух граф: дата изменения значения реквизита справочника и значение на эту дату. Окно «История» позволяет редактировать историю изменений значения реквизита напрямую:
вводить новые строки, редактировать или удалять существующие.
Методы периодических реквизитов
//так мы узнаем, какая была у сотрудника категория на определенную дату Катег = СпрСотр.Категория.Получить(НекаяДата);
//так мы установим сотруднику категорию на определенную дату СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория);
Внимание! Эти методы можно применять, если ранее не применялся метод ИспользоватьДату
252
Установка даты выборки периодических реквизитов
//можно установить дату выборки периодических реквизитов
для всего справочника СпрСотр.ИспользоватьДату(НекаяДата);
//тогда ниже уже нельзя использовать методы Установить и Получить//доступ к периодическим реквизитам становится такой же, как
к обычным реквизитам Катег = СпрСотр.Категория; СпрСотр.Оклад =
6000;
Объект "Периодический"
Для работы с историей периодического реквизита очень удобно
использовать объект "Периодический".
Пример, вывести историю карьеры сотрудника за текущий год:
ИсторияКарьеры = СоздатьОбъект("Периодический");
ИсторияКарьеры. ИспользоватьОбъект ("Должность", ВыбрСотрудник);
ИсторияКарьеры.
ВыбратьЗначения(НачГода(РабочаяДата(),
КонГода(РабочаяДата()));
Пока
ИсторияКарьеры.ПолучитьЗначение()=1
Цикл
....Сообщить(Строка(ИсторияКарьеры.ДатаЗнач) + " " + Строка(ИсторияКарьеры.Значение));
КонецЦикла;
С помощью объекта Периодический можно также редактировать
и удалять значения. Полный список методов см. в Синтакспомощнике.
Проведение документов
При проведении документа часто требуется установить новое
значение периодического реквизита на определенную дату. Это называется движение документа. В этом случае следует применять метод
УстановитьРеквизитСправочника:
Процедура ОбработкаПроведения()
УстановитьРеквизитСправочника(Сотрудник, "Должность", НоваяДолжность, ДатаПеремещения);
КонецПроцедуры
Если документ имеет табличную часть и вы хотите, чтобы движения документа были привязаны к номеру строки документа, тогда
следует применять метод ПривязыватьСтроку.
Процедура ОбработкаПроведения()
253
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
ПривязыватьСтроку(НомерСтроки);
УстановитьРеквизитСправочника(Сотрудник, "Должность", НоваяДолжность, ДатаПеремещения);
КонецЦикла;
КонецПроцедуры
Подбор из справочника
Функция подбора позволяет выбирать несколько значений из
справочника или другого объекта, не закрывая его. Например, есть
документ РасходнаяНакладная, в котором пользователь может указать несколько товаров.
Организация подбора
Синтаксис ОткрытьПодбор (<Объект>,<ИмяФормы>, <КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)
ОткрытьПодбор("Справочник.
Номенклатура","ФормаДляПодбора",Конт,1);
Процедура
ОбработкаПодбора(Элемент,КонтФормы)
...НоваяСтрока(); ...Товар = Элемент; КонецПроцедуры
Можно воспользоваться контекстом формы и сразу перейти в
нужную группу, например:
ОткрытьПодбор("Справочник. Номенклатура", "ФормаДляПодбора", Конт,1); Конт.ИспользоватьРодителя(грпСпиртное);
Процедура
ОбработкаПодбора(Элемент,КонтФормы)
...НоваяСтрока(); ...Товар = Элемент; КонецПроцедуры
Установка и получение значений из подбора
КонтФормыПодбора.УстановитьЗначениеВПодборе(<ИмяРеквизита>,<Значение>)
<ИмяРеквизита> - строка с именем реквизита формы подбора
значения;
<Значение> - значение реквизита.
КонтФормыПодбора.ПолучитьЗначениеИзПодбора (<Выражение>)
<Выражение> - строковое выражение, значение которого вычисляется в контексте формы подбора и возвращается в качестве результата.
254
Другие полезные методы
Таблица 26
Полезные методы в 1С
Метод
Описание
Вид()
Установить или считать текущее название
вида справочника. Возвращает текущее
название вида справочника, как оно задано
в Конфигураторе, например "Сотрудники".
Установка вида справочника возможна
для реквизитов типа "Справочник",
т. е. справочник неопределенного вида.
ПредставлениеВида()
Получить пользовательское представление
вида справочника, как он задан в конфигураторе.Возвращает строковое значение,
содержащее пользовательское представление вида справочника (синоним).
Установить значение реквизита по его
имени.
<ИмяРеквизита> - строковое выражение,
УстановитьАтрибут
содержащее имя реквизита, как оно задано
(ИмяРеквизита, Значение)
в конфигураторе. <Значение> - выражение,
содержащее устанавливаемое значение
реквизита.
ПолучитьАтрибут
(ИмяРеквизита)
Получить значение реквизита по его имени. Возвращает значение реквизита.
Выбран()
Возвращает 1 - если элемент справочника
выбран, 0 - если не выбран. Часто применяется для проверки на ошибки, чтобы все
необходимые данные были указаны.
Выбрать(...)
Вызов диалога для выбора элемента справочника. Возвращает: 1 - если элемент выбран; 0 - если не выбран. Выбранный элемент становится текущим.
255
Чтение структуры справочников
Цикл по справочникам
КолвоСправочниковВКонфигурации = Метаданные. Справочник(); Для Ном=1 to КолвоСправочниковВКонфигурации Цикл
кфгСпр = Метаданные.Справочник(Ном);
Идентификатор = кфгСпр.Идентификатор();
ПолныйИдентификатор = кфгСпр.ПолныйИдентификатор();
Синоним = кфгСпр.Синоним();
Комментарий = кфгСпр.Комментарий();
КоличествоУроней = кфгСпр.КоличествоУроней();
ПодчиненЛи = кфгСпр.Владелец().Выбран();
Владелец = кфгСпр.Владелец();
ИдентификаторВладельца = кфгСпр.Владелец().Идентификатор;
.....<и так далее>
КонецЦикла;
т. е. если вызвать метод Метаданные.Справочник() без параметров, то
он вернет общее количество справочников в конфигурации. Если передать ему в качестве параметра номер или название справочника, то
он вернет справочник как объект конфигурации.
Цикл по реквизитам справочника
кфгСпрСотр = Метаданные.Справочник("Сотрудники");
КолвоРеквизитов = кфгСпрСотр.Реквизит();
Для Ном=1 to КолвоРеквизитов Цикл
кфгРекв = кфгСпрСотр.Реквизит(Ном);
Идентификатор = кфгРекв.Идентификатор();
ПолныйИдентификатор = кфгРекв.ПолныйИдентификатор();
Синоним = кфгРекв.Синоним();
Комментарий = кфгРекв.Комментарий();
Тип = кфгРекв.Тип(); //"Строка", "Число", "Справочник"
Вид = кфгРекв.Вид(); //напр. "Сотрудники"
Длина = кфгРекв.Длина();
Точность = кфгРекв.Точность();
Периодический = кфгРекв.Периодический();
.....<и так далее>
КонецЦикла;
256
т. е. если вызвать метод Метаданные.Справочник(Х).Реквизит() без
параметров, то он вернет общее количество реквизитов справочника
Х в конфигурации. Если передать ему в качестве параметра номер
или название реквизита, то он вернет реквизит справочника как объект конфигурации.
Обращение к атрибутам по имени
При работе с метаданными часто применяются следующие методы:
Таблица 27
Обращение к атрибутам по имени
Метод
УстановитьАтрибут
(ИмяРеквизита, Значение)
ПолучитьАтрибут
(ИмяРеквизита)
Описание
Установить значение реквизита по его
имени.
<ИмяРеквизита> - строковое выражение,
содержащее имя реквизита, как оно задано в конфигураторе. <Значение> - выражение, содержащее устанавливаемое
значение реквизита.
Получить значение реквизита по его
имени. Возвращает значение реквизита.
Примеры запросов для работы с иерархическими справочниками
В данном разделе показаны примеры решения типовых задач
при работе с иерархическими справочниками.
Получение элементов иерархического справочника, находящихся в подчинении заданной группы
Для получения подчиненных элементов иерархического справочника в языке запросов предусмотрена конструкция В ИЕРАРХИИ.
Пример использования В ИЕРАРХИИ
ВЫБРАТЬ
Номенклатура.Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.ЗакупочнаяЦена
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
257
Номенклатура.Родитель = &Группа
В данном примере будут получены все записи справочника Номенклатура, находящиеся в группе &Группа, включая ее саму, ее
подчиненные группы и элементы, принадлежащие подчиненным
группам.
Если же нас интересуют только элементы и группы, находящиеся непосредственно в заданной группе, то такие элементы мы можем
получить установив условие на поле Родитель.
Пример
ВЫБРАТЬ ПЕРВЫЕ 1
Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Родитель = &Родитель
В данном примере ссылка элемента, для которого необходимо
проверить наличие дочерних элементов, записывается в параметр запроса "Родитель". После выполнения такого запроса необходимо проверить результат на пустоту. Если результат не пустой, то подчиненные записи есть. Иначе - нет.
Пример
Если Запрос.Выполнить().Пустой() Тогда Сообщить("Зписей
нет"); Иначе Сообщить("Записи есть"); КонецЕсли;
Получение всех родителей элемента
В языке запросов не предусмотрено специальных средств
для получения всех родителей элемента. Для выполнения задачи
можно воспользоваться иерархическими итогами, однако получение
иерархических итогов оптимизировано для построения итогов большого количества записей, и не вполне эффективно для получения родителей одного элемента. Для более эффективного получения всех
родительских записей элемента, рекомендуется перебирать в цикле
его родителей небольшими порциями.
Пример
ТекущийЭлементНоменклатуры
=
ЭлементНоменклатура;
Запрос = Новый Запрос("ВЫБРАТЬ
| Номенклатура.Родитель,
| Номенклатура.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель.Родитель,
258
| Номенклатура.Родитель.Родитель.Родитель.Родитель. Родитель
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| |ГДЕ
| Номенклатура.Ссылка = &ТекущийЭлементНоменклатуры";
Пока Истина Цикл
Запрос.УстановитьПараметр("ТекущийЭлементНоменклатуры",
ТекущийЭлементНоменклатуры);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Прервать;
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Для НомерКолонки = 0 По Результат.Колонки.Количество() - 1
Цикл
ТекущийЭлементНоменклатуры = Выборка[НомерКолонки];
Если
ТекущийЭлементНоменклатуры
=
Справочники.Номенклатура.ПустаяСсылка() Тогда
Прервать;
Иначе
Сообщить(ТекущийЭлементНоменклатуры);
КонецЕсли;
КонецЦикла;
Если
ТекущийЭлементНоменклатуры
=
Справочники.Номенклатура.ПустаяСсылка() Тогда
Прервать;
КонецЕсли;
КонецЦикла;
В данном примере в окно служебных сообщений выводятся все
родители для ссылки, записанной в переменную ЭлементНоменклатура. В цикле выбирается по 5 родителей ссылки.
Если число уровней в справочнике ограничено и невелико, то
возможно получение всех родителей одним запросом без цикла.
259
Вывод иерархического справочника в отчет
Для вывода иерархического справочника в отчет с сохранением
иерархии необходимо пользоваться запросом аналогичным следующему:
ВЫБРАТЬ
Номенклатура.Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.ЗакупочнаяЦена
ИЗ Справочник.Номенклатура КАК Номенклатура
УПОРЯДОЧИТЬ ПО
Наименование ИЕРАРХИЯ
Данный запрос выбирает все записи из справочника и производит упорядочивание по иерархии. Результат будет упорядочен по
наименованию, с учетом иерархии.
Для того чтобы группы справочника размещались выше элементов необходимо в данном запросе заменить предложение УПОРЯДОЧИТЬ ПО на следующее:
УПОРЯДОЧИТЬ ПО
Номенклатура.ЭтоГруппа ИЕРАРХИЯ,
Наименование
Результат по-прежнему будет упорядочен по иерархии, однако
группы будут располагаться выше элементов.
Возможна также замена предложения УПОРЯДОЧИТЬ ПО на
предложение АВТОУПОРЯДОЧИВАНИЕ. В этом случае результат
будет упорядочен в соответствии с настройками справочника, т. е. если в справочнике указано, что группы должны располагаться выше
элементов, то они будут расположены выше.
Получить иерархическую структуру справочника также возможно и при помощи итогов.
Пример
ВЫБРАТЬ Номенклатура.Код, Номенклатура. Наименование
КАК Наименование, Номенклатура. ЗакупочнаяЦена ИЗ Справочник.Номенклатура
КАК
Номенклатура ГДЕ
(Номенклатура.ЭтоГруппа = ЛОЖЬ) УПОРЯДОЧИТЬ ПО Наименование ИТОГИ
ПО Номенклатура.Ссылка ТОЛЬКО ИЕРАРХИЯ
260
Получение итогов по иерархии
Для получения итогов по иерархии в запросе необходимо
в предложении ИТОГИ ПО указать ключевое слово ИЕРАРХИЯ после указания поля, по которому будет рассчитываться итоги. Пример
отчета "Обороты номенклатуры" с получением итогов по иерархии:
ВЫБРАТЬ
УчетНоменклатурыОбороты.Номенклатура КАК Номенклатура,
УчетНоменклатурыОбороты.Номенклатура.Представление,
УчетНоменклатурыОбороты.КоличествоОборот КАК КоличествоОборот ИЗ РегистрНакопления.УчетНоменклатуры.Обороты
КАК
УчетНоменклатурыОбороты ИТОГИ СУММА(КоличествоОборот) ПО Номенклатура ИЕРАРХИЯ
В результате данного запроса будут рассчитаны итоги не только
для каждой номенклатуры, но и для групп, к которым принадлежит та
или иная номенклатура.
В случае, когда не нужны итоги по элементам, а нужны итоги
только по группам, нам необходимо использовать в итогах конструкцию ТОЛЬКО ИЕРАРХИЯ. Пример:
Копировать в буфер обмена
ВЫБРАТЬ УчетНоменклатурыОбороты.Номенклатура КАК
Номенклатура, УчетНоменклатурыОбороты.Номенклатура. Представление, УчетНоменклатурыОбороты.КоличествоОборот КАК КоличествоОборотИЗ РегистрНакопления.УчетНоменклатуры.Обороты
КАК УчетНоменклатурыОбороты ИТОГИ СУММА (КоличествоОборот) ПО Номенклатура ТОЛЬКО ИЕРАРХИЯ
В результате данного запроса будут итоговые записи только для
групп номенклатуры.
Тема 4. Работа с документами
Документ - одно из основных понятий системы «1С: Предприятие». При помощи документов организуется ввод в систему первичной информации о совершаемых хозяйственных операциях.
В большинстве своем документы, которые создаются в процессе
настройки конфигурации, являются электронными аналогами стандартных бумажных документов, однако, использование этого типа
261
данных может выходить далеко за рамки простой фиксации информации о хозяйственных операциях.
Дата и время наиболее важные характеристики документов, так
как позволяют устанавливать строгую временную последовательность
совершения операций.
Документы создаются как и другие объекты метаданных в соответствующем узле дерева конфигурации.
Рисунок 138. Конструктор объекта – документ.
Реквизиты документа
Рисунок 139. Реквизиты документа.
262
Реквизиты документа. Разделяются на реквизиты и реквизиты
табличной части. Табличных частей может быть несколько.
Среди реквизитов документа выделяются стандартные. То есть
те, которые не определяет пользователь, но которые всегда есть
во всех документах. Просмотр стандартных реквизитов – через соответствующую кнопку закладки данные.
Рисунок 140. Стандартные реквизиты документа.
Формы документа
Документ может содержать несколько видов форм
 Форма документа.
 Форма списка документа.
 Форма выбора документа.
 Произвольная форма.
Рисунок 141. Возможные типы форм документов.
263
Работа с формой документа
Форма документа предназначена для внесения данных и корректировки отдельного документа.
При создании формы документа на неё выносятся автоматически управляющие элементы, отображающие существующие реквизиты документа. Состав управляющих элементов можно корректировать, добавлять новые элементы.
Рисунок 142. Управляемые элементы, устанавливаемые на форму документа.
Элемент "обычная группа" позволяет менять порядок расположения элементов, за счёт включения элементов в группу, кроме того в
свойствах элемента можно задать горизонтальную или вертикальную
группировку.
События обработки управляющих элементов
Для управляющих элементов предопределены события. События можно определять через контекстное меню элемента (команда
События) и через свойства элемента. При выборе некоторого события
автоматически создаётся процедура обработки соответствующего события.
264
Рисунок 143. Предопределённые события для управляющих элементов.
Например, при выборе события <ПриИзменении>, для реквизита табличной части Количество будет создан программный модульобработчик, связанный с данным событием изменения значения этого
реквизита. В качестве параметра для метода-обработчика передаётся
ссылка на элемент - Элемент, с которым связано рассматриваемое событие.
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
// Вставить содержимое обработчика.
КонецПроцедуры
Обработка данных документа
Обработка данных документа может производится на основе
модулей, выполняемых на клиенте и сервере, в зависимости от данных которые требуется обработать и которые необходимы для обработки. На стороне клиента доступны данные управляющих элементов
и реквизитов документа.
Данные управляющих элементов доступны через коллекцию документа Элементы данная коллекция содержит все управляющие
элементы Документа. Доступ к реквизитам осуществляется через
главный реквизит Объект, соответствующий всему документу.
В том случае, когда требуются данные справочников, констант,
макеты, сохранённые данные документа, необходимо использовать
модули выполняемые на сервере.
В частности как рассмотрено в примере обработки
265
Например, для созданного выше метода-обработчика ТоварыКоличествоПриИзменении пересчёт значения элемента Сумма может
быть произведён следующим образом.
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
// Вставить содержимое обработчика.
Стр=Элементы.Товары.ТекущиеДанные ;
Стр.Сумма=Стр.Количество*Стр.Цена;
КонецПроцедуры
Данный обработчик – выполняет пересчёт суммы при изменении
количества соответствующих единиц номенклатуры в табличной части.
В процедуре используются следующие объекты.
Элементы – Коллекция управляющих элементов формы.
Элементы.Товары – табличная часть формы (в данном случае
имя табличной часть – Товары).
Товары.ТекущиеДанные – текущая строка табличной части. Обратите внимание, если реквизитом табличной части является агрегатныей объект, то его свойства нельзя увидеть через ТекущиеДанные.
Через переменную Стр происходит выборка текущей строки
и зачем пересчёт значения суммы.
Пусть необходимо сделать обработчика события изменения реквизита Номенклатура табличной части документа. При изменении
номенклатуры автоматически должна подставляться цена новой выбранной номенклатурной единицы. В данном случае дляполучение
цены необходимо создать вспомогательный программный модуль,
например функцию, обеспечивающий получение цены номенклатурной единицы. В качестве входного параметра для данной функции
целесообразно задавать экземпляр соотвествующего справочника
(номенлатура) Данный программный модуль должен выполняться
на сервере.
Процедура ТоварыНоменклатураПриИзменении(Элемент)
// Вставить содержимое обработчика.
Стр=Элементы.Товары.ТекущиеДанные;
Стр.Цена=ПолучитьЦенуНоменклатуры(Стр.Номенклатура);
ТоварыКоличествоПриИзменении(Элемент) ;
КонецПроцедуры
266
Обработчик события "При изменении" поля Номенклатура
в табличной части. Для получения цены номенклатуры создана функция ПолучитьЦенуНоменклатуры(цену нельзя получить через объект
стр.Номенклатура )
&НаСервереБезКонтекста
Функция ПолучитьЦенуНоменклатуры(Номенклатура)
Возврат Номенклатура.ЦенаПокупки;
КонецФункции
Для выборки данных всей табличной части документа лучше
использовать объект как объект специальной коллекции Документы.
Данная коллекция включает все документы сохранённые с системе.
Для получения одного конкретного экземпляра документа необходимо позиционироваться на требуемом элементе данной коллекции
с помощью метода НайтиПоНомеру или НайтиДокумент.
Док=Документы.<ВидДокумента>.НайтиПоНомеру(НомерДок);
В данном случае объект Док будет соответствовать документу
с требуемым номером.
Для перебора данных табличной части документа можно использовать цикл.
Для Каждого ТекущаяСтрокаИзДок.Товары Цикл
КККК = текущаяСтрока.Количество;
КонецЦикла;
В данном случае выводится в переменную ККК значение реквизита табличной части Количество (Товары – имя табличной части документа).
Создание печатных форм документа
с помощью конструктора печати
Документ может иметь одну или нескольких печатных форм.
Для создания печатных форм может использоваться конструктор печати документа, вызываемый контекстным меню на элементе данного
документа дерева конфигурации.
267
Рисунок 144. Вызов конструктора печати документа.
Так как конструктор настроен на отнесение команды к одной из
групп команд. Предварительно необходимо создать соответствующую группу команд. Группа команд, это элемент интерфейса, обычно
закрепляемый в верхней части формы объектов конфигурации. Группа команд позволяет отображать и вызывать закреплённые за ней команды. Причём команды отображаются только те, которые созданы
в данном документе. Группы команд создаются же для конфигурации
в целом.
Рисунок 145. Отображение группы команд на объекте конфигурации.
Создаются группы команд в общем узле конфигурации.
268
Для созданной группы команд должна быть указана категория.
Категория группы команд определяет, где, в каком интерфейсе будет
отображаться данная группа.
Рисунок 146. Группы команд в дереве конфигурации
и задание категории для группы команд.
При создании печатной формы через конструктор печати конструктор создаёт следующие элементы.
Создаётся команда в соответствующем элементе объекта конфигурации (в данном случае в документе). Команда принадлежит
не форме, а непосредственно документу, как объекту конфигурации.
Рисунок 147. Создание макета печати.
Создаётся модуль команды, связанный с созданной командой.
Модуль команды включает клиентскую процедуру, вызываемую
при вызове команды, и серверную, вызываемую из клиентской части.
269
Рисунок 148. Модуль печати.
Кроме того в модуле менеджера документа создаётся программный модуль, который непосредственно получает данные документа
и вносит их в макет.
Создание печатной формы вручную
Для создания печатной формы вручную необходимо:
 Создать макет в документе. Разметить в макете именованные области (обычно - шапка, табличная часть, подвал). Задать выводимые ячейки – параметры (свойство тип заполнения в данных ячейках должно быть установлено как параметр).
 Создать на форме управляющий элемент и команду связанную с ним.
 Создать клиентскую процедуру, в которой осуществляется
создание табличного документа, вызов серверного метода (заполняющего документ) и отображение документа (ТабДок = Новый ТабличныйДокумент;ПроцПечать(ТабДок, ПараметрКоманды);ТабДок.
Показать();).
 Создать серверный метод в котором осуществляется вызов
макета, вызов и заполнеие его именованых областей.
Макет= Документы.ПоступлениеТоваров.ПолучитьМакет ("Макет"); - Вызов макета
270
ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); - вызов
именованной области – шапка.
 Заполение параметров
ОбластьШапка.Параметры.НомерДокумента=Док.Номер;
 Вывод в макет именованных областей.
ТабДок.Вывести( ОбластьШапка);
Объект конфигурации Документ является прикладным и предназначен для описания информации о совершенных хозяйственных
операциях или о событиях, произошедших в жизни организации вообще. На основе объекта конфигурации Документ платформа создает
в базе данных информационную структуру, в которой будут храниться, например, такие документы, как приходные накладные, или приказы о приеме на работу, или платежные поручения, или счета и т. д.
Характерной особенностью объекта конфигурации Документ
является то, что в процессе работы пользователь может самостоятельно создавать новые объекты этой структуры - новые документы.
Свойства документа отличается от свойств всех остальных объектов базы данных. Документ обладает способностью проведения.
Факт проведения документа означает, что событие, которое он отражает, повлияло на состояние учета. До тех пор, пока документ не проведен, состояние учета неизменно, и документ – не более чем черновик, заготовка. Как только документ будет проведен – изменения,
вносимые документом в учет, могут вступить в силу и состояние учета может быть изменено.
Поскольку документ вносит изменения в состояние учета, он
всегда «привязан» к конкретному моменту времени. Это позволяет
отражать в базе данных фактическую последовательность событий.
РАБОТА С ДОКУМЕНТОМ БЕЗ ТАБЛИЧНОЙ ЧАСТИ
Создадим документ «Оформление вклада»
Рисунок 149. Добавление документа.
271
Реквизиты
Рисунок 150. Реквизиты документа.
У каждого документа 1С существуют два стандартных реквизита: дата и номер.
Рисунок 151 -154. Настройка реквизитов.
Создадим форму документа:
272
Рисунок 155. Документ и форма документа.
Пусть при создании нового документа нужно, чтобы на форме
было заполнено поле Отделение банка.
Для этого:
Создадим новую константу и присвоим ей значение:
Рисунок 156-157. Создание и отображение константы на форме.
В свойствах формы документа Оформление вклада найдем событие ПриСозданииНаСервере.
Код процедуры должен выглядеть так:
273
Рисунок 158. Программирование собыитя ПриСоздании.
Добавим в справочник Вклады новый реквизит:
Рисунок 159. Добавление нового реквизита.
То есть все документы при оформлении вклада будут записываться в справочник Вклады.
Далее нужно написать обработку проведения документа. В
нашем случае в справочник Вклады будет добавляться одна новая
строчка с данными о вкладе.
Откроем модуль объекта документа:
Рисунок 160. Открытие модуля объекта.
Запишем код:
274
Рисунок 161. Программирование процедуры ОбработкаПроведения.
Теперь при проведении документа в справочник Вклады будет
добавляться новая строка.
Далее нужно создать обработку удаления документа.
Рисунок 162. Программирование процедуры ОбработкаУдаления.
При удалении документа из справочника Вклады будет удаляться строка, соответствующая документу.
РАБОТА С ДОКУМЕНТОМ С ТАБЛИЧНОЙ ЧАСТЬЮ
Создайте новый справочник Каталог растений:
Рисунок 163. Создание нового справочника и реквизитов справочника.
275
Создайте новый документ Поступление растений:
Рисунок 164. Документ ПоступлениеРастений. Табличная часть.
Создайте форму документа:
Рисунок 165. Документ ПоступлениеРастений.
276
Сделаем так, чтобы значение реквизита Сумма подсчитывалось
автоматически.
У табличных полей есть свойство ТекущиеДанные, которое позволяет обращаться к текущей редактируемой строке. Данные редактируются на клиенте.
Используем событие ПриИзменении для поля Количество и поля Цена:
Рисунок 166. Открытие события ПриИзменении.
Код в модуле формы документа:
Рисунок 167. Программирование процедур.
Добавим на форму автоматический подсчет суммы по документу:
277
Рисунок 168. Отображение Табличной части документа ПоступлениеРастений.
Чтобы исключить запись строк с нулевым количеством, добавим
в модуль формы обработку события ПередЗаписью:
Рисунок 169. Модуль объекта. Процедура ПередЗаписью.
Обработка проведения документа:
278
Рисунок 170. Модуль документа ПоступлениеРастений.
Тема 5. Регистры накопления
Регистры - объекты конфигурации, которые позволяют создавать в базе данных структуры, предназначенные для накопления информации в удобном для последующего анализа виде.
Использование таких хранилищ данных позволяет, с одной стороны, накапливать в них данные, поставляемые различными документами (или другими объектами информационной системы), а с другой
стороны, легко создавать нужные отчеты или использовать этиданные
в алгоритмах работы конфигурации. Обычно регистры не доступны
пользователю для непосредственного ввода данных ввод в данные регистров (движение регистров) - обычно производится через другие
объекты – регистраторы.
Для каждого регистра могут быть определены регистраторы объекты, обеспечивающие его движение. С другой стороны объекты
информационной базы могут являться регистраторами для различных
регистров.
Регистр имеет следующие характеристики:
Измерения - параметры в которых задаётся информация,
например – Склад, Товар;
Ресурсы – непосредственно сама информация, показатели,
отображающие некоторое значение в введённых измерениях, например, количество некоторого товара на определённом складе, или стоимость данного товара на данном складе.
Кроме того может быть определена некоторая дополнительная
информация в регистре – реквизиты.
279
Данные об объекте-регистраторе, вызвавшем движение, также
обычно сохраняются в виде характеристики регистра.
Выделяются несколько типов регистров, обеспечивающие учёт
различных сторон деятельности предприятия.
 Регистры сведений.
 Регистры накопления.
 Бухгалтерские регистры.
 Регистры расчёта.
Регистры накопления в системе 1С: Предприятие используются
для накопления информации о наличии и движении средств - товарных, денежных и других. Информация о хозяйственных операциях
в регистры накопления вводится с использованием документов (регистраторов) и используется, например, для получения отчетных форм.
Регистр накопления представляет собой n-мерную систему координат, в узлах которой хранятся совокупные данные. Оси такой системы координат будем называть измерениями регистра, а хранящиеся в узлах данные - ресурсами регистра. Содержимое регистра накопления можно представить в виде таблицы с количеством колонок,
равным сумме измерений и ресурсов регистра накопления.
Помимо измерений и ресурсов, для регистра накопления может
быть создан набор реквизитов. Реквизиты позволяют включать в движения регистров различную дополнительную информацию. Реквизиты не влияют на значения ресурсов регистра и могут использоваться
для анализа движений регистра.
В системе 1С: Предприятие возможно использование регистров
накопления двух типов: регистры остатков и регистры оборотов.
Для регистра остатков методы встроенного языка позволяют получить остатки регистра накопления на заданный момент времени. Есть
возможность фильтрации по значениям измерений, а также получения
остатков в разрезе других измерений. Регистры оборотов предназначены для хранения информации, для которой понятие остатка лишено
смысла, например, сумм продаж в разрезе покупателей.
В программных модулях для общих действий над регистром
накопления (получение остатков и оборотов по данным регистра
накопления, поиска нужных записей, формирования выборок, создания форм и макетов) служит объект РегистрНакопленияМенеджер.<Имя регистра накопления>. Для считывания и занесения набо280
ра
записей
в базу данных по определенному условию отбора служит объект РегистрНакопленияНаборЗаписей.<Имя регистра накопления>. Для динамического обхода записей регистра служит объектРегистрНакопленияВыборка.<Имя регистра накопления>.
Объектами, отображающими движение средств предприятия то
есть, хозяйственную операцию являются документы. Однако, движение одних и тех же средств может отображаться различными документами. Кроме того данные о движении хозяйственных средств
предприятия в документах хранятся в несистематизированном виде,
что затрудняет формирование отчётности. Поэтом для обеспечения
удобства анализа данных деятельности предприятия в системе 1С были введены дополнительные объекты –
Регистры накопления служат для накопления данных об остатках или движения хозяйственных средств. Соответственно выделяются регистры накопления остатков и регистры накопления движения.
Регистр накопления являются подчиненными объектами конфигурации.
Изменение состояния регистра накопления происходит, как правило, при проведении документа и заключается в том, что в регистр
добавляется некоторое количество записей. Каждая запись содержит
значения измерений, значения приращений ресурсов, ссылку на документ, который вызвал эти изменения (регистратор), и «направление» приращения (приход или расход). Направление приращения является системной характеристикой и создаётся автоматически
для любого регистра накоплений. Такой набор записей называется
движениями регистра накопления.
Пример набора движения регистров приведён в табл. 27.
Таблица 27
Пример регистра
Ссылка
на регистратор
(документ)
Ref1
Ref1
Ref2
Ref3
Номер
строки
в регистраторе
1
2
1
1
Измерения
Товар
Чайник
Вентилятор
фен
Пылесос
281
Склад
Основной
Основной
Розничный
Основной
Ресурсы
Количество
10
5
20
5
Сумма
30000
25000
40000
50000
Ref3
2
Чайник
Основной
20
40000
При отмене проведения документа удаляются соответствующие
данному документу записи в регистрах накопления.
Для того что бы обеспечить использование регистров остатков
необходимо
Создать в дереве объектов конфигурации требуемые регистры.
Задать для регистров - измерения, ресурсы (при необходимости создаются реквизиты регистра)
Связать регистры с регистраторами. То есть с объектами системы, обеспечивающими движение регистров (с определёнными документами)
Задать в регистраторах движение регистров. Для документов
движение выполняется при их проведении.
Создание регистров движений, как и других объектов конфигурации, выполняется в дереве объектов конфигурации, как и для других. Для задания характеристик регистров используется как и для
других объектов конфигурации окно редактирования объектов.
Рисунок 171. Регистр накопления ОтстакиМатериалов.
282
Создание параметров регистра накоплений
Регистры необходимо отнести к определённым подсистемам,
для обеспечения возможности их просмотра через интерфейс подсистем.
Параметры реквизитов – измерения, ресурсы и реквизиты задаются на закладке данные.
Рисунок 172. Регистр накопления Остатки материалов. Измерения и ресурсы.
Данные регистров
Связывание регистраторов с регистрами происходит или в окне
редактирования объекта конфигурации назначаемого для регистра
регистратором (закладка "движения") или в окне редактирования регистра (закладка регистраторы)
Задание движения регистров
Как уже отмечалось, движение регистров выполняется при проведении документа, являющегося регистратором для данного регистра.
Для задания движения необходимо связать данные объектов регистраторов с измерениями регистра и ресурсами.
Движение регистров, связанное с регистраторами может быть
создано с помощью конструктора движений. Кнопка вызова конструктора движений становится активна на окне редактирования объектов при задании для объекта (документа) регистров в которых выполняется движение связанное с данным объектов (закладка окна редактирования объекта – "движения").
283
Рисунок 173. Документ ПоступлениеТоваров.
Задание движения регистров для документа. Вызов конструктора движений.
Рисунок 174. Конструктор движения регистров.
284
Конструктор движений
В конструкторе движений необходимо в поле "Регистры" выбрать регистры, для которых выполняются движения.
Для полей регистра (измерений и ресурсов) регистра задать
формулы, по которым выполняются расчёт их значений.
При заполнением формул необходимо выбрать необходимую
табличную часть документа из соответствующего выпадающего
списка. Для заполнения можно воспользоваться кнопкой "заполнить
выражения" при этом сопоставление полей регистра и реквизитов документа произойдёт на основе их типов. Для уточнения выражений
может потребоваться ручное заполнение. При этом необходимо выбрать необходимое выражение и кликнуть по необходимому реквизиту в списке реквизитов.
После заполнения выражений при нажатии кнопки "Ок" будет
сформирована процедура ОбработкаПроведения(Отказ,Режим) в модуле документа. Данная процедура будет выполнятся при проведении
документа.
Рисунок 175. Содержание процедуры обработка проведения.
В данной процедуре используются следующие объекты.
285
Движения – коллекция объектов, связанных с движения документа (регистры). Доступна в контексте документа.
Движение – объект, соответствующий движению регистра, выбранного в коллекции Движения. Содержит все поля соответствующего регистра.
Товары – коллекция, соответствующая табличной части документа. (уже проходили)
Для выполнения движения необходимо
Установить флаг для требуемого регистра Записывать в значение Истина - Движения.<ИмяРегистра>.Записывать = Истина.
создать объект соответствующий новой записи движения методом <ИмяДвижения>= Движения.<ИмяРегистра>. Добавить()
Заполнить поля данного объекта движения (<ИмяДвижения>.<ИмяПоля>=Выражение). Данные выражения автоматически
формировались в конструкторе движений.
Данные действия не сложно выполнить вручную.
При этом создание объекта движения и его заполнение выполняется в цикле на каждую строку табличной части.
Просмотр данных движения регистров
В прикладных решениях 1С пользователю обычно непосредственно не предоставляется возможность изменять данные движения
регистров. Однако система предоставляет возможность просмотра
данных движения (это выполняется при отнесении регистров к подсистеме), однако, по умолчанию данная возможность в интерфейсе не
активирована. Доступ к интерфейсу подсистем. Узел подсистемы/контекстное меню/Все подсистемы (ПравоеПодОкно-Командный
интерфейс)
286
Рисунок 176. Активация команды просмотра данных движения регистров.
При этом целесообразно, что бы просмотр регистров был отделён от других команд панели навигации переместит их в отдельную
группу из обычной.
Рисунок 177. Перемещение команды просмотра регистров
в отдельную панель в панели навигации.
Рисунок 178. Команда просмотра регистров и окно просмотра регистров
в режиме предприятия.
287
Создадим регистр накопления Вклады для записи прихода денежных средств.
Рисунок 179. Регистр накопления «Вклады».
Рисунок 180. Регистр накопления Вклады. Измерения и ресурсы.
Рисунок 181. Свойства «Клиент».
288
Рисунок 182. Свойства «ВидВклада».
Рисунок 183. Свойства «Отделение».
Создадим документ ОформлениеВклада2:
Рисунок 184. Документ «ОформлениеВклада2».
289
Для создания движений регистра воспользуемся конструктором:
Рисунок 185. Движение ресгистра в документе «ОформлениеВклада2».
Рисунок 186. Конструктор движения регистров.
290
После нажатия на кнопку Ок должно получиться:
Рисунок 187. Модуль объекта документ «ОформлениеВклада2».
В режиме использования должно получиться:
Рисунок 188. Просмотр движений регистра.
Создадим документ Выдача денег:
291
Рисунок 189. Документ «ВыдачаДенег».
Рисунок 190. Конструктор движения регистров.
В режиме использования должно получиться:
292
Рисунок 191. Движение регистра документа «ВыдачаДенег».
ОБРАЩЕНИЕ К ИТОГАМ РЕГИСТРА
Пусть нам нужно определить сумму вкладов клиента по всем
отделениям и по всем видам вкладов:
Рисунок 192. Обработка «ОстаткиБанк».
293
Рисунок 193. Модуль формы обработки «ОстаткиБанк».
Пусть нам нужно определить сумму вкладов клиента по выбранному отделению и по всем видам вкладов:
Рисунок 194. Форма обработки «ОстаткиБанк1».
294
Рисунок 195. Моудль обработки «ОстаткиБанк1».
Примеры работы с регистрами
Пример 1
Прочтение записи регистра накопления оборотов с возможностью
отбора и упорядочивания
Процедура КакПрочитатьЗаписиРегистраНакопленияОборотов()
ОрганизацияПоУмолчанию =
БухгалтерскийУчетПереопределяемый.
ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияУслуг.Период,
| РеализацияУслуг.Регистратор,
| РеализацияУслуг.НомерСтроки,
| РеализацияУслуг.Активность,
| РеализацияУслуг.Организация,
| РеализацияУслуг.СчетРасходов,
| РеализацияУслуг.НоменклатурнаяГруппа,
| РеализацияУслуг.Подразделение,
| РеализацияУслуг.Сумма
|ИЗ
| РегистрНакопления.РеализацияУслуг КАК РеализацияУслуг
|ГДЕ
295
| РеализацияУслуг.Организация = &ВыбОрганизация
|УПОРЯДОЧИТЬ ПО
| РеализацияУслуг.Сумма УБЫВ";
Запрос.УстановитьПараметр("ВыбОрганизация",
ОрганизацияПоУмолчанию);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(
Строка(ВыборкаДетальныеЗаписи.Период) + " " +
ВыборкаДетальныеЗаписи.Сумма
);
КонецЦикла;
КонецПроцедуры
Пример 2
Получение оборотов регистра накопления оборотов за период
Процедура КакПолучитьОборотыРегистраНакопленияОборотов
ЗаПериод()
ОрганизацияПоУмолчанию =
БухгалтерскийУчетПереопределяемый.
ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияУслугОбороты.Организация,
| РеализацияУслугОбороты.СчетРасходов,
| РеализацияУслугОбороты.НоменклатурнаяГруппа,
| РеализацияУслугОбороты.Подразделение,
| РеализацияУслугОбороты.СуммаОборот
|ИЗ
| РегистрНакопления.РеализацияУслуг.Обороты(
| &НачалоПериода, &КонецПериода
| ) КАК РеализацияУслугОбороты
|ГДЕ
| РеализацияУслуг.Организация = &ВыбОрганизация";
Запрос.УстановитьПараметр("ВыбОрганизация",
ОрганизацияПоУмолчанию);
296
Запрос.УстановитьПараметр("НачалоПериода", '20130101');
Запрос.УстановитьПараметр("КонецПериода", '20131231');
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.СуммаОборот);
КонецЦикла;
// Для регистров оборотов оборот подсчитывается как сумма
всех движений.
// Параметры таблицы Обороты(НачалоПериода, КонецПериода, Периодичность,
// Условие).
КонецПроцедуры
// ЗарплатаКВыплате - регистр накопления остатков
// Измерения: Организация, ФизическоеЛицо, СтатьяФинансирования,
// СтатьяРасходов, Сотрудник, Подразделение,
// ПериодВзаиморасчетов, ХарактерВыплаты
// Ресурсы: СуммаКВыплате
Пример 3
Прочтение записи регистра накопления остатков с возможностью
отбора и упорядочивания
Процедура КакПрочитатьЗаписиРегистраНакопленияОстатков()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗарплатаКВыплате.Период,
| ЗарплатаКВыплате.Регистратор,
| ЗарплатаКВыплате.НомерСтроки,
| ЗарплатаКВыплате.Активность,
| ЗарплатаКВыплате.ВидДвижения,
| ЗарплатаКВыплате.Организация,
| ЗарплатаКВыплате.ФизическоеЛицо,
| ЗарплатаКВыплате.СтатьяФинансирования,
| ЗарплатаКВыплате.СтатьяРасходов,
| ЗарплатаКВыплате.Сотрудник,
| ЗарплатаКВыплате.Подразделение,
297
| ЗарплатаКВыплате.ПериодВзаиморасчетов,
| ЗарплатаКВыплате.ХарактерВыплаты,
| ЗарплатаКВыплате.СуммаКВыплате
|ИЗ
| РегистрНакопления.ЗарплатаКВыплате КАК ЗарплатаКВыплате";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(
Строка(ВыборкаДетальныеЗаписи.Период ) + " " +
ВыборкаДетальныеЗаписи.Сотрудник + " " +
ВыборкаДетальныеЗаписи.ВидДвижения + " " +
ВыборкаДетальныеЗаписи.СуммаКВыплате;
КонецЦикла;
КонецПроцедуры
Пример 4
Получение остатков регистра накопления остатков на дату
Процедура
КакПолучитьОстаткиРегистраНакопленияОстатковНаДату()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗарплатаКВыплатеОстатки.Организация,
| ЗарплатаКВыплатеОстатки.ФизическоеЛицо,
| ЗарплатаКВыплатеОстатки.СтатьяФинансирования,
| ЗарплатаКВыплатеОстатки.СтатьяРасходов,
| ЗарплатаКВыплатеОстатки.Сотрудник,
| ЗарплатаКВыплатеОстатки.Подразделение,
| ЗарплатаКВыплатеОстатки.ПериодВзаиморасчетов,
| ЗарплатаКВыплатеОстатки.ХарактерВыплаты,
| ЗарплатаКВыплатеОстатки.СуммаКВыплатеОстаток
|ИЗ
| РегистрНакопления.ЗарплатаКВыплате.Остатки(
| &ПараметрПериод) КАК ЗарплатаКВыплатеОстатки";
Запрос.УстановитьПараметр("ПараметрПериод", ТекущаяДата());
298
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(
Строка(ВыборкаДетальныеЗаписи.ПериодВзаиморасчетов)
+ " " + ВыборкаДетальныеЗаписи.Сотрудник + " " +
ВыборкаДетальныеЗаписи.СуммаКВыплатеОстаток + " "
);
КонецЦикла;
// Параметры таблицы Остатки(Период, Условие).
КонецПроцедуры
Изменение записи регистра накопления
Процедура МодификацияЗаписейРегистраНакопления()
ВыбДок = Документы.ПоступлениеТоваровУслуг.Выбрать();
Если ВыбДок.Следующий() Тогда
Набор =
РегистрыНакопления.НДСПредъявленный.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(ВыбДок.Ссылка);
Набор.Прочитать();
// изменение существующих записей
Для Каждого Движение Из Набор Цикл
Движение.НДС = 0;
КонецЦикла;
// добавление новых записей
Движение = Набор.ДобавитьРасход();
Движение.НДС = 100;
Движение.Период = ТекущаяДата();
Движение = Набор.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.НДС = 300;
Движение.Период = ТекущаяДата();
// удаление существующих записей
Набор.Удалить(0);
Набор.Записать(Истина);
КонецЕсли;
КонецПроцедуры
299
Тема 6. Работа с отчетами
Отчеты – это прикладные объекты конфигурации. Они предназначены для обработки накопленной информации и получения сводных данных в удобном для просмотра и анализа виде. Конфигуратор
позволяет формировать набор различных отчетов, достаточных
для удовлетворения потребности пользователей системы в достоверной и подробной выходной информации.
Как правило, для формирования выходных данных отчет использует систему компоновки данных. Но, вообще говоря, отчет может содержать произвольный алгоритм формирования «бумажного»
или «электронного» отчета на встроенном языке.
Отчет может содержать одну или несколько форм, с помощью
которых, при необходимости, можно организовать ввод каких-либо
параметров, влияющих на ход алгоритма.
Выполнение отчетов в фоновом режиме
Отчеты, использующие систему компоновки данных, могут
формироваться в фоновом режиме. Запустив отчет пользователь может продолжать свою работу с программой, а на время формирования
отчета вместо данных будет отображаться специальная картинка.
Рисунок 196. Создание новых отчетов в 1С 8.3 и 8.2.
300
Рисунок 197. Созданные отчеты в 1С Предприятие.
Создание и настройка отчетов в 1С 8.3
Для того, что бы создать или настроить отчет, необходимо знать
встроенный язык программирования 1С 8.3 и язык запросов 1С.
Как ни крути, в основе создания практически любого отчета лежит
первоначальный запрос, который получает данные. Эти данные мы
обрабатываем и выводим в удобной пользователю форме.
Отчеты, это главное в любой информационной системе, поэтому
фирма 1С обратила на разработку отчетов пристальное внимание и
создала большое количество конструкторов и механизмов для создания отчетов.
Рассмотрим основные методики создания отчетов
Как сделать отчет в 1С с помощью макета
Создание с помощью макета – самый рутинный способ. Однако,
к нему часто прибегают от безысходности, т.к. в этом способе разработчик полностью прописывает кодом каждое действие, а значит мы
можем сделать всё, что угодно. Этим не могут похвастаться другие
механизмы.
Но в этом случае все пунктики, меню и прочие «бантики» придется прописывать вручную, что очень трудоёмко.
Создание отчета с помощью конструктора выходной формы
Конструктор выходной формы – встроенный в платформу механизм, который облегчает разработку отчета. Конструктор доступен
только для обычный форм.
301
Рисунок 198. Запуск конструктора выходной формы.
Конструктору указывается запрос и все необходимые параметры
будущего отчета, а он в свою очередь, генерирует модули и формы
отчета. Механизм основан на объекте встроенного языка 1С 8.2 – ПостроительОтчетов.
Создание отчета с помощью Универсального отчета
Универсальный отчет – механизм типовых конфигураций,
позволяющий облегчить разработку отчетов в системе. Этот способ
был самым популярным до появления СКД. Метод, так же, основан
на построителе отчетов. В идеале, отчет должен быть построен по регистру накопления.
Универсальный отчет имеет большой функционал, удобный интерфейс настроек привычный пользователю:
302
Рисунок 199. Создание отчета.
Отчеты на основе Системы компоновки данных
Это самый прогрессивный метод создания отчетов в 1С, рекомендованный и самой фирмой 1С. Система компоновки данных
(СКД) появилась в платформе 1С в версии 8.1.
СКД позволяет создать не сложные отчеты вообще без строчки
программирования, потому что он имеет очень гибкий и функциональный конструктор создания схемы компоновки данных:
Рисунок 200. Отчет «ТоварыВЯчейках».
303
Во всех последних конфигурациях все отчеты написаны с использованием системы компоновки данных.
Отличие внешних отчетов от внутренних
Механизм внешних отчетов был создан для того, что бы отлаживать отчеты в процессе разработке.
Единственное отличие при разработке решения – вы не можете
обратиться к внешнему отчету «по имени» в отличии от встроенного
отчета.
Отличие отчетов от обработки
На самом деле – практически ничем. Главное различие – назначение использования объекта: отчеты нужны для отображения информации, а обработки для изменения информации.
Основные различия в свойствах – в отчетах можно указать Основную схему компоновки данных (СКД) и указать настройки для
сохранения параметров отчетов.
Система компоновки данных
Система компоновки данных представляет собой механизм, основанный на декларативном описании отчетов. Он предназначен для
построения отчетов, а также вывода информации, имеющей сложную
структуру и содержащий произвольный набор таблиц и диаграмм.
Рисунко 201. Диаграмма Динамика Продаж.
304
Устройство системы компоновки данных
Система компоновки данных позволяет реализовать следующие
возможности:
 создание отчета без программирования;
 использование автоматически генерируемых форм просмотра и настройки отчета;
 разбиение исполнения отчета на этапы;
 исполнение отдельных этапов построения отчета на различных компьютерах;
 независимое использование отдельных частей системы
компоновки данных;
 программное управление процессом выполнения отчета.
Основные элементы системы компоновки данных представлены
на следующей схеме.
Рисунок 202. Основные элементы системы компоновки данных.
305
Схема компоновки данных
Схема компоновки данных описывает суть данных, которые
предоставляются отчету (откуда получать данные и как можно управлять компоновкой данных). Представляет собой базу, на основе которой могут быть сформированы всевозможные отчеты. Схема компоновки данных может содержать:
 текст запроса с инструкциями системы компоновки данных;
 описание нескольких наборов данных;
 подробное описание доступных полей;
 описание связей между несколькими наборами данных;
 описание параметров получения данных;
 описание макетов полей и группировок;
 и др.
Настройки компоновки данных
Настройки компоновки данных описывают все, что может
настроить разработчик или пользователь в некоторой установленной
схеме компоновки данных. Настройки компоновки данных могут содержать:
 отбор;
 упорядочивание;
 условное оформление;
 структуру отчета (составные части будущего отчета);
 параметры получения данных;
 параметры вывода данных;
 и др.
Макет компоновки данных
Макет компоновки данных представляет собой уже готовое описание того, как должен быть сформирован отчет. В нем соединяется
схема компоновки и настройки компоновки. Фактически макет компоновки данных представляет собой результат применения конкретных настроек к схеме компоновки и является готовым заданием процессору компоновки на формирование отчета нужной структуры
с учетом конкретных настроек.
Элемент результата компоновки данных
Результат компоновки данных представляется набором элементов результата компоновки данных. Как самостоятельная логическая
сущность результат компоновки данных не существует, существуют
306
только его элементы. Элементы результата компоновки данных можно вывести в табличный документ для представления их пользователю, или в другие виды документов. Также имеется возможность программного вывода элементов результата компоновки в объекты вида
Дерево значений или Таблица значений.
Работа с системой компоновки данных в конфигурации
Система компоновки данных интегрирована в объект конфигурации Отчет. Это позволяет создавать отчеты без программирования.
У объекта конфигурации Отчет реализовано свойство "Основная
схема компоновки данных":
Рисунок 203. Создание отчета. Открытие схемы компоновки данных.
При нажатии кнопки открытия для этого свойства, вызывается
конструктор макета, который позволяет создать макет отчета, содержащий схему компоновки данных:
307
Рисунок 204. Конструктор макета.
После нажатия кнопки "Готово" будет открыт конструктор схемы компоновки данных.
Конструктор схемы компоновки данных позволяет описать исходные данные, которые будет использовать отчет: наборы данных,
связи между наборами данных, вычисляемые поля, ресурсы и т. д.
Рисунок 205. Отчет1 - Схема компоновки данных.
308
Также конструктор схемы компоновки данных предоставляет
возможность описать настройки компоновки данных, которые будут
использоваться по умолчанию (в том случае, если пользователь не
задаст собственные настройки). Настройки компоновки данных могут
быть созданы с помощью специального конструктора настроек компоновки данных, или вручную:
Рисунок 206. Схема компоновки данных. Настройки.
После выполнения этих действий отчет готов. В режиме 1С:
Предприятие система автоматически, на основании схемы компоновки данных, содержащейся в отчете, может создать форму отчета и
форму настроек отчета.
Таким образом, пользователь просто запускает отчет и получает
результат в соответствии с теми настройками, которые описал разработчик.
Набор данных
309
Рисунок 207. Диаграмма «Динамика продаж».
При необходимости пользователь может открыть форму настроек
отчета и отредактировать их, изменить структуру отчета и т. д. аналогично тому, как это делает разработчик в режиме конфигуратора.
Пример разработки отчета в системе компоновки данных
Консоль системы компоновки данных
Внешний отчет «Консоль системы компоновки данных» предназначен для специалистов, желающих подробнее узнать об устройстве
системы компоновки данных. Консоль позволяет выполнять отдельные шаги компоновки данных с просмотром промежуточных результатов в виде XML.
Например, при помощи консоли можно анализировать запросы,
генерируемые системой при выполнении компоновки с определенными настройками.
310
Рисунок 208. Консоль системы компоновки данных.
Консоль позволяет анализировать различные составляющие системы компоновки данных в виде XML:
311
Рисунок 209. XML документ.
Пример
Система компоновки данных представляет собой механизм, основанный на декларативном описании отчетов. Он предназначен для
построения отчетов, а также вывода информации, имеющей сложную
структуру и содержащий произвольный набор таблиц и диаграмм.
СОЗДАНИЕ МАКЕТА ПЕЧАТНОЙ ФОРМЫ СПРАВОЧНИКА
1. Откройте справочник «Преподаватели», вкладка Макеты.
Нажмите кнопку «Конструкторы»:
312
Рисунок 210. Справочник Преподаватели. Макеты.
2. С помощью конструктора построим печатную форму элемента списка справочника:
Рисунок 211. Конструктор печати. Реквизиты шапки.
313
Рисунок 212. Конструктор печати. Реквизиты табоичной части.
Рисунок 213. Конструктор печати. Реквизиты табличной части.
В подвале отчета информацию выводить не будем.
Должно получиться в конфигураторе:
Рисунок 214. Готовый макет «Преподаватели».
314
Должно получиться в конфигурации:
Рисунок 215. Полученный результат.
ВЫВОД ДАННЫХ СПРАВОЧНИКА С ПОМОЩЬЮ ОТЧЕТА
1. Создадим новый отчет:
Рисунок 216. Добавление отчета.
Рисунок 217. Отчет РодителиДети. Открытие схемы компоновки данных.
315
2. Добавим новый набор данных и выберем Конструктор запросов:
Рисунок 218. Добавление нового набора данных.
Рисунок 219. Открытие конструктора запроса.
316
3. Вкладка Таблицы: Выберите таблицы Родители и Дети.
В таблице Родители выберите Наименование и Улицу, а в таблице
Дети – Наименование и ДатуРождения
Рисунок 220. Конструктор запроса.
4. Выберите нужные поля:
Рисунок 221. Настройка полей и заголовков.
317
5. Откроем конструктор настроек:
Рисунок 222. Открытие конструктора настроек.
6. Выберите данные:
Рисунок 223. Конструктор настроек компоновки данных.
Рисунок 224. Конструктор настроек компоновки данных.
318
Рисунок 225. Конструктор настроек компоновки данных.
Должно получиться:
Рисунок 226. Настройки.
7. Установим отбор:
Рисунок 227. Отбор.
319
8. Заголовок отчета:
Рисунок 228. Другие настройки.
9. Должно получиться:
Рисунок 229. Формирование отчета.
ВЫВОД ДАННЫХ РЕГИСТРА
Пусть нам нужно разработать отчет по остаткам товаров.
Добавим новый отчет:
Рисунок 230. Добавление отчета.
320
Рисунок 231. Открытие схемы компоновки данных.
Рисунок 232. Добавление набора данных.
И откроем Конструктор запросов.
На вкладке Таблицы выберем Регистр накопления Остатки товаров и нужные нам поля:
Рисунок 233. Конструктор запроса.
321
Нажмем кнопку Ок.
Должно получиться:
Рисунок 234. Настройка полей и заголовков.
Теперь настроим отчет с помощью Мастера:
Рисунок 235. Открытие конструктора настроек.
Тип отчета – Список:
Рисунок 236. Тип отчета.
Доступные поля:
322
Рисунок 237. Конструктор настроек компоновки данных.
Группировку делать не будем:
Рисунок 238. Конструктор настроек компоновки данных.
Сделаем сортировку по товару:
Рисунок 239. Конструктор настроек компоновки данных.
323
Для того, чтобы подсчитывались итоги, на вкладке Ресурсы
нужно указать поле, по которому будут подводиться итоги:
Рисунок 240. Ресурсы.
Должно получиться в конфигурации:
Рисунок 241. Формирование отчета.
Тема 7. Макеты
Макет – это подчиненный объект конфигурации. Макеты позволяют хранить в конфигурации различные данные, требующиеся для
отображения в процессе работы как всего прикладного решения, так и
отдельных его объектов.
324
Рисунок 242. Конфигурация. Макеты.
Макеты могут содержать данные самых разных видов. Это может быть табличный документ, который напоминает электронные
таблицы и широко используется при формировании выходных форм
документов и отчетов; это может быть текстовый документ или двоичные данные. Также макет может содержать ActiveDocument
(например, документ Word, лист Excel или рисунок CorelDRAW),
HTML-документ или географическая схема.
Рисунок 243. Конструктор макета.
В качестве иллюстрации возможностей макета можно привести
макет, содержащий документ Word:
325
Рисунок 244. Макет перечень документов.
Конструктор макета
Конструктор макета позволяет создавать макеты, используемые
как объектами прикладного решения, так и самим прикладным решением в целом. Макеты могут содержать различные данные, которые
требуются для отображения информации в процессе работы.
Конструктор вызывается системой автоматически при создании
нового макета (например, при создании нового макета справочника
в окне конфигурации):
Рисунок 245. Конструктор макета.
326
Конструктор позволяет создавать как пустые макеты, так и макеты, содержащие некоторую информацию. Это может быть пустой
макет табличного документа, который напоминает электронные таблицы и широко используется при формировании выходных форм документов и отчетов; это может быть пустой макет текстового документа или макет, содержащий двоичные данные.
Также конструктор поддерживает создание макетов, содержащих ActiveDocument (например, документ Word, лист Excel или рисунок CorelDRAW). Кроме этого конструктор позволяет создавать макеты, содержащие HTML-документы или географические схемы. Для
отчетов, использующих систему компоновки данных, конструктор
позволяет создавать макеты, содержащие схему компоновки данных
и макет оформления компоновки данных.
Результатом работы конструктора будет являться готовый макет. Например, это может быть пустой макет табличного документа:
Рисунок 246. Макет справочника «CMRСервисы».
Или это может быть макет, содержащий документ Word:
327
Рисунок 247. Макет перечень документов.
Работа с объектами на основе табличной модели.
Запросы и обработки в среде 1с 8.3
Табличная модель подразумевает работу с данными на основе
запросов.
Запрос – агрегатный объект используемый для выборки данных
аналогичный с в реляционных базах данных.
Для задания содержания запроса используется специальный
язык аналогичный SQL
Пример содержания запроса
«ВЫБРАТЬ
| Номенклатура.Наименование,
| Номенклатура.ЦенаПродажи,
| Номенклатура.ВидНоменклатуры,
| Номенклатура.ОсновнаяЕдиницаИзмерения
|ИЗ
| Справочник.Номенклатура КАК Номенклатура»;
«ВЫБРАТЬ
| Номенклатура.ВидНоменклатуры,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Наименование)
КАК | Наименование,
| МИНИМУМ(Номенклатура.ЦенаПокупки) КАК ЦенаПокупки
| ИЗ
328
| Справочник.Номенклатура КАК Номенклатура
| СГРУППИРОВАТЬ ПО
| Номенклатура.ВидНоменклатуры»
Этапы работы с запросами
 Создание запроса
 Задание содержания запроса
 Выполнение запроса
 Обработка результатов запроса
Создание запросов выполняется как создание объектов в среде
1С, с помощью конструктора Новый.
Запрос = Новый Запрос;
Задание содержания запроса – задание его свойства «Текст».
Запрос.Текст =
«ВЫБРАТЬ
| Номенклатура.ВидНоменклатуры,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Наименование)
КАК Наименование,
| МИНИМУМ(Номенклатура.ЦенаПокупки) КАК ЦенаПокупки
|ИЗ
|
Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|
Номенклатура.ЭтоГруппа = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
|
Номенклатура.ВидНоменклатуры»;
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Для создания запросов в тексте модуля можно воспользоваться
конструктором запросов.
329
Рисунок 248. Вызов конструктора запроса.
Рисунок 249. Вызов конструктора запросов с обработкой результатов.
Рисунок 250. Формирование текста запроса в конструкторе запросов.
Кнопка "запрос" позволяет показать результаты.
330
В результате работы конструктора будет создан такой текст запроса
&НаСервере
Процедура ВыполнитьЗапросСервер()
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТ
АТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные
вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование,
| Номенклатура.ЦенаПродажи,
| Номенклатура.ВидНоменклатуры,
| Номенклатура.ОсновнаяЕдиницаИзмерения
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Результат =Запрос.Выполнить();
ВыборкаДетальныеЗаписи=Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки
[ИмяПоля]
ВыборкаДетальныеЗаписи
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТ
АТА
Вывод на печать. Работа с табличными документами
Табличный документ – агрегатный объект. Таблица типа Excel, используется для вывода данных в качестве печатных форм, для ввода
данных, могут быть и другие применения.
331
Рисунок 251. Табличный документ.
В программных модулях табличный документ создаётся с помощью универсального конструктора объектов Новый
ТабДок = НовыйТабличныйДокумент;
При создании печатных форм табличный документ используется
в виде особого типа табличных документов – макета. Для того что бы
табличный документ стал макетом в нём должно быть задано специальное свойство
Рисунок 252. Задание свойства «макет» для табличного документа.
Макет отличается тем, что в нём могут быть заданы именованные области для вывода, к которым можно обращаться при формировании печатной формы и помещать их в формируемых документ
как одно целое.
332
Рисунок 253. Макет с именованными областями.
Именованные области могут быть горизонтальными или вертикальными.
Создаются именованные области через команду основного меню
режима конфигуратора "Таблица/Имена/НазначитьИмя". При этом
строки или столбцы, включаемые в область, должны быть выделены
(рис.)
Рисунок 254. Создание именованной области.
Обращение к именованной области макета происходит методом
ПолучитьОбласть(«ИмяОбласти»)
ОбластьЗаголовок=Макет.ПолучитьОбласть(«Заголовок»);
Особенностью макетов является то, что их ячейки могут включать различный тип заполнения данными. Тип заполнения задаётся
свойством «Заполнение» из группы свойств ячейки - макет.
333
Рисунокт 255. Возможные типы заполнений данными ячейки макета.
Возможны следующие типы заполнений:
 Текст.
 Параметр.
 Шаблон.
Тип заполнения – Текст подразумевает, что данные как в ячейку
вводятся так и отображаются.
Заполнение «Параметр» позволяет использовать в качестве значения ячейки – реквизиты или переменные контекста, то есть объекта
вдля которого создаётся макет. Например, реквизиты справочника.
Заполнение «Шаблон» указывает, что в качестве значения используется шаблон, созданный на основе специального языка формул
табличных документов 1с. В данном практикуме язык формул таблиц
не будет рассматривать рассматриваться.
Создание печатного документа должно включать следующие
действия:
 Создание печатного документа (на клиенте).
ТабДок= Новый ТабличныйДокумент;
 Вызов макета (в приведённом ниже примере вызывается
макет из обработки с именем «ОбработкаПечать» (на сервере).
Макет==Обработки.ОбработкаПечать.Получить Макет(«Макет1»);
 Подготовка данных выводимых на печать.
В данной работе подготовка данных будет производиться на
основе запроса.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
Номенклатура.Наименование,
334
|
Номенклатура.Код,
|
Номенклатура.ЦенаПродажи,
|
Номенклатура.ВидНоменклатуры
|ИЗ
|
Справочник.Номенклатура КАК Номенклатура
|
|СГРУППИРОВАТЬ ПО
|
Номенклатура.ВидНоменклатуры,
|
Номенклатура.Наименование,
|
Номенклатура.Код,
|
Номенклатура.ЦенаПродажи";
Результат =Запрос.Выполнить();
 Заполнение формирование документа. Заполнение включает
получение необходимой области в макете операцией макета ПолучитьОбласть() с последующим выводом данной области в документ
методом документа Вывести() При получении области происходит
автоматическая подстановка значений параметров в документ и вычисление шаблонов. Пример кода заполнение документа приведён
ниже.
ТабДок.Очистить();
ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(ОбластьЗаголовок);
СтрокаТабл=Макет.ПолучитьОбласть("Детали");
ВыборкаСрокиР=Результат.Выбрать();
ПокаВыборкаСтрокаР.Следующий() Цикл
СтрокаТабл.Параметры.Заполнить(ВыборкаСтрокаР);
ТабДок.Вывести(СтрокаТабл, ВыборкаСрокиР.Уровень());
КонецЦикла;
 Отображение документа. Выполняется операцией документа
Показать( ).
Необходимо помнить, что получение данных из информационной базы (обычно требуемая при заполнении документа) можно делать в программных модулях, выполняемых на сервере. Тогда как
отображение документа, конечно же, возможно только на клиенте.
Поэтому обычно формирование печатного происходит в двух процедурах. В процедуре, с директивой &наКлиенте – в данной процедуре
происходит создание и отображение документа, и процедуре с дирек335
тивой &НаСервереили &НаСервереБезКонтекста происходит заполнение документа.
&НаКлиенте
ПроцедураПечатьСпр(Команда)
ТабДок= Новый ТабличныйДокумент;
ЗапонениеДок (ТабДок);
ТабДок.Показать( );
КонецПроцедуры
&НаСервере
ПроцедураЗапонениеДок (ТабДок);
//Действия по заполнению документа (действия 2, 3, 4, 5)
КонецПроцедуры
Формирование документа для печати может быть упрощено
за счёт использования конструктора вызываемого в из программного
модуля через контекстное меню. Конструктор, целесообразно вызывать для процедуры, выполняемой на сервере, то есть для создания
действий по заполнению документа.
Рисунок 256. Вызов конструктора запросов с обработкой результатов.
При вызове конструктора необходимо задать режим вывода результата в табличный документ (закладка Тип обработки)
336
Рисунок 257. Конструктор запросов с обработкой результатов.
Пример работы с запросами
Для облегчения труда разработчика технологическая платформа
содержит два специальных конструктора. Они служит для того, чтобы
помочь разработчику составить правильный текст запроса, используя
только визуальные средства. Выбирая мышью нужные поля таблиц,
разработчик может составить работоспособный запрос, даже не зная
синтаксиса языка запросов.
Конструктор запроса с обработкой результата – это один
из инструментов разработки. Он позволяет составить текст запроса
и сформировать фрагмент программного кода, который исполняет запрос и выводит результаты в табличный документ или диаграмму.
Пусть нам нужно вывести все данные справочника Родители.
Для того чтобы вызвать конструктор запроса, создадим новую
обработку:
Рисунок 258. Добавление обработки.
Создадим форму и установим курсор в модуль формы:
Теперь в главном меню появится новый пункт Текст:
337
Рисунок 259. Выбор пункта конструктор запроса.
Выберем пункт Конструктор запроса с обработкой результата.
На первом шаге своей работы конструктор предлагает выбрать
один из возможных вариантов обработки результата запроса: просто
обход результата для его дальнейшей программной обработки или
вывод данных в табличный документ или диаграмму.
Рисунок 260. Конструктор запроса с обработкой результата.
Изменить имя
ния/Псевдонимы:
поля
можно
338
на
вкладке
Объедине-
Рисунок 261. Объединение данных.
Задать порядок сортировки на вкладке Порядок:
Рисунок 262. Конструктор запролса с обработкой результата.
Нажав на кнопку ОК, сформируем запрос.
Рисунок 263. Обработка данных справочника «Родители».
Настроим вывод данных запроса в форме.
339
Создадим реквизит ТабДок:
Рисунок 264. Свойства Реквизита.
Создадим кнопку Печать:
Рисунок 265. Обработка данных справочника.
Внесем изменения в модуль:
340
Рисунок 266. Модуль формы обработки.
Должно получиться:
Рисунок 267. Данные справочника «Родители».
341
Пусть нужно вывести данные справочника Вклады в окно сообщений.
Добавим новую обработку, в модуле формы обработки вызовем
конструктор запроса:
Рисунок 268. Открытие конструктора запроса.
В конструкторе:
Рисунок 269. Конструктор запроса.
Рисунок 270. Конструктор запроса.
342
Доработаем запрос:
На форме создадим кнопку:
Рисунок 271. Создание кнопки на форме.
В модуле формы:
Рисунок 272. Модуль формы.
343
Тема 8. Подборы и ввод на основании.
Подбор на основании
Для начала нужно на форме документа создать кнопку Подбор
для справочника сотрудники и чтобы выбранные элементы добавлялись в табличное поле документа.
Создаем на форме следующие элементы:
Рисунок 273. Создание элементов на форме.
При нажатии на кнопку ПОДБОР (Процедура КоманднаяПанельПодбор) должна открыться форма подбора сотрудников:
Для Списка значений (СЗ) - ОткрытьФормуВыбораСотрудника(ЭлементыФормы.СписокСотрудников, ЭтотОбъект, Ложь, );
Для Табличного поля (ТП) –
ОткрытьФормуВыбораСотрудника(ЭлементыФормы.ТабличноеПолеРаботники, ЭтотОбъект, Ложь, );
Далее открывается форма подбора сотрудника, при двойном щелчке сотрудник
должен
добавится
в
СЗ
или
ТП.
Для этого у СЗ и ТП в Свойства - События добавляем ОбработкуВыбора:
Для Списка значений (СЗ) - Процедура СписокСотрудниковОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Для Табличного поля (ТП) - Процедура ТабличноеПолеРаботникиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
344
А в них пропишем проверку, добавлен сотрудник или нет - чтобы не было дублирования.
Процедура кнопки очистить список значений
Процедура КоманднаяПанельОчистить(Кнопка)
СписокСотрудников.Очистить();
КонецПроцедуры
// Процедура открывает форму выбора сотрудников организации
// Параметры:
// Владелец
- владелец формы
// Ключ
- ключ, ссылка на объект из которого открывается форма
// ЗакрыватьПриВыборе
- Булево, закрывать ли нет
// ГоловнаяОрганизация - головная организация
Процедура ОткрытьФормуВыбораСотрудника(Владелец, Ключ,
ЗакрыватьПриВыборе, ГоловнаяОрганизация = Неопределено) Экспорт
СтандартнаяОбработка = Ложь;
Форма = Справочники.СотрудникиОрганизаций.ПолучитьФормуВыбора(, Владелец,
Ключ);
Форма.ЗакрыватьПриВыборе
= ЗакрыватьПриВыборе;
//установим отборы по организации и виду договора
Если ЗначениеЗаполнено(ГоловнаяОрганизация) Тогда
Форма.Отбор.Организация.Установить (ГоловнаяОрганизация);
Форма.Отбор.Организация.Использование = ЗначениеЗаполнено(ГоловнаяОрганизация);
КонецЕсли;
СписокДоговоров = Новый СписокЗначений;
СписокДоговоров.Добавить(Перечисления.ВидыДоговоровСФизЛицами.ТрудовойД
оговор);
СписокДоговоров.Добавить(Перечисления.ВидыДоговоровСФизЛицами.Подряда);
СписокДоговоров.Добавить(Перечисления.ВидыДоговоров
СФизЛицами.Авторский);
345
Форма.Отбор.ВидДоговора.ВидСравнения
= ВидСравнения.ВСписке;
Форма.Отбор.ВидДоговора.Использование
= Истина;
Форма.Отбор.ВидДоговора.Значение
= СписокДоговоров;
//Открываем форму выбора
Форма.Заголовок = "Выберите работников:";
Форма.Открыть();
КонецПроцедуры
//Процедура кнопки подбор
Процедура КоманднаяПанельПодбор(Кнопка)
// Процедура для подбора в табличное поля ОткрытьФормуВыбораСотрудника(ЭлементыФормы.ТабличноеПолеРаботники,
ЭтотОбъект, Ложь, );
// Процедура для подбора в список значений
ОткрытьФормуВыбораСотрудника(ЭлементыФормы.СписокСотрудников, ЭтотОбъект, Ложь, );
КонецПроцедуры
//Обработка Выбора значения для списка значений
Процедура
СписокСотрудниковОбработкаВыбора(Элемент,
ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если
ТипЗнч(ВыбранноеЗначение)
=
Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
//Для того чтобы не было задвоений при выборе, наложим условие
Если
СписокСотрудников.НайтиПоЗначению(ВыбранноеЗначение) = Неопределено Тогда
НоваяСтрока = СписокСотрудников.Добавить();
НоваяСтрока.Значение = ВыбранноеЗначение;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Обработка Выбора значения для табличного поля
Процедура
ТабличноеПолеРаботникиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
346
Если
ТипЗнч(ВыбранноеЗначение)
=
Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
//Для того чтобы не было задвоений при выборе, наложим условие
Если
ТабличноеПолеРаботники.НайтиСтроки(Новый
Структура("Работник", ВыбранноеЗначение)).Количество() = 0 Тогда
НоваяСтрока = ТабличноеПолеРаботники.Добавить();
НоваяСтрока.Работник = ВыбранноеЗначение;
// далее можно описать заполнение других колонок табличного поля
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Ввод на основании
Ввод на основании используется в случаях, когда при создании
нового объекта могут быть использованы данные уже существующего
объекта. Ввод на основании может быть реализован для справочников, документов, планов видов характеристик, планов счетов, планов
видов расчета и бизнес-процессов. В общем случае объект может
быть создан на основании любого объекта из перечисленных выше,
например, документ может быть создан на основании справочника.
Рассмотрим работу механизма ввода на основании на следующем примере: Организация оказывает услуги пассажирского такси.
Заказы покупателей регистрируются в документе «Заказ». Заказ может быть формируется диспетчером. Документ «Заказ» содержит следующую информацию:
 Имя клиента.
 Адрес клиента.
 Адрес откуда.
 Адрес куда.
 Время подачи.
 Желаемый класс автомобиля.
 Список желаемых опций.
Имя клиента, его адрес и телефон хранятся в справочнике «Клиенты». В данном примере будет реализован ввод документа на основании справочника. С целью упрощения примера справочник будет
347
только один - «Клиенты», вся остальная информация будет вводиться
вручную.
Создание объектов конфигурации
Справочник «Клиенты»
Рисунок 274. Справочник «Клиенты».
Документ «Заказ»
Рисунок 275. Документ «Заказ».
348
Реализация
В свойствах документа «Заказ» перейдем на закладку «Ввод на
основании»:
Рисунок 276. Документ Заказ. Ввод на основании.
Нажмем кнопку «Редактировать элемент списка» и выберем
из списка справочник «Клиенты»:
349
Рисунок 277. Документ Заказ. Ввод на основании. Выбор объекта.
Далее запустим конструктор ввода на основании нажатием на
кнопку "Конструктор ввода на основании":
Рисунок 278. Конструктор ввода на основании.
В открывшемся окне нужно сопоставить поля справочника с
реквизитами документа заказа. Это можно сделать, нажав кнопку
350
«Заполнить выражения» и тогда система попытается сама определить,
какие поля необходимо скопировать:
Рисунок 279. Конструктор ввода на основании.
Поле адреса нужно сопоставлять вручную, выбрав поле «АдресОткуда» в нижней части, а затем двойным щелчком на реквизите
«Адрес» в реквизитах объекта обоснования:
Рисунок 280. Конструктор ввода на основании.
351
По нажатию «ОК» система генерирует следующий код в модуле
документа «Заказ» в процедуре ОбработкаЗаполнения:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные
вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("Справочник Ссылка.Клиенты") Тогда
// Заполнение шапки
АдресОткуда = ДанныеЗаполнения.Адрес;
Клиент = ДанныеЗаполнения.Ссылка;
Телефон = ДанныеЗаполнения.Телефон;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Процедура ОбработкаЗаполнения вызывается в ряде случаев, таких как ввод нового документа интерактивно и ввод на основании.
В данном случае, если переменная ДанныеЗаполнения является ссылкой на справочник клиентов, выполняется заполнение реквизитов документа. Код обработчика можно модифицировать. Предположим, что
клиенты чаще всего хотят подачу такси в течение 15-20 минут. Тогда в
код обработчика можно добавить инициализацию реквизита «ВремяПодачи». Также удалим комментарии, созданные конструктором:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) =
Тип("СправочникСсылка.Клиенты") Тогда
АдресОткуда = ДанныеЗаполнения.Адрес;
Клиент = ДанныеЗаполнения.Ссылка;
Телефон = ДанныеЗаполнения.Телефон;
ВремяПодачи = ТекущаяДата() + 900; // 15 * 60 секунд
КонецЕсли;
КонецПроцедуры
352
Запустим приложение в режиме отладки и проверим, как работает
ввод на основании. Добавим пару записей в справочник клиентов:
Рисунок 281. Справочник Клиенты.
Откроем одну из них. В окне будет доступна кнопка «Создать
на основании», по нажатию которой откроется список с опцией выбора «Заказ»:
Рисунок 282. Создание на основании.
При выборе «Заказ» система создает пустой документ и заполняет поля в процедуре ОбработкаЗаполнения:
353
Рисунок 283. Заполнение полей.
Сохраним документ и убедимся, что документ был успешно создан, открыв его из спиcка документов заказа:
Рисунок 284. Результат добавления нового заказа.
Теперь предположим, что у клиентов могут быть опции, которые всегда присутствуют в заказе данного клиента. Например, «Некурящий водитель». Тогда их можно задавать в справочнике клиентов и
копировать в документ заказа. Расширим справочник «Клиенты» табличной частью «Опции»:
354
Рисунок 285. Справочник Клиенты. Табличная часть.
Теперь необходимо модифицировать процедуру ОбработкаЗаполнения документа. Это можно было бы сделать через конструктор, но тогда процедура обработки будет перезаписана, поэтому добавим код копирования табличной части вручную:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) =
Тип("СправочникСсылка.Клиенты") Тогда
// Заполнение шапки
355
АдресОткуда = ДанныеЗаполнения.Адрес;
Клиент = ДанныеЗаполнения.Ссылка;
Телефон = ДанныеЗаполнения.Телефон;
ВремяПодачи = ТекущаяДата() + 900; // 15 * 60 секунд
Для Каждого ТекСтрока Из ДанныеЗаполнения.Опции Цикл
НоваяЗапись = Опции.Добавить();
НоваяЗапись.Опция = ТекСтрока.Опция;
НоваяЗапись.Количество = ТекСтрока.Количество;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Запустим конфигурацию в режиме отладки и посмотрим, что
получилось. Добавим опции клиенту:
Рисунок 286. Ввод на основании.
Сохраним данные и создадим заказ на основании записи справочника:
356
Рисунок 287. Заказ.
Таким образом, данные табличной части были успешно скопированы в заказ. Для этого простого примера реализацию ввода на основании можно считать законченной.
Конструктор ввода на основании
Конструктор ввода на основании помогает создать процедуру на
встроенном языке, которая будет вызываться при создании одного
объекта прикладного решения на основании данных, содержащихся в
другом объекте. Такая функциональность может потребоваться,
например, если в прикладном решении на основании справочника
Контрагенты должен создаваться документ Приход товара, содержащий те же реквизиты, что и исходный элемент справочника.
Конструктор ввода на основании можно вызвать, например,
из окна редактирования справочника:
Рисунок 288. Документ ПроходТовара. Ввод на основании.
Конструктор позволяет вручную или автоматически заполнить
выражения, которые будут записаны в поля результирующего объекта
прикладного решения:
357
Рисунок 289. Конструктор ввода на основании.
Результатом работы конструктора является готовая процедура
на встроенном языке с именем ОбработкаЗаполнения(). Эта процедура располагается в модуле результирующего объекта конфигурации
и будет вызвана системой при вводе этого объекта на основании другого объекта.
Рисунок 290. Модуль объекта.
Тема 9. Приемы разработки форм
Важной особенностью платформы «1С: Предприятие» является
механизм представления данных в формах. Ключевым моментом
здесь является то, что принадлежность формы к тому или иному объекту конфигурации никоим образом не определяет состав данных, которые форма будет отображать.
Например, можно создать общую форму, которая не будет подчинена ни одному из объектов конфигурации, но которая, в зависимости от содержимого, будет либо отображать список справочника, либо позволять редактировать документ и т. п. Однако такую форму уже
358
нельзя будет назначить основной для выполнения определенных действий.
Форма сама по себе и ее элементы обособлены от объектов конфигурации. Для того чтобы форма отображала какие-либо данные,
необходимо задать связь самой формы и ее элементов с данными. Если связь элементов формы с данными не задана, то элементы вообще
не будут отображены в форме (кроме элементов оформления формы).
При использовании конструктора форм конфигуратор создает
такие связи автоматически. Если разработчик создает форму вручную, он может определить эти связи путем задания свойств формы
и ее элементов.
Связь элементов формы с данными, которые они должны отображать, задается в свойстве ПутьКДанным.
Связь формы и ее элементов с данными осуществляется при помощи реквизитов формы. Список существующих реквизитов формы
доступен на закладке Реквизиты окна редактора формы.
Среди всех реквизитов формы, как правило, существует один
основной реквизит (он выделен жирным шрифтом). Он определяет
источник данных для формы в целом. От типа значения основного
реквизита формы зависит не только то, какие данные будут отображены в элементах формы, но и поведение самой формы.
Рисунок 291. Связь элементов формы с данными.
Например, если основному реквизиту формы указать тип значения ДокументОбъект.ПриходнаяНакладная, то при закрытии формы
359
программа будет запрашивать подтверждение записи и проведения
документа.
Если же основному реквизиту формы указать тип значения
СправочникОбъект.Клиенты, то подобного подтверждения при закрытии формы возникать не будет.
Похожее влияние источники данных оказывают и на элементы
формы.
Например, состав колонок таблицы, источником данных которой является реквизит формы с типом значения ДинамическийСписок, будет различным в зависимости от того, какой объект используется в качестве основной таблицы этого динамического списка
(например, РегистрНакопления.ОстаткиНоменклатуры или Справочник.Номенклатура).
То же самое справедливо и для элемента формы Командная панель.
При установленном свойстве командной панели Автозаполнение смена источника данных (а точнее говоря, источника действий)
будет приводить к изменению состава команд, которые отображает
командная панель.
Возможность связать форму и ее элементы с различными данными является причиной того, что у формы и ее элементов существует несколько расширений.
Расширение представляет собой набор дополнительных свойств,
методов и событий, появляющихся у формы или у элемента формы.
Наличие того или иного расширения определяется либо типом данных, которые отображает форма/элемент, либо расположением элемента формы в других ее элементах.
Чтобы подробнее познакомиться с этим механизмом, создадим
основную форму списка справочника Номенклатура. При этом в конструкторе формы мы не будем сразу нажимать кнопку Готово, как делали раньше.
Нажмем кнопку Далее > и кроме полей Наименование и Код
включим в состав таблицы Список еще одно поле – ВидНоменклатуры. И затем уже нажмем Готово (рис. 292).
360
Рисунок 292. Форма списка справочника «Номенклатура».
Итак, с механизмом расширений мы будем знакомиться на примере поля ВидНоменклатуры, расположенного в таблице Список
формы списка справочника Номенклатура.
Сама форма отображает данные объекта ДинамическийСписок
(основной реквизит формы Список имеет тип ДинамическийСписок,
рис. 293).
361
Рисунок 293. Основной реквизит формы списка.
Поэтому к свойствам, методам и событиям объекта встроенного
языка УправляемаяФорма добавляется Расширение динамического
списка (рис. 294).
362
Рисунок 294. Контекст формы дополняется контекстом расширения
динамического списка.
В результате этого у формы появляются такие параметры, как
ТекущаяСтрока, Отбор и т. п.
Теперь посмотрим на таблицу Список.
Поскольку в таблице отображается динамический список,
то к свойствам, методам и событиям объекта встроенного языка ТаблицаФормы добавляется Расширение динамического списка (рис.
295).
Рисунок 295. Контекст таблицы дополняется контекстом
расширения динамического списка.
В результате у таблицы Список появляются такие свойства, как
АвтоОбновление, ОтображатьКорень и т. д.
В заключение посмотрим на поле ВидНоменклатуры.
Это поле связано с реквизитом типа ПеречислениеСсылка.ВидыНоменклатуры и является полем ввода.
Поэтому к свойствам, методам и событиям объекта встроенного
языка ПолеФормы добавляется Расширение поля ввода (рис. 296).
363
В результате у поля ВидНоменклатуры появляются такие свойства, как БыстрыйВыбор, ВыделенныйТекст и т. д.
Рисунок 296. Контекст поля формы дополняется контекстом
расширения поля ввода.
Типы данных формы
В управляемой форме можно выделить следующие категории
типов, с которыми она работает:
Типы встроенного языка, предназначенные для использования
как в управляемых формах, так и вне них. Например, Число, СправочникСсылка.<имя>, ГрафическаяСхема, ТабличныйДокумент и т. д.
Типы встроенного языка, предназначенные исключительно
для того, чтобы представить в форме данные прикладных объектов
(справочников, документов и т. д.). Это такие типы, как ДанныеФормыСтруктура, ДанныеФормыКоллекция и другие.
Отдельно следует упомянуть тип ДинамическийСписок, который используется в управляемых формах для отображения списков
прикладных объектов.
Все типы прикладных объектов (такие как СправочникОбъект
и т. д.) не существуют на стороне тонкого и веб-клиентов, они существуют только на сервере. Однако данные этих объектов нужно отображать в управляемых формах.
Поэтому для представления в форме данных этих прикладных
типов введены специальные типы данных, предназначенные для ра364
боты именно в управляемых формах. Используются следующие типы
данных:
ДанныеФормыСтруктура – содержит набор свойств произвольного типа. Свойствами могут быть другие структуры, коллекции
или структуры с коллекциями. Таким типом представляется, например, в форме СправочникОбъект.
ДанныеФормыКоллекция – это список типизированных значений, похожий на массив. Доступ к элементу коллекции осуществляется по индексу или по идентификатору. Доступ по идентификатору
может отсутствовать в некоторых случаях. Это обусловлено типом
прикладного объекта, который представлен этой коллекцией. Идентификатором может быть любое целое число. Таким типом представляется, например, в форме табличная часть.
ДанныеФормыСтруктураСКоллекцией – это объект, который
представлен в виде структуры и коллекции одновременно. С ним
можно обращаться как с любой из этих сущностей. Таким типом
представляется, например, в форме набор записей.
ДанныеФормыДерево – объект предназначен для хранения
иерархических данных.
Прикладной объект представлен либо одним, либо несколькими
элементами данных формы. В общем виде иерархия и состав данных
формы зависят от сложности и взаимосвязи прикладных объектов
управляемой формы.
Например, документ, содержащий табличную часть, будет представлен объектом типа ДанныеФормыСтруктура (собственно документ), которому подчинен объект типа ДанныеФормыКоллекция
(табличная часть документа).
Внимание!
Во время разработки конфигурации важно помнить, что прикладные объекты доступны только на сервере, в то время как объектами данных форм можно пользоваться и на сервере, и на клиенте.
Фактически можно сказать, что данные формы – это унифицированное представление данных различных прикладных объектов,
с которыми форма работает единообразно и которые присутствуют и
на сервере, и на клиенте.
365
В редакторе формы (у реквизитов формы) вместо имен этих типов обычно отображаются те прикладные типы, данные которых содержит реквизит.
Например, если реквизит Объект содержит данные элемента
справочника Клиенты, то в колонке Тип отображается ненастоящий
тип этого реквизита формы – ДанныеФормыСтруктура, а тип прикладного объекта, данные которого содержатся в этом реквизите –
СправочникОбъект.Клиенты. Причем чтобы было понятно, что это
«ненастоящий тип» реквизита, тип прикладного объекта показывается
в круглых скобках.
Таким образом форма содержит некоторую «проекцию» данных
прикладных объектов в виде своих собственных типов данных и автоматически выполняет преобразование между ними при необходимости.
Однако если разработчик конфигурации реализует свой алгоритм обработки данных, то преобразование данных (из специализированных типов в прикладные и обратно) он должен выполнять самостоятельно.
Для конвертирования прикладных объектов в данные формы
и обратно существует набор глобальных методов:
ЗначениеВДанныеФормы() – преобразует объект прикладного типа в данные формы;
ДанныеФормыВЗначение() – преобразует данные формы
в объект прикладного типа.
Аналогичные методы, предназначенные для конвертирования
значений реквизитов формы в прикладные объекты и обратно, существуют и у самой управляемой формы:
ЗначениеВРеквизитФормы() – преобразует объект прикладного типа в реквизит управляемой формы;
РеквизитФормыВЗначение() – преобразует реквизит управляемой формы в значение прикладного типа.
Методы, работающие с прикладными объектами, доступны
только в серверных процедурах формы.
При выполнении стандартных действий формы с основным реквизитом (открытие формы, выполнение стандартной команды Записать и т. д.) преобразование выполняется автоматически.
366
Приведем пример преобразования данных, которое может потребоваться в собственных алгоритмах.
Например, у нас есть особенная форма, в которой в качестве одного из реквизитов (ТоварДляМодификации) используются данные
элемента справочника Товары. При создании формы на сервере мы по
некоторому алгоритму определяем, какой именно это товар, и читаем
его данные в реквизит формы. При этом используется преобразование
данных ЗначениеВДанныеФормы(), листинг 1.
Листинг 1. Пример преобразования данных прикладных
объектов в данные формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбъектТовар = Справочники.Товары.НайтиПоНаименованию("Кофейник").ПолучитьОбъект();
ЗначениеВДанныеФормы(ОбъектТовар, ТоварДляМодификации);
КонецПроцедуры
&НаКлиенте
Процедура Записать()
ЗаписатьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаписатьНаСервере()
ОбъектТовар = ДанныеФормыВЗначение(ТоварДляМодификации, Тип( "СправочникОбъект.Товары"));
ОбъектТовар.Записать();
КонецПроцедуры
В некоторый момент работы формы мы решаем, что измененные
данные нашего товара необходимо записать в базу данных, и тогда
выполняем обратное преобразование данных формы в прикладной
объект (ДанныеФормыВЗначение()) и записываем его.
Как мы уже упомянули, у формы также есть методы, позволяющие преобразовать прикладные данные в реквизит формы и наоборот.
367
Использование данных методов обычно удобнее, так как они
имеют, например, информацию о типе реквизита формы. Кроме этого,
метод РеквизитФормыВЗначение() выполняет установку соответствия
данных формы и объекта, которая используется при формировании
сообщений.
Приведем пример использования этих методов. В серверной
процедуре формы мы получаем прикладной объект из реквизита формы и выполняем метод этого прикладного объекта Пересчитать(). Затем данные объекта, измененные в результате пересчета, преобразуем
обратно в реквизит формы (листинг 2).
Листинг 2. Пример преобразования данных прикладных
объектов в данные формы
&НаСервере
Процедура ПересчитатьНаСервере()
// Преобразует реквизит Объект в прикладной объект.
Документ = РеквизитФормыВЗначение("Объект");
// Выполняет пересчет методом, определенным в модуле документа.
Документ.Пересчитать();
// Преобразует прикладной объект обратно в реквизит.
ЗначениеВРеквизитФормы(Документ, "Объект");
КонецПроцедуры
Связанные списки
При создании прикладных решений часто возникает необходимость из какой-либо формы прикладного объекта перейти к информации, логически связанной с этим объектом.
Это может быть, например, список подчиненного справочника;
регистры, в которых объект производит движения; регистры, где измерение с типом этого объекта указано как ведущее; критерии отбора,
в которые входит этот тип; объекты, которые можно ввести на основании этого типа, и т. д.
Одним из распространенных примеров использования связанных списков является необходимость перейти из формы документа к
списку движений, которые произвел этот документ в каком-либо регистре.
Все перечисленные ситуации платформа контролирует автоматически. На основании информации, содержащейся в объектах кон368
фигурации, платформа автоматически создает в формах объектов команды для перехода к связанной информации. Некоторые такие команды она сразу же делает видимыми, и они появляются в форме. Некоторые команды она только создает, но по умолчанию не включает
их видимость.
Поэтому чаще всего, если в форме вы не видите команды перехода к связанной информации, которая должна быть, просто нужно
включить ее видимость в интерфейсе формы.
Рассмотрим это на примере.
В режиме «Конфигуратор»
Для примера откроем форму документа ОказаниеУслуги. В левом верхнем окне перейдем на закладку Командный интерфейс.
В разделе Панель навигации в группе Перейти уже находится
набор таких команд. Это команды перехода к записям регистров, для
которых этот документ является регистратором.
Мы можем установить общую видимость для этих команд,
а можем более точно настроить видимость этих команд для каждой
отдельной роли, которая есть в нашей конфигурации (рис. 297).
Рисунок 297. Командный интерфейс формы.
369
В режиме «1С:Предприятие»
В режиме 1С:Предприятие откроем один из документов Оказание услуги (рис. 298).
Рисунок 298. Документ «Оказание услуги № 3».
В панели навигации формы мы видим команды перехода к
списку записей регистров, связанных с открытым документом.
Например, выполним команду Стоимость материалов и перейдем к движениям, которые произвел в этом регистре наш документ
(рис. 299).
370
Рисунок 299. Движения документа «Оказание услуги № 3»
по регистру «Стоимость материалов».
Оформление строк в форме списка
Одним из полезных свойств формы списка является возможность настройки оформления его строк. Для иллюстрации этой возможности мы воспользуемся формой списка справочника Номенклатура и придадим ей нестандартный вид.
В режиме «Конфигуратор»
Откроем в конфигураторе форму списка справочника Номенклатура и создадим обработчик события формы ПриСозданииНаСервере.
Внесем в него следующий текст (листинг 3).
Листинг 3. Обработчик события формы «При открытии»
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СписокСправочника = Элементы.Список;
// Задать режим отображения справочника.
СписокСправочника.Отображение
=
ОтображениеТаблицы.Список;
// Скрыть линии сетки.
СписокСправочника.ВертикальныеЛинии = Ложь;
СписокСправочника.ГоризонтальныеЛинии = Ложь;
КонецПроцедуры
371
В этой процедуре, выполняющейся при создании формы на сервере, мы сначала представляем список в виде обычного, а не иерархического списка.
Это сделано для большей наглядности, чтобы материалы отображались вперемешку с услугами.
Затем мы скрываем линии, разделяющие колонки и строки таблицы списка.
Теперь настроим условное оформление строк списка. Для этого
вызовем палитру свойств основного реквизита формы Список.
В строке Настройка списка нажмем «Открыть» (рис. 300).
Поскольку этот реквизит имеет тип ДинамическийСписок, который построен на основе системы компоновки данных, то мы можем
настроить для него Отбор, Порядок, Группировку и УсловноеОформление аналогично тому, как это делалось в отчетах.
Рисунок 300. Вызов настройки динамического списка.
В открывшемся окне настройки динамического списка перейдем
на закладку Условное оформление и нажмем кнопку Добавить в командной панели окна.
Сначала укажем Оформление для выделения полей.
Нажмем кнопку выбора в поле Оформление и установим сиреневый цвет фона (рис. 301).
372
Рисунок 301. Настройка условного оформления.
Нажмем ОК. Затем укажем условие, при наступлении которого
будет применяться оформление, то есть когда строки списка будут
сиреневыми.
Нажмем кнопку выбора в поле Условие и в появившемся окне
добавим Новый элемент отбора (рис. 302). Для этого нажмем кнопку
Добавить и укажем в графе Левое значение – поле ВидНоменклатуры,
в графе Вид сравнения – Равно, а в графе Правое значение выберем
Перечисление.ВидыНоменклатры.Услуга.
373
Рисунок 302. Настройка условного оформления.
Нажмем ОК.
Таким образом, мы установили, что когда в списке номенклатуры будут отражаться услуги, эти строки будут выделены сиреневым
фоном.
Поскольку мы хотим выделить полностью строки, а не отдельные поля списка, то список оформляемых полей можно оставить пустым. Нажмем ОК.
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки и откроем список номенклатуры.
Мы видим, что список имеет вид обычного неиерархического
списка, услуги выделены сиреневым цветом, а также отсутствуют
разделительные линии строк и колонок списка (рис. 303).
Рисунок 303. Список номенклатуры с заданным оформлением.
Рассмотрим также свойства пользовательских настроек списка,
которые аналогичны для всех настроек динамического списка – От374
бор, Порядок, Группировка и УсловноеОформление. Настройки динамических списков в платформе очень похожи на настройки отчетов,
построенных с помощью системы компоновки данных.
В режиме «Конфигуратор»
По умолчанию в окне настроек (внизу на каждой из закладок:
Отбор, Порядок, Группировка, УсловноеОформление) динамического
списка в конфигураторе установлен флажок Включать в пользовательские настройки, а также свойство Режим редактирования установлено свойство Обычный.
Это значит, что пользователь может изменить заданное оформление списка, выполнив команду Еще } Настроить список… При этом
откроется окно настройки динамического списка, аналогичное окну
пользовательских настроек отчетов, где он может задать свое условное оформление списка и/или другие настройки .
Если настройка требуется пользователю часто, то можно поместить настройку непосредственно в форме списка. Для этого нужно
установить в окне настройки списка Режим редактирования в значение Быстрый доступ (рис. 304).
Рисунок 304. Свойства настроек условного оформления.
375
В режиме «1С: Предприятие»
При открытии списка в режиме 1С: Предприятие мы увидим
следующий результат (рис. 305).
Мы видим, что настройка условного оформления доступна
пользователю в самой форме списка, сразу над списком номенклатуры.
Кроме того, он может вызвать окно пользовательских настроек
по команде Еще } Настроить список… и редактировать там условное
оформление и другие настройки списка.
А также (как и в отчетах) пользователь может изменить состав
настроек (Еще } Изменить состав настроек…) согласно своим предпочтениям. То есть перенести какие-то настройки из списка быстрых
настроек в обычные и наоборот.
Свойства «Включать в пользовательские настройки», Представление и Режим редактирования могут относиться как в целом к
настройкам отбора, порядка, группировки и условного оформления
динамического списка, так и к отдельным элементам этих настроек.
Например, одна настройка отбора может быть включена в пользовательские настройки, а другая – нет.
Свойства отдельных элементов настроек, если они заданы, имеют больший приоритет. Они задаются по команде Свойства элемента
пользовательских настроек нажатием соответствующей кнопки над
списком настроек.
376
Рисунок 305. Пользовательские настройки списка номенклатуры.
Аналогичным образом можно настраивать условное оформление
и для списков, источником которых является не динамический список, а другие типы данных. Например, условное оформление табличной части документа.
Но выполняется это уже с помощью условного оформления самой формы. То есть в дереве элементов формы нужно выделить корневой элемент и в палитре свойств открыть ссылку УсловноеОформление.
Если требуется выделить по некоторому условию полностью
всю строку табличной части, то в список Оформляемые поля нужно
добавить саму таблицу формы, содержащую табличную часть
(например, Материалы), иначе нужно указать те поля таблицы, которые должны быть оформлены.
Вычисляемые колонки в списках
377
Необходимость вывода произвольных данных в колонках списка
возникает, когда вместе с элементом списка нужно отобразить некоторую вычисляемую информацию.
Мы рассмотрим эту ситуацию на примере отображения актуальной цены в списке справочника Номенклатура.
Эти данные мы можем получить из таблицы регистра сведений
Цены.СрезПоследних. Следовательно, поле Цена из этой таблицы нам
нужно добавить в динамический список Список, который является
основным реквизитом формы списка номенклатуры и служит источником данных для таблицы списка.
В режиме «Конфигуратор»
Откроем в конфигураторе форму списка справочника Номенклатура и вызовем палитру свойств основного реквизита формы Список.
До сих пор в свойствах динамического списка была указана Основная таблица – Справочник.Номенклатура и список формировался
путем запроса к этой таблице.
Теперь нам нужна еще связанная информация из таблицы регистра сведений Цены.СрезПоследних.
Поэтому установим флажок ПроизвольныйЗапрос и в строке
Настройка списка нажмем Открыть (рис. 306).
378
Рисунок 306. Вызов настройки динамического списка.
Откроется окно настройки динамического списка. На закладке
Запрос мы видим запрос, в котором выбираются все поля из таблицы
Справочник.Номенклатура.
Изменим его. Для этого нажмем кнопку Конструктор запроса
(рис. 307).
Рисунок 307. Создание произвольного запроса для динамического списка.
Добавим в список таблиц Цены.СрезПоследних и выберем
из нее поле Цена (рис. 308).
379
Рисунок 308. Добавление второй таблицы.
На закладке Связи отредактируем связь между таблицами, созданную по умолчанию.
Установим флажок Все у таблицы Справочник.Номенклатура и
снимем его у таблицы Цены.СрезПоследних (рис. 309).
Рисунок 309. Установка связи между таблицами.
Тем самым мы задаем, что в списке номенклатуры будут отражены все позиции, даже те, по которым не установлены цены.
Создание запроса закончено, нажмем ОК. Текст запроса нам уже
знаком и понятен, поэтому не будем на нем останавливаться.
380
Теперь колонка Цена, содержащая актуальную цену, будет
отображаться в списке номенклатуры, когда мы поместим ее в форму
списка.
В окне настройки динамического списка перейдем на закладку
Настройки и зададим условное оформление этой колонки так, чтобы
низкие цены выделялись цветом.
Для этого перейдем на закладку Условное оформление. Там мы
видим созданное нами ранее условное оформление для строк списка.
Нажмем кнопку Добавить в командной панели окна.
Сначала укажем Оформление для выделения полей. Нажмем
кнопку выбора в поле Оформление и установим синий цвет текста.
Затем укажем условие, при наступлении которого будет применяться оформление, то есть когда текст в колонке Цена будет синим.
Нажмем кнопку выбора в поле Условие и в появившемся окне
добавим Новый элемент отбора (рис. 308). Для этого нажмем кнопку
Добавить и укажем в графе Левое значение – поле Цена, в графе Вид
сравнения – Меньше, а в графе Правое значение выберем 500.
Затем укажем список оформляемых полей. Нажмем кнопку выбора в поле Оформляемые поля, затем нажмем Добавить и выберем
поле Цена (рис. 310).
Рисунок 310. Настройка условного оформления динамического списка.
Нажмем ОК. Теперь нам осталось только перетащить поле Цена
из окна реквизитов в окно элементов формы (рис. 311).
381
Рисунок 311. Добавление колонки в форму списка.
Теперь зададим отдельно свойства для каждого созданного нами
элемента настроек условного оформления.
Для этого выделим каждую настройку и нажмем кнопку Свойства элемента пользовательских настроек над списком настроек. У
обеих настроек установим флажок «Включать в пользовательские
настройки».
Зададим представление первой настройки как Услуги, второй –
Низкая цена, а свойство Режим редактирования оставим без изменения в значении Быстрый доступ. Аналогичное свойство для настроек
условного оформления в целом (внизу окна) вернем к значению
Обычный (рис. 312).
382
Рисунок 312. Свойства настроек условного оформления.
В режиме «1С:Предприятие»
Запустим «1С: Предприятие» в режиме отладки и откроем список номенклатуры. Мы видим, что вместе с номенклатурой выводится
ее актуальная цена, причем цены на номенклатуру меньше 500 выделены, синим цветом текста. А также строки номенклатуры, являющейся услугами, выделены сиреневым цветом фона. Обе настройки
условного оформления расположены прямо над списком номенклатуры, они имеют понятное название, их можно включить или выключить (предварительно нужно удалить общую настройку оформления
строк списка цветом фона, если она осталась в пользовательских
настройках), рис. 313.
В заключение обратим внимание на свойство динамического
списка «Автоматическое сохранение пользовательских настроек» стандартно оно включено.
383
Рисунок 313. Список номенклатуры с заданным оформлением.
Поэтому при закрытии формы все настройки списков автоматически сохраняются в системном хранилище и загружаются при открытии формы этим же пользователем. Кроме того, пользователь может сохранять настройки списков и вручную, задавая им понятные
имена (Еще } Сохранить настройки…, Еще } Загрузить настройки…).
В результате для одного и того же списка можно хранить несколько
вариантов его настройки.
Добавить объявление
Можно снова вернуться к настройкам списка, заданным разработчиком в конфигураторе, выполнив команду Еще } Восстановить
стандартные настройки.
Список выбора для поля ввода
Одним из полезных и удобных механизмов поля ввода является
использование списка выбора для этих полей.
Поля ввода, имеющие ссылочный тип, например, Склад, Сотрудник, по умолчанию имеют кнопку выбора. При нажатии этой
кнопки открывается форма выбора объекта, на которую ссылается
данное поле.
384
Но для полей других типов тоже бывает нужно выполнять выбор из нескольких предопределенных значений.
Рассмотрим совсем простой пример, когда пользователю нужно
ввести адреса клиентов, начинающиеся с названия города.
В режиме «Конфигуратор»
Сначала нужно добавить поле Адрес в форму элемента справочника Клиенты.
Для этого откроем в конфигураторе окно редактирования объекта конфигурации Справочник Клиенты и на закладке Данные добавим
реквизит Адрес с типом Строка, длиной 25. Затем откроем форму
элемента справочника Клиенты. Раскроем основной реквизит формы
Объект и перетащим поле Адрес из окна реквизитов в окно элементов
формы.
В открывшейся палитре свойств этого поля установим свойство
РежимВыбораИзСписка. Затем нажмем кнопку выбора в строке СписокВыбора и, нажимая кнопку Добавить, создадим значения, например: Москва, Королев, Монино (рис. 314).
Рисунок 314. Создание списка выбора для поля ввода.
В режиме «1С: Предприятие»
Запустим «1С: Предприятие» в режиме отладки и откроем форму редактирования клиента. В поле Адрес наберем «м», и система
предложит на выбор два подходящих названия (рис. 315).
385
Рисунок 315. Выбор из заданного списка значений в поле ввода.
Аналогичные действия, которые мы выполнили в конфигураторе, можно выполнить и во встроенном языке. То есть в зависимости
от некоторого алгоритма можно формировать список выбора для поля
ввода динамически.
Более того, разработчик из встроенного языка может изменять
тот список выбора, который формируется платформой автоматически,
например в автогенерируемых формах. Для этого используется обработчик события
Обработка получения данных выбора, который располагается в
модуле менеджера объекта. Например, в модуле менеджера справочника, когда в поле ввода подбирается один из элементов этого справочника.
Форма выбора для поля, содержащего ссылочный реквизит
В процессе работы прикладного решения довольно распространенной является ситуация, когда данные вводятся в поля ссылочных
реквизитов, то есть реквизитов, ссылающихся на какие-либо объекты
конфигурации.
Например, в документе Оказание услуги мы заполняем поля
ссылочного типа Клиент (тип СправочникСсылка.Клиенты), Мастер
(тип СправочникСсылка.Сотрудники) и др.
При нажатии кнопки выбора в этих полях по умолчанию открывается основная форма выбора соответствующих объектов конфигурации (справочника Клиенты, справочника Сотрудники и др.).
386
Но иногда бывает нужно открывать свою специальную форму
для выбора ссылочного реквизита. Для этого в свойстве Форма выбора этого реквизита нужно указать эту специальную форму, и тогда
она будет открываться для выбора данного реквизита в любой форме,
где он находится.
В режиме «Конфигуратор»
Для примера рассмотрим документ ОказаниеУслуги. Допустим,
что в поле Мастер нам нужно открывать не стандартную форму выбора справочника Сотрудники, а специально разработанную для этого
форму.
Сначала эту форму нужно создать.
Откроем окно редактирования этого объекта конфигурации и
перейдем на закладку Формы.
Мы видим, что у этого объекта вообще еще нет ни одной формы. Это значит, что все формы справочника в режиме
1С:Предприятие, в том числе и форма выбора, генерировались системой автоматически.
Нажмем кнопку Добавить (рис. 316).
Рисунок 316. Создание формы справочника «Сотрудники».
В открывшемся конструкторе формы выберем тип формы –
Произвольная форма и зададим ее имя ФормаДляВыбора (рис. 317).
387
Рисунок 317. Создание произвольной формы справочника «Сотрудники».
Нажмем Готово.
В открывшемся редакторе формы мы видим, что в форме нет ни
одного элемента, и у формы нет данных, так как форма – произвольная, и мы можем наполнять ее данными и элементами по своему
усмотрению.
На закладке Реквизиты создадим основной реквизит формы
с именем Список и типом ДинамическийСписок. В качестве основной
таблицы выберем Справочник.Сотрудники (рис. 318).
388
Рисунок 318. Создание основного реквизита формы.
Не нужно забывать установливать флажок Основной реквизит в
свойствах реквизита Список. Если этого не сделать, то форма «не будет знать», откуда ей брать данные.
Затем перенести этот реквизит в окно элементов формы. Соглашаемся с предложением «Добавить колонки таблицы Список?».
В форме появится таблица Список, отображающая список сотрудников.
После этого изменим внешний вид формы.
В окне элементов формы раскроем таблицу Список и удалим
поле Код.
далее удалим командную панель формы, так как таблица по
умолчанию имеет свою командную панель. Для этого выделим корневой элемент Форма, откроем его палитру свойств и установим свойство ПоложениеКоманднойПанели в значение «Нет» (рис. 319).
389
Рисунок 319. Установка свойств формы.
Чтобы из таблицы, содержащей список сотрудников, можно было сделать выбор, откроем палитру свойств таблицы Список и установим флажок РежимВыбора (рис. 320).
В заключение зададим заголовок формы Выбор сотрудников, а
флажок АвтоЗаголовок снимем, чтобы не отражался заголовок, заданный нами в расширенном представлении списка для справочника
Сотрудники (рис. 321).
390
Рисунок 320. Свойства таблицы.
Рисунок 321. Установка свойств формы.
391
В результате мы создали форму, очень похожую на форму выбора. Мы убрали из списка поле Код и изменили заголовок формы,
чтобы наша форма внешне в чем-то отличалась от формы выбора.
В действительности произвольная форма, конечно, будет отличаться своей функциональностью, иначе, зачем ее назначать в качестве формы для выбора? Но это сейчас не входит в нашу задачу. Мы
хотим только показать принцип использования произвольной формы
в качестве формы выбора.
Теперь откроем окно редактирования объекта конфигурации
Документ ОказаниеУслуги.
Вызовем палитру свойств реквизита Мастер и нажмем кнопку
выбора в поле Форма выбора. Откроется список форм, созданных
в конфигурации для объекта, на который ссылается данный реквизит.
В данном случае для справочника Сотрудники, на который ссылается
реквизит, Мастер, создана одна форма – ФормаДляВыбора. Выберем
ее (рис. 322).
Рисунок 322. Установка формы выбора для ссылочного реквизита.
392
В режиме «1С: Предприятие»
Запустим «1С: Предприятие» в режиме отладки и откроем один
из документов Оказание услуги. Нажмем кнопку выбора в поле Мастер и в выпадающем списке, открывшемся под полем ввода, нажмем
ссылку «Показать все».
Откроется созданная нами произвольная форма с заголовком
Выбор сотрудников (рис. 323).
Таким образом, поскольку мы задали свойство Форма выбора на
уровне реквизита Мастер, а не на уровне отдельной формы, в любой
форме документа ОказаниеУслуги, где используется данный реквизит, при выборе в поле Мастер будет открываться наша специальная
форма.
Рисунок 323. Форма выбора сотрудников.
Если очистить свойство Форма выбора для реквизита Мастер
в документе ОказаниеУслуги, то в режиме 1С: Предприятие при выборе в поле Мастер будет открываться основная форма выбора справочника Сотрудники, автоматически сгенерированная системой.
393
Проверка заполнения реквизитов
Для реквизитов объектов конфигурации существует возможность как автоматической, так и программной проверки их заполнения. Причем делается это не на уровне форм, а на уровне свойств реквизитов или в модуле объекта, к которому относится данный реквизит. Таким образом, проверка заполнения реквизита будет производиться во всех формах, где используется этот реквизит.
Автоматическая проверка заполнения
В режиме «Конфигуратор»
Для примера рассмотрим объект конфигурации Документ ОказаниеУслуги. Допустим, нам нужно контролировать заполнение реквизита НаборСвойств табличной части этого документа.
Откроем окно редактирования объекта конфигурации Документ
ОказаниеУслуги. Вызовем палитру свойств реквизита табличной части НаборСвойств и установим свойство Проверка заполнения в значение Выдавать ошибку.
Тем самым при записи документа этот реквизит будет проверяться на заполнение. Если значение реквизита не заполнено, будет выдано
сообщение об ошибке, и документ не будет сохранен (рис. 324).
Рисунок 324. Свойство «Проверка заполнения» реквизита «НаборСвойств».
394
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки и откроем документ Оказание услуги № ЦБ000000001. В табличной части этого документа содержится одна строка с услугой Диагностика, для которой
колонка Набор свойств не заполнена. При проведении этого документа будет выдано сообщение об ошибке, и документ не будет проведен
(рис. 325).
Рисунок 325. Сообщение об ошибке.
Программная проверка заполнения
В режиме «Конфигуратор»
Иногда бывает нужно самостоятельно производить проверку заполнения реквизита в соответствии с программной логикой. В этом
случае, если для реквизита установлено свойство «Проверка заполнения» в значение «Выдавать ошибку», нужно удалить этот реквизит
из массива проверяемых реквизитов и выполнить проверку программным путем. Или же если для реквизита не установлена проверка
заполнения, можно программно добавить реквизит в массив проверяемых реквизитов.
Программная проверка заполнения объектов конфигурации выполняется в обработчике «ОбработкаПроверкиЗаполнения()», который нужно поместить в модуле объекта. Этот обработчик вызывается
автоматически при сохранении любой формы или при проведении
документов. Программную проверку объектов интерактивного ввода
нужно делать именно в этом обработчике, а не при записи объекта.
Откроем модуль документа ОказаниеУслуги и поместим в нем
следующую процедуру (листинг 4).
Листинг 4 Обработчик события «ОбработкаПроверкиЗаполнения»
395
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Индекс = ПроверяемыеРеквизиты.Найти("ПереченьНоменклатуры.НаборСвойств");
Если Индекс <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(Индекс);
КонецЕсли;
Индекс = 0;
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
Если
ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
Если Не ЗначениеЗаполнено(ТекСтрокаПереченьНоменклатуры.НаборСвойств) Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "В строке " + Строка(Индекс+1) +" списка Перечень номенклатуры не заполнена колонка Набор свойств";
Сообщение.Поле
=
"ПереченьНоменклатуры[" +
Строка(Индекс) + "].НаборСвойств";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
КонецПроцедуры
Сначала мы находим реквизит табличной части НаборСвойств в
массиве ПроверяемыеРеквизиты. Этот массив передается в обработчик и содержит массив проверяемых реквизитов, которым мы установили свойство Проверка заполнения в значение Выдавать ошибку
во время разработки конфигурации. Если он найден, то удаляем его,
так как мы будем выполнять проверку самостоятельно.
Затем мы в цикле обходим строки табличной части документа
и формируем сообщения об ошибке только в том случае, если номен396
клатура в табличной части является материалом и для нее не заполнена колонка НаборСвойств.
Параметр Отказ мы устанавливаем в значение Истина. Это значит, что документ не будет проведен, если найден хоть один незаполненный реквизит НаборСвойств для номенклатуры, являющейся материалом. Если этот параметр закомментировать, сообщения об
ошибке будут выдаваться, но документ будет проведен.
Для упрощения примера мы опять здесь используем обращение
ПереченьНоменклатуры.Номенклатура.ВидНоменклатуры, хотя оптимальнее использовать запрос.
В режиме «1С: Предприятие»
Запустим «1С: Предприятие» в режиме отладки и откроем документ Оказание услуги № ЦБ000000001. В табличную часть этого документа добавим еще одну строку, содержащую какой-либо материал,
и попробуем записать документ, нажав кнопку Провести. Для второй
строки табличной части будет выдано сообщение об ошибке (рис. 326).
Рисунок 326. Сообщение об ошибке при записи документа.
Можно также программно добавить реквизит в массив проверяемых реквизитов (листинг 5).
Листинг 5 Добавление реквизита в массив проверяемых
реквизитов
397
ПроверяемыеРеквизиты. Добавить ("ПереченьНоменклатуры.
Набор Свойств");
Использование параметризованных команд
Использование параметризованных команд в формах объектов
позволяет при выполнении команды передать в обработчик команды
какой-либо параметр, например значение ссылочного реквизита.
И затем использовать его, например, открыть с этим параметром
форму отчета.
Для примера создадим команду открытия отчета, показывающего остатки материалов по складу, указанному в документе. Отчет будет вызываться из формы документа ОказаниеУслуги, в него будет
передаваться значение реквизита документа Склад, и при открытии
отчета в настройки отчета будет добавляться отбор по параметру
Склад.
В режиме «Конфигуратор»
Сначала создадим параметризованную команду объекта конфигурации Отчет Материалы.
Для этого откроем окно редактирования этого объекта. На закладке Команды нажмем кнопку Добавить и создадим команду
ОстаткиПоСкладу.
В открывшейся палитре свойств зададим Тип параметра команды – СправочникСсылка.Склады. В свойстве Группа укажем Командная панель формы.Важное (рис. 327).
Таким образом, мы создали команду с типом параметра СправочникСсылка.Склады, и теперь во всех формах, имеющих реквизит
такого типа, эта команда автоматически будет добавлена в список параметризуемых команд, доступных в форме.
398
Рисунок 327. Создание параметризованной команды.
В открывшемся модуле команды заполним обработчик для ее
выполнения следующим образом (листинг 6).
Листинг 6 Обработчик параметризованной команды
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = Новый Структура("Отбор, КлючНазначенияИспользования, СформироватьПриОткрытии", Новый Структура("Склад", ПараметрКоманды), "ОстаткиПоСкладу", Истина);
ОткрытьФорму("Отчет.Материалы.Форма", ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник, Истина, ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры
Прокомментируем этот код.
В процедуру ОбработкаКоманды() передается ПараметрКоманды, содержащий значение типа СправочникСсылка.Склады. Затем создается структура параметров формы (ПараметрыФормы): Отбор,
КлючНазначенияИспользования, СформироватьПриОткрытии.
399
В параметр Отбор добавляется структура, содержащая элемент
Склад со значением, содержащимся в параметре команды (ПараметрКоманды), параметр КлючНазначенияИспользования – «ОстаткиПоСкладу» определяет назначение использования формы, а параметру
СформироватьПриОткрытии присваивается значение Истина, чтобы
отчет формировался сразу после открытия.
Затем структура параметров формы передается в глобальный
метод ОткрытьФорму(), и форма, указанная в первом параметре метода, открывается с параметром Склад. Причем поскольку в четвертом параметре
Уникальность этого метода передается Истина, то при открытии
формы каждый раз будет открываться новая форма отчета и отчет будет заново сформирован с отбором по складу, переданному в параметре команды.
Теперь поместим нашу команду в форму документа.
Как мы уже говорили, в формах документов ПриходнаяНакладная и ОказаниеУслуги содержится команда ОстаткиПоСкладу, так как
они имеют реквизит Склад типа СправочникСсылка.Склады.
Откроем форму документа ОказаниеУслуги.
На закладке Команды перейдем в раздел Глобальные команды.
Здесь мы видим список глобальных параметризуемых команд, доступных в форме. В группе Параметризуемые раскроем строку Объект и перетащим нашу команду Отчет.Материалы.Команда. ОстаткиПоСкладу(Объект.Склад) в командную панель элементов формы.
В скобках у команды указано значение реквизита Склад (Объект.Склад), которое будет передаваться в команду при ее выполнении
(рис. 328).
Заметьте, что мы не создавали форму отчета и не добавляли
в настройки отчета отбор по параметру формы Склад. Система сделает это сама при выполнении обработчика команды ОстаткиПоСкладу.
400
Рисунок 328. Помещение параметризованной команды в форму.
В режиме «1С:Предприятие»
Запустим «1С: Предприятие» в режиме отладки и откроем документ Оказание услуги № ЦБ000000001.
Нажмем кнопку Остатки по складу и вызовем отчет Материалы.
Форма отчета генерируется системой автоматически. Отчет будет выполнен сразу при открытии формы с отбором по складу Основной,
указанному в форме документа (рис. 329).
Закроем отчет. Если в форме документа мы изменим склад на
Розничный, а затем выполним отчет нажатием кнопки Остатки по
складу, то он будет сформирован с отбором по складу Розничный
(в данном случае отчет будет пустой, так как у нас нет движений материалов по этому складу).
Таким образом, мы создали для пользователя очень удобную
возможность – открывать отчет, показывающий остатки материалов
по складу, прямо из формы документа с отбором по указанному в документе складу.
401
Рисунок 329. Отчет «Материалы» с отбором по складу, указанному в документе
Открытие формы списка с заданным отбором
В заключение рассмотрим распространенный случай, когда требуется открыть форму списка с некоторым заранее установленным
отбором. На этом же примере мы поясним различие между фиксированными (программными) пользовательскими настройками и
настройками динамического списка, сделанными в конфигураторе.
Предположим, из списка сотрудников нам нужно открыть список документов об оказании услуг, выполненных сотрудником, который выделен в форме списка.
В режиме «Конфигуратор»
Итак, нам нужно открыть форму списка документов Оказание
услуги с отбором по мастеру, в котором поле Мастер будет равно
ссылке на текущего сотрудника в списке сотрудников.
Для этого создадим форму списка справочника Сотрудники, затем создадим в ней команду ОказаниеУслуг и перетащим ее в командную панель формы. В палитре свойств команды ОказаниеУслуг,
в строке Действие создадим клиентский обработчик этой команды
(рис. 330).
402
Рисунок 330. Форма списка справочника «Сотрудники».
В модуле формы заполним обработчик команды следующим образом (листинг 7).
Листинг 7 Обработчик команды «Оказание услуг»
&НаКлиенте
Процедура ОказаниеУслуг(Команда)
ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Мастер", Элементы.Список.ТекущаяСтрока));
ОткрытьФорму("Документ.ОказаниеУслуги.ФормаСписка",
ПараметрыФормы,, Истина);
КонецПроцедуры
Этот код очень похож на предыдущий листинг 6, в котором открывалась форма отчета с отбором по значению параметризованной
команды. Только здесь в значение отбора для поля Мастер передается
ссылка на текущий элемент списка сотрудников, которая содержится
в свойстве ТекущаяСтрока таблицы формы Список, отображающей
данные динамического списка. Затем этот отбор передается в параметры формы при открытии формы списка документов Оказание
услуги.
В режиме «1С: Предприятие»
Запустим «1С: Предприятие» и откроем список сотрудников.
В форме списка появилась кнопка Оказание услуг. При ее нажатии
403
открывается список документов об оказании услуг, где мастером является текущий сотрудник (рис. 331).
Рисунок 331. Отбор по мастеру в списке документов «Оказание услуги».
Однако не все так просто, как может показаться. Здесь есть одна
тонкость, которую нужно знать и учитывать при создании настроек
(в частности, отборов) динамических списков.
Как уже говорилось, динамический список построен на основе
системы компоновки данных. Настройки списка при открытии формы
помещаются в свойство динамического списка КомпоновщикНастроек.
Следует различать три вида настроек динамического списка:
1. Фиксированные настройки, сделанные программным путем, помещаются в свойство динамического списка КомпоновщикНастроек.ФиксированныеНастройки;
2. Настройки, сделанные в конфигураторе, помещаются
в свойство динамического списка КомпоновщикНастроек.Настройки;
3. Пользовательские настройки, сделанные в режиме
1С:Предприятие, помещаются в свойство динамического списка КомпоновщикНастроек. ПользовательскиеНастройки.
404
Пользовательские настройки загружаются из системного хранилища и накладываются на настройки, сделанные в конфигураторе.
В случае пересечения этих настроек пользовательские настройки имеют больший приоритет, то есть «затирают» настройки конфигуратора.
Затем к полученным настройкам применяются фиксированные
настройки. Но в случае пересечения этих настроек будет выдаваться
ошибка. Например, при открытии формы списка с отбором (в нашем
случае по полю Мастер) этот отбор помещается в фиксированные
настройки. Поэтому пользователь уже не сможет установить отбор
списка по тому же полю.
Таким образом, если пользователь должен иметь возможность
создавать отбор по полю, участвующему в фиксированных настройках списка, нужно удалить отбор из коллекции фиксированных
настроек (КомпоновщикНастроек.ФиксированныеНастройки.Отбор)
и добавить этот отбор в коллекцию основных настроек списка (КомпоновщикНастроек.Настройки.Отбор).
В режиме «Конфигуратор»
Чтобы решить поставленную задачу, откроем форму списка документа ОказаниеУслуги, которую мы создали ранее. В редакторе
формы создадим реквизиты формы ПрограммныйОтбор типа Булево
и два реквизита произвольного типа – ПолеОтбора и ЗначениеОтбора.
Эти реквизиты будут хранить информацию о программном отборе
в форме списка.
После этого перейдем к созданию обработчика события формы
«ПриСозданииНаСервере» и заполним его следующим образом (листинг 8).
Листинг 8 Обработчик события формы «ПриСозданииНаСервере»
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Отбор.Свойство("Мастер") Тогда
ПрограммныйОтбор = Истина;
ПолеОтбора = Новый ПолеКомпоновкиДанных("Мастер");
Параметры.Отбор.Свойство("Мастер", ЗначениеОтбора);
КонецЕсли
КонецПроцедуры
405
При создании формы списка с помощью коллекции параметров
формы мы проверяем, был ли установлен отбор по полю Мастер. Если такой отбор установлен, то мы устанавливаем признак того, что
форма была открыта с программным отбором, реквизит ПолеОтбора
устанавливаем как поле компоновки данных с именем Мастер, а в
реквизит ЗначениеОтбора помещаем соответствующее значение отбора из коллекции параметров формы.
Далее создадим обработчик события формы ПриОткрытии и заполним его следующим образом (листинг 9).
Листинг 9 Обработчик события формы «ПриОткрытии»
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ПрограммныйОтбор = Истина Тогда
ПрограммныеНастройки
=
Список.КомпоновщикНастроек.ФиксированныеНастройки;
Для Каждого ЭлементНастроек Из ПрограммныеНастройки.Отбор.Элементы Цикл
Если ЭлементНастроек.ЛевоеЗначение = ПолеОтбора Тогда
ПрограммныеНастройки.Отбор.Элементы.Удалить(ЭлементНастроек);
КонецЕсли;
КонецЦикла;
Настройки = Список.КомпоновщикНастроек.Настройки; ЭлементОтбора
=
Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанн
ых"));
ЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ЗначениеОтбора;
Список.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
КонецЕсли;
КонецПроцедуры
Код обработчика выполняется в случае, если форма была открыта с программным отбором.
406
Сначала обходится коллекция элементов отбора фиксированных
настроек компоновщика настроек динамического списка. Если в коллекции присутствует элемент отбора, в котором ЛевоеЗначение равно
значению реквизита ПолеОтбора (т. е. установлен программный отбор по полю Мастер), то этот элемент удаляется.
Затем этот же отбор добавляется в коллекцию настроек динамического списка КомпоновщикНастроек.Настройки.Отбор, и измененные настройки загружаются в компоновщик настроек.
Теперь осталось только удалить созданный элемент отбора при
закрытии формы списка документа ОказаниеУслуги.
Для этого создадим обработчик события формы ПередЗакрытием и заполним его следующим образом (листинг 10).
листинг 10 Обработчик события формы «ПередЗакрытием»
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
Если ПрограммныйОтбор = Истина Тогда
Настройки = Список.КомпоновщикНастроек.Настройки;
Для Каждого ЭлементНастроек Из Настройки.Отбор.Элементы
Цикл
Если ЭлементНастроек.ЛевоеЗначение = ПолеОтбора Тогда
Настройки.Отбор.Элементы.Удалить(ЭлементНастроек);
КонецЕсли;
КонецЦикла;
Список.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
КонецЕсли;
КонецПроцедуры
Код обработчика выполняется в случае, если форма была открыта с программным отбором.
Коллекция элементов отбора настроек компоновщика настроек
динамического списка КомпоновщикНастроек.Настройки.Отбор обходится в цикле. Если в коллекции присутствует элемент отбора,
в котором ЛевоеЗначение равно значению реквизита ПолеОтбора,
то этот элемент удаляется. Затем измененные настройки загружаются
в компоновщик настроек.
407
В режиме «1С: Предприятие»
Запустим «1С: Предприятие», откроем список сотрудников и
нажмем кнопку «Оказание услуг». Откроется список документов об
оказании услуг, где мастером является текущий сотрудник. Вызовем
окно настройки списка, выполнив команду Еще } Настроить список. В
открывшемся окне мы видим добавленный нами отбор по полю Мастер, который пользователь может изменить или очистить (рис. 332).
Рисунок 332. Окно настройки списка с заданным отбором.
При закрытии формы списка этот отбор удаляется.
Таким образом, мы рассмотрели, как открыть форму списка
с заданным отбором и как предоставить пользователю возможность
редактировать этот отбор.
408
СПИСОК ЛИТЕРАТУРЫ
1. Скороход, С. В. Программирование на платформе 1С: Предприятие 8.3 : учебное пособие / С. В. Скороход ; Южный федеральный университет. - Ростов-на-Дону ; Таганрог : Издательство Южного
федерального университета, 2019. - 135 с. - ISBN 978-5-9275-3315-2. Текст
:
электронный.
URL:
https://znanium.com/catalog/product/1088199
(дата
обращения:
27.10.2020). – Режим доступа: по подписке.
2. Гагарина, Л. Г. Разработка и эксплуатация автоматизированных информационных систем : учебное пособие / Л.Г. Гагарина. —
Москва : ИД «ФОРУМ» : ИНФРА-М, 2021. — 384 с. — (Среднее
профессиональное образование). - ISBN 978-5-8199-0735-1. - Текст :
электронный. - URL: https://znanium.com/catalog/product/1214882 (дата
обращения: 27.10.2020). – Режим доступа: по подписке.
3. Затонский, А. В. Информационные технологии: разработка
информационных моделей и систем : учебное пособие / А. В. Затонский. — Москва : РИОР : ИНФРА-М, 2020. — 344 с. + Доп. материалы [Электронный ресурс]. — (Среднее профессиональное образование). - ISBN 978-5-369-01823-1. - Текст : электронный. - URL:
https://znanium.com/catalog/product/1043097
(дата
обращения:
27.10.2020). – Режим доступа: по подписке.
4. Лисяк, В. В. Разработка информационных систем : учебное
пособие / В. В. Лисяк ; Южный федеральный университет. - Ростовна-Дону ; Таганрог : Издательство Южного федерального университета, 2019. - 96 с. - ISBN 978-5-9275-3168-4. - Текст : электронный. URL: https://znanium.com/catalog/product/1088133 (дата обращения:
27.10.2020). – Режим доступа: по подписке.
5. Информационные технологии и системы: Учебное пособие
[Электронный ресурс]/ Е. Л. Федотова. - М.: ИД ФОРУМ: НИЦ ИНФРА-М,
2014.
352
с.
Режим
доступа:
http://znanium.com/bookread2.php?book=429113
6. ИНТУИТ. Национальный открытый университет. Основы
разработки для платформы 1С:Предприятие 8.2 в режиме "Управляемое приложение" [Электронный ресурс] / http://www.intuit.ru/ - Элек409
тронные данные. – Режим доступа: http://www.intuit.ru/ . Свободный. –
Заглавие с экрана. – Яз. рус., анг.
7. 1С:Предприятие
8.
[Электронный
ресурс]
/
http://www.v8.1c.ru/metod/ - Электронные данные. – Режим доступа:
http://www.v8.1c.ru/metod/ /. Свободный. – Заглавие с экрана. – Яз.
рус., анг.
8. 1С:ИТС. [Электронный ресурс] / http://its.1c.ru/book_demo/ Электронные данные. – Режим доступа: http://its.1c.ru/book_demo/ .
Свободный. – Заглавие с экрана. – Яз. рус., анг.
9. Интернет-конференция для начинающих разработчиков.
[Электронный ресурс] / http://devtrainingforum.v8.1c.ru/forum/ - Электронные
данные.
–
Режим
доступа:
http://devtrainingforum.v8.1c.ru/forum/ . Свободный. – Заглавие с экрана. – Яз. рус., анг.
410
Составитель
Абрамович Александр Сергеевич
Курс лекций
для междисциплианрного курса
Эксплуатация информационной системы
для студентов очной формы обучения специальности
09.02.04 Информационные системы (по отраслям)
Электронное издание
Сверстано и отпечатано в филиале КузГТУ в г. Прокопьевске.
653039, г. Прокопьевск, ул. Ноградская, 19а.
Формат 60×84 1/16. Объем 25,56 п. л. Заказ 266.
411
Download