на первый
заказ
Дипломная работа на тему: Проектирование и разработка автоматизированной системы учета оптовых и розничных продаж
Купить за 2400 руб.Введение
Характеристики объекта исследования (процесс поиска обуви)Объектом исследования является процесс поиска обуви ECCO и получение необходимой информации по заданным параметрам поиска. Этот процесс является первоочередной задачей продавца магазина и поэтому быстрое получение необходимой информации по обуви является неотъемлемым фактором процесса продаж.
Процесс поиска может осуществляться по различным параметрам:
1) По артикулу.
Это номер модели. У каждой модели он свой.
Каждая модель ЕССО имеет свой персональный артикул. Все артикулы обуви – пятизначные или шестизначные. После первых пяти цифр через слеш-черту цифрами обозначается цвет модели и материал верха, количество цифр, обозначающих цвет – три или пять.
Например, модель Delhi черного цвета (товарная группа Casual) имеет артикул 87593 / 101, где 87593 – наименование модели, а 101 обозначает, что модель выполнена из гладкой кожи черного цвета.
Общие закономерности присвоения артикула моделям (первые пять цифр):
- Артикулы женских моделей заканчиваются на цифру 3 (например, Jump – 16423; Sevilla - 91403).
- Артикулы мужских моделей заканчиваются на цифру 4 (например, Globetrotter – 37464; Bologna - 40114).
- Артикулы детских моделей начинаются с цифры 7 (например, Jack Sandal – 75292; Hide & Seek - 76351).
- Артикулы детских моделей размер 19-26 заканчиваются на цифру 1; размер 27-35 заканчиваются на цифру 2; размер 36-40 – цифра 3. Однако, в коллекции SS07 появился целый ряд детских моделей, в которых данное правило не соблюдается.
Цифры после слеш-черты обозначают цвет модели и материал верха обуви. Трехзначный артикул более характерен для «простых» моделей (из одного типа материалов и одного цвета). Пятизначные артикулы чаще присваиваются «сложным» моделям с комбинированием материалов, дополнительными отсрочками и т.д.
Общие правила присвоения артикула по цвету (трехзначные артикулы):
- С цифры 1 начинаются артикулы моделей, выполненных их гладкой кожи.
- С цифры 2 – модели из нубука.
- С цифры 5 – модели из...
Оглавление
- Волжский, 2017- Введение 3
- Аналитический обзор
- Проектирование информационной системы
- Разработка информационной системы
- Заключение 101
- Перечень используемой литературы
Заключение
//SettingsStorage.ХранилищеВариантовОтчетов.Form.ФормаЗагрузки.Help.xml//Subsystem.Маркетинг.Subsystem.М.Help.xml
//Subsystem.Продажи.Subsystem.МаркетинговыеМероприятия.xml
ТекДокум=ДанныеСтроки.Ссылка;
Если ТекДокум=Неопределено Тогда
Возврат;
КонецЕсли;
ОформлениеСтроки.Ячейки.ЕДРПОУ.Значение = ТекДокум.Контрагент.ЕДРПОУ;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ПоступлениеТоваров.Ссылка КАК Ссылка,
| ПоступлениеТоваров.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
|ГДЕ
| ПоступлениеТоваров.Проведен И
| ПоступлениеТоваров.ДокументОснование = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| КассовыйОрдер.Ссылка КАК Ссылка,
| КассовыйОрдер.Сумма КАК Сумма
|ИЗ
| Документ.КассовыйОрдер КАК КассовыйОрдер
|ГДЕ
| КассовыйОрдер.Проведен И
| КассовыйОрдер.ДокументСделка = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| ПоступлениеДопРасходов.Ссылка КАК Ссылка,
| ПоступлениеДопРасходов.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеДопРасходов КАК ПоступлениеДопРасходов
|ГДЕ
| ПоступлениеДопРасходов.Проведен И
| ПоступлениеДопРасходов.ДокументОснование.Ссылка = &ВыбОснование";
Запрос.УстановитьПараметр("ВыбОснование",ТекДокум);
ТаблДоков=Запрос.Выполнить().Выгрузить();
СуммаПодчиненных = ТаблДоков.Итог("Сумма");
Если СуммаПодчиненных = ТекДокум.СуммаДокумента Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.БледноЗеленый;
ИначеЕсли СуммаПодчиненных > 0 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоРозовый;
КонецЕсли;
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.СуммаДокумента.Значение=Формат(ДанныеСтроки.Ссылка.Товары.Итог("СуммаВсего")
+ДанныеСтроки.Ссылка.Услуги.Итог("СуммаВсего"),"ЧЦ=15; ЧДЦ=2");
КонецПроцедуры
// ПРОДАЖИ
НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Докум.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Запись Из НаборЗаписей Цикл
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
КонецЦикла;
Для Каждого ТекСтрокаТовары Из Докум.Товары Цикл
Если ТекСтрокаТовары.КоличествоФакт>0 Тогда
Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Установить(Докум.Ссылка);
Продажи = Движения.Добавить();
Продажи.Период = Докум.Дата;
Продажи.ПодразделениеКомпании=Докум.ПодразделениеКомпании;
Бла-бла-бла
Движения.Записать(Ложь);
КонецЕсли;
КонецЦикла;
//Оплаты
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ВзаиморасчетыКомпанииОстатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ВзаиморасчетыКомпании.Остатки(, ) КАК ВзаиморасчетыКомпанииОстатки
|ГДЕ
| ВзаиморасчетыКомпанииОстатки.Сделка = &ВыбСделка";
Запрос.УстановитьПараметр("ВыбСделка",Докум.ДокументОснование);
ТаблОплат=Запрос.Выполнить().Выгрузить();
//ТаблОплат.Свернуть("","Сумма");
Если ТаблОплат.Количество()>0 Тогда
ПоступилаОплата=?((-1)*ТаблОплат[0].Сумма>0,(-1)*ТаблОплат[0].Сумма,0);
Иначе
ПоступилаОплата=0;
КонецЕсли;
Предоплата=0;
Если Докум.СуммаДокумента>ПоступилаОплата Тогда
Предупреждение("Поступившая оплата "+Формат(ПоступилаОплата,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Нужна предоплата в сумме "+Формат(Докум.СуммаДокумента,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Отгрузка на сумму больше предоплаты - нарушение договора!");
КонецЕсли;
// функция сохраняет рабочую конфигурацию в файл, в случае успеха возвращает Истина
// параметры:
// Логин - имя пользователя с правами на админисирирование БД
// Пароль - строка пароля
// ИмяФайла - полное имя файла для сохранения конфигурации, не обязательно.
// по умолчанию использует каталог временных файлов и имя 1Cv8.сf
функция СохранитьТекущуюКонфигурацию (Логин, Пароль, ИмяФайла="") экспорт
результат = Ложь;
Если ИмяФайла = "" Тогда
ИмяФайла = КаталогВременныхФайлов() + "1Cv8.сf";
КонецЕсли;
СтрокаБазы = СтрокаСоединенияИнформационнойБазы();
Если Лев(СтрокаБазы, 5) = "File=" Тогда
// файловый вариант
СтрокаБазы = Сред(СтрокаБазы, 6, СтрДлина(СтрокаБазы) - 6);
Иначе
// серверный вариант пока не готов...
// может кто допишет?
возврат Ложь;
КонецЕсли;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Сигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Иначе
Сигнатура = "";
КонецЕсли;
СтрокаЗапуска = """" + КаталогПрограммы() + "1cv8.exe"" CONFIG /F " + СтрокаБазы
+ ?(Логин = "", "", " /N " + Логин)
+ ?(Пароль = "", "", " /Р " + Пароль) + " /DumpDBCfg """ + ИмяФайла + """";
// КомандаСистемы (СтрокаЗапуска); не работает!!!!! из-за кавычек в параметрах
// приходиться идти кругом...
// зато можно избежать черного окошка
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(СтрокаЗапуска, 0, Истина);
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
НоваяСигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Если Сигнатура <> НоваяСигнатура Тогда
Результат = Истина;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ЗаписатьКонфигурациюВФайл(ИмяФайла="")
Результат = Ложь;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Если ВыбФайл.ЭтоКаталог() Тогда
ИмяФайла="";
КонецЕсли;
КонецЕсли;
Попытка
Массив = ПользователиИнформационнойБазы.ПолучитьПользователей();
Логин = "";
Пароль = "";
Если Массив.Количество() > 0 тогда
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Логин = Пользователь.Имя;
Если Пользователь.ПарольУстановлен Тогда
// тут нужно получить пароль, лучше интерактивно
// но лично мне это совсем не нужно
Предупреждение("У Вас установлен пароль, этот режим сейчас не доступен");
Возврат Ложь;
КонецЕсли
КонецЕсли;
Результат = СохранитьТекущуюКонфигурацию(Логин, Пароль, ИмяФайла);
Если не Результат Тогда
Предупреждение("Конфигурация не сохранена");
Иначе
Сообщить("Конфигурация успешно сохранена в файл: " + ИмяФайла);
КонецЕсли;
Исключение
Предупреждение("У Вас не достаточно прав для сохранения конфигурации");
Возврат Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Функция НовПрм(П, Стр) Экспорт
Стр.Вставить("___Родитель", П);
Возврат Стр;
КонецФункции
//Ищет свойство сначала в структуре П, а затем во всех ее родительских структурах
Функция Прм(П, Свойство) Экспорт
Перем Р;
Если П.Свойство(Свойство, Р) Тогда
Возврат Р;
КонецЕсли;
Если П.Свойство("___Родитель", Р) Тогда
Возврат Прм(Р, Свойство);
КонецЕсли;
Возврат Неопределено;
КонецФункции
роцедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ОтраженоВОперУчете = Истина;
ОтражатьВБухгалтерскомУчете = Истина;
ОтражатьВНалоговомУчете = Истина;
Если НЕ ДокументОснование = Неопределено Тогда
ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
КонецЕсли;
КонецПроцедуры // ПередОткрытием()
ТекДокум=ДанныеСтроки.Ссылка;
Если ТекДокум=Неопределено Тогда
Возврат;
КонецЕсли;
ОформлениеСтроки.Ячейки.ЕДРПОУ.Значение = ТекДокум.Контрагент.ЕДРПОУ;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ПоступлениеТоваров.Ссылка КАК Ссылка,
| ПоступлениеТоваров.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
|ГДЕ
| ПоступлениеТоваров.Проведен И
| ПоступлениеТоваров.ДокументОснование = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| КассовыйОрдер.Ссылка КАК Ссылка,
| КассовыйОрдер.Сумма КАК Сумма
|ИЗ
| Документ.КассовыйОрдер КАК КассовыйОрдер
|ГДЕ
| КассовыйОрдер.Проведен И
| КассовыйОрдер.ДокументСделка = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| ПоступлениеДопРасходов.Ссылка КАК Ссылка,
| ПоступлениеДопРасходов.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеДопРасходов КАК ПоступлениеДопРасходов
|ГДЕ
| ПоступлениеДопРасходов.Проведен И
| ПоступлениеДопРасходов.ДокументОснование.Ссылка = &ВыбОснование";
Запрос.УстановитьПараметр("ВыбОснование",ТекДокум);
ТаблДоков=Запрос.Выполнить().Выгрузить();
СуммаПодчиненных = ТаблДоков.Итог("Сумма");
Если СуммаПодчиненных = ТекДокум.СуммаДокумента Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.БледноЗеленый;
ИначеЕсли СуммаПодчиненных > 0 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоРозовый;
КонецЕсли;
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.СуммаДокумента.Значение=Формат(ДанныеСтроки.Ссылка.Товары.Итог("СуммаВсего")
+ДанныеСтроки.Ссылка.Услуги.Итог("СуммаВсего"),"ЧЦ=15; ЧДЦ=2");
КонецПроцедуры
// ПРОДАЖИ
НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Докум.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Запись Из НаборЗаписей Цикл
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
КонецЦикла;
Для Каждого ТекСтрокаТовары Из Докум.Товары Цикл
Если ТекСтрокаТовары.КоличествоФакт>0 Тогда
Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Установить(Докум.Ссылка);
Продажи = Движения.Добавить();
Продажи.Период = Докум.Дата;
Продажи.ПодразделениеКомпании=Докум.ПодразделениеКомпании;
Бла-бла-бла
Движения.Записать(Ложь);
КонецЕсли;
КонецЦикла;
//Оплаты
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ВзаиморасчетыКомпанииОстатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ВзаиморасчетыКомпании.Остатки(, ) КАК ВзаиморасчетыКомпанииОстатки
|ГДЕ
| ВзаиморасчетыКомпанииОстатки.Сделка = &ВыбСделка";
Запрос.УстановитьПараметр("ВыбСделка",Докум.ДокументОснование);
ТаблОплат=Запрос.Выполнить().Выгрузить();
//ТаблОплат.Свернуть("","Сумма");
Если ТаблОплат.Количество()>0 Тогда
ПоступилаОплата=?((-1)*ТаблОплат[0].Сумма>0,(-1)*ТаблОплат[0].Сумма,0);
Иначе
ПоступилаОплата=0;
КонецЕсли;
Предоплата=0;
Если Докум.СуммаДокумента>ПоступилаОплата Тогда
Предупреждение("Поступившая оплата "+Формат(ПоступилаОплата,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Нужна предоплата в сумме "+Формат(Докум.СуммаДокумента,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Отгрузка на сумму больше предоплаты - нарушение договора!");
КонецЕсли;
// функция сохраняет рабочую конфигурацию в файл, в случае успеха возвращает Истина
// параметры:
// Логин - имя пользователя с правами на админисирирование БД
// Пароль - строка пароля
// ИмяФайла - полное имя файла для сохранения конфигурации, не обязательно.
// по умолчанию использует каталог временных файлов и имя 1Cv8.сf
функция СохранитьТекущуюКонфигурацию (Логин, Пароль, ИмяФайла="") экспорт
результат = Ложь;
Если ИмяФайла = "" Тогда
ИмяФайла = КаталогВременныхФайлов() + "1Cv8.сf";
КонецЕсли;
СтрокаБазы = СтрокаСоединенияИнформационнойБазы();
Если Лев(СтрокаБазы, 5) = "File=" Тогда
// файловый вариант
СтрокаБазы = Сред(СтрокаБазы, 6, СтрДлина(СтрокаБазы) - 6);
Иначе
// серверный вариант пока не готов...
// может кто допишет?
возврат Ложь;
КонецЕсли;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Сигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Иначе
Сигнатура = "";
КонецЕсли;
СтрокаЗапуска = """" + КаталогПрограммы() + "1cv8.exe"" CONFIG /F " + СтрокаБазы
+ ?(Логин = "", "", " /N " + Логин)
+ ?(Пароль = "", "", " /Р " + Пароль) + " /DumpDBCfg """ + ИмяФайла + """";
// КомандаСистемы (СтрокаЗапуска); не работает!!!!! из-за кавычек в параметрах
// приходиться идти кругом...
// зато можно избежать черного окошка
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(СтрокаЗапуска, 0, Истина);
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
НоваяСигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Если Сигнатура <> НоваяСигнатура Тогда
Результат = Истина;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ЗаписатьКонфигурациюВФайл(ИмяФайла="")
Результат = Ложь;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Если ВыбФайл.ЭтоКаталог() Тогда
ИмяФайла="";
КонецЕсли;
КонецЕсли;
Попытка
Массив = ПользователиИнформационнойБазы.ПолучитьПользователей();
Логин = "";
Пароль = "";
Если Массив.Количество() > 0 тогда
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Логин = Пользователь.Имя;
Если Пользователь.ПарольУстановлен Тогда
// тут нужно получить пароль, лучше интерактивно
// но лично мне это совсем не нужно
Предупреждение("У Вас установлен пароль, этот режим сейчас не доступен");
Возврат Ложь;
КонецЕсли
КонецЕсли;
Результат = СохранитьТекущуюКонфигурацию(Логин, Пароль, ИмяФайла);
Если не Результат Тогда
Предупреждение("Конфигурация не сохранена");
Иначе
Сообщить("Конфигурация успешно сохранена в файл: " + ИмяФайла);
КонецЕсли;
Исключение
Предупреждение("У Вас не достаточно прав для сохранения конфигурации");
Возврат Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Функция НовПрм(П, Стр) Экспорт
Стр.Вставить("___Родитель", П);
Возврат Стр;
КонецФункции
//Ищет свойство сначала в структуре П, а затем во всех ее родительских структурах
Функция Прм(П, Свойство) Экспорт
Перем Р;
Если П.Свойство(Свойство, Р) Тогда
Возврат Р;
КонецЕсли;
Если П.Свойство("___Родитель", Р) Тогда
Возврат Прм(Р, Свойство);
КонецЕсли;
Возврат Неопределено;
КонецФункции
роцедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ОтраженоВОперУчете = Истина;
ОтражатьВБухгалтерскомУчете = Истина;
ОтражатьВНалоговомУчете = Истина;
Если НЕ ДокументОснование = Неопределено Тогда
ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
КонецЕсли;
КонецПроцедуры // ПередОткрытием()
ТекДокум=ДанныеСтроки.Ссылка;
Если ТекДокум=Неопределено Тогда
Возврат;
КонецЕсли;
ОформлениеСтроки.Ячейки.ЕДРПОУ.Значение = ТекДокум.Контрагент.ЕДРПОУ;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ПоступлениеТоваров.Ссылка КАК Ссылка,
| ПоступлениеТоваров.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
|ГДЕ
| ПоступлениеТоваров.Проведен И
| ПоступлениеТоваров.ДокументОснование = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| КассовыйОрдер.Ссылка КАК Ссылка,
| КассовыйОрдер.Сумма КАК Сумма
|ИЗ
| Документ.КассовыйОрдер КАК КассовыйОрдер
|ГДЕ
| КассовыйОрдер.Проведен И
| КассовыйОрдер.ДокументСделка = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| ПоступлениеДопРасходов.Ссылка КАК Ссылка,
| ПоступлениеДопРасходов.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеДопРасходов КАК ПоступлениеДопРасходов
|ГДЕ
| ПоступлениеДопРасходов.Проведен И
| ПоступлениеДопРасходов.ДокументОснование.Ссылка = &ВыбОснование";
Запрос.УстановитьПараметр("ВыбОснование",ТекДокум);
ТаблДоков=Запрос.Выполнить().Выгрузить();
СуммаПодчиненных = ТаблДоков.Итог("Сумма");
Если СуммаПодчиненных = ТекДокум.СуммаДокумента Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.БледноЗеленый;
ИначеЕсли СуммаПодчиненных > 0 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоРозовый;
КонецЕсли;
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.СуммаДокумента.Значение=Формат(ДанныеСтроки.Ссылка.Товары.Итог("СуммаВсего")
+ДанныеСтроки.Ссылка.Услуги.Итог("СуммаВсего"),"ЧЦ=15; ЧДЦ=2");
КонецПроцедуры
// ПРОДАЖИ
НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Докум.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Запись Из НаборЗаписей Цикл
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
КонецЦикла;
Для Каждого ТекСтрокаТовары Из Докум.Товары Цикл
Если ТекСтрокаТовары.КоличествоФакт>0 Тогда
Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Установить(Докум.Ссылка);
Продажи = Движения.Добавить();
Продажи.Период = Докум.Дата;
Продажи.ПодразделениеКомпании=Докум.ПодразделениеКомпании;
Бла-бла-бла
Движения.Записать(Ложь);
КонецЕсли;
КонецЦикла;
//Оплаты
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ВзаиморасчетыКомпанииОстатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ВзаиморасчетыКомпании.Остатки(, ) КАК ВзаиморасчетыКомпанииОстатки
|ГДЕ
| ВзаиморасчетыКомпанииОстатки.Сделка = &ВыбСделка";
Запрос.УстановитьПараметр("ВыбСделка",Докум.ДокументОснование);
ТаблОплат=Запрос.Выполнить().Выгрузить();
//ТаблОплат.Свернуть("","Сумма");
Если ТаблОплат.Количество()>0 Тогда
ПоступилаОплата=?((-1)*ТаблОплат[0].Сумма>0,(-1)*ТаблОплат[0].Сумма,0);
Иначе
ПоступилаОплата=0;
КонецЕсли;
Предоплата=0;
Если Докум.СуммаДокумента>ПоступилаОплата Тогда
Предупреждение("Поступившая оплата "+Формат(ПоступилаОплата,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Нужна предоплата в сумме "+Формат(Докум.СуммаДокумента,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Отгрузка на сумму больше предоплаты - нарушение договора!");
КонецЕсли;
// функция сохраняет рабочую конфигурацию в файл, в случае успеха возвращает Истина
// параметры:
// Логин - имя пользователя с правами на админисирирование БД
// Пароль - строка пароля
// ИмяФайла - полное имя файла для сохранения конфигурации, не обязательно.
// по умолчанию использует каталог временных файлов и имя 1Cv8.сf
функция СохранитьТекущуюКонфигурацию (Логин, Пароль, ИмяФайла="") экспорт
результат = Ложь;
Если ИмяФайла = "" Тогда
ИмяФайла = КаталогВременныхФайлов() + "1Cv8.сf";
КонецЕсли;
СтрокаБазы = СтрокаСоединенияИнформационнойБазы();
Если Лев(СтрокаБазы, 5) = "File=" Тогда
// файловый вариант
СтрокаБазы = Сред(СтрокаБазы, 6, СтрДлина(СтрокаБазы) - 6);
Иначе
// серверный вариант пока не готов...
// может кто допишет?
возврат Ложь;
КонецЕсли;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Сигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Иначе
Сигнатура = "";
КонецЕсли;
СтрокаЗапуска = """" + КаталогПрограммы() + "1cv8.exe"" CONFIG /F " + СтрокаБазы
+ ?(Логин = "", "", " /N " + Логин)
+ ?(Пароль = "", "", " /Р " + Пароль) + " /DumpDBCfg """ + ИмяФайла + """";
// КомандаСистемы (СтрокаЗапуска); не работает!!!!! из-за кавычек в параметрах
// приходиться идти кругом...
// зато можно избежать черного окошка
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(СтрокаЗапуска, 0, Истина);
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
НоваяСигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Если Сигнатура <> НоваяСигнатура Тогда
Результат = Истина;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ЗаписатьКонфигурациюВФайл(ИмяФайла="")
Результат = Ложь;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Если ВыбФайл.ЭтоКаталог() Тогда
ИмяФайла="";
КонецЕсли;
КонецЕсли;
Попытка
Массив = ПользователиИнформационнойБазы.ПолучитьПользователей();
Логин = "";
Пароль = "";
Если Массив.Количество() > 0 тогда
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Логин = Пользователь.Имя;
Если Пользователь.ПарольУстановлен Тогда
// тут нужно получить пароль, лучше интерактивно
// но лично мне это совсем не нужно
Предупреждение("У Вас установлен пароль, этот режим сейчас не доступен");
Возврат Ложь;
КонецЕсли
КонецЕсли;
Результат = СохранитьТекущуюКонфигурацию(Логин, Пароль, ИмяФайла);
Если не Результат Тогда
Предупреждение("Конфигурация не сохранена");
Иначе
Сообщить("Конфигурация успешно сохранена в файл: " + ИмяФайла);
КонецЕсли;
Исключение
Предупреждение("У Вас не достаточно прав для сохранения конфигурации");
Возврат Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Функция НовПрм(П, Стр) Экспорт
Стр.Вставить("___Родитель", П);
Возврат Стр;
КонецФункции
//Ищет свойство сначала в структуре П, а затем во всех ее родительских структурах
Функция Прм(П, Свойство) Экспорт
Перем Р;
Если П.Свойство(Свойство, Р) Тогда
Возврат Р;
КонецЕсли;
Если П.Свойство("___Родитель", Р) Тогда
Возврат Прм(Р, Свойство);
КонецЕсли;
Возврат Неопределено;
КонецФункции
роцедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ОтраженоВОперУчете = Истина;
ОтражатьВБухгалтерскомУчете = Истина;
ОтражатьВНалоговомУчете = Истина;
Если НЕ ДокументОснование = Неопределено Тогда
ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
КонецЕсли;
КонецПроцедуры // ПередОткрытием()
ТекДокум=ДанныеСтроки.Ссылка;
Если ТекДокум=Неопределено Тогда
Возврат;
КонецЕсли;
ОформлениеСтроки.Ячейки.ЕДРПОУ.Значение = ТекДокум.Контрагент.ЕДРПОУ;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ПоступлениеТоваров.Ссылка КАК Ссылка,
| ПоступлениеТоваров.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
|ГДЕ
| ПоступлениеТоваров.Проведен И
| ПоступлениеТоваров.ДокументОснование = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| КассовыйОрдер.Ссылка КАК Ссылка,
| КассовыйОрдер.Сумма КАК Сумма
|ИЗ
| Документ.КассовыйОрдер КАК КассовыйОрдер
|ГДЕ
| КассовыйОрдер.Проведен И
| КассовыйОрдер.ДокументСделка = &ВыбОснование
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| ПоступлениеДопРасходов.Ссылка КАК Ссылка,
| ПоступлениеДопРасходов.СуммаДокумента КАК Сумма
|ИЗ
| Документ.ПоступлениеДопРасходов КАК ПоступлениеДопРасходов
|ГДЕ
| ПоступлениеДопРасходов.Проведен И
| ПоступлениеДопРасходов.ДокументОснование.Ссылка = &ВыбОснование";
Запрос.УстановитьПараметр("ВыбОснование",ТекДокум);
ТаблДоков=Запрос.Выполнить().Выгрузить();
СуммаПодчиненных = ТаблДоков.Итог("Сумма");
Если СуммаПодчиненных = ТекДокум.СуммаДокумента Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.БледноЗеленый;
ИначеЕсли СуммаПодчиненных > 0 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоРозовый;
КонецЕсли;
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.СуммаДокумента.Значение=Формат(ДанныеСтроки.Ссылка.Товары.Итог("СуммаВсего")
+ДанныеСтроки.Ссылка.Услуги.Итог("СуммаВсего"),"ЧЦ=15; ЧДЦ=2");
КонецПроцедуры
// ПРОДАЖИ
НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Докум.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Запись Из НаборЗаписей Цикл
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
КонецЦикла;
Для Каждого ТекСтрокаТовары Из Докум.Товары Цикл
Если ТекСтрокаТовары.КоличествоФакт>0 Тогда
Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
Движения.Отбор.Регистратор.Установить(Докум.Ссылка);
Продажи = Движения.Добавить();
Продажи.Период = Докум.Дата;
Продажи.ПодразделениеКомпании=Докум.ПодразделениеКомпании;
Бла-бла-бла
Движения.Записать(Ложь);
КонецЕсли;
КонецЦикла;
//Оплаты
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ВзаиморасчетыКомпанииОстатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ВзаиморасчетыКомпании.Остатки(, ) КАК ВзаиморасчетыКомпанииОстатки
|ГДЕ
| ВзаиморасчетыКомпанииОстатки.Сделка = &ВыбСделка";
Запрос.УстановитьПараметр("ВыбСделка",Докум.ДокументОснование);
ТаблОплат=Запрос.Выполнить().Выгрузить();
//ТаблОплат.Свернуть("","Сумма");
Если ТаблОплат.Количество()>0 Тогда
ПоступилаОплата=?((-1)*ТаблОплат[0].Сумма>0,(-1)*ТаблОплат[0].Сумма,0);
Иначе
ПоступилаОплата=0;
КонецЕсли;
Предоплата=0;
Если Докум.СуммаДокумента>ПоступилаОплата Тогда
Предупреждение("Поступившая оплата "+Формат(ПоступилаОплата,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Нужна предоплата в сумме "+Формат(Докум.СуммаДокумента,"ЧЦ=10; ЧДЦ=2")
+Символы.ПС+"Отгрузка на сумму больше предоплаты - нарушение договора!");
КонецЕсли;
// функция сохраняет рабочую конфигурацию в файл, в случае успеха возвращает Истина
// параметры:
// Логин - имя пользователя с правами на админисирирование БД
// Пароль - строка пароля
// ИмяФайла - полное имя файла для сохранения конфигурации, не обязательно.
// по умолчанию использует каталог временных файлов и имя 1Cv8.сf
функция СохранитьТекущуюКонфигурацию (Логин, Пароль, ИмяФайла="") экспорт
результат = Ложь;
Если ИмяФайла = "" Тогда
ИмяФайла = КаталогВременныхФайлов() + "1Cv8.сf";
КонецЕсли;
СтрокаБазы = СтрокаСоединенияИнформационнойБазы();
Если Лев(СтрокаБазы, 5) = "File=" Тогда
// файловый вариант
СтрокаБазы = Сред(СтрокаБазы, 6, СтрДлина(СтрокаБазы) - 6);
Иначе
// серверный вариант пока не готов...
// может кто допишет?
возврат Ложь;
КонецЕсли;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Сигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Иначе
Сигнатура = "";
КонецЕсли;
СтрокаЗапуска = """" + КаталогПрограммы() + "1cv8.exe"" CONFIG /F " + СтрокаБазы
+ ?(Логин = "", "", " /N " + Логин)
+ ?(Пароль = "", "", " /Р " + Пароль) + " /DumpDBCfg """ + ИмяФайла + """";
// КомандаСистемы (СтрокаЗапуска); не работает!!!!! из-за кавычек в параметрах
// приходиться идти кругом...
// зато можно избежать черного окошка
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(СтрокаЗапуска, 0, Истина);
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
НоваяСигнатура = Строка(ВыбФайл.Размер()) + Строка(ВыбФайл.ПолучитьВремяИзменения());
Если Сигнатура <> НоваяСигнатура Тогда
Результат = Истина;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ЗаписатьКонфигурациюВФайл(ИмяФайла="")
Результат = Ложь;
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Если ВыбФайл.ЭтоКаталог() Тогда
ИмяФайла="";
КонецЕсли;
КонецЕсли;
Попытка
Массив = ПользователиИнформационнойБазы.ПолучитьПользователей();
Логин = "";
Пароль = "";
Если Массив.Количество() > 0 тогда
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Логин = Пользователь.Имя;
Если Пользователь.ПарольУстановлен Тогда
// тут нужно получить пароль, лучше интерактивно
// но лично мне это совсем не нужно
Предупреждение("У Вас установлен пароль, этот режим сейчас не доступен");
Возврат Ложь;
КонецЕсли
КонецЕсли;
Результат = СохранитьТекущуюКонфигурацию(Логин, Пароль, ИмяФайла);
Если не Результат Тогда
Предупреждение("Конфигурация не сохранена");
Иначе
Сообщить("Конфигурация успешно сохранена в файл: " + ИмяФайла);
КонецЕсли;
Исключение
Предупреждение("У Вас не достаточно прав для сохранения конфигурации");
Возврат Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Функция НовПрм(П, Стр) Экспорт
Стр.Вставить("___Родитель", П);
Возврат Стр;
КонецФункции
//Ищет свойство сначала в структуре П, а затем во всех ее родительских структурах
Функция Прм(П, Свойство) Экспорт
Перем Р;
Если П.Свойство(Свойство, Р) Тогда
Возврат Р;
КонецЕсли;
Если П.Свойство("___Родитель", Р) Тогда
Возврат Прм(Р, Свойство);
КонецЕсли;
Возврат Неопределено;
КонецФункции
роцедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ОтраженоВОперУчете = Истина;
ОтражатьВБухгалтерскомУчете = Истина;
ОтражатьВНалоговомУчете = Истина;
Если НЕ ДокументОснование = Неопределено Тогда
ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
КонецЕсли;
КонецПроцедуры // ПередОткрытием()
Заключение
В рамках данной работы была создана система учета оптовых и розничных продаж. Программный продукт разработан на базе платформы "1С:Предпритие 8.0" в типовой конфигурации "Бухгалтерия предприятия".
Целями создания системы являлись:
- автоматизация бухгалтерского и управленческого учета оптовых и розничных продаж;
- минимизация ошибок бухгалтерского и управленческого учета оптовых и розничных продаж;
- автоматическая генерация учетной документации.
Созданная система удовлетворяет всем требованиям, сформулированным в техническом задании. Система автоматизирует работу организации оптовой и розничной торговли в аспекте бухгалтерского и управленческого учета.
Система сохраняет все функциональные возможности типовой конфигурации "1С:Бухгалтерия 8.0", дополнив её новыми возможностями для ведения учета на предприятиях оптовой и розничной торговли. Разработанная система точно соответствует положению о бухгалтерском учете, которое строго регламентирует весь документооборот, корреспонденции всех бухгалтерских проводок, печатные документы и т.д.
Система предназначена для следующих классов пользователей:
- работник склада,
- логистик,
- менеджер по продажам,
- бухгалтер,
- оператор,
- руководитель.
В системе реализованы следующие функции:
- управление продажами;
- управление поставками;
- планирование продаж и закупок;
- управление складскими запасами;
- управление заказами покупателей;
- анализ товарооборота предприятия;
- анализ эффективности торговой деятельности;
- учет хозяйственной деятельности нескольких организаций в единой информационной базе;
- учет "от документа" и типовые операции;
- партионный учет (ФИФО, ЛИФО, по средней себестоимости);
- складской учет;
- учет торговых операций;
- учет операций с денежными средствами;
- возможность сдачи отчетности в электронном виде;
- возможность обновления форм отчетности через Интернет.
Для тестирование разработанной системы использовалось средство "1С:Автоматическое тестирование конфигураций".
Система проходила тестирование на условных и реальных данных.
Итоги тестирования показали, что система функционирует корректно и в соответствии с требованиями технического задания. Созданные документы проводятся и формируют проводки. Отчеты выявляют реальную зависимость в системе товарооборота, анализируют информацию.
или зарегистрироваться
в сервисе
удобным
способом
вы получите ссылку
на скачивание
к нам за прошлый год