Диплом: Автоматизация рабочего места менеджера отдела продаж для ООО "Краски"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
82
ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
ТабДок.Вывести(ОбластьТовары);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр =
Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать();
Листинг 3.6
Поля ввода: ДатаПоступления, ДатаОплаты, СтруктурнаяЕдиница, До¬кументОснование,
ПодразделениеКомпании.
Кнопки: Заполнить, Изменить.
Информационные надписи: ИнфНадписьДолга, ИнфНадписьОтклонениеОт-
ПлановойСебестоимости.
Командные панели: КоманднаяПанельУслуг, КоманднаяПанельВозврат-
наяТара.
Табличные поля: Услуги, ВозвратнаяТара.
Основные элементы формы: Анализ, Файлы, ЭД, Печать по умолчанию.
Процедуры модуля объекта: ОчиститьНенужныеТабличныеЧасти, Запол-
нитьТабличнуюЧастьПоОстаткам, ПодготовитьТаблицуТары, ЗаполнитьТаб-
личнуюЧастьПоОстаткамВнутреннийЗаказ, ЗаполнитьТоварыПоЗаказуПокупате- лю,
ЗаполнитьВозвратнуюТаруПоЗаказуПокупателю, ПодготовитьТабли-
цуУслуг, ПроверитьЗаполнениеТабличнойЧастиВозвратнаяТара, Проверить-
ЗаполнениеТабличнойЧастиУслуги, ОбработкаЗаполнения, СкопироватьТаб-
личнуюЧасть, ЗаполнитьТабличнуюЧастьНеобеспеченнойЧастьюЗаказа,
Функции модуля объекта: ПодготовитьТаблицуТары, ПодготовитьТаб-
лицуУслуг, ПечатьСчетаЗаказа, ПечатьСчетаЗаказаКорректировки, Полу-
читьСтруктуруПечатныхФорм.
Макет: СчетЗаказ.
Колонки табличной части «Товары»: ПлановаяСебестоимость, Сумма-
ПлановойСебестоимости, СуммаОтклоненияОтСуммыПлановойСебестоимости,
ПроцентОтклоненияОтСуммыПлановойСебестоимости.
Реквизиты объекта: ДатаОплаты, ДатаПоступления, Подразделение,
83
ДокументОснование, УдалитьВремяНапоминания, УдалитьНапомнитьОСобытии.
Процедуры формы документа: ЗаполнитьТабличнуюЧастьПоЗаказуПоку-
пателю, ЗаполнитьТабличнуюЧастьПоЗаказуВнктреннемуЗаказу, Заполнить-
ТабличнуюЧастьПоЗаказуВнктреннемуЗаказуКомплектующие, ЗаполнитьКом-
плектующиеПоЗаказуПокупателю, аполнитьКомплектующиеПоВнутреннемуЗака- зу,
ЗаполнитьКТабличнуюЧастьПоЗаказуПокупателяКомплектующие, Запол-
нитьТабличнуюЧастьПотребностями, ДействиеФормыДействиеАнализ, Дей-
ствияФормыФайлы, КоманднаяПанельТоварыЗаполнитьПоЗаказуПокупателя, Ко-
манднаяПанельТоварыЗаполнитьПоЗаказуПокупателяКомплектующие, Команд-
наяПанельТоварыДобавитьПоЗаказуПокупателя, КоманднаяПанельТоварыДоба-
витьПоЗаказуПокупателяКомплектующие, КоманднаяПанельТоварыЗапол-
нитьПоВнутреннемуЗаказу, КоманднаяПанельТоварыЗаполнитьПоВнутреннему-
ЗаказуКомплектующие, КоманднаяПанельТоварыДобавитьПоВнутреннемуЗаказу,
КоманднаяПанельТоварыДобавитьПоВнутреннемуЗаказуКомплектующие, Команд-
наяПанельТоварыЗаполнитьПотребностями, КоманднаяПанельТоварыДоба-
витьПотребности, КоманднаяПанельВозвратнаяТараЗаполнитьПоВнутреннему- Заказу,
КоманднаяПанельВозвратнаяТараДобавитьПоВнутреннемуЗаказу, Ко-
манднаяПанельВозвратнаяТараЗаполнитьПоЗаказуПокупателя, КоманднаяПане-
льВозвратнаяТараДобавитьПоЗаказуПокупателя, КоманднаяПанельВозврат-
наяТараЗаполнитьПотребностями, КоманднаяПанельВозвратнаяТараДоба-
витьПотребности, УслугиКоличествоПриИзменении, УслугиЦенаПриИзменении,
УслугиСуммаПриИзменении, УслугиСтавкаНДСПриИзменении, УслугиНоменкла-
тураПриИзменении, УслугиПроверкаПеретаскивания, УслугиПеретаскивание,
ВозвратнаяТараПриВыводеСтроки, ВозвратнаяТараНоменклатураПриИзменении,
ВозвратнаяТараКоличествоПриИзменении, ВозвратнаяТараЦенаПриИзменении,
ВозвратнаяТараСуммаПриИзменении, ТоварыЗаказНачалоВыбора, Возврат-
наяТараЗаказПокупателяНачалоВыбора, ВозвратнаяТараПроверкаПеретаски- вания,
ВозвратнаяТараПеретаскивание, УслугиПриВыводеСтроки, Команд-
наяПанельВозвратнаяТараДействиеПодбор, КоманднаяПанельУслугиДействие- Подбор,
КнопкаПерерассчитатьДолгНажатие, ДействияФормыПодписатьИОтпра- вить,
84
ДействияФормыСформироватьНовый, ДействияФормыОткрытьАктуаль- ныйЭД,
ДействияФормыПерезаполнитьДаннымиИзЭД, ДействияФормыСписокСпи-
сокЭлектронныхДокументов, ТекстСостоянияЭДНажатие, ОсновныеДей-
ствияФормыДействиеПечать, УстановитьКнопкиПодменюЗаполненияТЧ, Нажати-
еНаДополнительнуюКнопкуЗаполненияТЧ, ДействиеФормыНоваяЗадача, Дей-
ствиеФормыСписокЗадач.
Листинг 3.7
Процедуры модуля объекта: ПередЗаписью, ОбработкаПроведения,
ДвиженияПоРегистрам, ПроверитьЗаполнениеШапки, СформироватьСписокЗа-
просовДляПодбора.
Функции модуля формы объекта: СШКНоменклатура.
Процедуры модуля формы объекта: ОбновлениеОтображения, Обрабо-
ткаВыбора, ОбработкаПодбора, ПриИзмененииВидаСклада, ОбработкаВыбора-
ЗаполненияТабличнойЧастиИзТабличногоДокумента, ПриОткрытии, Устано-
витьВидимость, ОбновитьПодвал, ОрганизацияПриИзменении, ТоварыПосле- Удаления,
ПриИзмененииДоговора, КоманднаяПанельТоварыДействиеЦеныВа- люта,
ТоварыПриОкончанииРедактирования, ОсновныеДействияФормыПечать.
Форма ФормаСписка.
Листинг 4.1.
Процедура ПриОткрытии()
Если РольДоступна("МенеджерПоПродажам") Тогда
ЭлементыФормы.Организация.Доступность = Ложь;
ЭлементыФормы.ВидЗаказа.Доступность = Ложь; ЭлементыФормы.Склад.Доступность =
Ложь; ЭлементыФормы.Ответственный.Доступность = Ложь;
ЭлементыФормы.ДокументЗаполнен.Доступность = Ложь;
КонецЕсли;
Заказчик = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(
глЗначениеПеременной("глТекущийПользователь"), "ТорговаяТочка");
Листинг 4.2.
Процедура УстановитьВидимость()
85
Если РольДоступна("МенеджерПоПродажам") Тогда
ЭлементыФормы.ДатаОтгрузки.Видимость = Ложь;
ЭлементыФормы.НадписьДатаОтгрузки.Видимость = Ложь;
ЭлементыФормы.Масса.Видимость = Ложь; ЭлементыФормы.НадписьМасса.Видимость
= Ложь;
ЭлементыФормы.ОсновнаяПанель.Страницы.Тара.Видимость = Ложь; ЭлементыФор-
мы.ОсновнаяПанель.Страницы.Дополнительно.Видимость = Ложь;
ЭлементыФор-
мы.Товары.Колонки.ХарактеристикаНоменклатуры.Видимость = Ложь;
ЭлементыФормы.Товары.Колонки.Цена.Видимость = Ложь;
ЭлементыФормы.Товары.Колонки.Коэффициент.Видимость = Ложь;
ЭлементыФормы.Товары.Колонки.Размещение.Видимость = Ложь; КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если РольДоступна("МенеджерПоПродажам") Тогда
Если ЭтотОбъект.Проведен И НЕ ЭтотОбъект.ПометкаУдаления И ДокументЗаполнен
Тогда
мента"); Отказ = Истина;
Предупреждение("Нет прав на повторное изменение доку- КонецЕсли;
КонецЕсли;
Если РольДоступна("МенеджерПоПродажам") Тогда ДокументЗаполнен = Истина;
КонецЕсли;
КонецПроцедуры
Листинг 4.4.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если РольДоступна("МенеджерПоПродажам") Тогда Если
ПланыОбмена.ГлавныйУзел() = Неопределено Тогда Отказ = Истина;
86
Предупреждение("Вы не можете работать с документом в
этом узле");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Листинг 5.1
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Если РольДоступна("МенеджерПоПродажам") Тогда СписокИсключений = Новый
СписокЗначений; СписокИсключений.Добавить("Количество");
ОбщегоНазначения.ДоступностьЯчеекТЧ(СписокИсключений, ОформлениеСтроки);
КонецЕсли;
КонецПроцедуры
Листинг 5.2
Процедура ПриОткрытии()
Если РольДоступна("МенеджерПоПродажам") Тогда
СписокИсключенияЭлементов = Новый СписокЗначений;
СписокИсключенияЭлемен-
тов.Добавить(ЭлементыФормы.Комментарий);
СписокИсключенияЭлементов.Добавить(ЭлементыФормы.Товары);
СписокИсключенияЭлемен-
тов.Добавить(ЭлементыФормы.ОсновныеДействияФормы);
СписокИсключенияЭлемен-
тов.Добавить(ЭлементыФормы.КоманднаяПанельТовары);
СписокИсключенияТипов = Новый СписокЗначений;
СписокИсключенияТипов.Добавить(Тип("РамкаГруппы"));
СписокИсключенияТипов.Добавить(Тип("Панель"));
СписокИсключенияТипов.Добавить(Тип("Надпись"));
ОбщегоНазначе-
ния.ДоступностьЭлементовФормы(СписокИсключенияЭлементов, СписокИсклю-
87
ченияТипов, ЭлементыФормы);
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если РольДоступна("МенеджерПоПродажам") Тогда
Если ЭтотОбъект.Проведен И НЕ ЭтотОбъект.ПометкаУдаления
Тогда
Отказ = Истина;
Предупреждение("Нет прав на повторное изменение доку-мента");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Листинг 5.4
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если РольДоступна("МенеджерПоПродажам") Тогда
Если ПланыОбмена.ГлавныйУзел() = Неопределено Тогда Отказ = Истина;
Предупреждение("Вы не можете работать с документом в
этом узле");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Листинг 6.1
Процедура ЗаполнитьТоварыПоЗаказуНТТ() Экспорт
КурсДокумент = ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект,
мВалютаРегламентированногоУчета);
КратностьДокумента = ЗаполнениеДокумен-
тов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета);
КурсСделки = ЗаполнениеДокументов.КурсДокумента(Сделка, мВа-
лютаРегламентированногоУчета);
КратностьСделки = ЗаполнениеДокументов.КратностьДокумента(Сделка,
88
мВалютаРегламентированногоУчета);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СтатусПартии", Перечисле-
ния.СтатусыПартийТоваров.Купленный);
Запрос.УстановитьПараметр("Договор", ДоговорКонтрагента);
Запрос.УстановитьПараметр("Товар",Перечисления.ТоварТара.Товар);
Запрос.УстановитьПараметр("Сделка", Сделка);
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
Запрос.УстановитьПараметр("ПустойТипЦен", Справочни-
ки.ТипыЦенНоменклатурыКонтрагентов.ПустаяСсылка());
Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков
КАК ЕдиницаХранения,
| ВложенныйЗа-
прос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициен-
тЕдиницыХранения,
| ВложенныйЗапрос.ХарактеристикаНоменклатуры
КАК ХарактеристикаНоменклатуры,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Номенклатура.СтавкаНДС КАК СтавкаНДС,
| СУММА(ВложенныйЗапрос.КоличествоОстатокПоЗаказу)
КАК КоличествоОстатокПоЗаказу,
| СУММА(ВложенныйЗапрос.КоличествоПоРазмещению)
КАК КоличествоПоРазмещению,
| ВложенныйЗапрос.Размещение КАК Размещение,
| ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.Коэффициент КАК Коэффициент,
| ВЫБОР КОГДА ТЧЗаказа.Номенклатура ЕСТЬ NULL ТОГДА 99999999
89
| ИНАЧЕ МИНИМУМ(ТЧЗаказа.НомерСтрокиЗаказа) КОНЕЦ
КАК НомерСтрокиЗаказа
|ИЗ
|(
|ВЫБРАТЬ
| Остатки.Номенклатура КАК Номенклатура,
| Остатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНомен-
клатуры,
| Остатки.Цена КАК Цена,
| Остатки.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Остатки.ЕдиницаИзмерения.Коэффициент КАК Коэффициент,
| Остатки.КоличествоОстаток КАК КоличествоОстатокПоЗаказу,
| 0 КАК КоличествоПоРазмещению,
| Неопределено КАК Размещение
|ИЗ
| РегистрНакопления.ЗаказыПоставщикамИзНТТ.Остатки(, Договор¬
Контрагента = &Договор
| И ЗаказПоставщикуИзНТТ = &Сделка
| И СтатусПартии = &СтатусПартии) КАК Остатки
|ГДЕ
|НЕ Остатки.Номенклатура.Услуга И Остатки.КоличествоОстаток > 0 |) КАК
ВложенныйЗапрос
|ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Номенклатура, ХарактеристикаНоменкла- туры,
минимум(НомерСтроки) КАК НомерСтрокиЗаказа
| ИЗ Документ.ЗаказПоставщикуИзНТТ.Товары
| ГДЕ Ссылка = &Сделка
| Сгруппировать по Номенклатура, Характеристи-
каНоменклатуры) КАК ТЧЗаказа
|ПО ВложенныйЗапрос.Номенклатура = ТЧЗаказа.Номенклатура И Вло-
женныйЗапрос.ХарактеристикаНоменклатуры = ТЧЗака- за.ХарактеристикаНоменклатуры
90
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ХарактеристикаНоменклатуры,
| ВложенныйЗапрос.Размещение,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Коэффициент,
| ТЧЗаказа.Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
ТаблицаПоЗаказу = РезультатЗапроса.Выгрузить();
ТаблицаПоЗака-
зу.Индексы.Добавить("Номенклатура,ХарактеристикаНоменклатуры");
ТаблицаПоЗаказу.Индексы.Добавить("НомерСтрокиЗаказа");
ТаблицаПоЗаказу.Сортировать("НомерСтрокиЗаказа возр");
Сч = 0;
Пока Сч < ТаблицаПоЗаказу.Количество() Цикл
СтрокаТаблицы = ТаблицаПоЗаказу.Получить(Сч);
Если СтрокаТаблицы.КоличествоОстатокПоЗаказу <= 0 Тогда
ТаблицаПоЗаказу.Удалить(СтрокаТаблицы);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
ТаблицаБезЦен = ТаблицаПоЗаказу.Скопировать();
ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклату- ры",
"КоличествоОстатокПоЗаказу");
ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
ЕстьРеквизитПроцентСкидкиНаценки = Ложь;
ПересчитыватьСкидку = УправлениеПользователя-
ми.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ПриИзмененииСуммыПе-
ресчитыватьСкидку");
91
ЕстьРеквизитПроцентАвтоматическихСкидок = Ложь;
Для каждого СтрокаБезЦен ИЗ ТаблицаБезЦен Цикл
ВсегоПоЗаказу = СтрокаБезЦен.КоличествоОстатокПоЗаказу; ВсегоСписано = 0;
Продолжить;
КонецЕсли;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Номенклатура", СтрокаБез- Цен.Номенклатура);
СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", Стро-
каБезЦен.ХарактеристикаНоменклатуры);
СтрокиПоЗаказу = ТаблицаПоЗака- зу.НайтиСтроки(СтруктураПоиска);
Для Каждого СтрокаЗаказа Из СтрокиПоЗаказу Цикл
КолвоПоЗаказу = СтрокаЗака- за.КоличествоОстатокПоЗаказу;
СписатьПоРазмещению = 0;
СписатьПоЗаказу = 0;
СписаноПоСтроке = 0;
Если КолвоПоЗаказу <= 0 Тогда
Продолжить;
КонецЕсли;
СписатьПоЗаказу = Мин(КолвоПоЗаказу - СписаноПоСтроке, ВсегоПоЗаказу -
ВсегоСписано);
СписаноПоСтроке = СписаноПоСтроке + СписатьПоЗаказу;
ВсегоСписано = ВсегоСписано + СписатьПоЗаказу;
Если СписатьПоЗаказу > 0 Тогда
СтрокаТабличнойЧасти = Товары.Добавить();
СтрокаТабличнойЧасти.Номенклатура =
СтрокаЗаказа.Номенклатура;
СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры =
СтрокаЗаказа.ХарактеристикаНоменклатуры;
СтрокаТабличнойЧасти.ЕдиницаИзмерения =
СтрокаЗаказа.ЕдиницаИзмерения;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)