С Режим Конфигуратор

         

Сортировка списка значений


//сортировать по значению

СписокЗнач.Сортировать(); //по возрастанию

СписокЗнач.Сортировать(1); //по убыванию

//сортировать по представлению

СписокЗнач.СортироватьПоПредставлению(); //по возрастанию

СписокЗнач.СортироватьПоПредставлению(1); //по убыванию



Сортировка таблицы значений


//сортировать по должности по возрастанию

ТабЗнач.Сортировать("Должность+");

//сортировать по должности по возрастанию, а внутри должности по убыванию оклада

ТабЗнач.Сортировать("Должность+,Оклад-");



Состав документа


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

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

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

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





Состав отчета


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

и Окончание. Оба поля будут иметь тип "дата". Модуль отчета должен выбрать из справочника Сотрудники нужных людей и вывести их в таблицу.



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


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

Задание типа диаграммы

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

Настройка внешнего вида диаграммы

Для того чтобы включить режим форматирования областей диаграммы, необходимо выбрать пункт Изменить подменю Объект: 1С. V7. Диаграмма меню Действия (тое же пункт есть в контекстном меню диаграммы). Каждая из составных частей диаграммы в режиме редактирования имеет пункт контекстного меню Формат области … Настройка внешнего вида состоит из выбора заливки, рамки, цвета и шрифта текста и т.п. Там же можно определить, например, сетку для области построения. После завершения форматирования достаточно щелкнуть по любой ячейке таблицы, чтобы выключить режим форматирования.



Создание и проведение документа


Новый документ в системе 1С можно ввести различными методами:

Интерактивно - этот способ можно реализовать по-разному.

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

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

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

Процедура ВводНаОсновании(ДокОсн)

РасчетныйСчет = ДокОсн.РасчетныйСчет;

МестоХранения = глЗначениеПоУмолчанию("ОсновнойСклад");

Контрагент = ДокОсн.Контрагент;

Договор = ДокОсн.Договор;

ВариантРасчетаНалогов = ДокОсн.ВариантРасчетаНалогов;

ДокОсн.ВыбратьСтроки();

Пока ДокОсн.ПолучитьСтроку() = 1 Цикл

НоваяСтрока();

Товар = ДокОсн.Товар;

Количество = ДокОсн.Количество;

Цена = ДокОсн.Цена;




Сумма = ДокОсн.Сумма;

НДС = ДокОсн.НДС;

Всего = ДокОсн.Всего;

КонецЦикла;

КонецПроцедуры

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

Доступ к реквизитам счета осуществляется через переменную ДокОсн, которая является параметром процедуры. Как мы помним (см. описание предопределенных процедур модуля формы документа), в неё передается контекст документа-основания.

4. Программный способ - для него в языке 1С предусмотрены специальные команды. Можно при записи расходной накладной сформировать документ СчетФактура:

СФ = СоздатьОбъект("Документ.СчетФактура");

СФ.Новый();

СФ.ВариантОтправки = 1;

СФ.НомерДок = НомерДок; // Счет-фактура будет с тем же номером и датой, что и

СФ.ДатаДок = ДатаДок; // накладная. Но так можно и не делать, есть же автонумерация

СФ.Контрагент=Контрагент;

СФ.Грузополучатель=Контрагент;

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

СФ.НоваяСтрока();

// Реквизит "Товар" док-та СчетФактура имеет неопределенный тип

СФ.НазначитьТип("Товар", "Справочник.Номенклатура");

СФ.Товар=Товар;

Если ПустоеЗначение(Товар.СтранаПроисхождения) = 0 Тогда

// а это обращение к реквизитам справочника "Номенклатура"

СФ.СтранаПроисхождения = Товар.СтранаПроисхождения;

Иначе

СФ.СтранаПроисхождения = "Россия";

КонецЕсли;

СФ.Количество=Количество;

СФ.Цена=Цена;

СФ.Сумма=Сумма;

СФ.НДС=НДС;

СФ.Всего=Сумма+НДС;

// Здесь накладная становится основанием счета-фактуры через специальный реквизит

СФ.ДокументОснование = ТекущийДокумент();

КонецЦикла;

СФ.Записать();

СФ.Провести(0, "Программно");

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


Создание объекта СписокЗначений


Список значений - это аналог одномерного массива в 1С, который предназначен для хранения и обработки промежуточных данных, возникающих в процессе работы программы. Объект "Список значений" имеет множество полезных возможностей и работает очень быстро. Следует учитывать, что в языке 1С есть и одномерные массивы в том смысле, как это принято в других языках программирования (Перем мас[10]). Список значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.

СписокЗнач = СоздатьОбъект("СписокЗначений");



Создание операции и проводок


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

Процедура ОбработкаПроведения()

//заполнение атрибутов операции

Операция.СуммаОперации = Итог("Сумма");

Операция.Содержание = "Поступление материалов";

Операция.Журнал = "МТ"; //доп. реквизит операции

//для каждой строки документа сделаем проводку

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

ПривязыватьСтроку(1); //проводки будут содержать номер строки документа

//создание проводки и заполнение атрибутов проводки

Операция.НоваяПроводка();

Операция.Дебет.Счет = СчетПоКоду("10.1");

Операция.Дебет.Склады = Склад; //1-й вариант обращения к субконто

Операция.Дебет.Субконто(ВидыСубконто.Материалы,Материал); //2-й вариант

Операция.Количество = Количество;

Операция.Кредит.Счет = СчетПоКоду("51");

Операция.Кредит.Субконто(1,РасчетныйСчет); //3-й вариант

Операция.Сумма = Сумма;

//у нас счет 10.1 валютный, поэтому

Операция.ВалСумма = Сумма*Курс;

Операция.Валюта = Валюта;

Операция.Филиал = Филиал; //разделитель учета (доп. реквизит проводки)

КонецЦикла;

Операция.Записать();

КонецПроцедуры

Итак, у операции есть следующие атрибуты:



Создание, сохранение и проведение документа


ДокПрием.Новый();

ДокПрием.ФИО = "Иванов Иван Иванович";

ДокПрием.Оклад = 5000;

ДокПрием.Записать();

//программное проведение документа

ДокПрием.Провести();



Создание таблицы значений


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

ТабЗнач = СоздатьОбъект("ТаблицаЗначений");

ТабЗнач.НоваяКолонка("Номер");

ТабЗнач.НоваяКолонка("Сотрудник");

ТабЗнач.НоваяКолонка("Должность");

ТабЗнач.НоваяКолонка("Оклад");

//можно указать тип данных каждой колонки

//если тип данных колонки не указан, то можно хранить данные любого типа

Синтаксис: НоваяКолонка(<Идентификатор>, <Тип>, <Длина>, <Точность>, <Заголовок>, <Ширина>, <Формат>, <Положение>)

ТабЗнач.НоваяКолонка("Номер","Число",10,0);

ТабЗнач.НоваяКолонка("Сотрудник","Справочник.Сотрудники");

ТабЗнач.НоваяКолонка("Должность","Справочник.Должности");

ТабЗнач.НоваяКолонка("Оклад","Число",10,2);



Создание, удаление и корректировка счетов


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

Счета = СоздатьОбъект("Счет.Основной");

Счета.Новый(1); //у счета будут субсчета

Счета.Код = "10";

Счета.Наименование = "Материалы";

Счета.Активный = 1; //активный

Счета.Записать();

Счета.Новый();

Счета.Код = "10.1";

Счета.Наименование = "Основные материалы";

Счета.ВидСубконто(1,ВидыСубконто.Материалы);

Счета.ВидСубконто(2,ВидыСубконто.Склады);

Счета.Записать();

Пример, изменить наименование счета:

Счета = СоздатьОбъект("Счет.Основной");

Счета.НайтиПоКоду("10");

Счета.Наименование = "Все материалы";

Счета.Записать();

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

Счета = СоздатьОбъект("Счет.Основной");

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл

.....Если Счета.ЗаданВКонфигурации()=0 Тогда

.........Счета.Удалить(0); //пометить на удаление

.....КонецЕсли;

КонецЦикла;

Пример, отменить все пометки на удаление:

Счета = СоздатьОбъект("Счет.Основной");

Счета.ВыбратьСчета();

Пока Счета.ПолучитьСчет()=1 Цикл

.....Если Счета.ПометкаУдаления()=1 Тогда

.........Счета.СнятьПометкуУдаления();

.....КонецЕсли;

КонецЦикла;



Список значений как элемент диалога


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

//установить курсор на указанную строку или можно узнать, где находится курсор.

ТекСтрока = СписокЗнач.ТекущаяСтрока(НовСтрока);

//список значений в диалоге может иметь пометки (флажки)

пометка = СписокЗнач.Пометка(Позиция); //прочитать пометку у значения списка

СписокЗнач.Пометка(Позиция,1); //установить пометку у значения списка

СписокЗнач.Пометка(Позиция,0); //снять пометку у значения списка



Справочник "Черный список"


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

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



Справочник "Книги" (форма списка)


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



Справочник Контрагенты


Работающие

Иванов Иванов Иванов

Петров Петр Петрович

Уволенные

Светлов Михаил Петрович

Цветков Антон Васильевич

Партнеры

Партнер 1

Партнер 2

Поставщики

Поставщик 1

Поставщик 2



Справочник "Кошельки"


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



Справочник "Пользователи"


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

Данный справочник содержит следующие поля:

Код

Наименование (краткое имя, логин)

ПолноеИмя

Подпись (для подстановки в новые письма)

ЕстьПисьмо (флажок, который показывает, что пришла новая почта)



Справочник "Произведения" (форма элемента)


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



Справочник "Работодатели"


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



Справочник "Резюме"


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



Справочник "Соискатели"


Данный справочник будет хранить сведения о соискателях, которые предлагают свои резюме. При нажатии на кнопку Вакансии показывается список резюме данного соискателя. У каждого соискателя может быть несколько резюме. Например, соискатель знает 1С и знает Photoshop, но указывать их в одном резюме - признак плохого тона. Себя надо позиционировать очень четко, потому что работодателей раздражают люди, которые знают все.



Справочник "Статьи доходов"


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



Справочник "Статьи расходов"


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



Справочник "Участники"


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



Справочник "Вакансии"


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



Справочники


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



Ссылка на документ


Для работы с документом из какого-нибудь модуля требуется сначала создать ссылку на этот документ.

ДокПрием = СоздатьОбъект("Документ.ПриемНаРаботу");

ДокУвольн = СоздатьОбъект("Документ.ПриказОбУвольнении");



Ссылка на календарь


1-й вариант:

Календ = СоздатьОбъект("Календарь.Служащие");

2-й вариант:

Календ = Календари.Служащие;



Ссылка на объект Таблица


Для работы с таблицей требуется сначала создать ссылку на объект Таблица. Если таблица не одна, то следует указать нужную таблицу.

Таб = СоздатьОбъект("Таблица");

или

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("НужныйОтчет");

<вывод секций таблицы>

Таб.Показать(); //показать таблицу на экране



Ссылка на справочник


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



Ссылка на вид расчета


1-й вариант:

ВР = ВидРасчета.НаРуки;

ВР = ВидРасчета.Премия;

2-й вариант:

ВР = ВидРасчета.ПолучитьАтрибут("НаРуки");

Пример, определим сумму "по окладу" текущего сотрудника:

ПоОкладу = 0;

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ДатаНач = '01.01.2002';

ЖЗ. ВыбратьПериодПоОбъекту(ТекСотр, ДатаНач);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

....Если ЖЗ.ВидРасч = ВидРасчета.ПоОкладу Тогда

.........ПоОкладу = ПоОкладу + ЖЗ.Результат;

....КонецЕсли;

КонецЦикла;



Ссылка на журнал расчетов


ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");



Статический фильтр (только версия 7.7)


В 1С 7.7 нельзя установить отбор по периодическому реквизиту или по нескольким реквизитам одновременно (сложный фильтр). В этом случае выходом из положения может быть метод ИспользоватьСписокЭлементов. Этому методу нужно передать список элементов, которые должны быть показаны. Предварительно этот список нужно сформировать.



СтатусВозврата


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



Сведения о сотрудниках


Ниже приведена экранная форма списка справочника "Сотрудники".

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

Ниже приведена экранная форма элемента справочника "Сотрудники".

Кнопка "Еще..." вызывает форму элемента справочника "Кадровые данные".



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица


Реквизит

Описание

ТипЗначения



Таблица значений как элемент диалога


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

//установить курсор на указанную колонку или можно узнать, где находится курсор

ТабЗнач.ТекущаяКолонка(НоваяКолонка,ТекКолонка);

//установить курсор на указанную строку или можно узнать, где находится курсор.

ТекСтрока = ТабЗнач.ТекущаяСтрока(НовСтрока);

ТабЗнач.ВидимостьКолонки("Оклад",0); //скрыть колонку Оклад

ТабЗнач.ВидимостьКолонки("Должность, Сотрудник",1); //показать колонки Должность и Сотрудник

ТабЗнач.ВидимостьКолонки("Оклад",1,1); //показать колонку Оклад в 1-й позиции

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

ТабЗнач.Фиксировать(КолСтрок,КолКолонок);



Табличная часть документа


Перебор строк, добавление и удаление строк табличной части документа..

//перебор строк табличной части

Док.ВыбратьСтроки();

Пока Док.ПолучитьСтроку()=1 Цикл

           

...

КонецЦикла;

//добавление строки

Док.НоваяСтрока();

Док.РеквизитТаблЧасти = Значение;

//удаление строки

Док.УдалитьСтроку();



Табличные части (только версия 8.0)


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



Технические подробности


Игровое поле реализовано в виде множества кнопок (64х3). На каждом поле размещается по три кнопки: пустая, с белой фишкой и с черной фишкой. В процедуре ПоказатьДоску в соответствии с массивом Доска скрываются и показываются нужные кнопки. В массиве Доска хранится текущая игровая ситуация. Значение поля = 1 означает пустую клетку, 2 и 3 - белые и черные фишки.

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



Технические подробности


Игровое поле реализовано в виде множества кнопок на трех слоях формы. Текущая игровая ситуация хранится в массиве Поле[100]. Число 0 означает куст, 1 - скрытую лису, 2- пойманную лису, 3 - число. В процедуре ОбновитьПоле выводится игровое поле на форме в соответствии с этим массивом.

Кнопка Игра, вызывает процедуру Игра(), которая начинает новую игру: расставляет на поле лис с помощью функции СлучайноеЧисло(). Кстати, очень полезная функция, но 1С ее почему-то не реализовала. Наверное, думала, что в бухгалтерии "ничто не случайно".

При нажатии на кнопку с лисой вызывается процедура ЛисаПоле(), при нажатии на кнопку с кустом или скрытой лисой вызывается процедура КустПоле. Если на поле скрытой лисы не было, то отображается число лис же горизонтали, вертикали и диагоналях клетки. Это число подсчитывается процедурой КоличествоЗапеленгованныхЛис().

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



Типы данных


Для каждого атрибута справочника нужно указать его тип данных, например, "число", "строка", "дата" (в версии 8.0 есть еще тип Булево - Истина или Ложь). Это базовые типы, но можно указать и сложные типы данных. Например атрибут Должность имеет тип данных Должности. В этом случае, значения этого атрибута будут выбираться из справочника Должности. Так реализуется простейшая связь между справочниками, когда значения атрибутов одного справочника выбираются из другого справочника.

Справочник Сотрудники

Справочник Должности