Диплом: Автоматизация учета поступления сырья в базе конфигурации "1С: Предприятия 8.3" в ОАО "Бобруйский мясокомбинат"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
67
ВесаЭталонные =
НастройкиВзвешиванияВТерминале.ВесаЭталонные;
СтруктураТерминала = Новый Структура("Терминал, Весы,
Веса, ТекущиеВесы, ПредупреждатьОПовторномВзвешивании",
ТекущийПользователь);
СтруктураТерминала.ПредупреждатьОПовторномВзвешивании =
ПредупреждатьОПовторномВзвешивании;
Весы = Новый Массив;
НеобходимоУказатьЭталонныеВеса = Ложь;
Если (НастройкиВесов.Количество() > 0) Тогда
Для Каждого НастройкаВесов Из НастройкиВесов Цикл
СтруктураВесов = Неопределено;
ПодключитьВесы(СтруктураВесов,
НастройкаВесов, Отказ, ЗаголовокСообщения);
Весы.Добавить(СтруктураВесов);
НеобходимоУказатьЭталонныеВеса =
НеобходимоУказатьЭталонныеВеса ИЛИ
(СтруктураВесов.ПериодичностьЭталонногоВзвешивания> 0);
КонецЦикла;
//СтруктураТерминала.Весы = Весы;
68
СтруктураТерминала.ТекущиеВесы = Весы[0];
Иначе
//ТекстСообщения = "Не заданы настройки весов в
настройках взвешивания терминала!";
//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ,
ЗаголовокСообщения);
КонецЕсли;
СтруктураТерминала.Весы = Весы;
Веса = Новый Массив;
Если НеобходимоУказатьЭталонныеВеса Тогда
Если (ВесаЭталонные.Количество() > 0) Тогда
Для Каждого СтрокаВесаЭталонного Из
ВесаЭталонные Цикл
Вес = СтрокаВесаЭталонного.Вес;
Если (Вес > 0) Тогда
Веса.Добавить(Вес);
Иначе
69
ТекстСообщения = "Не указан вес в строке № "+
СтрокаВесаЭталонного.НомерСтроки + " эталонных весов в настройках
взвешивания терминала!";
ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ,
ЗаголовокСообщения);
КонецЕсли;
КонецЦикла;
СтруктураТерминала.Веса = Веса;
Иначе
ТекстСообщения = "Не указаны эталонные веса в
настройках взвешивания терминала!";
ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ,
ЗаголовокСообщения);
КонецЕсли;
КонецЕсли;
Иначе
ТекстСообщения = "Не заданы настройки взвешивания
терминала!";
ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения,
Отказ, ЗаголовокСообщения);
70
КонецЕсли;
КонецПроцедуры // ПодготовитьТерминалКВзвешиванию()
Функция ЗавершитьВзвешиваниеВТерминале(СтруктураТерминала)
Экспорт
Отказ = Ложь;
Весы = СтруктураТерминала.Весы;
Для Индекс = 0 По Весы.Количество() - 1 Цикл
Отказ = ОтключитьВесы(Весы[Индекс]);
КонецЦикла;
Возврат НЕ Отказ;
КонецФункции // ЗавершитьВзвешиваниеВТерминале()
Функция
ПолучитьСтрокуДереваВесовВТерминалеПоУмолчанию(ДеревоВесов,
СтруктураТерминала)
ИндексВесовПоУмолчанию =
СтруктураТерминала.Весы.Найти(СтруктураТерминала.ТекущиеВесы);
71
Если (ИндексВесовПоУмолчанию = Неопределено) ИЛИ
(ДеревоВесов.Строки.Количество() = 0) Тогда
СтрокаПоУмолчанию = Неопределено;
Иначе
СтрокаПоУмолчанию =
ДеревоВесов.Строки.Найти(ИндексВесовПоУмолчанию, "Имя");
Если (СтрокаПоУмолчанию = Неопределено) Тогда
СтрокаПоУмолчанию = ДеревоВесов.Строки[0];
КонецЕсли;
КонецЕсли;
Возврат СтрокаПоУмолчанию;
КонецФункции //
ПолучитьСтрокуДереваВесовВТерминалеПоУмолчанию()
Функция ПолучитьДеревоВесовВТерминале(СтруктураТерминала,
Действие) Экспорт
ДеревоКнопок =
РаботаСДиалогами.ИнициализироватьДеревоДополнительныхКнопок();
Если (СтруктураТерминала = Неопределено) Тогда
Возврат ДеревоКнопок;
КонецЕсли;
72
Весы = СтруктураТерминала.Весы;
Если (Весы = Неопределено) Тогда
Возврат ДеревоКнопок;
КонецЕсли;
Для Сч = 0 По Весы.ВГраница() Цикл
РаботаСДиалогами.ДобавитьСтрокуВДеревоКнопок(ДеревоКнопок, Сч,
ТипКнопкиКоманднойПанели.Действие,
СформироватьЗаголовокВесовВТерминале(Весы[Сч],
Истина), Действие);
КонецЦикла;
СтрокаПоУмолчанию =
ПолучитьСтрокуДереваВесовВТерминалеПоУмолчанию(ДеревоКнопок,
СтруктураТерминала);
Если НЕ (СтрокаПоУмолчанию = Неопределено) Тогда
СтрокаПоУмолчанию.Пометка = Истина;
КонецЕсли;
Возврат ДеревоКнопок;
КонецФункции // ПолучитьДеревоВесовВТерминале()
73
Процедура
УстановитьПодменюВыбораВесовВТерминале(ПодменюВыбораВесов,
КоманднаяПанель, СоздаватьПриНеобходимости) Экспорт
Если НЕ (ПодменюВыбораВесов = Неопределено) ИЛИ НЕ
СоздаватьПриНеобходимости Тогда
Возврат;
КонецЕсли;
ИмяПодменю = Строка(Новый УникальныйИдентификатор);
Если (КоманднаяПанель.ВыравниваниеКнопок =
ВыравниваниеКнопокКоманднойПанели.Право) Тогда
КоманднаяПанель.Кнопки.Вставить(0, ,
ТипКнопкиКоманднойПанели.Разделитель);
ПодменюВыбораВесов =
КоманднаяПанель.Кнопки.Вставить(0, ИмяПодменю,
ТипКнопкиКоманднойПанели.Подменю, "Весы");
Иначе
КоманднаяПанель.Кнопки.Добавить(,
ТипКнопкиКоманднойПанели.Разделитель);
ПодменюПечати =
КоманднаяПанель.Кнопки.Добавить(ИмяПодменю,
ТипКнопкиКоманднойПанели.Подменю, "Весы");
КонецЕсли;
74
ПодменюВыбораВесов.Подсказка = "Меню выбора весов";
КонецПроцедуры // УстановитьПодменюВыбораВесовВТерминале()
Процедура ВыборВесовПоКнопке(ИмяКнопки, СтруктураТерминала)
Экспорт
СтруктураТерминала.ТекущиеВесы =
СтруктураТерминала.Весы[Число(ИмяКнопки)];
КонецПроцедуры // ВыборВесовПоКнопке()
Процедура ПодключитьВесы(Весы, НастройкаВесов, Отказ,
ЗаголовокСообщения)
Весы = Новый Структура(
"НомерCOMПортаПодключения, ПортПодключения, Тип,
ТаймаутОжидания,
|ИнтервалКонтрольногоВзвешивания,
ПериодичностьЭталонногоВзвешивания, Наименование,
|ИмяВнешнейКомпоненты, Объект, ИмяВнешнегоСобытия,
|ВОжиданииДанных, ЭлементВОжиданииДанных,
ФормаВОжиданииДанных,
|ЭтапОжиданияДанных, ПоследнийВес"
);
ЗаполнитьЗначенияСвойств(Весы, НастройкаВесов);
Весы.ПортПодключения = "COM" +
Весы.НомерCOMПортаПодключения;
//Весы.ИмяВнешнейКомпоненты = "vk_rs232_rin";
75
ТекущийПользователь = ?(ТекущийПользователь = Неопределено,
глЗначениеПеременной("глТекущийПользователь"), ТекущийПользователь);
ИмяВнешнейКомпаненты =
УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекущийПользо
ватель, "ЮИ_ИмяВнешнейКомпаненты");
Если ЗначениеЗаполнено(ИмяВнешнейКомпаненты) Тогда
Весы.ИмяВнешнейКомпоненты = ИмяВнешнейКомпаненты;
Иначе
Весы.ИмяВнешнейКомпоненты = "vk_rs232_rin";
КонецЕсли;
Весы.ИмяВнешнегоСобытия = "ScaleValue";
Весы.ВОжиданииДанных = Ложь;
Весы.ЭтапОжиданияДанных = 0;
Весы.ПоследнийВес = 0;
Если ЗначениеЗаполнено(Весы.НомерCOMПортаПодключения)
Тогда
Если ЗначениеЗаполнено(Весы.Тип) Тогда
Если ЗначениеЗаполнено(Весы.ТаймаутОжидания)
Тогда
Если Не НастройкаВесов.Тип =
Перечисления.ЮИ_ТипыВесов.РучнойВвод Тогда
Весы.Объект =
глЗначениеПеременной(Весы.ИмяВнешнейКомпоненты +
Весы.ПортПодключения);
Если НЕ (Весы.Объект = Неопределено)
Тогда
76
Попытка
Если (Весы.Тип =
Перечисления.ЮИ_ТипыВесов.BW) Тогда
Весы.Объект.ДлинаСтроки
= 22;
Весы.Объект.КонецСтроки
= СимволASCII(13) + СимволASCII(10);
//Весы.Объект.НачалоСтроки = "";
ИначеЕсли (Весы.Тип =
Перечисления.ЮИ_ТипыВесов.ТензоМ_6_43) Тогда
Весы.Объект.ДлинаСтроки
= 9;
Весы.Объект.КонецСтроки
= "";
//Весы.Объект.НачалоСтроки = "";
ИначеЕсли (Весы.Тип =
Перечисления.ЮИ_ТипыВесов.ТензоМ) Тогда
Весы.Объект.НачалоСтроки = СимволASCII(255);
Весы.Объект.КонецСтроки
= СимволASCII(255) + СимволASCII(255);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)