- •Дипломный проект
- •В ооо “Альянс-Трейд”
- •Глава 1. Анализ деятельности ооо “Альянс-Трейд” и уровня его автоматизации
- •Глава 2. Разработка проекта автоматизации процесса складского учета в ооо “Альянс-Трейд”
- •Глава 3. Обоснование экономической эффективности проекта автоматизации процесса формирования заказа
- •Глава 1. Анализ деятельности ооо “альянс-трейд” и уровня его автоматизации
- •1.1 Технико-экономическая характеристика предметной области ооо «Альянс-Трейд». Анализ деятельности “как есть”
- •1.1.1 Характеристика предприятия и его деятельности
- •Ооо «Альянс-Трейд» предоставляет свои услуги как физическим, так и юридическим лицам.
- •Основные функции, выполняемые на предприятии:
- •1.1.2 Организационная структура управления предприятием
- •1.2 Характеристика комплекса задач и обоснование необходимости автоматизации
- •1.2.3 Обоснование необходимости автоматизации процесса формирования заказа
- •1.3.2 Выбор и обоснование стратегии автоматизации складского учета
- •1.3.3 Выбор и обоснование способа приобретения ис для автоматизации складского учета
- •1.4 Обоснование проектных решений для складского учета
- •1.4.1 Техническое обеспечение
- •1.4.2 Информационное обеспечение
- •1.4.3 Программное обеспечение
- •Глава 2. Разработка проекта автоматизации процесса складского учета в ооо “альянс-трейд”
- •2.1 Разработка проекта автоматизации
- •2.1.2 Ожидаемые риски на этапах жизненного цикла и их описание
- •2.2 Информационное обеспечение задачи
- •2.2.1 Информационная модель формирования заказа и ее описание
- •2.2.2 Используемые классификаторы и системы кодирования
- •2.2.3 Характеристика входной и оперативной информации
- •2.2.4 Характеристика результатной информации
- •2.3 Технологическое обеспечение задачи. Организация технологии сбора, передачи, обработки и выдачи информации
- •Глава 3. Обоснование экономической эффективности проекта автоматизации процесса формирования заказа
- •3.1 Выбор и обоснование источников и методики оценки экономической эффективности проекта в ооо “Альянс-Трейд”
- •3.2 Расчет показателей экономической эффективности
- •6. Проектирование информационных систем. Грекул в.И., Денищенко г.Н., Коровкина н.Л. - учебное пособие: Москва, 2005 - 303 с.
6. Проектирование информационных систем. Грекул в.И., Денищенко г.Н., Коровкина н.Л. - учебное пособие: Москва, 2005 - 303 с.
7. BPWin и ERWin. CASE-средства разработки информационных систем. Маклаков С.В. - М.: ДИАЛОГ-МИФИ, 2000 - 267 с.
8. Журнал "Маркетинг и маркетинговые исследования", N 03 (69) 2007. Сравнительный анализ информационно-аналитических систем для обработки открытых источников информации. Вороной А., Манько П. С 5-8.
9. Журнал “Управление персоналом” №3 2005 год. Управление имиджем вуза. Е. Дагаева С. 26-28.
10. Приказ Минфина РФ от 9 декабря 1998 г. N 60н "Об утверждении Положения по бухгалтерскому учету "Учетная политика организации" ПБУ 1/98" (с изменениями от 30 декабря 1999 г.)
Источники Интернет
1. www.tradegroup.ru <http://www.tradegroup.ru/> - сайт компании ООО “Альянс-Трейд”.
2. www.suninterbrew.ru - сайт компании ОАО “СанИнБев”.
3. www.wbd.ru/about - сайт компании “Вимм-Билль-Данн”.
4. www.rusalco.com/company/about - сайт компании ЗАО “Русский Алкоголь”.
5. www.prodo.ru - сайт компании группа “Продо”.
. www.hr-portal.ru/pages/Di/796.php <http://www.hr-portal.ru/pages/Di/796.php> - обязанности фин. директора.
. www.aup.ru/docs/di/064.htm <http://www.aup.ru/docs/di/064.htm> - обязанности отдела кадров.
. www.hr-bo.ru/page_pid_205.htm <http://www.hr-bo.ru/page_pid_205.htm> - обязанности кладовщика.
. www.management-portal.ru/?set=content&mc=27 <http://www.management-portal.ru/?set=content&mc=27> - обязанности зав. складом.
. www.nutakvot.ru/dolin/razdel/G/g17.php <http://www.nutakvot.ru/dolin/razdel/G/g17.php> - обязанности грузчика.
. www.1c.ru <http://www.1c.ru> - сайт компании “1С”.
12. www.cde.osu.ru/demoversion/course157/text/1.8.html - жизненный цикл информационной системы.
13. www.tm.ifmo.ru/tm2005/src/118b.pdf - стандарт ISO/IEC 15288.
14. www.ooad.asf.ru/standarts/Library/ReviewPO/List11.aspx - стандарт RUP.
15. www.osp.ru/cio/2003/09/172862/_p2.html - стандар COBIT.
16. www.iiinero.narod.ru/keis/21_-_Metodika_Oracle_CDM.html - стандарт Orecle CDM.
17. www.ru.wikipedia.org/wiki/FreeBSD - операционная система <http://ru.wikipedia.org/wiki/UNIX-%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0> FreeBSD.
. www.parus.ru <http://www.parus.ru> - сайт компании ООО “Парус”.
. www.galaktika.ru <http://www.galaktika.ru> - сайт компании ООО “Галактика”.
20. www.rugost.com, ГОСТ 34 - “Единая автоматизированная система учета кадров всех государственных предприятий”.
21. www.ru.wikipedia.org/wiki/Microsoft_Solutions_Framework - стандарт MSF.
22. http://www.asntl.ru/page.aspx?id_page=7458 - стандарт ISO/IEC 12207.
. <http://www.rao-ees.ru/ru/info/show.cgi?content.htm> - компания РАО “ЕЭС”
ПРИЛОЖЕНИЕ 1
Моделирование бизнес-процессов предприятия ООО “Альянс-Трейд”
Рис. 16. Структура деятельности предприятия “как есть” (AS-IS)
Рис. 17. Декомпозиция структуры организации “как есть” (AS-IS)
Рис. 18. Работа основного комплексного склада “как должно быть” (TO-BE)
Рис. 19. Формирование заявки “как должно быть” (TO-BE)
Рис. 20. Обработка поступающего товара “как должно быть” (TO-BE)
ПРИЛОЖЕНИЕ 2
Формы документов используемые в ООО “Альянс-Трейд”
Рис. 21. Счет-фактура
Рис. 22. Поступление товара
Рис. 23. Товарная накладная
Рис. 24. Книга покупок
Рис. 25. Книга продаж
ПРИЛОЖЕНИЕ 3
Окна разработанного модуля “Формирования заказа на поставку”
// ОПИСАНИЕ ПЕРЕМЕННЫХ
Перем СписокДействий;
Перем СтарыйКлиент;
Перем СтараяДата;
Перем НачальнаяДатаДокумента; // Для контроля даты документа
//************************************************************
// "СЛУЖЕБНЫЕ" ФУНКЦИИ И ПРОЦЕДУРЫ
//************************************************************
// НАЗНАЧЕНИЕ: формирует заголовок окна и заголовок формы
Функция ЗаголовокФормы()
Перем Заголовок, Название;
Заголовок= "Заказ на поставку";
Название= "Заказ №";
Если Выбран() = 1 Тогда
Если Проведен() = 1 Тогда
Заголовок= Заголовок + ".Проведен";
Иначе
Заголовок= Заголовок + ".Не проведен";
КонецЕсли;
Иначе
Заголовок= Заголовок + ".Новый";
КонецЕсли;
Форма.Заголовок(Заголовок);
Возврат Название;
КонецФункции //ЗаголовокФормы
//************************************************************
// НАЗНАЧЕНИЕ: заполняет спецификацию товарами, которых не хватает
Процедура ОбработчикПоКнопкеЗаполнить()
Перем КонтекстДокумента;
КонтекстДокумента=глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Обработка.ЗаполнениеЗаказа",КонтекстДокумента);
КонецПроцедуры// ОбработчикПоКнопкеЗаполнить
//************************************************************
// НАЗНАЧЕНИЕ: обновлят информационные надписи
Процедура ОбновитьНадписи()
Форма.ТекстОплаты.Заголовок(глСтрокаОплаты(Контекст));
Форма.ТекстФирмы.Заголовок(глСтрокаФирмы(Контекст));
Форма.ТекстОснования.Заголовок(СокрП(Основание));
КонецПроцедуры// ОбновитьНадписи
//************************************************************
Процедура ИспользоватьИнформациюОцене()
Перем ВидимостьКолонкиНДС, ВидимостьКолонкиНП;
ВидимостьКолонкиНДС = 1;
Если ВариантРасчетаНалогов.СтавкаНДСизНоменклатуры = 0 Тогда
Если глПроцентНДС(ВариантРасчетаНалогов.СтавкаНДС) = 0 Тогда
ВидимостьКолонкиНДС= 0;
КонецЕсли;
КонецЕсли;
Форма.СтавкаНДС.Видимость(ВидимостьКолонкиНДС);
ВидимостьКолонкиНП = 1;
Если ВариантРасчетаНалогов.СтавкаНПизНоменклатуры = 0 Тогда
Если глПроцентНП(ВариантРасчетаНалогов.СтавкаНП) = 0 Тогда
ВидимостьКолонкиНП= 0;
КонецЕсли;
КонецЕсли;
Форма.СтавкаНП.Видимость(ВидимостьКолонкиНП);
КонецПроцедуры
//************************************************************
// НАЗНАЧЕНИЕ: возвращает строку, содержащую инфориацию об итогах по колонкам
Функция Итого()
Перем Результат, Всего, СуммаНДС, СуммаНП;
Всего = Итог("Всего");
СуммаНДС = Итог("НДС");
СуммаНП = Итог("СуммаНП");
Результат = ?(Всего= 0, "", " Всего=" + глФРМ(Всего,Валюта, 1))+
?(СуммаНДС= 0, "", " НДС=" + глФРМ(СуммаНДС, Валюта, 1))+
?(СуммаНП= 0, "", " НП=" + глФРМ(СуммаНП,Валюта, 1));
Возврат Результат;
КонецФункции// Итого
//************************************************************
Процедура Пересчет(ИмяРеквизита)
Перем ВремКоэфф, ВремЦена, НовыйТовар;
Если ИмяРеквизита = "Товар" Тогда
Если ПустоеЗначение(Товар) = 1 Тогда
// Удалили товар.
Единица = 0;
Коэффициент = 0;
Цена = 0;
Количество = 0;
Сумма = 0;
СтавкаНДС = 0;
СтавкаНП = 0;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Возврат;
КонецЕсли;
// Определем поменяли ли товар?
НовыйТовар = Нет;
Если ПустоеЗначение(Единица) = 1 Тогда
НовыйТовар = Да;
ИначеЕсли Товар <> Единица.Владелец Тогда
НовыйТовар = Да;
КонецЕсли;
Если НовыйТовар = Нет Тогда
Возврат;
КонецЕсли;
// нужно проверить, чтобы выбранный товар не был набором
Если Товар.ВидТовара = Перечисление.ВидыТоваров.Набор Тогда
Предупреждение("Наборы в документ не добавляются.");
// очистим реквизиты
Товар = ПолучитьПустоеЗначение("Справочник.Номенклатура");
Единица = 0;
Коэффициент = 0;
Цена = 0;
Количество = 0;
Сумма = 0;
СтавкаНДС = 0;
СтавкаНП = 0;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Возврат;
КонецЕсли;
// заполняем единицу
Единица = Товар.ЕдиницаПоУмолчанию;
Коэффициент = Единица.Коэффициент;
// Заполним ставки налогов
Если ВариантРасчетаНалогов.СтавкаНДСизНоменклатуры = 1 Тогда
СтавкаНДС = Товар.СтавкаНДС.Получить(ДатаДок);
Иначе
СтавкаНДС = ВариантРасчетаНалогов.СтавкаНДС;
КонецЕсли;
Если ВариантРасчетаНалогов.СтавкаНПизНоменклатуры = 1 Тогда
СтавкаНП = Товар.СтавкаНП.Получить(ДатаДок);
Иначе
СтавкаНП = ВариантРасчетаНалогов.СтавкаНП;
КонецЕсли;
Если ПустоеЗначение(КатегорияЦен) = 1 Тогда
// нет категории, нет и цены
Возврат;
КонецЕсли;
// вычисляем цену
ЦенаТовара = глВернутьЦену(Товар, КатегорияЦен);
Если ПустоеЗначение(ЦенаТовара) = 1 Тогда
// для товара в категории цены нет
Возврат;
КонецЕсли;
// получим параметры цены
ЦенаЦены= ЦенаТовара.Цена.Получить(ДатаДок);
ВалютаЦены= ЦенаТовара.Валюта.Получить(ДатаДок);
ЕдЦены= ЦенаТовара.Единица.Получить(ДатаДок);
ЦенаЦены = ?(ПустоеЗначение(ЕдЦены.Коэффициент)= 0,ЦенаЦены * Коэффициент / ЕдЦены.Коэффициент,0);
ЦенаЦены = глПересчетДляПодбора(ЦенаЦены,ВалютаЦены,Дата_Курса,Валюта,Курс);
Если Валюта = Рубли Тогда
ЦенаЦены = Окр(ЦенаЦены,Константа.КоэффОкрРублЦены,1);
КонецЕсли;
// Получили цену в нужной валюте с НДС, но без НП (так цены задаются в справочнике)
// Приведем к нужному варианту
Цена = глСуммаПриходногоДокумента(ВариантРасчетаНалогов,
ЦенаЦены,
,
Товар.СтавкаНДС.Получить(ДатаДок),
Товар, ДатаДок);
ИначеЕсли ИмяРеквизита = "Количество" Тогда
Если Сумма = 0 Тогда
Сумма = Количество*Цена;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Иначе
Если Константа.ПриИзмененииКоличестваВПриходныхДокументах = 1 Тогда // пересчитывать сумму
Сумма = Цена*Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Иначе // пересчитывать цену
Цена = ?(Количество = 0, 0, Сумма/Количество);
КонецЕсли;
КонецЕсли;
ИначеЕсли ИмяРеквизита = "Единица" Тогда
// сохраним старый коэффициент
ВремКоэфф = Коэффициент;
// заполним коэффициент в документе из единицы
Коэффициент = Единица.Коэффициент;
Если ВремКоэфф <> 0 Тогда
// цена была за другой коэффициент. Пересчетываем
ВремЦена = Цена * Коэффициент / ВремКоэфф;
КонецЕсли;
// если валюта рубли, то нужно округлить цену по коэффициенту
// округления рублевых цен
Если Валюта = Рубли Тогда
ВремЦена = Окр(ВремЦена,Константа.КоэффОкрРублЦены,1);
КонецЕсли;
Цена = ВремЦена;
Сумма = Цена*Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
ИначеЕсли ИмяРеквизита = "Цена" Тогда
Сумма = Цена*Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
ИначеЕсли ИмяРеквизита = "Сумма" Тогда
глРассчитатьНалогиПриходногоДокумента(Контекст);
Цена = ?(Количество = 0, 0, Сумма/Количество);
ИначеЕсли (ИмяРеквизита = "СтавкаНДС") или (ИмяРеквизита = "СтавкаНП") Тогда
глРассчитатьНалогиПриходногоДокумента(Контекст);
ИначеЕсли (ИмяРеквизита = "НДС") или (ИмяРеквизита = "СуммаНП") Тогда
Всего = глПоказательПриходногоДокумента(Контекст, "СуммаСНалогами");
КонецЕсли;
КонецПроцедуры // Пересчет
//************************************************************
// НАЗНАЧЕНИЕ: возвращает строку, содержащую инфориацию об итогах по колонкам
Процедура Взаиморасчеты()
глПоказатьДолг(Контекст, Клиент, "Закупка");
КонецПроцедуры
//************************************************************
// НАЗНАЧЕНИЕ: выполняет дествия при изменении даты
Процедура ВыборДаты()
глПриИзмененииДатыДокумента(Контекст, СтараяДата);
ОбновитьНадписи();
КонецПроцедуры// ВыборДаты
//************************************************************
// НАЗНАЧЕНИЕ: выполняет дествия при изменении фирмы
Процедура ВыборФирмы()
Перем КонтекстДокумента;
КонтекстДокумента = глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Обработка.ИнформацияОфирме", КонтекстДокумента);
ОбновитьНадписи();
КонецПроцедуры// ВыборФирмы
//************************************************************
// НАЗНАЧЕНИЕ: вызывается по кнопке кнОплата.
Процедура ВыборОплаты()
Перем КонтекстДокумента;
Перем СтараяКатегорияЦен;
СтараяКатегорияЦен = КатегорияЦен;
КонтекстДокумента = глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Обработка.ИнформацияОценах", КонтекстДокумента);
Если СтараяКатегорияЦен <> КатегорияЦен Тогда
// изменилась категория цен
// перерисуем
Если ПустоеЗначение(КонтекстПодбора) = 0 Тогда
КонтекстПодбора.Форма.Обновить();
КонецЕсли;
КонецЕсли;
ОбновитьНадписи();
ИспользоватьИнформациюОцене();
КонецПроцедуры// ВыборОплаты
//************************************************************// НАЗНАЧЕНИЕ: вызывается после выбора значения в реквизите Клиент
Процедура ВыборКлиента()
Перем ВремКатегорияЦен;
Если Клиент.Выбран() = 1 Тогда
Если СтарыйКлиент <> Клиент Тогда
Если Константа.ПодставлятьОсновнойДоговор = Да Тогда
// подставим договор по умолчанию
Договор = Клиент.ОсновнойДоговорТорг;
Иначе
// очистим договор
Договор = ПолучитьПустоеЗначение("Справочник.Договора");
КонецЕсли;
ВремКатегорияЦен = Клиент.КатегорияЦенПоставщика;
Если ПустоеЗначение(ВремКатегорияЦен) = 1 Тогда
ВремКатегорияЦен = глПользователь.КатегорияЦен;
КонецЕсли;
Если ПустоеЗначение(ВремКатегорияЦен) = 0 Тогда
КатегорияЦен = ВремКатегорияЦен;
КонецЕсли;
КонецЕсли;
Иначе
Договор = ПолучитьПустоеЗначение("Справочник.Договора");
КонецЕсли;
СтарыйКлиент = Клиент;
ОбновитьНадписи();
КонецПроцедуры// ВыборКлиента
//************************************************************
// НАЗНАЧЕНИЕ: вызывается по кнопке кнОснование.
Процедура ВыборОснования()
КонтекстДокумента = глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Обработка.ОснованиеДокумента", КонтекстДокумента);
ОбновитьНадписи();
ИспользоватьИнформациюОцене();
КонецПроцедуры// ВыборОснования
//************************************************************
// НАЗНАЧЕНИЕ: формирует таблицу для печати документа
Процедура Печать()
Перем ПорядокСекций;
Фирма.ИспользоватьДату(ДатаДок);
Таб= СоздатьОбъект("Таблица");
Если (ВариантРасчетаНалогов.СтавкаНПизНоменклатуры = 0) И
(глПроцентНП(ВариантРасчетаНалогов.СтавкаНП) = 0)
Тогда
ПечататьНП = Нет;
Иначе
ПечататьНП = Да;
КонецЕсли;
Если ПечататьНП =Да Тогда
ВертикальнаяСекция="С_НП";
Иначе
ВертикальнаяСекция="Без_НП";
КонецЕсли;
Таб.ВывестиСекцию("Шапка|"+ВертикальнаяСекция);
Ном= 1;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Строка|"+ВертикальнаяСекция);
Ном= Ном + 1;
КонецЦикла;
Таб.ВывестиСекцию("Сумма_Итого|"+ВертикальнаяСекция);
Таб.ВывестиСекцию("В_том_числе|"+ВертикальнаяСекция);
Таб.ВывестиСекцию("Сумма_НДС|"+ВертикальнаяСекция);
Таб.ВывестиСекцию("Подвал|"+ВертикальнаяСекция);
Таб.Опции(0, 0, 0, 0, ПарСтрДок);
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.ТолькоПросмотр(1);
Таб.Показать("Печать заказа","");
КонецПроцедуры// Печать
//************************************************************
// Предопределенные процедуры
//************************************************************
Процедура ВводНового(Скопирован)// Предопределенная процедура
Перем ВремКатегорияЦен;
глЗаполнитьШапку(Контекст, Скопирован);
Если Скопирован = 1 Тогда// копирование документа
Возврат;
КонецЕсли;
ДатаДок= РабочаяДата();
Склад= Константа.ОсновнойСклад;
Если ПустоеЗначение(глАктивныйДоговор) = 0 Тогда
Клиент= глАктивныйДоговор.Владелец;
Договор = глАктивныйДоговор;
СтарыйКлиент= Клиент;
КонецЕсли;
Если ПустоеЗначение(Клиент) = 1 Тогда
Клиент= Константа.ОсновнойПоставщик;
КонецЕсли;
Если ПустоеЗначение(Клиент) = 0 Тогда
КатегорияЦен = Клиент.КатегорияЦенПоставщика;
КонецЕсли;
Если ПустоеЗначение(КатегорияЦен) = 1 Тогда
КатегорияЦен= Автор.КатегорияЦен;
КонецЕсли;
Валюта= Константа.ОсновнаяВалютаЗакупки;
Если ПустоеЗначение(Валюта) = 1 Тогда
Валюта= Рубли;
КонецЕсли;
Дата_Курса= ДатаДок;
Курс= глКурсДляВалюты(Валюта, Дата_Курса);
ВыборКлиента();
Если ПустоеЗначение(ВариантРасчетаНалогов) = 1 Тогда
ВариантРасчетаНалогов= Константа.ОсновнойВариантРасчетаНалогов;
КонецЕсли;
ГлУстановкаНомера(Контекст);
КонецПроцедуры// ВводНового
//************************************************************
Процедура ВводНаОсновании(ДокОснование) //Предопределенная процедура
Предупреждение("Документ """ + ПредставлениеВида() + """ не вводят на основании других документов!");
СтатусВозврата(0);
КонецПроцедуры// ВводНаОсновании
//************************************************************
Процедура ПриОткрытии() // Предопределенная процедура
Парам = Форма.Параметр;
Если Лев(Парам, 13) = "ПЕЧАТЬСПРОСМ_" Тогда
Печать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
НачальнаяДатаДокумента = ДатаДок;
Форма.Товар.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.Количество.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.Цена.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.Сумма.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.НДС.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.СтавкаНДС.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.СуммаНП.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.СтавкаНП.ВыполнятьФормулуТолькоПриИзменении(1);
глПроверкаРазрешенияРедактирования(Контекст);
// Если открыли только на просмотр, то надо кнопки сделать недоступными
Если Форма.ТолькоПросмотр() = 1 Тогда
Форма.КнФирма.Доступность(0);
Форма.КнОснование.Доступность(0);
Форма.КнОплата.Доступность(0);
Форма.кнПодборПоКаталогу.Доступность(0);
Форма.кнПодборПоПрайсу.Доступность(0);
Форма.кнИзменить.Доступность(0);
Форма.кнЗаполнить.Доступность(0);
Форма.КнЗаписать.Доступность(0);
Форма.КнПровести.Доступность(0);
Форма.ОК.Доступность(0);
Форма.КнопкаПоУмолчанию("Закрыть");
Иначе
Форма.КнопкаПоУмолчанию("ОК");
КонецЕсли;
ОбновитьНадписи();
ИспользоватьИнформациюОцене();
СтараяДата= ДатаДок;
СтарыйКлиент= Клиент;
КонецПроцедуры
//************************************************************
Процедура ОбработкаПодбора(Выб, гКонтекстФормыПодбора)
ЗаголовокФормыПодбора = гКонтекстФормыПодбора.Форма.Заголовок();
Если Найти(ЗаголовокФормыПодбора, " (владелец - ") = 0 Тогда
глПриОбработкеПодбора(Выб, Контекст);
Иначе
СписокПараметровЦены=ПолучитьЗначениеИзПодбора("ОписаниеЦены()");
_цена=СписокПараметровЦены.Получить("Цена");
_валюта=СписокПараметровЦены.Получить("Валюта");
_единица=СписокПараметровЦены.Получить("Единица");
// пересчитаем цену в валюту документа
_цена = глПересчет(_цена, _валюта, Дата_Курса, Валюта, Курс);
Колво=1;
Если Константа.ЗапрашиватьКоличество = Да Тогда
Если ВвестиЧисло(Колво, "Количество товара """ + Выб + """", 10, 3) = 0 Тогда Возврат КонецЕсли;
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если Товар = Выб Тогда
Количество=Количество + Колво;
Цена = глСуммаПриходногоДокумента(ВариантРасчетаНалогов, Цена, 1, Товар.СтавкаНДС.Получить(ДатаДок), Товар, ДатаДок);
Сумма = Цена * Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Возврат;
КонецЕсли;
КонецЦикла;
НоваяСтрока();
Товар=Выб;
Количество=Колво;
Единица=_единица;
Цена=_цена;
Коэффициент=_единица.Коэффициент;
Если ВариантРасчетаНалогов.СтавкаНДСизНоменклатуры = 1 Тогда
СтавкаНДС = Товар.СтавкаНДС.Получить(ДатаДок);
Иначе
СтавкаНДС = ВариантРасчетаНалогов.СтавкаНДС;
КонецЕсли;
Если ВариантРасчетаНалогов.СтавкаНПизНоменклатуры = 1 Тогда
СтавкаНП = Товар.СтавкаНП.Получить(ДатаДок);
Иначе
СтавкаНП = ВариантРасчетаНалогов.СтавкаНП;
КонецЕсли;
Цена = глСуммаПриходногоДокумента(ВариантРасчетаНалогов, Цена, 1, Товар.СтавкаНДС.Получить(ДатаДок), Товар, ДатаДок);
Сумма = Цена * Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
КонецЕсли;
КонецПроцедуры //Обработка подбора
//************************************************************
Процедура ПодборПоПрайсЛисту(ФлВыбиратьПрайсЛист=0)
ПрайсЛист=ВосстановитьЗначение("ПрайсЛист");
Если (ФлВыбиратьПрайсЛист = 1) Или (ПустоеЗначение(ПрайсЛист) = 1) Тогда
СписокКаталоговДляВыбора=СоздатьОбъект("СписокЗначений");
СписокКаталоговДляВыбора.ДобавитьЗначение("По справочнику 'Прайс-лист'");
СпрКаталогов=СоздатьОбъект("Справочник.Каталоги");
СпрКаталогов.ВыбратьЭлементы();
Пока СпрКаталогов.ПолучитьЭлемент() = 1 Цикл
Если СпрКаталогов.ЭтоГруппа() = 1 Тогда Продолжить КонецЕсли;
СписокКаталоговДляВыбора.ДобавитьЗначение(СпрКаталогов.ТекущийЭлемент());
КонецЦикла;
Зн = ""; Поз = "";
Если СписокКаталоговДляВыбора.ВыбратьЗначение(Зн, "", Поз,,1) = 0 Тогда
Возврат КонецЕсли;
ПрайсЛист=СписокКаталоговДляВыбора.ПолучитьЗначение(Поз);
СохранитьЗначение("ПрайсЛист", ПрайсЛист);
КонецЕсли;
Если ПрайсЛист = "По справочнику 'Прайс-лист'" Тогда
глПодбор(Контекст, "прайс_лист", "ДляПодбора");
Иначе
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение(ПрайсЛист, "Каталог");
ОткрытьПодбор("Обработка.РаботаСКаталогомXML",,СписокПараметров, 1);
КонецЕсли;
КонецПроцедуры
//*************************************************************Процедура ПриЗаписи() //Предопределенная процедура
Если глМожноЗаписатьДокумент(Контекст)=0 Тогда
СтатусВозврата(0);
ИначеЕсли глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры// ПриЗаписи
//************************************************************
Процедура ПриЗакрытии() //Предопределенная процедура
КонецПроцедуры// ПриЗакрытии
//************************************************************
//Инициализирум список действий по кнопке "Действия"
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Структура подчиненности");
СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
//СписокДействий.ДобавитьЗначение("Отчет о бухгалтерских проводках");
СписокДействий.ДобавитьЗначение("Обновление цен в справочнике");
СписокДействий.ДобавитьЗначение("Ввести на основании");
СписокДействий.ДобавитьЗначение("Открыть в журнале");
СписокДействий.ДобавитьЗначение("Выгрузить (отправить по эл.почте)").