Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НИРС Пинкевич 2014.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.49 Mб
Скачать
  1. Тестирование

Тест 1.

Входные данные: пустой файл Excel.

Результат теста: программа выдала сообщение о том, что запрашиваемые поля не найдены, то есть файл пустой.

Тест 2.

Входные данные: файл Excel с некорректными данными в виде наборов символов.

Результат теста представлен на рисунке 9.1.

Рисунок 9.1 — Тест 2

При наличии некорректных данных в файле Excel, программа выдает сообщение о невозможности выполнения операции. При этом программа не прибегает к аварийному закрытию.

Тест 3.

Входные данные: файл Excel с 11111 строками.

Результат теста представлен на рисунке 9.2.

Рисунок 9.2 — Тест 3

При загрузке информации из файла, программа не реагировала на действия пользователя 3 минуты.

Примечание: время работы программы зависит от производительности компьютера.

Тест 4.

Входные данные: файл Excel с 1101 строкой.

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

Рисунок 9.3 — Тест 4

При загрузке данных было произведено удаление файла Excel. При этом вся информация загрузилась без ошибок и аварийных выходов.

  1. Заключение

В результате выполнения курсового проекта была разработана конфигурация, позволяющая удобно вести учет затрат на производство.

Данная конфигурация способна быстро загрузить информацию из выходных файлов «КОМПАС-3D», представить ее в виде удобного списка составляющих элементов, сопоставить элементам их цену, если он существует в базе и посчитать себестоимость изготовленной сборки.

Данный продукт может быть использован на предприятиях занимающихся конструированием или проектированием различных деталей, сборочных единиц и комплексов.

Внедрение данного продукта в типовую конфигурацию «1С:Бухгалтерия» повысит его практическую значимость.

  1. Список использованных источников

  1. PDM-система – Википедия. [Электронный ресурс]. URL: http://ru.wikipedia.org/wiki/PDM (дата обращения 10.03.2014).

  2. «1С:Предприятие» – Википедия. [Электронный ресурс]. URL: http://ru.wikipedia.org/wiki/1С:Предприятие (дата обращения 20.03.2014).

  3. М. Г. Радченко 1С:Предприятие 8.2 практическое пособие разработчика». Издательство: ООО «1С-Паблишинг», Москва 2009. – 874 с.

  4. Разработка нетиповых решений – Аудит софт. [Электронный ресурс]. URL: http://www.auditsoft.com.ua/services/view/4 (дата обращения 20.03.2014).

  5. Встроенный язык программирования «1С:Предприятие» – Википедия. [Электронный ресурс]. URL: http://ru.wikipedia.org/wiki/Встроенный_язык_программирования_1С:Предприятие (дата обращения 10.04.2014).

  6. Общие сведения о САПР КОМПАС-3D. Типы документов – MySapr. [Электронный ресурс]. URL: http://mysapr.com/pages/1_obschie_svedeniya_o_kompas.php (дата обращения 15.03.2014).

  7. Интеграция с другими системами – 1С:Предприятие 8. [Электронный ресурс]. URL: http://www.v8.1c.ru/overview/integration.htm (дата обращения 15.03.2014).

Приложение а (справочное) Листинг модуля обработки

&НаКлиенте

Процедура ЗагрузитьИзФайла(Команда)

Перем _имяФайла, _полноеИмяФайла;

// Выбор файла через диалоговое окно

ВыбратьФайл(_имяФайла, _полноеИмяФайла);

// Выгрузка интересующих колонок из Excel в таблицу значений

ЗагрузитьИзExcel(_полноеИмяФайла);

ПодсчитатьИтоговуюСумму();

Объект.Наименование = _имяФайла;

КонецПроцедуры

// Вернуть из справочников элемент по наименованию

Функция ВернутьИзСправочника(_наименование)

// Просматриваем справочник Болты

_элементСправочника= Справочники.Болты.НайтиПоНаименованию(_наименование);

Если _элементСправочника <> Справочники.Болты.ПустаяСсылка() Тогда

Возврат _элементСправочника;

КонецЕсли;

// Просматриваем справочник Гайки

_элементСправочника= Справочники.Гайки.НайтиПоНаименованию(_наименование);

Если _элементСправочника <> Справочники.Гайки.ПустаяСсылка() Тогда

Возврат _элементСправочника;

КонецЕсли;

// Если ничего не нашли возвращаем Неопределено

Возврат Неопределено;

КонецФункции

// Вернуть цену детали из справочника если она имеется

Функция ВернутьЦену(_наименование)

_элементСправочника = ВернутьИзСправочника(_наименование);

// Если поле «Цена» запонено, то возвращаем её

Если _элементСправочника <> Неопределено Тогда

Возврат _элементСправочника.Цена;

КонецЕсли;

Возврат Неопределено;

КонецФункции

// Добавляем в табличную часть элемент из сборки

Процедура ДобавитьВТабличнуюЧасть(_наименование, _количество)

// СоставляющиеЭлементы - название табличной части

_объектТаблЧасти = Объект.СоставляющиеЭлементы.Добавить();

_объектТаблЧасти.Наименование = _наименование;

_объектТаблЧасти.Количество = _количество;

// Если в справочнике указана цена детали, то записываем ее

// и пожсчитываем сумму

_цена = ВернутьЦену(_наименование);

Если (_цена <> Неопределено) Тогда

_объектТаблЧасти.Цена = _цена;

_объектТаблЧасти.Сумма = _цена * _количество;

КонецЕсли;

КонецПроцедуры

Процедура ПодсчитатьИтоговуюСумму()

Объект.Сумма = Объект.СоставляющиеЭлементы.Итог(«Сумма»);

// Проверяем все ли поля заполнены

Для Каждого _строка Из Объект.СоставляющиеЭлементы Цикл

Если НЕ ЗначениеЗаполнено(_строка.Сумма) Тогда

Сообщить(«Внимание!! Не все поля колонки 'Сумма' заполнены!»);

//ПолнотаЗаполнения.Видимость = Истина;

КонецЕсли;

КонецЦикла;

КонецПроцедуры

Процедура ЗагрузитьИзExcel(_полноеИмяФайла)

_таблЗначений = Excel_ПолучитьДанные_COM(_полноеИмяФайла, «Лист1»);

// Достаем из таблицы (из Excel) наименования деталей и их количество

Для Каждого _строка Из _таблЗначений Цикл

Если (_строка.К6 <> Неопределено) И (_строка.К6 <> «Количество») Тогда

ДобавитьВТабличнуюЧасть(_строка.К5, _строка.К6);

КонецЕсли;

КонецЦикла;

КонецПроцедуры

&НаКлиенте

Процедура ВыбратьФайл(_имяФайла, _полноеИмяФайла) Экспорт

_диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

_диалог.Фильтр = «*.xlsx|*.xls»;

Если _диалог.Выбрать() Тогда

_имяФайла = СтрЗаменить(_диалог.ПолноеИмяФайла,_диалог.Каталог,'''');

_имяФайла = СтрЗаменить(_имяФайла, ''.xls'', '''');

_полноеИмяФайла = _диалог.ПолноеИмяФайла;

КонецЕсли;

КонецПроцедуры

Функция Excel_ПолучитьДанные_COM(пФайл, пЛист, СтруктураКолонок = Неопределено, Знач НачСтрока = 0, Знач КонСтрока = 0, XLSОбъект = Неопределено) Экспорт

#Если Клиент Тогда

Состояние(''Открытие Excel'');

#КонецЕсли

Если XLSОбъект = Неопределено Тогда

XLSОбъект = Новый COMОбъект(«Excel.Application»);

XLSОбъект.Visible = Ложь;

XLSОбъект.DisplayAlerts = Ложь;

КонецЕсли;

Попытка

Book = XLSОбъект.Workbooks.Open(пФайл, , Истина);

Исключение

Сообщить (''Проблемы с подключением к Excel'' );

Возврат Неопределено;

КонецПопытки;

Лист = Book.Sheets(1);

КолвоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;

КолвоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;

Таблица = Новый ТаблицаЗначений;

Если СтруктураКолонок = Неопределено Тогда

Для Счетчик = 1 По КолвоКолонок Цикл

Колонка = Таблица.Колонки.Добавить(«К» + Счетчик);

КонецЦикла;

Иначе

Для каждого КлючИЗначение Из СтруктураКолонок Цикл

Колонка = Таблица.Колонки.Добавить(КлючИЗначение.Ключ);

КонецЦикла;

КонецЕсли;

НачСтрока = ?(НачСтрока = 0, 1, НачСтрока);

КонСтрока = ?(КонСтрока = 0, КолвоСтрок, КонСтрока);

КонСтрока = Мин(КонСтрока, КолвоСтрок);

Для НомерСтроки = НачСтрока По КонСтрока Цикл

#Если Клиент Тогда

Состояние(«Чтение файла: « + Формат(НомерСтроки) + « из « + Формат(КонСтрока));

ОбработкаПрерыванияПользователя();

#КонецЕсли

НоваяСтрока = Таблица.Добавить();

Если СтруктураКолонок = Неопределено Тогда

Для НомерКолонки = 1 По КолвоКолонок Цикл

Поле = Лист.Cells(НомерСтроки, НомерКолонки);

НоваяСтрока[«К» + Формат(НомерКолонки, «ЧГ=0»)] = Поле.Value;

КонецЦикла;

Иначе

Для каждого КлючИЗначение Из СтруктураКолонок Цикл

Поле = Лист.Cells(НомерСтроки, КлючИЗначение.Значение);

НоваяСтрока[КлючИЗначение.Ключ] = Поле.Value;

КонецЦикла;

КонецЕсли;

КонецЦикла;

XLSОбъект.Application.Quit();

Возврат Таблица;

КонецФункции

Томск 2014