Главная страница

6Глава Концепция управляемого приложения


Скачать 6.74 Mb.
Название6Глава Концепция управляемого приложения
Дата02.11.2022
Размер6.74 Mb.
Формат файлаpdf
Имя файлаLab.rabotyISiTvE.S.Merkulova.pdf
ТипДокументы
#767994
страница10 из 17
1   ...   6   7   8   9   10   11   12   13   ...   17
8.3. Оборотные регистры накопления
Выше мы работали с регистром накопления, основной задачей которого было – предоставление данных об остатках материалов. Приходные данные в этот регистр попадали при поступлении материалов в организацию, они были "привязаны" к определенному ответственному лицу. Расходные данные в регистр вносились тогда, когда материалы отпускались мастеру для производственных целей.
Организация, работу которой мы автоматизируем, помимо контроля остатков материалов на складе, хотела бы организовать учет продажи материалов и учет оказания услуг с возможностью подсчета прибыли от этих операций. Для нахождения показателя прибыли, например, при продаже материалов, нам достаточно знать себестоимость этих материалов и продажную цену. Для нахождения показателя прибыли по оказанным услугам, мы должны, во-первых, знать стоимость оказанных услуг, во-вторых – знать показатель их себестоимости. Показатели себестоимости обычно включают в себя множество данных – заработную плату сотрудников, амортизацию основных средств, общехозяйственные и общепроизводственные расходы
(арендную плату, например). Мы упростим задачу, решив, что себестоимость услуг заключается в себестоимости материалов, израсходованных на оказание этих услуг.
Данные по прибыли от продаж нам хотелось бы получать ежедневно, а данные по прибыли от оказания услуг – ежемесячно.
Подобные результирующие показатели в реальной системе учета могут, например, влиять на заработную плату сотрудников. К тому же, анализ таких показателей в разрезе контрагентов, которым проданы материалы или которым оказаны услуги, поможет выделить среди контрагентов тех, кто приносит организации наибольшую прибыль, а, значит, может нуждаться в особом внимании.
Для реализации этих задач нам, во-первых, понадобится документ (или документы), для фиксации в системе продаж материалов и оказания услуг, а, во-вторых – объекты для хранения сведений о проданных материалах, их себестоимости, об оказанных услугах и о материалах, которые были затрачены на оказание этих услуг.
В осуществлении этого замысла нам помогут оборотные регистры накопления.
Конечно, показатели оборотов мы можем получать и сейчас, так как регистр с видом
Остатки хранит и остатки, и обороты, но, если показатель остатков нам не важен
(например, нам нет смысла считать "остатки" по количеству оказанных услуг), предпочтительнее будет использовать регистр с видом Обороты. Частота получения данных из регистра так же имеет значение, так как оборотные регистры накопления поддерживают механизм агрегатов, который позволяет ускорить получение данных за определенные периоды, по определенному набору измерений (разрезов) регистра.
Здесь мы ограничимся разработкой документа реализации материалов и созданием оборотного регистра накопления для хранения данных по реализации и последующего построения на его основе отчетов.
Создадим документ РеализацияМатериалов. Добавим его в состав подсистемы
Документы. Запретим оперативное проведение документа.
В состав данных документа включим следующие реквизиты:

171
Имя: Покупатель: Тип: СправочникСсылка.Контрагенты
Имя: ОтветственныйСотрудник: Тип: СправочникСсылка.Сотрудники
Добавим в документ табличную часть Материалы со следующими реквизитами:
Имя: Номенклатура, Тип: СправочникСсылка.Номенклатура
Имя: Остаток, Тип: Число, Длина 10, точность 3
Имя: Себестоимость, Тип: Число, длина 10, точность 2
Имя: Количество, Тип: Число, длина 10, точность 3
Имя: ЦенаПродажи, Тип: Число, длина 10, точность 2
Имя: Выручка, тип: Число, длина 10, точность 2
Теперь займемся формой документа. Нам хотелось бы реализовать следующую функциональность – при заполненной данными о номенклатуре табличной части, по нажатию на кнопку РассчитатьСебестоимостьИОстатки, заполнять сведения о себестоимости материалов и об их остатках по выбранному ответственному сотруднику, исходя из данных, хранящихся в регистре накопления
ОстаткиМатериалов.
Создадим форму документа, добавим команду формы
РассчитатьСебестоимостьИОстатки и переместим ее на командную панель табличного поля, рис. 8.8.
Рис. 8.8. Конструирование формы документа РеализацияМатериалов
В полях Остаток и Себестоимость пользователь должен увидеть текущие сведения об остатках и себестоимости выбранной номенклатуры, которая числится за выбранным в реквизите документа ответственным лицом. Эти поля должны быть недоступны для редактирования, так как играют лишь вспомогательную, информационную функцию.
Для этого у полей МатериалыОстаток и МатериалыСебестоимость установим свойство ТолькоПросмотр, рис. 8.9.

172
Рис. 8.9. Запрет редактирования поля пользователем
Теперь займемся кодом, отвечающим за получение данных по остаткам и себестоимости материалов, которые находятся в табличной части. Действия по получению данных и по заполнению ими табличного поля мы должны выполнять на сервере, для этого создадим серверную процедуру РассчитатьНаСервере() и вызовем ее из процедуры обработчика РассчитатьСебестоимостьИОстатки().
Для того, чтобы получить нужные данные, нам понадобится запрос, который выбирает данные из табличной части и из регистра накопления ОстаткиМатериалов, сгруппировав их по номенклатуре. Воспользуемся уже знакомой вам консолью запросов для того, чтобы построить подобный запрос. Здесь следует вспомнить, что, конструируя процедуру проведения документа ОтпускМатериаловМастеру, мы строили подобный запрос. Поэтому сейчас мы можем просто этот запрос доработать.
Дорабатывать его, однако, удобно с помощью консоли запросов. Перенесем текст запроса из кода метода
ОбработкаПроведения документа
ОтпускМатериаловМастеру, добавим в поле текста запроса консоли запросов в режиме 1С:Предприятие и займемся редактированием текста.
Мы начинаем с такого текста запроса:
ВЫБРАТЬ
ДокМ.Номенклатура,
СУММА(ДокМ.Количество) КАК Количество,
МАКСИМУМ(ЕСТЬNULL(ОстМ.КоличествоОстаток, 0)) КАК
КоличествоОстатков,
МАКСИМУМ(ЕСТЬNULL(ОстМ.СуммаОстаток, 0)) КАК СуммаОстатков
ИЗ
Документ.ОтпускМатериаловМастеру.Материалы КАК ДокМ
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени,
ОтветственныйСотрудник = &ОтвСотр) КАК ОстМ

173
ПО ДокМ.Номенклатура = ОстМ.Номенклатура
ГДЕ
ДокМ.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
ДокМ.Номенклатура
В этом запросе нам понадобится откорректировать обращение к таблице документа, который содержит нужные данные. Предполагая, что пользователь может ввести одну и ту же номенклатурную позицию несколькими строками, возможно, собираясь особым образом задать цену продажи для одной и той же позиции, мы не будем группировать запрос по номенклатуре. Мы получим из таблицы все данные, которые мог ввести пользователь – позже мы используем эти данные для заполнения табличного поля.
Займемся теперь кодом модуля РассчитатьНаСервере(). Воспользуемся конструктором запросов с обработкой результата. В итоге задачу заполнения табличной части данными мы решили следующим образом:
&НаКлиенте
Процедура РассчитатьСебестоимостьИОстатки(Команда)
Режим=РежимДиалогаВопрос.ДаНет;
Ответ=Вопрос("Для продолжения нужно записать документ. Сделать
это?",Режим,0);
Если Ответ=КодВозвратаДиалога.Да Тогда
Записать();
РассчитатьНаСервере();
Предупреждение("Табличная часть заполнена");
Иначе
Предупреждение("Табличная часть не заполнена");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РассчитатьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДокМ.Номенклатура,
| ЕСТЬNULL(ОстМ.КоличествоОстаток, 0) КАК КоличествоОстатков,
| ЕСТЬNULL(ОстМ.СуммаОстаток, 0) КАК СуммаОстатков,
| ДокМ.Количество,
| ДокМ.ЦенаПродажи,
| ДокМ.Выручка
|ИЗ
| Документ.РеализацияМатериалов.Материалы КАК ДокМ
| ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени,
ОтветственныйСотрудник = &ОтвСотр) КАК ОстМ
| ПО ДокМ.Номенклатура = ОстМ.Номенклатура
|ГДЕ

174
| ДокМ.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("МоментВремени",
Объект.Ссылка.МоментВремени());
Запрос.УстановитьПараметр("ОтвСотр",
Объект.ОтветственныйСотрудник);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Объект.Материалы.Очистить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтрокаТЧ=Объект.Материалы.Добавить();
СтрокаТЧ.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Если НЕ ВыборкаДетальныеЗаписи.КоличествоОстатков=0 Тогда
СтрокаТЧ.Себестоимость=ВыборкаДетальныеЗаписи.СуммаОстатков/
ВыборкаДетальныеЗаписи.КоличествоОстатков;
КонецЕсли;
СтрокаТЧ.Остаток=ВыборкаДетальныеЗаписи.КоличествоОстатков;
СтрокаТЧ.Количество=ВыборкаДетальныеЗаписи.Количество;
СтрокаТЧ.ЦенаПродажи=ВыборкаДетальныеЗаписи.ЦенаПродажи;
СтрокаТЧ.Выручка=ВыборкаДетальныеЗаписи.Выручка;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьСумму()
ТекущаяСтрока=Элементы.Материалы.ТекущиеДанные;
ТекущаяСтрока.Выручка=ТекущаяСтрока.Количество*ТекущаяСтрока.Цена
Продажи;
КонецПроцедуры
&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
РассчитатьСумму();
КонецПроцедуры
&НаКлиенте
Процедура МатериалыЦенаПродажиПриИзменении(Элемент)
РассчитатьСумму();
КонецПроцедуры
В методе, работающем на клиенте, мы, сразу после запуска, сообщаем пользователю о том, что для правильной работы системы нужно сначала записать документ. Если он отвечает утвердительно – записываем документ и вызываем серверную процедуру. Для задавания подобных вопросов в виде диалоговых окон с кнопками-вариантами вопроса
(8.10.), используется метод Вопрос().

175
Рис. 8.10. Вопрос пользователю
В серверной процедуре мы выбираем с помощью запроса данные из табличной части нашего документа и из регистра ОстаткиМатериалов. Когда данные получены, мы просто очищаем табличную часть и заполняем ее снова, теперь уже с использованием новых данных.
В итоге, после того, как пользователь заполнил табличную часть документа и нажал на кнопку Рассчитать себестоимость и остатки, он получит примерно следующее,
8.11
Рис. 8.11. Результат автоматического заполнения табличной части
Поля Остаток и Себестоимость в данном случае играют лишь вспомогательную роль, позволяя пользователю сразу, при заполнении документа, понять, каково состояние дел с остатками материалов.
Форму документа, да и процедуру заполнения, можно дорабатывать и оптимизировать, но свои основные функции они выполняют, поэтому теперь займемся конструированием оборотного регистра накопления, в котором мы собираемся хранить сведения о продажах. А именно, нас интересуют данные о номенклатуре, о контрагенте, об ответственном лице, продавшем материалы, о количестве, себестоимости и цене материалов.
Создадим новый регистр накопления, назовем его Продажи. Вид регистра установим в значение Обороты, рис. 8.12. Включим его в состав подсистемы Документы.

176
Рис. 8.12. Создание регистра накопления
В состав данных регистра (рис. 8.13.) внесем следующие поля:
Измерения:
Имя: Контрагент, тип: СправочникСсылка.Контрагенты
Имя: ОтветственныйСотрудник, тип: СправочникСсылка.Сотрудники
Имя: Номенклатура, тип: СправочникСсылка.Номенклатура
Ресурсы:
Имя: Себестоимость, тип: Число, длина 10, точность 2
Имя: Количество, тип: Число, длина 10, точность 3
Имя: Выручка, тип: Число, длина 10, точность 2
Рис. 8.13. Настройка данных регистра накопления
В качестве регистратора для данного регистра выберем документ
РеализацияМатериалов.

177
Теперь займемся проведением этого документа. Он должен формировать движения по двум регистрам – по регистру ОстаткиМатериалов, и по регистру Продажи.
Добавим в модуль объекта документа процедуру ОбработкаПроведения. При конструировании этой процедуры мы можем воспользоваться уже отработанными при проведении документа ОтпускМатериаловМастеру механизмами.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДокМ.Номенклатура,
| СУММА(ДокМ.Количество) КАК Количество,
| СУММА(ДокМ.Выручка) КАК Выручка,
| МАКСИМУМ(ЕСТЬNULL(ОстМ.КоличествоОстаток, 0)) КАК
КоличествоОстатков,
| МАКСИМУМ(ЕСТЬNULL(ОстМ.СуммаОстаток, 0)) КАК СуммаОстатков
|ИЗ
| Документ.РеализацияМатериалов.Материалы КАК ДокМ
| ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени,
ОтветственныйСотрудник = &ОтвСотр) КАК ОстМ
| ПО ДокМ.Номенклатура = ОстМ.Номенклатура
|ГДЕ
| ДокМ.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ДокМ.Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("ОтвСотр", ОтветственныйСотрудник);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить();
ВыборкаДЗ = Результат.Выбрать();
Движения.ОстаткиМатериалов.Записывать=Истина;
Движения.Продажи.Записывать=Истина;
Пока ВыборкаДЗ.Следующий() Цикл
Если ВыборкаДЗ.Количество>ВыборкаДЗ.КоличествоОстатков Тогда
Сообщить("Недостаточное количество товара
"+ВыборкаДЗ.Номенклатура
+", необходимо "+ВыборкаДЗ.Количество+", в наличии "
+ВыборкаДЗ.КоличествоОстатков);
Отказ=Истина;
Движения.ОстаткиМатериалов.Записывать=Ложь;
Движения.Продажи.Записывать=Ложь;
КонецЕсли;
Если Отказ Тогда
Продолжить;
КонецЕсли;

178
Движение=Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
Движение.Период=Дата;
Движение.Номенклатура=ВыборкаДЗ.Номенклатура;
Движение.Количество=ВыборкаДЗ.Количество;
Движение.Сумма=ВыборкаДЗ.Количество*ВыборкаДЗ.СуммаОстатков/Вы
боркаДЗ.КоличествоОстатков;
Движение.ОтветственныйСотрудник=ОтветственныйСотрудник;
Движение=Движения.Продажи.Добавить();
Движение.Период=Дата;
Движение.Номенклатура=ВыборкаДЗ.Номенклатура;
Движение.Количество=ВыборкаДЗ.Количество;
Движение.Себестоимость=ВыборкаДЗ.Количество*ВыборкаДЗ.СуммаОста
тков/ВыборкаДЗ.КоличествоОстатков;
Движение.Выручка=ВыборкаДЗ.Выручка;
Движение.ОтветственныйСотрудник=ОтветственныйСотрудник;
Движение.Контрагент=Покупатель;
КонецЦикла;
КонецПроцедуры
Так, здесь мы, во-первых, проверим достаточность материалов для списания – ранее заполненная табличная часть, служит лишь подсказкой пользователю, к тому же, он может в процессе работы получать сведения об остатках и себестоимости единицы, а может и не получать, оставляя соответствующие поля табличной части пустыми, поэтому при проведении документа мы получим с помощью запроса нужные данные из базы.
Дальше все идет по уже знакомому вам плану – мы сверяем количество материалов, которое пользователь хочет продать с количеством остатков и принимаем решение либо о продолжении работы, либо – об отмене процедуры проведения документа.
После того, как у нас есть хранилище данных о продажах, мы построим соответствующий отчет. На базе тех данных, которые у нас есть, можно построить различные отчеты – все зависит от того, какие именно данные нас интересуют.
8.4. Вызов формы регистра накопления из формы документа
Доработаем форму документа РеализацияМатериалов. Документ проводится по двум регистрам накопления – по регистру Продажи и по регистру ОстаткиМатериалов.
Удобно было бы иметь возможность прямо из документа перейти в окно регистра и просмотреть его содержимое после проведения документа. Для того, чтобы реализовать это, нам понадобится закладка Глобальные команды закладки Команды окна редактора форм. Все, что нужно для размещения на командной панели формы дополнительных кнопок, ведущих к регистрам – перетащить нужную команду на панель, рис. 8.14.

179
Рис. 8.14. Кнопки перехода в регистры накопления на командной панели формы
8.5. Агрегаты
Выше мы упоминали о том, что оборотные регистры накопления поддерживают полезный, в плане увеличения быстродействия прикладного решения, механизм агрегатов.
Агрегат представляет собой хранилище данных, содержащее агрегированную информацию из регистра в различных разрезах. Разрезы подбираются исходя из использования данных регистра в отчетах. Механизм агрегатов позволяет ускорить доступ к информации. Для создания агрегатов используется конструктор агрегатов, который можно вызвать, нажав на кнопку Агрегаты, расположенную на закладке Данные окна редактирования объекта для оборотного регистра накопления, рис. 8.15.

180
Рис. 8.15. Кнопка Агрегаты в окне редактирования объекта
По нажатию на эту кнопку можно открыть окно Конструктора агрегатов (рис. 8.16.), где можно добавлять новые агрегаты, настраивать состав измерений регистра, входящих в агрегаты, а так же их свойства. При установленной периодичности Авто система сама подбирает подходящую периодичность для агрегата. Мы установили такую периодичность для агрегата, в который входят сведения по измерениям
Контрагент и Номенклатура.
Рис. 8.16. Конструктор агрегатов
По измерению ОтветственныйСотрудник мы собираемся получать данные ежемесячно, поэтому у агрегата, содержащего указанное измерение, мы установим периодичность Месяц.
В нашей учебной базе, содержащей небольшие объемы данных, мы вряд ли сможем оценить полезность агрегатов, однако, при работе с большими базами данных они способны повысить производительность отчетов.
8.6. Последовательности
В нашей конфигурации есть документы, последовательность ввода которых способна влиять на данные, хранимые в системе.
Это три документа –

181
ПоступлениеМатериалов, ОтпускМатериаловМастеру и РеализацияМатериалов.
Рассмотрим пример.
В некоей конфигурации есть два документа – один фиксирует поступление материалов, второй – списание. Имеется один регистр накопления, в который эти документы делают записи.
Предположим 10.07.12 мы ввели документ поступления материалов (назовем его П1), который отражает принятие к учету 10 единиц материала М1 по цене 10 рублей за единицу.
12.07.12 мы ввели документ списания материалов (назовем его С1), которым списываем 6 единиц материала М1. Очевидно, что при такой последовтельности ввода документов, в том случае, если мы используем метод расчета себестоимости по средней, окажется, что списано 6 единиц материалов М1 на общую сумму 60 рублей, в остатках мы имеем 4 единицы на 40 рублей.
Что произойдет, если, после того, как два вышеописанных документа уже введены в систему, проведены, мы, например, 11.07.12, введем еще один приходный документ
(П2), которым принимаем к учету 10 единиц материала М1 по цене 15 рублей за единицу?
Если мы построим отчет по остаткам материалов, скажем, на 13.07.12, то окажется, что количественные показатели нас устраивают – в остатке будет 14 единиц материала.
Стоимость этих материалов будет складываться из стоимости остатка – это 4*10 и стоимости материалов, принятых задним числом, то есть – 10*15. Сумма равна 190 рублей.
Документ С1, которым материалы списаны 12.07.12, был проведен без наличия сведений о материалах, поступление которых отражено 11.07.12. А это значит, что при применении метода расчета себестоимости по средней, этот документ содержит неверные данные. Действительно, на момент списания материалов этим документом их количество равнялось 10, общая стоимость 100, средняя стоимость составила 10. После ввода документа П2 мы имеем на 12.07.12 уже 20 единиц материала на сумму 250 рублей, средняя стоимость единицы уже равняется 12,5 рублей. То есть, наш документ
С1 должен списать 6 единиц материалов М1 по 12,5 рублей, что дает нам их общую стоимость в 75 рублей и приводит к тому, что в остатках на 13.07.12 должны числиться
14 единиц, себестоимость которых должна равняться 175 рублей.
Если при проведении документа С1 данные по документу М2 не учитывались – мы получаем в остатке 14 единиц, себестоимость которых равняется 190 рублей. Все это значит, что документ, введенный задним числом, искажает данные учета. Если абстрагироваться от нашей учебной конфигурации и рассмотреть последствия подобной ситуации в реальной учетной системе, то окажется, что такое происшествие способно исказить данные учета, как результат – повлиять на суммы налогов
(например, налога на прибыль). То есть, даже если не говорить о том, что в учете будут отражены некорректные данные, подобная "ошибка" способна привести к весьма неприятным для организации последствиям в виде санкций налоговых органов.
Для того, чтобы подобную ситуацию разрешить, нужно после ввода "дополнительного" документа П2 просто перепровести документ С1. Все это выглядит простым и понятным в примере с тремя документами, но в учетной системе с десятком видов документов, несколькими регистрами, в которую вводят несколько сотен различных документов ежедневно, "вручную" отследить возникновение подобной ситуации

182 достаточно сложно. Можно, конечно, прибегнуть к радикальному методу – например, периодически перепроводить все документы за какой-либо период или за все время работы в базе. Но перепроведение большого количества документов – дело трудоемкое, к тому же, если уж полностью следовать логике полного перепроведения, перепроводить нужно все документы с начала работы в базе. А это, возможно, документы, накопленные за несколько лет, то есть – операция слишком ресурсозатратная для ее регулярного выполнения.
Разработчики 1С:Предприятие 8 предусмотрели возникновение подобных ситуаций – для контроля за правильной последовательностью проведения документов в системе имеется объект, который так и называется – Последовательность.
Последовательность позволяет автоматически контролировать хронологическую последовательность проведения документов, включенных в нее, а так же – для документов, влияющих на состояние отслеживаемых последовательностью регистров.
Создадим новую последовательность
(ветвь дерева конфигурации
Последовательности находится в ветви
Документы), назовем ее
СебестоимостьМатериалов, рис. 8.17.
Рис. 8.17. Создание новой последовательности
Включим последовательность СебестоимостьМатериалов в подсистему Документы.
На закладке Использование, рис. 8.18., мы оставим параметр Перемещение границы
при проведении в значении Перемещать, в поле Входящие документы внесем документы ОтпускМатериаловМастеру и РеализацияМатериалов, в поле
Движения, влияющие на последовательность, внесем регистр накопления
ОстаткиМатериалов.

183
Рис. 8.18. Настройка последовательности
Сущность действия последовательности заключается в следующем. Она отслеживает документы, влияющие на нее (и документы, влияющие на состояние регистра, в нашем случае это документ ПоступлениеМатериалов) и, в зависимости от даты проведения документов перемещает границу либо вперед (при нормальной хронологической последовательности ввода документов), либо – назад – в том случае, если документ введен (проведен) не в нормальном порядке.
Граница последовательности указывает нам на документ, документы, введенные после которого могут отражать некорректные данные. Последовательность можно восстанавливать – при восстановлении последовательности перепроводятся документы, входящие в нее. В нашем случае это документы, которыми мы списываем материалы.
Документы поступления материалов влияют на последовательность, но они вводят в систему исходные данные для расчета себестоимости, поэтому внеочередное проведение документа поступления материалов на другие документы поступления не влияет, но вполне может повлиять на документы списания материалов.
При восстановлении последовательности производится автоматическое проведение нужных документов и граница последовательности устанавливается на последний из них.
Для управления последовательностями в пользовательском режиме можно выполнить команду Главное меню > Все функции > Стандартные > Проведение документов, и там, на закладке Последовательности, рис. 8.19, посмотреть состояние последовательностей, и, при необходимости, восстановить их.

184
Рис. 8.19. Работа с последовательностями
Здесь мы видим, что граница последовательности установлена на документ
Реализация материалов от 13.10.2011.
Введем документ ПоступлениеМатериалов, например, от 10.10.2011. Это приведет к такому состоянию последовательности, рис. 8.20.

185
Рис. 8.20. Перемещение границы последовательности при вводе документа в прошлом периоде. Восстановление последовательности приведет к перепроведению документов, входящих в нее и снова установит ее границу на документ Реализация материалов от
13.10.2011.
8.7. Нумераторы
Еще один полезный объект, который можно найти в ветви Документы дерева конфигурации – это нумераторы. Нумератор позволяет задавать единые правила нумерации для различных документов. Создадим новый нумератор, назовем его
НумераторРасходныхДокументов, рис. 8.21.
Рис. 8.21. Создание нового нумератора
Редактирование свойств нумератора осуществляется в окне свойств объекта, для него не предусмотрено окна редактирования объекта.
Благодаря нумератору документы разных видов, которым он назначен (делается это на вкладке Нумерация окна настройки свойств документа), рис. 8.22. приобретают сквозную нумерацию.

186
Рис. 8.22. Настройка использования нумератора в документе
То есть, если, например, мы создали документ РеализацияМатериалов и он приобрел номер 000000001, то, если следующим документом с тем же нумератором будет документ ОтпускМатериаловМастеру, ему автоматически будет присвоен номер
000000002.
8.8. Варианты заданий
Выполнение работы состоит из следующих этапов:
 Создать новую подсистему «Лабораторная работа 5». Все новые объекты, созданные в данной работе, поместить в данную подсистему.
 Разработать, если это необходимо, дополнительные документы (см. варианты заданий).

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

Разработать модули проведения документов.

Разработать отчет. Средства обращения к источнику данных – запрос.
Использовать конструктор запроса с обработкой результатов. Отчет должен выводить общие итоги.

Отчет должен иметь расшифровку. Тип расшифровки – см. варианты заданий.

В случае разработки нестандартного отчета вид отчета разработать самостоятельно.
Вариант 1
Ведомость поступления товаров от поставщиков за период с____ по____
Поставщик Товаров на
сумму
НДС на
сумму
Всего от поставщика
на сумму
Адрес
поставщика
Разработать документ «Поступление товаров от поставщиков»

187
Расшифровка – нестандартная.
Вариант 2
Ведомость поступления товаров от поставщика ____________ за ___ период
С _____ по ______
Товар
Склад
Единицы
Колич.
цена
стоимость
Сумма ндс
Всего с ндс
Замечание 1. Строки отчета группируются по складам. В конце группы следует включать строку «Итого по складу».
Замечание 2 . Разработать документ «Поступление товаров от поставщиков»
Расшифровка – нестандартная.
Вариант 3
Ведомость начисления зарплаты сотрудникам ____________ за ___ период
С _____по ______
Подразделе
ние
Сотрудник
Сумма
зарплаты
Сумма отчислений
в ТФОМС
Сумма отчислений
ФФОМС
Замечание 1. Строки отчета группируются по подразделниям. В конце группы следует включать строку «Итого по подразделению».
Замечание 2. Разработать документ
«Ввод начисленных сумм зарплаты »
Расшифровка – нестандартная.
Вариант 4
Ведомость поступления товаров на ______ склад от поставщика __________ за ___ период с _______ по ___
товар
единицы количество цена
Стоимость Сумма
ндс
Всего
с ндс
Замечание 1. Строки отчета группируются по товарам. В конце группы следует включать строку «Итого товара».
Замечание 2. Разработать документ «Поступление товаров от поставщиков»
Расшифровка – нестандартная.
Вариант 5
Ведомость поступления товара ______ на склады от поставщиков за ___ период с _______ по ___
Склад Документ Дата Поставщик Колич.
Единицы Цена Стоимость
Замечание 1. Строки отчета группируются по поставщикам. В конце группы следует включать строку «Итого по поставщику».
Замечание 2. Разработать документ «Поступление товаров от поставщиков»
Расшифровка – стандартная.
Вариант 6
Ведомость поступления товара ______ на склады от поставщика___________ за ___ период с _______ по ___

188
Склад Документ
Дата Кол. Цена Стоимость
Сумма
НДС
Всего с НДС
Замечание 1. Строки отчета группируются по складам. В конце группы следует включать строку «Итого по складу».
Замечание 2. Разработать документ «Поступление товаров от поставщиков»
Расшифровка – стандартная.
Вариант 7
Ведомость продажи товаров покупателям за ___ месяц ___ года
Покупатель Товаров на сумму НДС на сумму Всего
Замечание 1. Разработать документ «Реализация товаров покупателям»
Расшифровка – нестандартная.
Вариант 8
Ведомость продажи товаров покупателю ____________ за ___ период
С _____- по ______
Товар
Склад единицы Количество Цена стоимость Сумма
ндс
Всего
с ндс
Замечание 1. Строки отчета группируются по товарам. В конце группы следует включать строку «Итого товара».
Замечание 2. Разработать документ «Реализация товаров покупателям»
Расшифровка – нестандартная.
Вариант 9
Ведомость продажи товаров со ______ склада покупателям за ___ месяц ___ года
Товар
Поку-
патель
валюта
Курс Документ
Дата Цена Стоимость
Замечание 1. Строки отчета группируются по покупателям. В конце группы следует включать строку «Итого по покупателю».
Замечание 2. Разработать документ «Реализация товаров покупателям»
Расшифровка – стандартная.
Вариант 10
Ведомость продажи товаров со ______ склада покупателю __________ за ___ период с _______ по ___
товар
Валюта
(название,курс)
Колич.
цена
Стои
мость
Сумма
ндс
Всего с
ндс
Замечание 1. Строки отчета группируются по товарам. В конце группы следует включать строку «Итого товара».
Замечание 2. Разработать документ «Реализация товаров покупателям»
Расшифровка – нестандартная.
Вариант 11
Ведомость продажи товара ______ со складов покупателям

189 за ___ период с _______ по ___
Склад
Документ
Поку патель
Колич.
Единицы
Цена
Стоимость
Замечание 1. Строки отчета группируются по складам. В конце группы следует включать строку «Итого по складу».
Замечание 2. Разработать документ «Реализация товаров покупателям»
Расшифровка – стандартная.
Вариант 12
Ведомость продажи товара ______ со складов покуптелю___________ за ___ период с _______ по ___
Склад Документ
Количество
Цена Стои мость
Сумма НДС Всего
с НДC
Замечание 1. Строки отчета группируются по складам. В конце группы следует включать строку «Итого по складу».
Замечание 2. Разработать документ «Реализация товаров покупателям»
Расшифровка – стандартная.
Вариант 13
Ведомость движения товаров за _______ месяц _____ года
Товар
Нач остаток (Сумма,
количество)
Приход
(Сумма,
количество)
Расход
(Сумма,
количество)
Конечный остаток (Сумма,
количество)
Замечание 1. Разработать документы «Реализация товаров покупателям»
И «Поступление товаров от поставщиков»
Расшифровка – нестандартная.
Вариант 14
Ведомость движения товара__________ за _______ месяц _____ года
Склад
Нач остаток
(Сумма)
Приход
(Сумма)
Расход
(Сумма)
Конечный остаток
(Сумма)
Замечание 1. Разработать документы «Реализация товаров покупателям»
И «Поступление товаров от поставщиков»
Расшифровка – нестандартная.
Вариант 15
Ведомость движения товаров на складе __________ за _______ месяц _____ года
Товар
Нач остаток
Приход
Расход
Конечный остаток
Кол Сумма Кол Сумма
Кол Сумма Кол
Сумма

190
Замечание 1. Разработать документы «Реализация товаров покупателям»
И «Поступление товаров от поставщиков»
Расшифровка – нестандартная.
Вариант 16
Ведомость движения товара ________ на складе __________ за _______ месяц _____ года
Дата
Товар
Приход
Расход
Количество Сумма
Количество Сумма
Замечание 1. Разработать документы «Реализация товаров покупателям»
И «Поступление товаров от поставщиков»
Расшифровка - нестандартная.
Вариант 17
Ведомость взаиморасчетов с поставщиками за _______ месяц _____ года
Клиент
Сумма долга на
начало периода
Сумма прихода
Сумма
расхода
Сумма долга на
конец периода
Замечание 1. Разработать документы «Оплата товаров поставщику»
И «Поступление товаров от поставщиков»
Расшифровка – нестандартная.
Вариант 18
Справка о возвратах товаров от покупателей за период с___ по ______
Документ
возврата
Покупатель
Сумма
возврата
Причина возврата
Замечание 1. Разработать документ «Возврат от поставщика»
Расшифровка – стандартная.
Вариант 19
Ведомость взаиморасчетов с покупателем _________ за _______ месяц _____ года
Документ
Приход
Расход
Замечание 1. Разработать документы « поступление оплаты от покупателей»
И «Реализация товаров покупателям»
Отчет должен иметь две промежуточные подсуммировки: «Итого прихода» и «Итого расхода». В отчете сначала должны располагаться в хронологическом порядке все приходные документы, а затем – расходные.
Расшифровка – стандартная.

191
Вариант 20
Ведомость передачи на реализацию товаров реализаторам
За _______ месяц __ года
Реализатор
документ
товар
количество
сумма
Итого <>
Замечание 1. Данные группируются по реализаторам. В конце группы выводится строка « Итого передано реализатору» _____
Замечание 2. Разработать документ «Передача товаров реализаторам»
Расшифровка – стандартная.
Вариант 21
Ведомость продажи товаров реализатором ________________________
За период с ___ по _________
Касса
Товар
Документ
Кому продано
Сумма продажи
Замечание 1. Данные группируются по кассам. В конце группы выводится строка «
Итого получено денег в кассуа» _____
Замечание 2. Разработать документ «Отчет реализатора»
Расшифровка – стандартная.
Вариант 22
Ведомость заявок от покупателя за период с ______ по_______
клиент Всего товаров в заявках
на сумму
Продано по
заявкам
клиентов на
сумму
Осталось продать на сумму
Замечание 1. Разработать документы «Заявка покупателю» и «Реализация по заявке»
Расшифровка – нестандартная.
Вариант 23
Ведомость больничных листов за период с___по___________
Подразделение
Сотрудник
Число дней болезни Сумма больничного
Замечание 1. Данные группируются по подразделениям. В конце группы выводится строка « Итого продано подразделению» _____
Замечание 2. Разработать документ «Ввод больничных листов»
Расшифровка - нестандартная.
Вариант 24
Ведомость списания товара-брака за период с ______ по_______
Склад
ТМЦ
количество
Стоимость

192
Замечание 1. Разработать документ «»
Замечание 3. Данные группируются по товарам . В конце группы выводится строка «
Итого по товару» _____
Расшифровка - нестандартная.
Вариант 25
Ведомость поступления товаров от поставщиков с учетов возвратов за период с ______ по_______
товар Поступило
возвращено %
брака
Кол
Сумма
Кол
Сумма
Замечание 1. Разработать документы «Поступление товара и «Возврат поставщику»
Расшифровка - нестандартная.
1   ...   6   7   8   9   10   11   12   13   ...   17


написать администратору сайта