перем сомСоединение;
перем ПодключениеВыполнено;
&НаКлиенте
Процедура СписокФСМПередОкончаниемРедактирования(Элемент, НоваяСтрока,ОтменаРедактирования, Отказ)
ТекущиеДанные = Элементы.СписокФСМ.ТекущиеДанные;
wshShell=new COMobject("wscript.shell");
wshShell.run("%comspec% /c echo "+Char(7),true);
Результат = ПолучитьСписокФСМ(ТекущиеДанные.НомерФСМ);
Если Результат Тогда
wshShell.run("%comspec% /c echo " + Char(7),true);
wshShell.run("%comspec% /c echo " + Char(7),true);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры&НаСервере
Функция ПолучитьСписокФСМ(НомерФСМ)
ТаблицаФСМ = Объект.СписокФСМ.Выгрузить();
Сообщение = Новый СообщениеПользователю(); Если СтрДлина(СокрЛП(НомерФСМ)) > Объект.Ссылка.Метаданные().ТабличныеЧасти.СписокФСМ.Реквизиты.НомерФСМ.Тип.КвалификаторыСтроки.Длина Тогда
Сообщение.Текст = " Ожидаемая длина штрих-кода марки "+Строка(Объект.Ссылка.Метаданные().ТабличныеЧасти.СписокФСМ.Реквизиты.НомерФСМ.Тип.КвалификаторыСтроки.Длина)+" символов .";
Сообщение.Сообщить();
Возврат Истина;
КонецЕсли;
СтруктураПоиска = Новый Структура("НомерФСМ",НомерФСМ);
МассивСтрок = ТаблицаФСМ.НайтиСтроки(СтруктураПоиска);
Если МассивСтрок.Количество() > 1 Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Дата = ТекущаяДата();
КонецПроцедуры&НаСервере
Процедура ДобавитьНовыеСтрокиВТаблицу(ЗначениеИзФайла)
НоваяСтрока = Объект.СписокФСМ.Добавить();
НоваяСтрока.НомерФСМ = ЗначениеИзФайла;
//СсылкаНаДокумент.Записать();
КонецПроцедуры&НаСервере
Процедура ПроверкаЗаполнения()
Если Объект.СписокФСМ.Количество()>0 Тогда
Сообщить("Перед заполнением табличная часть будет очищена.");
Объект.СписокФСМ.Очистить();
КонецЕсли;
КонецПроцедуры&НаКлиенте
Процедура ИнициализацияЗагрузки(Команда)
ТекущиеДанные = Элементы.СписокФСМ.ТекущиеДанные;
ПроверкаЗаполнения(); ИмяФайла = "";
Если ПустаяСтрока(ИмяФайла) Тогда
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогВыбораФайла.ПолноеИмяФайла = ИмяФайла;
ДиалогВыбораФайла.Каталог = "С:\Temp\";
ДиалогВыбораФайла.Заголовок = "Укажите файл ";
Если ДиалогВыбораФайла.Выбрать() Тогда
ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;
ИмяПути = ДиалогВыбораФайла.Каталог;
КонецЕсли;
КонецЕсли;
Сообщить("Инициализация MS Excel ...");
Попытка
Excel = Новый COMОбъект("Excel.Application");
Исключение
Предупреждение("Не удалось инициализировать MS Excel");
Возврат;
КонецПопытки;
Попытка
Excel.Workbooks.Open(ИмяФайла);
ОшибкиКоличество = 0;
ОчиститьСообщения();
Для Каждого Лист Из Excel.Sheets Цикл
ИмяСправочника = Лист.Name;
Если ИмяСправочника <> "" Тогда
ПоследняяСтрока = Лист.UsedRange.Rows.Count;
Для Колонка = 1 По 1 Цикл
Для Строка = 2 По ПоследняяСтрока Цикл
ИмяПоля = Лист.Cells(Строка,Колонка).Value;
Если ИмяПоля <> "" Тогда
НовоеЗначение = Лист.Cells(Строка,Колонка).value;
ДобавитьНовыеСтрокиВТаблицу(НовоеЗначение);
Иначе
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Excel.Application.Quit();
Excel = Неопределено;
Сообщить("Обработка завершена!",СтатусСообщения.Информация);
Исключение
Excel.Application.quit();
Excel = Неопределено;
КонецПопытки;
КонецПроцедуры