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

         

Дополнительные функции


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

Поиск нужной книги по названию, автору, жанру и другим известным признакам.

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

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

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

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

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

Доставочка



Другие методы


Метод ОсновныеИтоги

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

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

Для получения временных итогов используются те же методы, что и для получения основных итогов (СНД, СНК , СКД , СКК, ДО, КО, ОБ и другие). Параметры метода Рассчитать определяют итоги, которые будут доступны для получения этими методами.



Другие полезные методы


Некоторые методы уже применялись в примерах, а теперь сведем их в таблицу:





Два вспомогательных метода диаграммы


Запрет перерисовки может ускорить работу системы во время наполнения таблицы данными.

Диаграмма1.Обновление(0);

//то же выражение, но с флагом 1 разрешит перерисовку

Очистка всех установленных значений имен и количеств точек, серий, диаграммы делается так:

Диаграмма1.Очистить();



Двойная группировка


Этот запрос совершает очень полезную работу: он группирует всех сотрудников по должностям. Заметьте, что сначала идет группировка по должности, а затем по сотруднику, это очень важно. Обратите внимание на переменную запроса Сотр. Она ссылается на строку справочника Сотрудники. Чтобы вывести ФИО сотрудника используется обращение к атрибуту объекта: Сотр.Наименование.

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

ТекстЗапроса = "

|Сотр = Справочник.Сотрудники.ТекущийЭлемент;

|Долж = Справочник.Сотрудники.Должность;

|Группировка Долж упорядочить по Долж.Наименование;

|Группировка Сотр упорядочить по Сотр.Наименование;

|";

Запрос.Выполнить(ТекстЗапроса);

Пока Запрос.Группировка("Долж")=1 Цикл

............Сообщить(Запрос.Долж);

............Пока Запрос.Группировка("Сотр")=1 Цикл

................Сообщить("......" + Запрос.Сотр.Наименование);

............КонецЦикла;

КонецЦикла;



Если из регистра нужно быстро


Регистры остатков

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

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

Регистры оборотов

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

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

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



Фильтрация движений и итогов


РегТовары = СоздатьОбъект("Регистр.Товары");

1. Метод УстановитьФильтр

Пример:

//выбрать все движения по данному складу за период

РегТовары.УстановитьФильтр(,ТекСклад);

РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);

Пока РегТовары.ПолучитьДвижение()=1 Цикл

...

КонецЦикла;

//выбрать все товары на данном складе

РегТовары.УстановитьФильтр(,ТекСклад);

РегТовары.ВыбратьИтоги();

Пока РегТовары.ПолучитьИтог()=1 Цикл

...

КонецЦикла;

2. Метод УстановитьЗначениеФильтра


Пример:

//выбрать все движения по данному складу за период

РегТовары.УстановитьЗначениеФильтра("Склад", ТекСклад);

//далее идет выборка движений или итогов

3. Метод ВыбратьДвиженияДокумента


4. Метод ВыбратьДвиженияСОстатками

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



Фильтрация (отбор)


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

РежимИерархии = 1; //1- выбирать с учетом иерархии, 0 - без учета

РежимГрупп = 0; //0 - не включать в выборку группы, 1 - включать

ИмяРеквизита = "Год"; //в Конфигураторе у реквизита должен быть установлен флажок Отбор

Значение = 1980;

СпрСотр.ВыбратьЭлементыПоРеквизиту(ИмяРеквизита,Значение,РежимИерархии, РежимГрупп);

Пока СпрСотр.ПолучитьЭлемент()=1 Цикл

.....<действия с очередным элементом>

КонецЦикла;



Фильтрация по графе отбора


синтаксис: ВыбратьПоЗначению (<НачалоПериода>, <КонецПериода> , <ВидОтбора>, <3начениеОтбора>)

Параметр <ВидОтбора> для отбора операций может принимать следующие значения:

"СуммаОперации"

Отбор по сумме операции. Доступно если в метаданных включен отбор по сумме опера­ции.

"Содержание"

Отбор по содержанию операции. Доступно если в метаданных включен отбор по содер­жанию операции.

<РеквизитОперации>

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

Параметр <ВидОтбора> для отбора проводок может принимать следующие значения:

"Счет"

Отбор по счету дебета или счету кредита проводки. Доступно если в метаданных вклю­чен отбор по счетам проводок.

"СчетДт"

Отбор по счету дебета проводки. Доступно если в метаданных включен отбор по дебе­ту/кредиту счетов проводок.

"СчетКт"

Отбор по счету кредита проводки. Доступно если в метаданных включен отбор по дебе­ту/кредиту счетов проводок.

"Валюта"

Отбор по валюте проводки. Доступно если в метаданных включен отбор по валюте прово­док.

ВидСубконто>

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

<РеквизитПроводки>

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

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



Фильтрация по субконто


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

Опер = СоздатьОбъект("Операция");

Опер.ИспользоватьСубконто(ВидыСубконто.Организации, ВыбОрг);

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, "60");

Пока Опер.ПолучитьПроводку() = 1 Цикл

.....Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

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

Опер = СоздатьОбъект("Операция");

Опер.ИспользоватьСубконто(ВидыСубконто.Материалы, ВыбрМатериал);

Опер.ИспользоватьСубконто(ВидыСубконто.Склады, ВыбрСклад);

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, "10");

Пока Опер.ПолучитьПроводку() = 1 Цикл

.....Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

Метод ИспользоватьКорСубконто аналогичен методу ИспользоватьСубконто, но задает фильтр по корреспондирующим субконто.

В качестве значения субконто в этим методы можно передавать «Список значений».



Фильтрация в цикле


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

СпрСотр.ИспользоватьРодителя(грпРаботающие);

СпрСотр.ИспользоватьДату(РабочаяДата());

СпрСотр.ВыбратьЭлементы();

Пока СпрСотр.ПолучитьЭлемент()=1 Цикл

Если СпрСотр.Должность <> длжПлотник Тогда

....Продолжить; //этого сотрудника пропускаем, перейти в начало цикла

КонецЕсли;

<действия с очередным элементом>

КонецЦикла;



ФИО


2.4 Справочник фирм.

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

66601

Воланд

66602

Коровьев Фагот

66603

Азазелло

66604

Бегемот

66605

Гелла

Идентификатор: Фирмы

Подчинен: нет

Количество уровней: 1

Код: 5       Тип кода: число     Серии кодов: подчинение

Наименование: 50

Основное представление: наименование

Группы сверху: да

Автонумерация: да     Уникальность: да

Одна форма для элемента и группы?: нет

Редактировать: в диалоге

"Код" – номер фирмы по порядку.

"Наименование" – полное название фирмы.

Реквизит

Описание

ТипЗначения

Доп.

Исп.

Изм.

Адрес

Юридический адрес фирмы

Строка неогр.

ФИОРук

ФИО руководителя

С.Сотрудники

ФИОБух

ФИО главного бухгалтера

С.Сотрудники

Создаем новый справочник;

Создаем форму элемента;

Поле "Код" сделаем недоступным, оно и так формируется автоматически;

Поле "Адрес" сделаем многострочным;

Теперь создадим форму списка;

Для указания, какая из фирм – основная, создадим Константу "ОснФирма", типа С.Фирмы;

Перейдем в 1С:Предприятие и заполним реквизиты нашей фирмы:

Наименование: "Magic Inc."

ФИО руководителя: "Воланд"

ФИО главбуха: "Коровьев Фагот"

Адрес: "Россия РФ г.Москва ул.Садовая д.302-бис кв.50". (Азазелло – в охранники, Геллу в секретарши, Бегемота в рабочие, он хорошо примусы починяет).

Укажем в константах эту фирму как основную;

2.5 Справочник валют.

Бухгалтера обычно что-нибудь считают, особенно любят они считать деньги. Поможем им, создадим справочник со списком валют. Валюта кроме названия имеет такие характеристики как курс и кратность. Первая показывает ее отношение к другой валюте, принятой за основную а вторая сколько единиц первой валюты указывается при назначении курса. (Пример 1000 итальянских лир соответствует 13.5 рублям, курс (если рубль – базовая валюта) – 13.5, кратность - 1000). Курс у нас будет периодическим значением. Изменять его мы будем вручную. Кроме справочника создадим и Константу с базовой валютой учета

Идентификатор: Валюты

Подчинен: нет

Количество уровней: 1

Код: 3       Тип кода: строка     Серии кодов: подчинение

Наименование: 50

Основное представление: код

Группы сверху: да

Автонумерация: нет       Уникальность: да

Одна форма для элемента и группы?: нет

Редактировать: в диалоге

"Код" – шифр валюты по ОКВ (Общероссийский классификатор валют).

"Наименование" – полное название валюты.

Реквизит

Описание

ТипЗначения

Доп.

Исп.

Изм.

Курс

курс валюты

Число 6.2

+, П

Р

Кратность

кратность валюты

Число 6.0

+




Создаем новый справочник:

Создаем форму элемента;

В форму элемента добавим текст с формулой Константа.ОснВалюта.Код;

Теперь создадим форму списка;

Заведем новую Константу – "ОснВалюта", типа С.Валюты;

Заполняем справочник валют;

Введем наш российский рубль (в нем мы и будем для простоты вести все расчеты);

Код: RUR

Наименование: Российский рубль

Кратность: 1

Курс: 1

У основной валюты учета курс и кратность обычно равны единице (ее саму с собой сравнивают).

Вводим значение константы "ОснВалюта" – рубль;

Возвращаемся к справочнику валют и вводим еще одну валюту;

Код: BST

Наименование: Басурманский тугрик

Кратность: 1000

Курс: 22.77

2.6 Справочник контрагентов.

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

Идентификатор: Контрагенты

Подчинен: нет

Количество уровней: 2

Код: 4       Тип кода: число     Серии кодов: подчинение

Наименование: 50

Основное представление: наименование

Группы сверху: да

Автонумерация: да       Уникальность: да

Одна форма для элемента и группы?: нет

Редактировать: в диалоге

"Код" – номер контрагента для учета.

"Наименование" – Полное название контрагента.

Реквизит

Описание

ТипЗначения

Доп.

Исп.

Изм.

Валюта

валюта работы

С.Валюты

Э

Адрес

Юридический дрес контрагента

Строка неогр.

Э

Создаем справочник:

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

Форма группы готова. Закрываем ее;

Создаем форму элемента;

Поле "Код" делаем недоступным, а поле "Адрес" – многострочным;

В модуль формы добавим процедуру:

Процедура ВводНового()

  Валюта=Константа.ОснВалюта;

// Это чтоб руками каждый раз не забивать

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

Заведем две константы – "ОснПоставщик" и "ОснПокупатель", обе типа С.Контрагент;

2.7 Работа со справочником контрагентов.

Теперь мы можем заполнить наш справочник контрагентов


Форма документа


Для пользователя содержимое документа представляется в экранной форме документа:


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

Предопределенные процедуры.

Для обслуживания работы действий с документами в системе 1С имеется большое количество предопределенных процедур. Однако, прежде чем приступить к описанию последних, сделаю важное пояснение. Документ как объект конфигурации содержит ДВА РАЗНЫХ программных модуля.

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

Предопределенные процедуры, принадлежащие модулю документа:



Форма элемента и форма группы


Если справочник имеет сложную структуру, тогда его элементы удобнее редактировать в отдельном окне, а не в списке. Ниже приведена форма элемента справочника Сотрудники.

В форме элемента справочника также есть предопределенные процедуры (события):



Форма списка справочника


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

Лучше один раз увидеть, чем сто раз услышать, поэтому ниже для примера приведена форма списка справочника Сотрудники:



Форма журнала документов


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

Интервал журнала

В журнале документов можно установить интервал. Тогда он будет показывать только те документы, у которых дата попадает в этот интервал. Для установки интервала предусмотрена специальная кнопка на панели инструментов журнала. Кроме того, интервал можно установить программно методом УстановитьИнтервал

Графы журнала

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

Отбор, закладки отбора

В журнале документов можно программно или вручную установить отбор, тогда журнал будет показывать только нужные пользователю документы. Для установки отбора вручную предназначена специальная кнопка на панели инструментов журнала. Отбор можно установить по общим графам документов, а также по виду документов. Нельзя установить отбор по двум критериям одновременно. Отбор возможен только в ОБЩИХ журналах! Для упрощения процедуры отбора могут быть использованы закладки. Для этого используется метод ЗакладкиОтбора.

Предопределенные процедуры

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



Функции в запросе


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

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

ТекстЗапроса = "

|Долж = Справочник.Сотрудники.Должность;

|Группировка Долж упорядочить по Долж.Наименование;

|Функция Колво = Счётчик();

|";

Запрос.Выполнить(ТекстЗапроса);

Пока Запрос.Группировка("Долж")=1 Цикл

...Сообщить("По должности " + Строка(Запрос.Долж) +

.............." работает " + Строка(Запрос.Колво) + " чел.");

КонецЦикла;



Болт М16 ГОСТ


Болт М16 ГОСТ 7798-70

1

Гайка М16 ГОСТ 5927-70

1

Шайба М16 ГОСТ 11371-78

4

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


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

Создаем новый справочник;

Идентификатор "Склады", комментарий "склады", в интерфейс включаем;

В свойствах ничего менять не будем, и так сойдет;

Никаких новых реквизитов не надо;

Редактирование оставим в форме списка;

Создадим теперь эту форму списка;

Отредактируем только размеры;

Закроем форму списка и свойства справочника;

Сохраним изменения и откроем 1С:Предприятие;

Войдем через меню Справочники в справочник "Склады";

Создадим три склада: Склад №1, Склад №2 и Склад №3;

Закроем 1С:Предприятие.

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

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

Идентификатор: Контрагенты

Подчинен: нет

Количество уровней: 2

Код: 4         Тип кода: число         Серии кодов: подчинение

Наименование: 50

Основное представление: наименование

Группы сверху: да

Автонумерация: да     Уникальность: да

Одна форма для элемента и группы?: нет

Редактировать: в диалоге

"Код" – номер контрагента для учета.

"Наименование" – Полное название контрагента.



Глобальный модуль


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



Группировка и сортировка


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

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

ТекстЗапроса = "

|Долж = Справочник.Сотрудники.Должность;

|Группировка Долж упорядочить по Долж.Наименование;

|";

Запрос.Выполнить(ТекстЗапроса);

Пока Запрос.Группировка("Долж")=1 Цикл

............Сообщить(Запрос.Долж);

КонецЦикла;



Группы расчетов


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



Иерархические справочники


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



Иерархические справочники


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

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



Информация о текущем элементе


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



Информация о текущем элементе


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



Итоги и группировка таблицы значений


//получить итог по колонке можно методом Итог

ВсеОклады = ТабЗнач.Итог("Оклад")

//часто требуется группировать строки и подсчитывать итоги по группам,

//в этом случае применяется метод Свернуть

Синтаксис: Свернуть(<ГруппКолонки>,<СуммКолонки>)

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

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

//Можно группировать и суммировать сразу по нескольким колонкам

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



Изменение заголовка таблицы


Диаграмма1.Заголовок = "Поступления от покупателей";



Элементы диалога на форме


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

Форма.Сотрудник.Доступность(1); //сделать доступным

Форма.Сотрудник.Доступность(0); //сделать недоступным

Форма.Сотрудник.Видимость(1); //сделать видимым

Форма.Сотрудник.Видимость(0); //сделать невидимым

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

Форма.Кнопка.Заголовок("Далее >>");

Форма.Кнопка.Заголовок("Готово!");

//можно менять цвет элементов диалога

Если ВыбрСотрудник.Выбран()=0 Тогда

... Форма.Надпись_Сотрудник.Цвет(200,50,50); //красный, зеленый, синий (RGB)

....Активизировать("ВыбрСотрудник");

Иначе

... Форма.Надпись_Сотрудник.Цвет(0,0,0);

КонецЕсли;



Этот страшный зверь - точка актуальности


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



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


Все кадровые документы (прием, увольнение и т.д.) отражаются в журнале "Кадровые документы".

Кнопка "Поиск по ФИО" вызывает справочник "Документы по ФИО", в котором все документы упорядочены по ФИО сотрудников. Так как журнал документов в 1С нельзя упорядочить по произвольному полю, то пришлось завести отдельный справочник, аналогичный журналу документов и поддерживать его в актуальном состоянии при записи и проведении документов.

Документ "Прием на работу" выглядит следующим образом:

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

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

В левой части документа отражаются сведения по указанному сотруднику на дату перемещения (прежнее место работы). В правой части документа пользователь указывает новое место работы. При проведении документ изменяет справочник "Сотрудники" и "Штатное расписание".

Остальные документы ("Отпуск", "Больничный лист", "Увольнение") выглядят аналогичным образом.



Календари и Праздники


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

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

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

Журналы расчетов



Конфигуратор


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



Мастер отчетов по сотрудникам


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

Итак, основные операции Мастера отчетов таковы:

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

отбор сотрудников (фильтрация)

вывод дополнительных колонок по сотруднику (граф)

1-й шаг Мастера отчетов по сотрудникам выглядит следующим образом:

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

2-й шаг Мастера отчетов по сотрудникам выглядит следующим образом:

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

2-й шаг Мастера отчетов по сотрудникам выглядит следующим образом:

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

Примеры работы Мастера приведены ниже:

1. Указаны группировка Категория и группировка Сотрудник

2. Указана группировка Сотрудник, фильтр по объекту ИТР и дополнительные графы Оклад и Ставка.

2. Указана группировка Категория и группировка Должность (группировка Сотрудник не указана, поэтому фамилии сотрудников не выводятся, а подсчитывается количество сотрудников в данной группе).

Простой склад

Глава 1

Постановка задачи

Создание конфигурации

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

Глава 2

Начало работы с метаданными.

Создание пользователя.

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

Глава 3

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

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

Глава 4

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

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

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

Далее нам потребуются и другие справочники. Обратите внимание, что мы создадим справочник Склады. Это позволяет вести складской учет на нескольких складах в единой базе. Вот что значит "простая складская система" для 1С:Предприятие.

Глава 5

Взаиморасчеты с контрагентами

Первый документ. Приход денег

Отчет по долгам

Документ "Выплата денег"

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

Глава 6

Документ "Изменение цен"

Регистры по товарам

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

Глава 7

Приходная накладная

Отчет по остаткам на складе

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

Глава 8

FIFO / LIFO / По-среднему

Расходная накладная

Накладная на перемещение

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

Глава 9

Оборотные ведомости

Отчет по прибыли с товара

Отчет по обороту товара

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

Глава 10

Новые наборы прав

Новые интерфейсы

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



Метод Актуальность


Устанавливает или сбрасывает признак актуальности временных итогов.

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

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

Синтаксис: Актуальность(<Флаг>)

<Флаг>: 1 — поддерживать временный расчет в актуальном состоянии; 0 — не поддерживать;

Бухгалтерский запрос

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

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



Метод ИспользоватьКорСубконто


Метод ИспользоватьКорСубконто устанавливает режим отбора итогов по субконто методом ВыполнитьЗапрос. Метод ИспользоватьКорСубконто слудет вызывать до вызова метода ВыполнитьЗапрос. После выполнения метода ВыполнитьЗапрос установки метода ИспользоватьКорСубконто сбрасываются и перед слудеющим запросом их нужно устанавливать заново.

Метод ИспользоватьКорСубконто может вызываться последовательно несколько раз. В этом случае установки, выполняемые этим методом суммируются.

Синтаксис: ИспользоватьКорСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

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



Метод ИспользоватьСубконто


Метод ИспользоватьСубконто устанавливает режим отбора итогов по субконто методом ВыполнитьЗапрос. Метод ИспользоватьСубконто слудет вызывать до вызова метода ВыполнитьЗапрос. После выполнения метода ВыполнитьЗапрос установки метода ИспользоватьСубконто сбрасываются и перед слудеющим запросом их нужно устанавливать заново.

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

Синтаксис: ИспользоватьСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)



Метод Опции


Синтаксис: Опции(<ВключатьЗабалансовыеСуммы>, <ВключатьОборотныеСубконтоСуммы>)

Метод Опции должен вызываться до выполнения метода ВыполнитьЗапрос. Он устанавливает режимы включения в итоги сумм по забалансовым счетам и оборотным субконто. Если метод не вызвался, суммы по забалансовым счетам и оборотным суб­конто не включаются в запрос.

Если параметр равен 1, то эти суммы включаются в запрос, если 0, то не включаются.



Метод Рассчитать


Синтаксис

Рассчитать(<НачалоПериода>, <КонецПериода> , <ФильтрПоСчетам>, <ТолькоСинтетика> , <ПланСчетов>, <РазделительУчета>)



Метод ВключатьСубсчета


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

Синтаксис: ВключатьСубсчета(<ФлагСчета>, <ФлагКоррСчета>}



Метод ВыполнитьЗапрос


Синтаксис: ВыполнитьЗапрос(<НачалоПериода>, <КонецПериода>, <ФильтрПоСчетам>, <ФильтрПоКоррСчет>, <Валюта>, <ТипИтогов>, <Периодичность>, <ТипСуммы>)



Методы периодических реквизитов


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

Катег = СпрСотр.Категория.Получить(НекаяДата);

//так мы установим сотруднику категорию на определенную дату

СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория);



Методы работы с периодом журнала расчетов


НачалоПериода = ЖЗ.НачалоТекущегоПериода();

КонецПериода = ЖЗ.КонецТекущегоПериода();

ПериодСтрокой = ЖЗ.ОписательПериода(НачМес); //например "Январь 2002 г"

Виды и группы расчета



Методы УстановитьЗначение и ПолучитьЗначение


Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.

Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).

Синтаксис: УстановитьЗначение(<Строка>,<Колонка>,<Знач>)

Синтаксис: ПолучитьЗначение(<Строка>,<Колонка>)

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

ТабЗнач.УстановитьЗначение(1,"Номер",100);

ТабЗнач.УстановитьЗначение(1,"Сотрудник","Иванов Иван Иванович");

ТабЗнач.УстановитьЗначение(1,3,10000); //обращение к 1-й строке и 3-й колонке ("Оклад")

Номер = ТабЗнач.ПолучитьЗначение(1,"Номер");

ФИО = ТабЗнач.ПолучитьЗначение(1,"Сотрудник");

Оклад = ТабЗнач.ПолучитьЗначение(1,3); //обращение к 1-й строке и 3-й колонке "Оклад"



Минимальный кадровый учет


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

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

По каждому сотруднику хранится следующая информация:

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

ФИО (реквизит Наименование)

Категория*

Подразделение*

Должность*

Разряд*

Оклад*

Календарь*

Дата приема

Дата увольнения

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



Модуль формы списка


Модуль формы списка содержит процедуры и функции, которые действуют в контексте данной формы (в контексте объекта Справочник).



Модули, процедуры и функции


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

НапечататьПриказ( ).



Начало работы


Порядок начала работы и ввода остатков:

1. Заполняются константы и справочники.

Справочник номенклатуры удобнее заполнять по ходу работы.

Сервис-Параметры-Общие установить 4 цифры в датах.

Сервис-Параметры-Журналы установить период видимости журналов

начало года - конец года или по Вашему усмотрению.

2. Вносятся остатки товара на складе.

Приходная накладная со статусом документа ВводОстатков.

3. Вносятся остатки товара по точкам.

Документ реализатора со статусом документа ВводОстатков.

4. Вносятся остатки взаиморасчетов с клиентами.

Документ Остатки взаиморасчетов.

Импорт из типовой торговой конфигурации 7.XXX:

1. Из типовой конфигурации выполнить обработку EX_TRADE.ERT

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

Выгрузить Склады, Пользователей, Номенклатуру, Контрагентов

2. Из новой конфигурации выполнить загрузку Склады, Пользователей, Номенклатуру, Контрагентов

3. Для переноса некоторых реквизитов можно использовать обработку EX_SPRAV.ERT

При этом для сязи баз используется поле НАИМЕНОВАНИЕ а конкретный реквизит справочника

Вы можете задать в коде обработки.

4. В типовой конфигурации создайте документ ИНВЕНТАРИЗАЦИЯ_РЕАЛИЗАТОРА для каждого реализатора

И выгрузите в файл через обработку EX_TRADE.ERT.

Для файла обмена лучше задавать полный путь файла например: C:\OST1.TXT

5. В типовой конфигурации создайте документ ИНВЕНТАРИЗАЦИЯ для каждого склада

И выгрузите в файл через обработку EX_TRADE.ERТ

6. В новой конфигурации выполните обработку DOC_EXCH.ERT

Указывайте правильно имена файлов обмена.

Для остатков склада нажимайте кнопку загрузка в ПРИХОДНУЮ_НАКЛАДНУЮ

Для остатков реализатора нажимайте кнопку загрузка в ДОКУМЕНТ_РЕАЛИЗАТОРА

Исправьте шапки документов. Укажите правильно статус документа. (ВводОстатков)



Накладная на выпуск из производства


20 (Основное производство)

70 (Расчеты с персоналом по оплате труда)

40 (Выпуск продукции (работ, услуг))

20 (Основное производство)



Налоговые льготы сотрудника


Если у сотрудника есть право на стандартные налоговые вычеты, то их следует ввести в справочник НалоговыеЛьготы, который подчинен справочнику Сотрудники. Для этого нужно открыть справочник Сотрудники, перейти курсором на нужного сотрудника и открыть подчиненный справочник НалоговыеЛьготы.

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

Если у сотрудника введены налоговые льготы, тогда при проведении документа "Начало месяца" в журнал Зарплата добавляются виды расчета "СтандВычетНаСебя" и "СтандВычетНаДетей". Вычеты влияют на расчет подоходного налога.