перем сомСоединение; перем ПодключениеВыполнено; &НаКлиенте Процедура СписокФСМПередОкончаниемРедактирования(Элемент, НоваяСтрока,ОтменаРедактирования, Отказ) ТекущиеДанные = Элементы.СписокФСМ.ТекущиеДанные; 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 = Неопределено; КонецПопытки; КонецПроцедуры