новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Яндекс-директ

Фрагмент программы на управляемых формах для сканирования марок (ФСМ) алкогольной продукции. 1с 8.3.

  • Добавить свою разработку
 
Титова Светлана Алексеевна
Связаться с автором
11.12.2015 19:25:18
0
Программа позволяет сканировать марки ФСМ сканером и загружать данные в документ.Управляемые формы.
Скриншоты
Описание

 

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

 

Ключевые слова:   1С платформа 8.3 Сканирование марок ФСМ для алкого
Файлы для скачивания
    • скачиваний: 1934
    • дата загрузки: 11.12.2015 19:29:48
0
    ≡ к списку разработок
    Яндекс-директ