Список использованных источников. 1. PDM-система – Википедия
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(); Возврат Таблица;
КонецФункции
|