d9e5a92d

Глава 2. Простейшая конфигурация - торговля в реальном времени

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




Идентификатор

Курс

ДатаКурса

Синоним

Курс

Дата курса

Комментарий

Служит для хранения величины курса у. е. в документе

Хранит дату, на которую в документе используется курс

Тип значения

Число

Дата

Вид

Длина

10

Точность

4

Не отрицательный

V

Разделять Триады

Л/

В табличную часть документа необходимо внести следующие реквизиты:



Идентификатор

Товар

Количество

Единица

Синоним

Товар

Количество

бд. измерения

Комментарий

Измеряется в единицах измерения товара

Единица измерения закупленного товара

Тип значения

Справочник

Число

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

Вид

Номенклатура

ЕдиницыИзмерения

Длина

10

Точность

0

Не отрицательный

Л/

Разделить Триады

Л/

Итог по колонке

V





Идентификатор

ПризсоднаяНакл а дная

Синоним

Прих. Накл.

Комментарий

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

Журнал

ПриходныеНакладные

Номер: Нумератор

Не назначен

Номер: Периодичность

В пределах года

Номер: Автоматическая нумерация

"V '

Номер: Контроль уникальности

V

Номер: Тип:

Числовой

Номер: Длина

5

Разрешить проведение документа

V

Автоматическое удаление движений

V

Автоматическая нумерация строк

V

Оперативный учет

V





Идентификатор

Цена

СуммаУЕ

СуммаРуб

Синоним

Цена

Сумма в у.е.

Сумма в руб.

Комментарий

Цена закупленного товара

Сумма в у.е., '.на которую закуплен товар

Сумма в рублях, на которую закуплен товар

Тип значения

Число

Число

Число

Вид

Длина

10

12

12

Точность

2

2

2

Не *т»ицательный

V

V

V

Разделять ггмады

V

V

V

Итог по колонке

V

V

Для реквизитов Количе^во СуммаУЕ и СуммаРуб в диалоге формы будем вычислять сумму значений по все^ строкам табличной части. Поэтому на закладке «Дополнительные» каждого реквизит необходимо включить опцию «Итог по колонке».





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

апрель 2004 г.



28

1С:Предприятие 7.7. Компонента Оперативный учет

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

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

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

Процедура ВводНового(Копирование)

// Копирование=1 - документ введен копированием, иначе О // введем значения "по умолчанию" реквизитов шапки Если Копирование=0 Тогда ДатаКурса=ДатаДок;

Курс=Константа.КурсУЕ.Получить(ДатаКурса) ;

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

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

2. При редактировании табличной части:

При выборе товара, реквизит «Единица» автоматически устанавлива

ется равным «Единице измерения» для выбранного товара. А реквизит

«Цена» - равным «Цене закупки»;

При изменении реквизитов «Цена» и «Количество» реквизиты

«СуммаВал» и «СуммаРуб» пересчитывается автоматически;

Процедура ПриВыбореТовара()

// организуем автоматическое заполнение реквизитов табличной

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

Единица^Товар.ЕдиыицаИзмерения; ;

Цена=Товар.ЦенаЗакупки;

Количество^!; КонецПроцедуры

Глава 2. Простейшая конфигурация - торговля в реальном времени 29 2.4.1. Процедуры глобального модуля

Так как мы собираемся работу документа «Расходная накладная» сделать очень

похожей на работу нашего документа, то давайте внесем в Глобальный модуль сле-

дующис процедуры:

// ВычислитьСумму(Конт) - вычисляет сумму строки табличной

// части

Процедура ВычислитьСумму(Конт) Экспорт

// переменная Конт является формальным параметром,

// которому при вызове процедуры будет присвоен

// локальный контекст

Конт.СуммаУЕ=Конт.Цена*Конт.Количество;

Конт.СуммаРуб^Конт.СуммаУЕ*Конт.Курс; КонецПроцедуры

// ПересчетеКонт) - пересчитывает все строки табличной части // при измениии курса доллара Процедура Пересчет(Конт} Экспорт

Конт.Курс=Константа,КурсУЕ.Получить(Конт.ДатаКурса}; // открываем выборку строк спецификации документа

Конт.ВыбратьСтроки(); // цикл выбора строк спецификации документа

Пока Конт.ПолучитьСтроку(}=1 Цикл // строка спозиционирована...

Конт.СуммаРуб=Конт.СуммаУЕ*Конт.Курс;

КонецЦикла;

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

В результате теперь мы сможем вызывать эти процедуры из формы документов

следующим образом:

ВычислитьСумму(Контекст);





Реквизиты «СуммаВал» и «СуммаРуб» вручную изменяться не могут;

3. При редактировании реквизитов шапки:

При изменении реквизита «ДатаКурса» изменяется значение реквизита

«Курс» в соответствии с введенной датой. Кроме этого, в соответствии

с курсом автоматически пересчитываются все рублевые суммы.

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

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

Пересчет(Контекст);

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

2.4.2. Диалог формы документа «ПриходнаяНакладная»

Диалог формы документа может выглядеть, так как это изображено на рисунке 2.6.

При двойном щелчке мышью на заголовке столбца многострочной части появляется окно «Свойства Поля Ввода». На закладке этого окна «Дополнительно» в строке «Формула:» необходимо ввести последовательность операторов на встроен-

апрель 2004 г.





30

1C:Предприятие 7.7. Компонента Оперативный учет

ном языке системы 1С:Предприятие или список тех процедур и функций, которые

2.6. Форма документа «ПриходнаяНакладная»

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

Приведем список процедур и функций, обращение к которым необходимо ввести поле «Формула» свойств полей ввода:

Поле Ввода Формула

т^тнттт

ДатаКурса

Товар

ПриВыбореТовара () ; Вычислить Сумму , ...

Количество

Вычислить Сумму (Контекст)

Цена

Текст!

Итог ("СуммаУЕ")

Текст2

FT

Итог ( "СуммаРуб" )

„_„, «wv~v/«,imw провести, т.е. занести ин

формацию в регистры.

Регистр

Предполагаем, что приход товара по накладной сопровождается немедленной оплатой (как в наличной форме, так и в безналичной). Таким образом, проведение документа «ПриходнаяНакладная» совершает следующие движения:

1вижение

ОстаткиТоваров | Приход товара на склад, с увеличением стоимости запас

2.4.3. Модуль документа "ПриходнаяНакладная"

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

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

Глава 2. Простейшая конфигурация - торговля в реальном времени 31

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

Записать движение в регистр напомним, можно только в модуле документа.

Для этой цели используются специальный синтаксис:

Регистр,Идентификатор.Измерение1=ЗначениеИзмерения1; Регистр.Идентификатор.Измерение2=ЗначениеИзмерения2;

Регистр.Идентификатор.Ресурс1=ЗначениеРесурса1; Регистр.Идентификатор.Ресурс2=ЗначениеРесурса2;

Регистр.Идентификатор.Реквизит1=3начениеРеквизита1; Регистр.Идентификатор.Реквизит2=ЗначениеРеквизит2; Регистр.Идентификатор.ДвижениеПриходВыполнить();

или

[регистр.Идентификатор.ДвижениеРасходВыполнить(); |

Метод ДвижениеПриходВыполнить () ; записывает движение со знаком

«Приход», а метод Движение РасходВыполнить (} ; записывает движение со

знаком «Расход» в регистр. При использовании этих методов необходимо предвари

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

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

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

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

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

выполнить метод ДвижениеПриходВыполнить () или

ДвижениеРасходВыполнить{).

Таким же образом, поступает и конструктор «Движения регистров...». Выполните следующее упражнение:

Упражнение №2.6

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

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

// открываем выборку строк спецификации документа ВыбратьСтроки();

// цикл выбора строк спецификации документа Пока ПолучитьСтроку{)=1 Цикл

// строка спозиционирована...

// запишем номер строки документа в движении регистра

Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки};

// установим значения для измерений и ресурсов регистра

апрель 2004 г.



32

1С:Предприятие 7.7. Компонента Оперативный учет

Регистр.ОстаткиТоваров.Товар=Товар; Регистр.ОстаткиТоваров.Количество=Количество; Регистр.ОстаткиТоваров.СтоимостьУЕ=СуммаУЕ; Регистр.ОстаткиТоваров.СтоимостьРуб=СуммаРуб; // выполним запись прихода в регистр Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить(); КонецЦикла; КонецПроцедуры

2.5. Создание документа "Расходная накладная"

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

Упражнение №2.7

1. Создайте документ «Расходная накладная» со следующими характеристи-

ками:

Идентификатор

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

Журнал

РасходныеНакладные

Остальные свойства документа не отличаются от соответствующих свойств документа «ПриходнаяНакладная».



2.7. Форма документа «РасходнаяНакладная»

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

Глава 2. Простейшая конфигурация - торговля в реальном времени 3$ 2.5.1. Диалог формы документа «РасходнаяНакладная»

Диалог формы документа может выглядеть, так как это изображено на рисунке 2.7.

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

дуре ПриВыбореТовара () изменится строка :

|Цена=Товар.ЦенаПродажи;~|

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



Поле Ввода Формула

ДатаКурса

Пересчет (Контекст)

Товар

ПриВыбореТовара { ) ; ВычислитьСумму (Контекст)

Количество

ВычислитьСумму (Контекст)

Цена

ВычислитьСумму (Контекст)

Остаток

Регистр . ОстаткиТоваров . Остаток (Товар,

"Количество")

Текст!

Итог("СуммаУЕ")

Текст2

Итог ( "Сумма Руб" )

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

У пражнён иё №2.8

В диалоге формы документа «РасходнаяИакладная»:

L Создайте диалог формы документа, используя рисунок 2.7, и на основании таблицы заполните для приведенных в ней элементов диалога поле «Формула». Добавьте текст необходимых процедур на закладке «Модуль».

  1. Выберите пункт меню «ТЗставить|Текст и перетащите созданный системой

    злемет диалога" удерживая нажатой левую кнопку мыши, во внутрь "Многостроч

    ной час in документа,"после чего кнопку мыши можно "отпустить. В этом случае

    система додавит новый столбец.
  2. Активизируйте мышью только что созданный столбец многострочной части и

    откройте его свойства.

4. Заполните свойства этого элемента следующими значениями:

Свойство

Значение

Заголовок

Остаток

Формула

Регистр . ОстаткиТоварсв . Остаток (Товар, "Количество" )

Положение

Прижать вправо

Отрицательное красным

V __.

Остальные значения свойств можно не заполнять.





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

апрель 2004 г.



34

1С:Предприятие 7.7. Компонента Оперативный учет

Напомним, что ранее мы говорили о том, что если у регистра «спросить» его остаток, то он выдаст его на Точку^Актуальности^ Поэтому _запись вида^

[регистр. Идентификатор. Остаток (ЗнИзмх,..., ЗнИзмп, "ИмяРесурса;1") ; | означает, что для регистра «Идентификатор» вы просите получить остаток его некоторого ресурса «ИмяРесурса^) конкретной комбинации его измерений: ЗнИзм!,..., ЗнИзмп.

Важные замечания:

  1. Применение описанного выше приема, т.е. размещение в табличной части

    столбца текста, который обращается к итогам, нежелательно с точки з]эения

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

    части будет заполнено, тем большее число раз, будет сделано обращение -к ито

    гам, и как следствие производительность системы несколько снизится...
  2. Следует помнить, что в нашем случае (а мы об этом договорились выше: про

    ведение документов задним числом запрещено) «правильные» значения в

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

    документа после его проведения (скажем, нам нужно исправить уже проведен

    ный документ), то в этом случае столбец будет отображать остатки, которые

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

    ведении.

2.5.2. Проведение документа «РасходнаяНакладная»

Предполагаем, что отгрузка товара по накладной сопровождается немедленной оплатой (как в наличной форме, так и в безналичной). Проведение документа «РасходнаяНакладная» совершает следующие движения:

Глава 2. Простейшая конфигурация - торговля в реальном времени 35

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

Если (ОстКолКоличество) или (ОстКол=0) Тогда

Сообщить ("В строке №"+НомерСтроки+"не хватило

товара"+Товар+".

Реально есть "+ОстКол+" !");

СтатусВозврата(0);

Продолжить;

КонецЕсли;

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

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

СуммаСписР=?(ОстКол=Количество,СтоимР,

Окр(Стоим? *Количество/ОстКол,2)); СуммаСписУЕ=?(ОстКол=Количество,СтоимУЕ,

Окр(СтоимУЕ*Количество/ОстКол,2));





Регистр

Движение

| ОстаткиТоваров [ Расход товара на складе, с уменьшением стоимости запасов |

На начальном этапе учет товара и списание себестоимости будем вести «по

среднему». В этом случае, цена списываемого товара может быть определена как

отношение суммарной стоимости всего оставшегося товара на складе к его общему

количеству, хранящемуся на этом складе. Причем все остатки будут получены на

момент ТА. В Модуле документа получение вышеописанных остатков может быть

представлено в виде следующих строк кода:

ОстКол=Регистр.ОстаткиТоваров.Остаток(Товар,"Количество"); СтоимР=Регистр.ОстаткиТоваров.Остаток(Товар,

"СтоимостьРуб"); СтоимУЕ=Регистр.ОстаткиТоваров.Остаток(Товар,

"СтоимостьУЕ");

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

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

Окончательно, Модуль документа будет выглядеть следующим образом:

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

// открываем выборку строк спецификации документа

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

// цикл выбора строк спецификации документа

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

// строка спозиционирована...

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

// определим на ТА количество оставшегося товара, его

//рублевую и валютную стоимости

ОстКол-Регистр.ОстаткиТоваров.Остаток(Товар,"Количество");

СтоимР^Регистр.ОстаткиТоваров.Остаток(Товар,

"СтоимостьРуб"); СтоимУЕ^Регистр.ОстаткиТоваров.Остаток(Товар,

"СтоимостьУЕ");

апрель 2004 г.



36

1C:Предприятие 7.7. Компонента Оперативный учет

// проверим, хватает ли на складе товара? Если (ОстКолКоличество) или (ОстКол=0) Тогда

Сообщить ("В строке №"-ьНомерСтроки+

"не хватило товара"+Товар+". Реально есть "+ОстКол+ 11 !");

// если не хватает, то документ не проводится.

СтатусВозврата(0);

Продолжить; КонецЕсли;

// учтем погрешность вычислений при выполнении // арифметических операций СуммаСписР=?{ОстКол=Количество,СтоимР,

Окр(СтоимР*Количество/ОстКол,2)); СуммаСписУЕ=?(ОстКол^Количество,СтоимУЕ,

Окр(СтоимУЕ*Количество/ОстКол,2));

// запишем номер строки документа в движении регистра Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки); // установим значения для измерений и ресурсов регистра Регистр.ОстаткиТоваров.Товар=Товар; Регистр.ОстаткиТоваров.Количество=Количество; Регистр.ОстаткиТоваров.СтоимостьУЕ=СуммаСлисУЕ; Регистр.ОстаткиТоваров.Стоимость Руб=СуммаСписР; // выполним запись расхода в регистр Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить() ; КонецЦикла; КонецПроцедуры

2.6. Создание отчета «Остатки товаров»





В заключение с помощью Конст

руктора «Новый Отчет» создадим отчет

«ОстаткиТоваровНаТА», причем за

полнение выходной формы будем вес

ти, используя информацию из регистра

«ОстаткиТоваров» на Точку Актуаль

ности с помощью общих методов реги

стров ВыбратьИтоги() ,

ПолучитьИтог (). Отчет будем фор

мировать в разрезе товаров по Коду

товара, его Наименованию., Единицам

измерения, Цене списания и вставшему- , «*.._.. st^t»!* и; чета

ся Количеству. Если при определении «ОстаткиТоваровНаТА»

цены окажется, что по количеству това-

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

Глава 2. Простейшая конфигурация - торговля в реальном времени 37

ра нет, а по рублевой стоимости остатки присутствуют, занесем в ячейку таблицы Количество значение «Нет»:

цена=?(Per.Количество=0, "Нет", Per.СтоимостьР/Рег.Количество);

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

Модуль формы отчета в этом случае будет содержать следующий текст:

Процедура Сформировать() / создадим ссылку на объект Регистр «Остатки товаров»

рег = СоздатьОбъект ( "Регистр.ОстаткиТоваров11); / присвоим переменной Таб ссылку на специальный / агрегатный тип данных "Таблица"

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

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

Таб.ИсходнаяТаблица("Сформировать"); // заполним поля секции "Шапка"

Таб.ВывестиСекцию("Шапка"); // зададим опции таблицы

Таб.Опции(0,0,Таб.ВысотаТаблицы(),0}; // выберем все остатки регистра и организуем по ним цикл

Per.ВыбратьИтоги();

Пока Per.ПолучитьИтог(}=1 Цикл // спозиционируем на очередном остатке.. // заполним поля секции "Строка_1"

цена=?(рег.Количество=0,"Нет",Per.СтоимостьУЕ/Рег.Количество);

Таб.ВывестиСекцию("Строка_1") ;

КонецЦикла; // заполним поля секции "Подвал"

Таб.ВывестиСекцию{"Подвал"); // запретим возможность редактирования выведенной формы

Таб.ТолькоПросмотр(1); // Выведем заполненную форму на экран

Таб.Показать("Сформировать","");

КонецПроцедуры „____^ -

Шаблон печатной формы «Сформировать» изображен на рисунке 2.9.

апрель 2004 г.



1С:Предприятие 7.7. Компонента Оперативный учет

0сталси товаров на [ПолучитьДатуТА()];

fiiy^





.„__„

2.9. Шаблон печатной Ф ;ы отчета

«ОстаткиТоваровНаТА»

Упражнение №2.9

Внесите необходимые изменения в форму диалога и ш^§лщ даЧатной формы так, чтобы они соответствовали приведенным даян^

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

39

Глава 3. Особенности проведения документов в компоненте «Оперативный учет»

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

3.1. Полная постановка задачи

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

  1. Информация о находящихся в распоряжении фирмы товарах и услу

    гах, которые продаются и покупаются;
  2. Информация о местах их хранения;
  3. Информация о тех организациях и частных лицах, с которыми фирма

    осуществляет акты купли-продажи.

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

  1. справочник «Номенклатура»;
  2. справочник «Места Хранения»;
  3. справочник «Контрагенты».

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

Для нашей задачи мы создадим следующие регистры:

регистр «ОстаткиТоваров»;

апрель 2004 г.







40 1C предприятие 7.7. Компонента Оперативный учет

  1. регистр «Взаиморасчеты»;
  2. регистр «РезервыТоваров»;
  3. регистр «СостояниеЗаказа»;
  4. регистр «Обороты».

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

  1. документ «ПриходнаяНакладная»;
  2. документ«ОплатаПокупки»;
  3. документ «Счет»;
  4. документ «СнятиеРезерва»;
  5. документ «РасходнаяНакладная»;
  6. документ «ПриходДенег».

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

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

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

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

3.2. Покупка товаров

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

Упражнение №3.1

1. Создайте справочники «МестаХранения» и «Контрагенты» без дополнительных реквизитов со следующими характеристиками:

Идентификатор

МестаХранения

Контрагенты

Синоним

Места хранения

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

Глава 3. Особенности проведения документов

БЛОК-СХЕМА ИНФОРМАЦИОННЫХ ПОТОКОВ

I

апрель 2004 г.

ВВОД ИСХОДНЫХ ДАННЫХ

41





42

1С:Предприятие 7.7. Компонента Оперативный учет



Идентификатор

МесггаХранения

Контрагенты

Комментарий

Склады

Владелец

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

» 1 и

"2"

Длина кода

"5"

"5"

Длина наименования

"25"

"50"

Серии кодов

"В пределах подчинения"

"В пределах подчинения"

Тип кода

"Числовой"

"Числовой"

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

"В виде наименования"

"В виде наименования"

Контроль уникальности

V

V

Авто нумерация

V

V

_Способ редактирования

"В списке"

"В списке"

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

Основная форма

Справочник . МестаХранения . ФормаСписка . ФормаСписка

Справочник. Контрагенты. ФормаСписка . ФормаСписка

Основная форма для выбора

Справочник. МестаХранения. ФормаСписка . ФормаСписка

Справочник. Контрагенты. ФормаСписка . ФормаСписка



Содержание раздела