39
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
ДИПЛОМНЫЙ ПРОЕКТ НА ТЕМУ:
АВТОМАТИЗАЦИЯ товарного учета продукции
Содержание
Введение
I. Специальная часть
1. Постановка задачи
2. Формализация
3. Описание среды программирования
3.1 Требования к техническому обеспечению
3.2 Требования к программному обеспечению
4. Методика разработки проекта
4.1 Алгоритмизация задачи
4.1.1 Описание алгоритма
4.1.2 Структурная схема
4.2 Программирование
4.3 Аномалии и защитное программирование
4.4 Тестирование и отладка
5. Анализ результатов решения
6. Инструкция пользователю
II. Экономическая часть
Заключение
Литература
Приложение
Введение
Компания Zepter была основана Филиппом Цептером в 1986 году. Начинала компания с выпуска различной потребительской продукции, в основном — посуды из стали, и вскоре получила мировую известность.
На российском рынке эта фирма успешно представляет свою инновационную продукцию, не имеющую аналогов в мире, уже более 10 лет. Регулярно фирма предлагает клиентами новые виды продукции, улучшает дизайн, непрерывно следит за качеством ассортимента, является самой крупной и стабильной среди всех компаний прямых продаж на рынке стран СНГ.
В состав корпорации Zepter уже входит более 100 компаний в разных странах. На сегодняшний день ассортимент продукции компании Zepter в Москве представлен 4 брендами.
Общий годовой доход группы составляет порядка одного миллиарда евро.
I.Специальная часть
1. Постановка задачи
Цель дипломного проекта — разработать программное обеспечение, позволяющего вести автоматизированный учет в магазине продукции Zepter, а именно:
· осуществлять полноценный электронный учет товара;
· производить поиск необходимых сведений о поставщиках и товаре;
· упрощать и ускорять процедуры оформления документов приема и продаж товара;
· получать статистические данные о продажах;
· оптимизировать работу с поставщиками;
· формировать и выводить на печать необходимую отчетную документацию.
Необходимо разработать программное приложение (посредством 1С), которое позволит вести автоматизированный учет товаров в магазине.
2.Формализация
Для построения необходимо провести формализацию задачи, являющуюся необходимым этапом разработки задачи и заключающуюся в построении структуры таблиц для хранения информации, схемы их взаимосвязей и описания алгоритмов обработки.
Структурная связь
Как правило, разработка программного обеспечения выполняется в несколько этапов и начинается с анализа той информации, которая является выходной (формы и отчеты). Только после выяснения структуры и состава этой информации, можно сделать вывод о структуре и составе справочников, какие измерения и ресурсы необходимо создать в регистрах и о данных которыми заполняются документы.
На следующем этапе уточняется структура полей в справочниках и документах, определяются правила ввода информации.
Затем происходит возврат к проектированию запросов для форм и отчетов, проектируются формы документов и отчеты, уточняться измерения и ресурсы в регистрах оперативного учета.
На заключительном этапе создаются различные пользовательские меню, журналы документов, различные дополнительные обработки и создание интерфейса всего проекта. В процессе отладки и доработки, возможен возврат на любой этап процесса разработки.
В следующих разделах пояснительной записки все объекты задачи рассматриваются более подробно. Основные особенности ведения учета задаются (настраиваются) в конфигураторе.
В основе конфигурации лежит принцип ввода информации в программу “от документа”. Это значит что в программе возможно создание и хранение в электронном виде документов и автоматическое проведение их по регистрам оперативного учета. Технология “от документа” позволяет вводить любую информацию в программу однократно и многократно ее использовать. Введенная информация автоматически обобщается, что позволяет формировать необходимую отчетность за любой период времени.
Отчеты, входящие в конфигурацию, позволяют оперативно получать необходимые регистры учета и представлять бухгалтерскую информацию в удобном для анализа виде.
В следующих разделах пояснительной записки все объекты задачи рассматриваются более подробно.
3. Описание среды программирования
«1С:Предприятие7.7» является универсальной системой для автоматизации ведения учета. Она может поддерживать различные системы учета, различные методологии учета, использоваться на предприятиях различных типов деятельности. Система программ «1С:Предприятие» предназначена для решения широкого спектра задач автоматизации учета и управления, стоящих перед динамично развивающимися современными предприятиями.
«1С:Предприятие» представляет собой систему прикладных решений, построенных по единым принципам и на единой технологической платформе. Задачи учета и управления могут существенно отличаться в зависимости от рода деятельности предприятия, отрасли, специфики продукции или оказываемых услуг, размера и структуры предприятия, требуемого уровня автоматизации. Трудно себе представить одну программу, предназначенную для массового использования и удовлетворяющую при этом потребностям большинства предприятий. При этом руководителю, с одной стороны, необходимо решение, соответствующее специфике именно его предприятия, но, с другой стороны, он понимает преимущества применения массового проверенного продукта. Сочетание этих потребностей и обеспечивает «1С:Предприятие» как система программ.
3.1 Требования к техническому обеспечению
Персональный компьютер пользователя должен иметь минимальные требования для реализации 1С.
-печатающее устройство;
Ввод информации предусмотрен с помощью:
— Клавиатуры;
-Манипулятора типа “мышь”.
3.2 Требования к программному обеспечению
Для нормальной работы программы необходимо наличие на компьютере программного обеспечения:
-операционная система Microsoft Windows /98/2000/NT 4.0/XP;
-установленное ядро «1С:Предприятие 7.7 » однопользовательская версия.
4. Методика разработки программы
4.1 Алгоритмизация задачи
4.1.1 Описание алгоритма
Для ввода новых данных и их хранения используются многочисленные справочники, в которых при необходимости можно редактировать, удалять или добавлять новые записи.
В программе присутствуют следующие справочники:
Справочник №1: Товар
Индефикатор |
Синонимы |
Тип значения |
Ред-ние |
Обяз-ное поле |
|
Код |
— |
Число |
В диалоге |
Да |
|
Наименование |
Товар |
Строка |
Да |
||
Цена |
Цена |
Число |
Да |
Справочник №2: Сотрудники
Индефикатор |
Синонимы |
Тип значения |
Ред-ние |
Обяз-ное поле |
|
Код |
— |
Число |
В списке |
Да |
|
Наименование |
Сотрудник |
Строка |
Да |
||
Квалификация |
Квалификация |
Строка |
Да |
Справочник №3: Поставщики
Индефикатор |
Синонимы |
Тип значения |
Ред-ние |
Обяз-ное поле |
|
Код |
— |
Число |
В диалоге |
Да |
|
Наименование |
Поставщик |
Строка |
Да |
||
ИНН |
ИНН |
Число |
Да |
||
Адрес |
Адрес |
Строка |
Да |
||
Телефон |
Телефон |
Число |
Да |
Справочник №4: Покупатель
Индефикатор |
Синоним |
Тип значения |
Ред-ние |
Обяз-ное поле |
|
Код |
— |
Число |
В диалоге |
Да |
|
Наименование |
Покупатель |
Строка |
Да |
||
Телефон |
Телефон |
Число |
Да |
Программное обеспечение имеет следующие формы:
· Заявка — в этом документе сохраняются данные о покупателе сделавшего заказ на определённый товар.
· Поступление товара — данный документ предназначен для учета товара поступающего в магазин.
· Продажа — данный документ реализует возможность продажи товаров. При проведении документа фиксируется факт взаиморасчетов с покупателем.
· Списание — документ отображает какой товар, в каком количестве и по какой причине будет списан.
· Переоценка — данный документ предназначен для упрощения ввода новой розничной цены в справочник Товар.
Программное обеспечение имеет следующие отчеты:
· Остатки товара — отображает оставшееся количество товара.
· Отчет по продажам — отчет о проданном товаре.
· Заказы — в отчёте Заказы можно посмотреть, что именно и в каком количестве заказал покупатель.
· Списание — в этом отчете можно посмотреть, какой товар, в каком количестве и по какой причине был списан.
· Поступление — в этом отчете показывается, какой товар и в каком количестве поступил на продажу.
4.1.2 Структурная схема
4.2 Программирование
В соответствии со структурной схемой, приведенной выше, в представленном программном обеспечение разработаны тексты программных модулей на встроенном языке «1С:Предприятие7.7». Тексты, соответствующие программе и запросам, приведены в пункте V. “Приложение”
4.3 Аномалии и защитное программирование
Описание аномалии |
Реакции на аномалию |
Способ защиты |
|
1. Ввод в поле не существующего товара. |
Выводит сообщение о том, что, такого товара нет. |
Защищено разработчиком. |
|
2. Ввод в поле большее количество имеющегося товара. |
Выводит сообщение о том, что, такого товара нет в таком количестве. Документ не проводится. |
Защищено разработчиком. |
|
3.Повторный ввод одного и того же товара. |
Выводит сообщение о том, что, товар уже был введен. |
Защищено разработчиком. |
С целью повышения надежности функционирования программы необходимо обеспечить программный контроль:
Ввода корректных данных дат: конечная дата должна быть больше начальной, иначе выводится сообщение об ошибке;
Невозможность проведения документа, если не введены или не выбраны некоторые необходимые параметры или наименования.
4.4 Тестирование и отладка
Тестирование — процесс многократного выполнения программы с целью выявления ошибок. Отладка-исправление ошибок, найденных с помощью тестирования. При тестировании должны использоваться следующие принципы:
1) необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;
2) т.к. обнаружение ошибок в своей работе (программе) разработчику сложно, тестирование должен производить посторонний человек или организация;
3) должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;
4) необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);
5) при анализе результатов каждого теста необходимо проверить, не делает ли программа того, что она не должна делать;
6) следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);
Хотя программа прошла тестирование успешно, в ней, тем не менее, могут содержаться ошибки, т.к.
1) программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути;
2) не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (т.е. на одних исходных данных программа работает правильно, а на других — с ошибкой).
5. Анализ результатов решения
В соответствии с пунктом 4.4 тестирование и отладка производились непосредственно во время разработки приложения. После завершения работы было еще раз произведено полное тестирование всей программы.
Все найденные ошибки были успешно устранены.
Получившееся в результате приложение удовлетворяет всем предъявленным требованиям, полностью работоспособно и готово к эксплуатации.
программа электронный учет
6. Инструкция пользователю
Это приложение служит для эффективного учета товаров, позволит производить хранение данных, осуществлять поиск по заданным критериям, получать отчеты о количественных и качественных составляющих имеющейся в наличии или у клиента товаров.
Описание
Достоинства программы:
Удобство и простота в эксплуатации (минимальные навыки работы пользователя на 1С); существенное облегчение работы сотрудника магазина; более оперативное обслуживание клиентов; не большой объём занимаемой памяти. Для того чтобы открыть базу данных, необходимо открыть базу данных 1С «Zepter».
Запуск программы.
Запуск программы осуществляется нажатием левой клавиши мыши на ярлык программы «1С:Предприятие7.7»
В данной программе существует 2 набора прав: Администратор и пользователь. При запуске «1С:Предприятие7.7» необходимо выбрать пользователя и ввести пароль.
Для администратора установлены все права, у пользователя ограниченный набор прав. Пользователь не имеет права менять значение и удалять документы.
Открытая база “Zepter” выглядит следующим образом:
После запуска «1С:Предприятие7.7» вы можете открыть любой интересующий вас справочник, журнал документов, отчет, создать и провести новый документ.
Журнал документов можно открыть из меню “Журналы”:
Журнал «Общий»
Как и во всех других журналах, на форме присутствуют реквизиты: Дата, Время, Документ, Номер.
Журнал «Заявки»
На форме присутствуют реквизиты: Дата, Время, Документ, Номер и Заказчик.
Также в программе присутствуют справочники. Они необходимы для хранения различных данных. В меню “Справочники” можно открыть любой из справочников:
Справочник «Товары»
В данном справочнике можно отредактировать или посмотреть всю необходимую информацию об интересующем вас товаре, при двойном нажатии левой кнопкой мыши на наименование открывается диалоговое окно, в котором можно отредактировать информацию о товаре.
Справочник «Поставщики»
В данном справочнике можно отредактировать или посмотреть всю необходимую информацию об интересующем вас поставщике.
Справочник «Покупатели»
В данный справочник заноситься, и редактируется информация о клиентах магазина.
Также в программе существуют различные документы. Они необходимы для осуществлений операций связанных с покупкой, реализацией, заказом товара. Документы проводятся по регистрам оперативного учета.
Любой документ можно открыть из меню ”Документы”.
Документ «Заявка»
Документ «Заявка» содержит информацию о заказчике и товаре, на который осуществляется заявка.
Документ «Поступление товара»
Документ содержит информацию о поставщике и принятом товаре. После заполнения документа, его можно вывести на печать (Накладная).
Документ «Продажа»
Документ содержит информацию о товаре и покупателе. После заполнения документа, его можно вывести на печать (Товарный чек).
Документ «Списание»
Документ «Переоценка»
Так же в программе существуют Отчеты. Они необходимы для просмотра результата продаж товара, прихода товара, остаток товара.
Отчет «Продажи»
Данный отчет формирует информацию о продажах за период, который выбран на форме. Так же можно выбрать по какому товару будет формироваться отчет.
Отчет «Заказы»
Данный отчет формирует информацию о принятый заказах за период, который выбран на форме. Так же можно выбрать определенного заказчика и посмотреть, на какой товар он осуществил заявку.
Отчет «Списание»
Данный отчет формирует информацию о списанном товаре за период, который выбран на форме.
Отчет «Поступление»
Данный отчет формирует информацию о поступлении товара за период, который выбран на форме. Так же можно выбрать определенный товар и посмотреть в каком количестве он поступил.
Отчет «Остаток товара»
Данный отчет формирует информацию о том, какое количество товара осталось после продажи за период, который выбран на форме. Так же можно выбрать определенный товар и увидеть остаток его количества в магазине.
II .Экономическая часть
Для того чтобы данный проект был реализован в магазине необходимо подсчитать годовой экономический эффект от внедрения программного продукта «Автоматизация товарного учета продукции Zepter».
Экономический эффект — это, прежде всего, экономия денежных средств. В связи с тем, что реальной экономии добиться сложно, экономическим эффектом данного программного проекта будет экономия рабочего времени. Благодаря чему сотрудник сможет выполнить большое количество работ. В нашем случае это работы связанные с ведением количественного учета товаров в магазине.
Таблица 1.
Этап разработки |
Характеристика |
Трудоёмкость ч. |
|
Постановка задачи |
Пред проектное обследование. Разработка, утверждение, технико-экономическое обследование. |
10 |
|
Составление технического проекта |
Уточнение структуры и формы представления входных и выходных данных (алгоритм и структура), Разработка плана мероприятий по проекту. Согласование утверждение технического проекта. |
40 |
|
Составление рабочего проекта |
Написание программы на языке программирования. Первоначальная отладка, тестирование. Разработка согласование и утверждения порядка и методики испытания. Корректировка программы. |
85 |
|
Документирование и внедрение |
Разработка программной документации. Сдача программы и программной документации. |
25 |
|
ИТОГО: |
160 ч. |
Затраты на внедрение проекта.
Коэффициент сложности задачи C характеризует сложность данной программы по отношению к типовой задаче, сложность которой принята за 1 (величина C лежит в пределах от 0,5 до 1). Для данной программы C равно 0,7 , так как в данной программе разработаны формы, имеющие в себе наиболее удобный поиск информации, всевозможные отчёты.
C = 0,7 — коэффициент сложности программы
Коэффициент P увеличения объёма работ за счёт внесения изменений в алгоритм или программу по результатам уточнения установок. Коэффициент меняется от 0,1 до 0,5. Заказчик четко описал конечный результат, который должен выдаваться данным программным обеспечением, однако некоторые изменения и доработки все же придётся внести. Необходимо принять во внимание, что в данном случае заказчик не имел глубоких компьютерных знаний и не мог изначально объяснить задачу в целом. Это приводило к неоднократным доработкам, модернизациям и корректировке. Лучше всего взять среднее значение коэффициента.
Р = 0,3 — коэффициент увеличения работ
Коэффициент В — коэффициент увеличения затрат труда вследствие недостаточного описания задач. Коэффициент меняется от 1 до 1,5. В данном случае коэффициент В будет равен 1 , так как задача имеет достаточное описание для работы с ней.
В =1 — коэффициент увеличения затрат труда
Коэффициент К коэффициент квалификации разработчика, который зависит от стажа. Коэффициент К равен: для работающих до двух лет — 0,8; от трех до пяти — 1; от пяти до восьми — 1,2; более восьми лет — 1,5. Поскольку опыта у разработчика не достаточно, то коэффициент К мы берем равным 0,8.
К = 0,8 — коэффициент квалификации разработчика
ЗПосн = ЗП*С*(1+Р)*В*К
С учетом всех коэффициентов заработная плата в месяц составит: ЗПосн = 9000 * 0,7 * (1 + 0,3) * 1 * 0,8 = 6552 рублей/ месяц.
Дополнительная заработная плата высчитывается по формуле:
ЗПдоп = ЗПосн * К
К — размер премии в процентах. Премия работнику за это время не выплачивалась.
Общие затраты предприятия на заработную плату за период разработки ПО вычисляется по формуле:
ЗПсум = (ЗПосн + ЗПдоп)
Количество временных затрат на создание равно 160 часов.
Страховые отчисления берутся в размере 26% от ЗПсум. СО = 5956* 26% = 1548.6 рублей.
Суммарная затрата на оплату труда ЗПобщ = ЗПсум + СО = ((5956+1548.6)*160)/22*8=6822.4рублей.
Содержание и эксплуатация вычислительной техники.
Время, затраченное на отладку программы (2 + 3 + 4 этапы из таблицы 1) равно 150 ч. Необходимо посчитать стоимость одного машинного часа по формуле:
(стоимость электроэнергии + амортизация + затраты на ремонт)/Фвт
Фвт — действительный фонд времени работы вычислительного комплекса.
Стоимость электроэнергии — 4 рубля за кВт/ч., потребление энергии — 300 Вт/ч.
8ч. * 22дня * 12 мес. * 0,3 кВт/ч * 4 рубля = 2534,4 рубля стоимость за год.
Амортизация зависит от срока эксплуатации компьютера, а т.к. срок эксплуатации компьютера на котором производилась разработка данного программного продукта — 3 года, то амортизация еще начисляется и учитывается в дальнейших подсчетах.
Амортизация = общая сумма / количество лет.
Стоимость ПК составила 21000 рублей, а количество лет полезного использования — 4 года. Амортизация = 21000 / 4 = 5250 руб/год.
На ремонт уходит 5 % от стоимости ПК. В данном случае на ремонт будет уходить 21000 * 5 % = 1050 рублей.
Действительный фонд времени работы вычислительного комплекса рассчитываем так:
Фвт = Фном — Фпроф
Фном — номинальный фонд времени работы вычислительного комплекса.
Фпроф — годовые затраты времени на профилактические работы (5% = 0,05).
Фвт=Фном -Фпроф= (8ч. * 22 дн. * 12 мес.) — (8ч.* 22 дн.* 12 мес.* 0,05)=2112-106=2006 ч.
Стоимость 1 машинного часа работы = (2534.4 + 5250+ 1050) / 2006 = 4.4 рубля.
Стоимость затрат всего равна 150 * 4.4 рубля = 660 рублей.
Работа с данным программным продуктом не требует приобретения нового компьютера, т.к. имеющийся ПК полностью соответствует системным требованиям. Наем нового работника не обязателен, т.к. данный продукт прост в использовании и имеет удобный пользовательский интерфейс, поэтому любой из имеющихся в штате служащих может легко научиться использовать данный программный продукт для экономии своих временных ресурсов.
Смета затрат на разработку данного программного приложения приведена в таблице 2.
Таблица 2
№ |
Наименование статьи расходов |
Затраты |
|
1 |
Зарплата суммарная исполнителя |
5956 руб. |
|
2 |
Страховые отчисления |
1548,6 руб. |
|
3 |
Затраты на эксплуатацию ПК, используемого для написания программы |
660 руб. |
|
Итого: |
8164,6руб. |
Экономический эффект.
Рассчитаем экономический эффект получаемый за счет сокращения времени на выполнение необходимых операций. Для этого нам потребуются следующие данные:
Т1 — время которое занимала одна операция.
До внедрения программного обеспечения сотрудник выполнял примерно 10 операций по поиску и вводу данных в день. На одну операцию он тратил приблизительно 10 минут, т.к. определенную информацию приходилось искать в бумажных архивах. Т1 = 10 мин. = 0.16 часа.
Тестирование показало, что время выполнения операции после внедрения программного обеспечения стало занимать 5 минут вместо 8. Так как вся информация уже находится в базе и надо всего лишь открыть необходимую форму, которая выведет нам нужные данные; нет никакой необходимости отвлекать другого сотрудника от работы либо производить ручной поиск в архиве. Т2 = 5 мин. = 0.08 часа.
Мы сократили время на
Т = Т1 — Т2 = 10 мин. — 5 мин. = 5 мин. = 0.08 часа.
Теперь рассчитаем стоимость работы сотрудника.
В месяц количество рабочих часов равно: 8 * 22 = 176.
Стоимость одного часа работы высчитывается по формуле:
Pч = ЗП / 176.
Заработная плата сотрудника составляет 12000 руб. / месяц. Тогда стоимость одного часа работы будет стоить 12000 / 176 = 68,2 руб.
Стоимость экономии фондовых отчислений рассчитывается по формуле:
Pсо = (ЗП * 0,26) / 176 = (12000 * 0,26) / 176 = 17,7 руб.
В итоге получается
Pсум = Pч + Pсо = 68,2 + 17,7 = 85,9 руб.
Годовая экономия времени рассчитывается по формуле: Тгод = Т * Q * кол-во рабочих дней в месяц * кол-во месяцев = 0.08 * 10 * 22 * 12 = 211.2 часа.
Годовая экономия составит
Тгод * Pсум = 211.2 * 85,9 = 18142 руб.
Вычтем затраты и определим экономический эффект:
18142-8164,6= 9977,4 руб. в год
Теперь посчитаем, за какое количество времени окупится приложение: Т = затраты / ЭФ = 9977,4 / 18142 = 0,5 года.
Таким образом, если магазин по продаже продукции Zepter захочет реализовать у себя данный программный продукт, то он окупится за 0,5 года.
Заключение
В дипломной работе на тему “Автоматизация товарного учета продукции Zepter” был автоматизирован процесс учета поступлений и продаж товаров в магазине. Написанное приложение полностью соответствует поставленной задаче.
Оценка экономической эффективности от внедрения приложения показала, что проект экономически выгоден, срок его окупаемости составит 6 месяцев.
В конечном итоге разработанный мною проект “Автоматизация товарного учета продукции Zepter” на «1С:Предприятие7.7». существенно упростит работу сотрудника и сократит его рабочее время.
Литература
· “1C:Предприятие 7.7 Описание встроенного языка” 77.001.03 14 октября 2011г.
· “1C:Предприятие 7.7 Введение в конфигурирование ” 2010г.
· Официальный сайт компании 1С “ www.1C.ru”.
· “1C:Предприятие 7.7 Руководство по установке и запуску” 77.003.04
· “1C:Бухгалтерия 7.7Руководство по ведению учета (Описание типовой конфигурации редакции 4.5)” 77.450.02 8 сентября 2012г.
· “1C:Предприятие 7.7Конфигурирование и администрирование. Часть1 77.002.03 17 октября 2009г.
Приложение
Справочник. Товар
Форма элемента
1. Процедура ПриЗаписи()
2. если пустоезначение(наименование)=1 тогда
3. предупреждение(«Введите наименование товара!»);
4. статусвозврата(0);
5. конецесли;
6. если пустоезначение(цена)=1 тогда
7. предупреждение(«Введите цену товара!»);
8. статусвозврата(0);
9. конецесли;
10. КонецПроцедуры
Справочник. Поставщики
Форма элемента
1. Процедура ПриЗаписи()
2. если пустоезначение(наименование)=1 тогда
3. предупреждение(«Введите поставщика!»);
4. статусвозврата(0);
5. конецесли;
6. если пустоезначение(адрес)=1 тогда
7. предупреждение(«Введите адрес!»);
8. статусвозврата(0);
9. конецесли;
10. если пустоезначение(телефон)=1 тогда
11. предупреждение(«Введите телефон!»);
12. статусвозврата(0);
13. конецесли;
14. КонецПроцедуры
Справочник. Покупатели
Форма элемента
1. Процедура ПриЗаписи()
2. если пустоезначение(наименование)=1 тогда
3. предупреждение(«Введите покупателя!»);
4. статусвозврата(0);
5. конецесли;
6. если пустоезначение(телефон)=1 тогда
7. предупреждение(«Введите телефон!»);
8. статусвозврата(0);
9. конецесли;
10. КонецПроцедуры
Документ. Продажи
Форма элемента
1. Процедура Печ()
2. Таб = СоздатьОбъект(«Таблица»);
3. таб.ИсходнаяТаблица(«Таблица»);
4. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
5. покк=Покупатель;
6. проо=Продавец;
7. квалл=Квалификация;
8. Таб.ВывестиСекцию(«Шапка»);
9. Выбратьстроки();
10. пока получитьстроку()=1 цикл;
11. _Ном = 0;
12. ном=НомерСтроки;
13. товв=Товар;
14. колл=Количество;
15. ценн=Цена;
16. сумм=сумма;
17. Таб.ВывестиСекцию(«строка»);
18. конеццикла;
19. итоо=Формат(Итог(«сумма»), «Ч20.2-,»);
20. Таб.ВывестиСекцию(«подвал»);
21. Таб.ТолькоПросмотр(1);
22. Таб.Показать(«Продажа»,»»);
23. Конецпроцедуры
Процедура Счет()
24. Перем Запрос, ТекстЗапроса;
25. если количество=0 тогда
26. количество=1;
27. конецесли;
28. Цена=Товар.Цена;
29. Квалификация=Продавец.Квалификация;
30. Сумма= Цена*Количество;
31. товв=товар;
32. _Ном = 0;
33. ном=НомерСтроки;
34. Выбратьстроки();
35. пока Получитьстроку()=1 цикл
36. если товар=товв тогда
37. Если _Ном > 0 Тогда
38. товар = «»;
39. количество=»»;
40. предупреждение(«ТАКОЙ ТОВАР УЖЕ ЕСТЬ,выберете другой товар или удалите строку!»);
41. _Ном = НомерСтроки;
42. Прервать;
43. КонецЕсли;
44. _Ном = НомерСтроки;
45. Конецесли;
46. Стр = «»;
47. конеццикла;
48. конецпроцедуры
Модуль документа
1. Процедура ОбработкаПроведения()
2. //проверка остатков
3. рег=создатьобъект(«регистр.Поступлениетовара») ;
4. Если не(СравнитьТА() = 0 ) тогда
5. рег.временныйрасчет(1);
6. конецесли;
7. РассчитатьРегистрыНа(текущийдокумент());
8. Таб = создатьобъект(«Таблицазначений») ;
9. рег.ВыгрузитьИтоги(Таб,0,1);
10. Выбратьстроки();
11. пока Получитьстроку()=1 цикл
12. Стр = «»;
13. Если Таб.НайтиЗначение(Товар,стр,1) = 1 Тогда
14. таб.ПолучитьСтрокуПоНомеру(Стр);
15. Стр = «»;
16. рег=регистр.Поступлениетовара;
17. рег.ПривязыватьСтроку(НомерСтроки);
18. рег.товар=товар;
19. рег.сумма=сумма;
20. кол=количество;
21. Запрос = СоздатьОбъект(«Запрос») ;
22. ТекстЗапроса =
23. «//{{ЗАПРОС(Сформировать)
24. |Тов = Регистр.Поступлениетовара.Товар;
25. |Кол = Регистр.Поступлениетовара.Количество;
26. |Функция КоличествоКонОст = КонОст(Кол);
27. |Условие(товар = тов);
28. |Группировка тов;
29. |»;
30. Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
31. Возврат;
32. КонецЕсли;
33. Пока Запрос.Группировка(1) = 1 Цикл
34. зК = запрос.кол;
35. если зк<кол Тогда
36. Предупреждение(«В таком количестве товара «+запрос.тов+» нет! » );
37. непроводитьдокумент();
38. возврат;
39. конецесли;
40. Если зк <= кол тогда
41. рег.количество = зк; иначе
42. рег.количество = КОЛ;
43. конецесли;
44. КОЛ = кол — зк;
45. рег.движениерасходвыполнить();
46. Если кол <= 0 тогда
47. Прервать;
48. КонецЕсли;
49. КонецЦикла; иначе
50. Предупреждение(«Товара «+строка(Товар)+» нет на складе! «) ;
51. непроводитьдокумент();
52. возврат;
53. КонецЕсли;
54. конеццикла;
55. КонецПроцедуры
Документ. Переоценка
Форма элемента
1. Процедура перес()
2. Старая_цена=Товар.Цена;
3. товв=товар;
4. _Ном = 0;
5. ном=НомерСтроки;
6. Выбратьстроки();
7. пока Получитьстроку()=1 цикл
8. если товар=товв тогда
9. Если _Ном > 0 Тогда
10. товар = «»;
11. количество=»»;
12. предупреждение(«ТАКОЙ ТОВАР УЖЕ ЕСТЬ,выберете другой товар или удалите строку!»);
13. _Ном = НомерСтроки;
14. Прервать;
15. КонецЕсли;
16. _Ном = НомерСтроки;
17. Конецесли;
18. Стр = «»;
19. конеццикла;
20. конецпроцедуры
21. Процедура Печ()
22. Таб = СоздатьОбъект(«Таблица»);
23. таб.ИсходнаяТаблица(«Таблица»);
24. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
25. Таб.ВывестиСекцию(«Шапка»);
26. Выбратьстроки();
27. пока получитьстроку()=1 цикл;
28. _Ном = 0;
29. ном=НомерСтроки;
30. товв=Товар;
31. старр=Старая_цена;
32. новв=Новая_цена;
33. провв=Провел_переоценку;
34. Таб.ВывестиСекцию(«строка»);
35. конеццикла;
36. провв=Провел_переоценку;
37. Таб.ВывестиСекцию(«подвал»);
38. Таб.ТолькоПросмотр(1);
39. Таб.Показать(«Продажа»,»»);
40. Конецпроцедуры
Модуль документа
1. Процедура ОбработкаПроведения()
2. рег=регистр.Переоценка;
3. спр=создатьобъект(«справочник.Товары»);
4. выбратьстроки();
5. пока получитьстроку()=1 цикл
6. спр.выбратьэлементы();
7. Спр.НайтиЭлемент(Товар);
8. Спр.Цена=Новая_цена;
9. Спр.Записать();
10. ПривязыватьСтроку(НомерСтроки);
11. Рег.Товар=Товар;
12. Рег.Новая_цена=Новая_цена;
13. Рег.Старая_цена=Старая_цена;
14. Рег.ДвижениеВыполнить();
15. конеццикла;
16. КонецПроцедуры
Документ. Заявка
Форма элемента
1. Процедура заяв()
2. Перем Запрос, ТекстЗапроса;
3. если количество=0 тогда
4. количество=1;
5. конецесли;
6. Телефон=Заказчик.Телефон;
7. Цена=Товар.Цена;
8. Сумма=Цена*Количество;
9. товв=товар;
10. _Ном = 0;
11. ном=НомерСтроки;
12. Выбратьстроки();
13. пока Получитьстроку()=1 цикл
14. если товар=товв тогда
15. Если _Ном > 0 Тогда
16. товар = «»;
17. количество=»»;
18. предупреждение(«ТАКОЙ ТОВАР УЖЕ ЕСТЬ,выберете другой товар или удалите строку!»);
19. _Ном = НомерСтроки;
20. Прервать;
21. КонецЕсли;
22. _Ном = НомерСтроки;
23. Конецесли;
24. Стр = «»;
25. конеццикла;
26. Конецпроцедуры
27. Процедура Печ()
28. Таб = СоздатьОбъект(«Таблица»);
29. таб.ИсходнаяТаблица(«Таблица»);
30. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
31. телл=Телефон;
32. закк=Заказчик;
33. Таб.ВывестиСекцию(«Шапка»);
34. Выбратьстроки();
35. пока получитьстроку()=1 цикл;
36. _Ном = 0;
37. ном=НомерСтроки;
38. товв=Товар;
39. колл=Количество;
40. ценн=Цена;
41. сумм=сумма;
42. Таб.ВывестиСекцию(«строка»);
43. конеццикла;
44. итоо=Формат(Итог(«сумма»), «Ч20.2-,»);
45. закк=Заказчик;
46. прии=Принял_заказ;
47. Таб.ВывестиСекцию(«подвал»);
48. Таб.ТолькоПросмотр(1);
49. Таб.Показать(«Продажа»,»»);
50. Конецпроцедуры
Модуль документа
1. Процедура ОбработкаПроведения()
2. выбратьстроки();
3. пока получитьстроку()=0 цикл
4. если товар.выбран()=0 тогда
5. предупреждение(«Не выбран товар!!!»);
6. непроводитьдокумент();
7. возврат;
8. конецесли;
9. конеццикла;
10. если заказчик.выбран()=0 тогда
11. предупреждение(«Выберетие заказчика!!!»);
12. непроводитьдокумент();
13. возврат;
14. конецесли;
15. если Принял_заказ.выбран()=0 тогда
16. предупреждение(«Выберетие продавец!!!»);
17. непроводитьдокумент();
18. возврат;
19. конецесли;
20. КонецПроцедуры
Документ. Списание
Форма элемента
1. Процедура списс()
2. Перем Запрос, ТекстЗапроса;
3. если количество=0 тогда
4. количество=1;
5. конецесли;
6. Цена=Товар.Цена;
7. Сумма=Количество*Цена;
8. товв=товар;
9. _Ном = 0;
10. ном=НомерСтроки;
11. конецпроцедуры
12. Процедура Печ()
13. Таб = СоздатьОбъект(«Таблица»);
14. таб.ИсходнаяТаблица(«Таблица»);
15. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
16. Таб.ВывестиСекцию(«Шапка»);
17. Выбратьстроки();
18. пока получитьстроку()=1 цикл;
19. _Ном = 0;
20. ном=НомерСтроки;
21. товв=Товар;
22. колл=Количество;
23. дефф=Дефект;
24. ценн=Цена;
25. сумм=сумма;
26. Таб.ВывестиСекцию(«строка»);
27. конеццикла;
28. ущщ=Формат(Итог(«сумма»), «Ч20.2-,»);
29. обнн=Обнаружил_деффект;
30. Таб.ВывестиСекцию(«подвал»);
31. Таб.ТолькоПросмотр(1);
32. Таб.Показать(«Акт списания»,»»);
33.Конецпроцедуры
Модуль документа
1. Процедура ОбработкаПроведения()
2. Если Пустоезначение(Товар) = 0 тогда
3. Предупреждение(«Товар не выбран! » );
4. НепроводитьДокумент();
5. КонецЕсли;
6. Регистр.Списание.Привязыватьстроку(1);
7. Регистр.Списание.Обнаружил_деффект = Обнаружил_деффект;
8. Выбратьстроки();
9. Пока Получитьстроку() = 1 Цикл;
10. Регистр.Списание.Товар = Товар;
11. Регистр.Списание.Дефект = Дефект;
12. Регистр.Списание.Количество = Количество;
13. Регистр.Списание.Цена = Цена;
14. Регистр.Списание.Сумма = Сумма;
15. Регистр.Списание.ДвижениеРасходВыполнить();
16. КонецЦикла;
Документ. Поступление товара
Форма элемента
1. Процедура счет()
2. Перем Запрос, ТекстЗапроса;
3. если количество=0 тогда
4. количество=1;
5. конецесли;
6. Цена=товар.цена;
7. Сумма=Количество*Цена;
8. Телефон=Поставщик.Телефон;
9. Адрес=Поставщик.Адрес;
10. Квалификация=Принял_товар.Квалификация;
11. товв=товар;
12. _Ном = 0;
13. ном=НомерСтроки;
14. Выбратьстроки();
15. пока Получитьстроку()=1 цикл
16. если товар=товв тогда
17. Если _Ном > 0 Тогда
18. товар = «»;
19. количество=»»;
20. предупреждение(«ТАКОЙ ТОВАР УЖЕ ЕСТЬ,выберете другой товар или удалите строку!»);
21. _Ном = НомерСтроки;
22. Прервать;
23. КонецЕсли;
24. _Ном = НомерСтроки;
25. Конецесли;
26. Стр = «»;
27. конеццикла;
28. Конецпроцедуры
29. Процедура Печ()
30. Таб = СоздатьОбъект(«Таблица»);
31. таб.ИсходнаяТаблица(«Таблица»);
32. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
33. посс=Поставщик;
34. прии=Принял_товар;
35. телл=Телефон;
36. расс=Расчетный_счет;
37. адд=Адрес;
38. Таб.ВывестиСекцию(«Шапка»);
39. Выбратьстроки();
40. пока получитьстроку()=1 цикл;
41. _Ном = 0;
42. ном=НомерСтроки;
43. товв=Товар;
44. колл=Количество;
45. ценн=Цена;
46. сумм=сумма;
47. Таб.ВывестиСекцию(«строка»);
48. конеццикла;
49. итоо=Формат(Итог(«сумма»), «Ч20.2-,»);
50. Таб.ВывестиСекцию(«подвал»);
51. Таб.ТолькоПросмотр(1);
52. Таб.Показать(«Продажа»,»»);
53.Конецпроцедуры
Модуль документа
1. Процедура ОбработкаПроведения()
2. Регистр.Поступлениетовара.Привязыватьстроку(1);
3. Выбратьстроки();
4. Пока Получитьстроку() = 1 Цикл
5. Регистр.Поступлениетовара.Товар=Товар;
6. Регистр.Поступлениетовара.Количество=Количество;
7. Регистр.Поступлениетовара.Сумма=Сумма;
8. Регистр.Поступлениетовара.ДвижениеПриходВыполнить();
9. КонецЦикла;
10. конецпроцедуры
Отчет. Отчет продаж
Форма диалога
1. Процедура Сформировать()
2. если пустоезначение(начдата)=1 тогда
3. предупреждение(«Выберете начальную дату формирования отчета!»);
4. возврат;
5. конецесли;
6. если пустоезначение(кондата)=1 тогда
7. предупреждение («Выберете конечную дату формирования отчета!»);
8. возврат;
9. конецесли;
10. если(кондата)<(начдата) тогда
11. предупреждение («Неправельный диапазон дат!»);
12. возврат;
13. конецесли;
14. ДатаТА=ПолучитьДатуТА();
15. если кондата>ДатаТА тогда
16. предупреждение («Конечная дата запроса больше даты актуальности итогов»);
17. возврат;
18. конецесли;
19. запр=создатьобъект(«Запрос»);
20. текстзапроса=»
21. |период с начдата по кондата;
22. |ОбрабатыватьДокументы Проведенные;
23. |док=документ.Продажа.текущийдокумент;
24. |Товар=документ.Продажа.Товар;
25. |код=документ.Продажа.номерстроки;
26. |количество=документ.Продажа.количество;
27. |цена=документ.Продажа.цена;
28. |сумма=документ.Продажа.сумма;
29. |функция кондата=коност(сумма);
30. |ФУНКЦИЯ колич=коност(количество);
31. |Группировка товар без групп;
32. |группировка код;
33. |группировка док;»;
34. Если пустоезначение(Выбтов)=0 Тогда
35. ТекстЗапроса = ТекстЗапроса +»
36. |условие(Товар=выбтов);»;
37. КонецЕсли;
38. запр.выполнить(Текстзапроса);
39. Если Запр.Выполнить(ТекстЗапроса) = 0 Тогда
40. Возврат;
41. КонецЕсли;
42. Таб = СоздатьОбъект(«Таблица»);
43. Таб.ИсходнаяТаблица(«Таблица»);
44. Таб.ВывестиСекцию(«Шапка»);
45. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
46. Пока запр.группировка(1)=1 Цикл
47. Пока запр.группировка(2)=1 Цикл
48. кол=запр.колич;
49. тов=запр.товар;
50. цена=запр.цена;
51. сумм=запр.сумма;
52. Таб.ВывестиСекцию(«Строка_1»);
53. Пока запр.группировка(3)=1 Цикл
54. д=запр.док;
55. Таб.ВывестиСекцию(«Строка_2»);
56. КонецЦикла;
57. КонецЦикла;
58. КонецЦикла;
59. сумит= » «+запр.Кондата+»: » ;
60. Таб.ВывестиСекцию(«Итог»);
61. Таб.ТолькоПросмотр(1);
62. Таб.Показать(«Отчет по продажам»,»»);
63. КонецПроцедуры
Отчет. Заказы
Форма диалога
1. Процедура Сформировать()
2. если пустоезначение(начдата)=1 тогда
3. предупреждение(«Выберете начальную дату формирования отчета!»);
4. возврат;
5. конецесли;
6. если пустоезначение(кондата)=1 тогда
7. предупреждение («Выберете конечную дату формирования отчета!»);
8. возврат;
9. конецесли;
10. если(кондата)<(начдата) тогда
11. предупреждение («Неправельный диапазон дат!»);
12. возврат;
13. конецесли;
14. ДатаТА=ПолучитьДатуТА();
15. если кондата>ДатаТА тогда
16. предупреждение («Конечная дата запроса больше даты актуальности итогов»);
17. возврат;
18. конецесли;
19. запр=создатьобъект(«Запрос»);
20. текстзапроса=»
21. |период с начдата по кондата;
22. |ОбрабатыватьДокументы Проведенные;
23. |док=документ.Заявка.текущийдокумент;
24. |Товар=документ.Заявка.Товар;
25. |код=документ.Заявка.номерстроки;
26. |количество=документ.Заявка.количество;
27. |Покупатель=документ.Заявка.Заказчик;
28. |цена=документ.Заявка.цена;
29. |сумма=документ.Заявка.сумма;
30. |функция кондата=коност(сумма);
31. |ФУНКЦИЯ колич=коност(количество);
32. |Группировка товар без групп;
33. |группировка код;
34. |группировка док;»;
35. Если пустоезначение(аа)=0 Тогда
36. ТекстЗапроса = ТекстЗапроса +»
37. |условие(покупатель=аа);»;
38. КонецЕсли;
39. запр.выполнить(Текстзапроса);
40. Если Запр.Выполнить(ТекстЗапроса) = 0 Тогда
41. Возврат;
42. КонецЕсли;
43. Таб = СоздатьОбъект(«Таблица»);
44. Таб.ИсходнаяТаблица(«Таблица»);
45. Таб.ВывестиСекцию(«Шапка»);
46. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
47. Пока запр.группировка(1)=1 Цикл
48. Пока запр.группировка(2)=1 Цикл
49. кол=запр.колич;
50. тов=запр.товар;
51. покк=запр.покупатель;
52. цена=запр.цена;
53. сумм=запр.сумма;
54. Таб.ВывестиСекцию(«Строка_1»);
55. Пока запр.группировка(3)=1 Цикл
56. д=запр.док;
57. Таб.ВывестиСекцию(«Строка_2»);
58. КонецЦикла;
59. КонецЦикла;
60. КонецЦикла;
61. сумит= » «+запр.Кондата+»: » ;
62. Таб.ВывестиСекцию(«Итог»);
63. Таб.ТолькоПросмотр(1);
64. Таб.Показать(«Отчет по продажам»,»»);
65. КонецПроцедуры
Отчет. Списание
Форма диалога
1. Процедура Сформировать()
2. если пустоезначение(начдата)=1 тогда
3. предупреждение(«Выберете начальную дату формирования отчета!»);
4. возврат;
5. конецесли;
6. если пустоезначение(кондата)=1 тогда
7. предупреждение («Выберете конечную дату формирования отчета!»);
8. возврат;
9. конецесли;
10. если(кондата)<(начдата) тогда
11. предупреждение («Неправельный диапазон дат!»);
12. возврат;
13. конецесли;
14. ДатаТА=ПолучитьДатуТА();
15. если кондата>ДатаТА тогда
16. предупреждение («Конечная дата запроса больше даты актуальности итогов»);
17. возврат;
18. конецесли;
19. запр=создатьобъект(«Запрос»);
20. текстзапроса=»
21. |период с начдата по кондата;
22. |ОбрабатыватьДокументы Проведенные;
23. |док=документ.Списание.текущийдокумент;
24. |Товар=документ.Списание.Товар;
25. |код=документ.Списание.номерстроки;
26. |количество=документ.Списание.количество;
27. |цена=документ.Списание.цена;
28. |сумма=документ.Списание.сумма;
29. |Дефект=документ.Списание.Дефект;
30. |функция кондата=коност(сумма);
31. |ФУНКЦИЯ колич=коност(количество);
32. |Группировка товар без групп;
33. |группировка код;
34. |группировка док;»;
35. запр.выполнить(Текстзапроса);
36. Если Запр.Выполнить(ТекстЗапроса) = 0 Тогда
37. Возврат;
38. КонецЕсли;
39. Таб = СоздатьОбъект(«Таблица»);
40. Таб.ИсходнаяТаблица(«Таблица»);
41. Таб.ВывестиСекцию(«Шапка»);
42. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
43. Пока запр.группировка(1)=1 Цикл
44. Пока запр.группировка(2)=1 Цикл
45. кол=запр.колич;
46. дефф=запр.дефект;
47. тов=запр.товар;
48. цена=запр.цена;
49. сумм=запр.сумма;
50. Таб.ВывестиСекцию(«Строка_1»);
51. Пока запр.группировка(3)=1 Цикл
52. д=запр.док;
53. Таб.ВывестиСекцию(«Строка_2»);
54. КонецЦикла;
55. КонецЦикла;
56. КонецЦикла;
57. сумит= » «+запр.Кондата+»: » ;
58. Таб.ВывестиСекцию(«Итог»);
59. Таб.ТолькоПросмотр(1);
60. Таб.Показать(«Отчет по списанию товара»,»»);
61. КонецПроцедуры
Отчет. Поступление
Форма диалога
1. Процедура Сформировать()
2. если пустоезначение(начдата)=1 тогда
3. предупреждение(«Выберете начальную дату формирования отчета!»);
4. возврат;
5. конецесли;
6. если пустоезначение(кондата)=1 тогда
7. предупреждение («Выберете конечную дату формирования отчета!»);
8. возврат;
9. конецесли;
10. если(кондата)<(начдата) тогда
11. предупреждение («Неправельный диапазон дат!»);
12. возврат;
13. конецесли;
14. ДатаТА=ПолучитьДатуТА();
15. если кондата>ДатаТА тогда
16. предупреждение («Конечная дата запроса больше даты актуальности итогов»);
17. возврат;
18. конецесли;
19. запр=создатьобъект(«Запрос»);
20. текстзапроса=»
21. |период с начдата по кондата;
22. |ОбрабатыватьДокументы Проведенные; |док=документ.Поступление_товара.текущийдокумент;
23. |Товар=документ.Поступление_товара.Товар;
24. |код=документ.Поступление_товара.номерстроки;
25. |количество=документ.Поступление_товара.количество;
26. |цена=документ.Поступление_товара.цена;
27. |сумма=документ.Поступление_товара.сумма;
28. |функция кондата=коност(сумма);
29. |ФУНКЦИЯ колич=коност(количество);
30. |Группировка товар без групп;
31. |группировка код;
32. |группировка док;»;
33. Если пустоезначение(Выбтов)=0 Тогда
34. ТекстЗапроса = ТекстЗапроса +»
35. |условие(Товар=выбтов);»;
36. КонецЕсли;
37. запр.выполнить(Текстзапроса);
38. Если Запр.Выполнить(ТекстЗапроса) = 0 Тогда
39. Возврат;
40. КонецЕсли;
41. Таб = СоздатьОбъект(«Таблица»);
42. Таб.ИсходнаяТаблица(«Таблица»);
43. Таб.ВывестиСекцию(«Шапка»);
44. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
45. Пока запр.группировка(1)=1 Цикл
46. Пока запр.группировка(2)=1 Цикл
47. кол=запр.колич;
48. тов=запр.товар;
49. цена=запр.цена;
50. сумм=запр.сумма;
51. Таб.ВывестиСекцию(«Строка_1»);
52. Пока запр.группировка(3)=1 Цикл
53. д=запр.док;
54. Таб.ВывестиСекцию(«Строка_2»);
55. КонецЦикла;
56. КонецЦикла;
57. КонецЦикла;
58. сумит= » «+запр.Кондата+»: » ;
59. Таб.ВывестиСекцию(«Итог»);
60. Таб.ТолькоПросмотр(1);
61. Таб.Показать(«Отчет по продажам»,»»);
62. КонецПроцедуры
Отчет. Остаток товара
Форма диалога
1. Процедура Сформировать()
2. если пустоезначение(начдата)=1 тогда
3. предупреждение(«Выберете начальную дату формирования отчета!»);
4. возврат;
5. конецесли;
6. если пустоезначение(кондата)=1 тогда
7. предупреждение(«Выберете конечную дату формирования отчета!»);
8. возврат;
9. конецесли;
10. если(кондата)<(начдата) тогда
11. предупреждение(«Неправельный диапазон дат!»);
12. возврат;
13. конецесли;
14. ДатаТА=ПолучитьДатуТА();
15. если кондата>ДатаТА тогда
16. предупреждение(«Конечная дата запроса больше даты актуальности итогов»);
17. возврат;
18. конецесли;
19. запр=создатьобъект(«запрос»);
20. текстзапроса=»
21. |период с начдата по кондата;
22. |товар=регистр.Поступлениетовара.товар;
23. |количество=регистр.Поступлениетовара.количество;
24. |функция коностк=коност(количество);
25. |группировка количество без групп;
26. |группировка товар без групп ;
27. |»;
28. Если ПустоеЗначение(Выбтовар) = 0 Тогда
29. ТекстЗапроса = ТекстЗапроса + «Условие(товар = Выбтовар);
30. |»;
31. КонецЕсли;
32. Если пустоезначение(Выбтов)=0 Тогда
33. ТекстЗапроса = ТекстЗапроса +»
34. |условие(Товар=выбтов);»;
35. КонецЕсли;
36. запр.выполнить(текстзапроса) ;
37. Таб = СоздатьОбъект(«Таблица»);
38. Таб.ИсходнаяТаблица(«Таблица»);
39. Таб.ВывестиСекцию(«Шапка»);
40. Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
41. Пока запр.группировка(1)=1 Цикл
42. Пока запр.группировка(2)=1 Цикл
43. товв=запр.товар;
44. колл= запр.коностк;
45. Таб.ВывестиСекцию(«Строка»);
46. КонецЦикла;
47. КонецЦикла;
48. Таб.ВывестиСекцию(«Подвал»);
49. Таб.ТолькоПросмотр(1);
50. Таб.Показать(«Остатки товара»,»»);
51. КонецПроцедуры