Имя: Пароль:
1C
1С v8
Обработка внешнего события
0 gurtas39
 
20.09.12
11:01
народ, помогите разобраться....
{ВнешняяОбработка.ТОСервер.МодульОбъекта(3027,2)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
   <<?>>ИначеЕсли Лев(ШК,4) = "UIDR" Тогда (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ТОСервер.МодульОбъекта(3122,13)}: Обнаружено логическое завершение исходного текста модуля
       КонецЕсли;<<?>>     (Проверка: Толстый клиент (обычное приложение))
Функция ОбработатьСобытиеСШК(Обработка, Объект, Клиент, Событие, Данные, СШК)

   Результат = мНетОшибки;

   ШК        = Неопределено;
   ТипШК     = Неопределено;
   Результат = Обработка.ОбработатьСобытиеСШК(Объект,
                                              Событие,
                                              Данные,
                                              ШК,
                                              ТипШК);
   Если ЗначениеЗаполнено(Результат) Тогда
       Возврат Результат;
   КонецЕсли;

   Если ПустаяСтрока(ШК) Тогда
       Возврат Результат;
   КонецЕсли;

   
   Если НЕ ЗначениеЗаполнено(ТипШК) Тогда
       Если      РаботаСТорговымОборудованием.ТипШтрихкодаEAN8ТО(ШК) Тогда
           ТипШК = мEAN8;
       ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаEAN13ТО(ШК) Тогда
           ТипШК = мEAN13;
       ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаCODE39ТО(ШК) Тогда
           ТипШК = мCODE39;
       КонецЕсли;
   КонецЕсли;

   // 2012.06.24 YA - LCG {
   // Обрабатываем ШК
   ИначеЕсли Лев(ШК,4) = "UIDR" Тогда
       Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
                             |    РеализацияТоваровУслуг.Ссылка,
                             |    РеализацияТоваровУслуг.Дата КАК Дата,
                             |    РеализацияТоваровУслуг.Номер КАК Номер,
                             |    РеализацияТоваровУслуг.Сделка
                             |ИЗ
                             |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                             |ГДЕ
                             |    РеализацияТоваровУслуг.LCG_ШтрихКод = &LCG_ШтрихКод
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    Дата УБЫВ,
                             |    Номер УБЫВ");
       
       Запрос.УстановитьПараметр("LCG_ШтрихКод", ШК);
       
       Результат = Запрос.Выполнить("LCG_ШтрихКод");
           ВыборкаДетальныеЗаписи = Результат.Выбрать();
           

           Если Не Результат.Пустой() Тогда
               Пока  ВыборкаДетальныеЗаписи.Следующий() цикл
                       Ответ=КодВозвратаДиалога.Нет;
           
           
           НовыйДокумент    = Документы.РасходныйОрдерНаТовары.СоздатьДокумент();
           НовыйДокумент.Дата=ТекущаяДата();
           НовыйДокумент.Заполнить(ВыборкаДетальныеЗаписи.Ссылка);
           Если НовыйДокумент.Товары.Количество()>0 тогда    
               Ответ=Вопрос("Выполнить отгрузку по накладной?  "+Символы.ПС+ВыборкаДетальныеЗаписи.Ссылка,РежимДиалогаВопрос.ДаНет,5, КодВозвратаДиалога.да,,КодВозвратаДиалога.да);
               
               Если Ответ=КодВозвратаДиалога.Нет тогда
                   
               Иначе
                   
                   ОтгрузкаВыполнена    = Ложь;
                   Попытка
                       
                       ЗаказПоОрдеру=НовыйДокумент.ДокументПередачи.Сделка;
                       Если ЗначениеЗаполнено(ЗаказПоОрдеру)тогда
                           Если  ЗаказПоОрдеру.LCG_СтатусЗаказа<>Перечисления.LCG_СтатусыЗаказов.Отгружен тогда
                               ИзменяемЗаказ=ЗаказПоОрдеру.ПолучитьОбъект();
                               ИзменяемЗаказ.LCG_СтатусЗаказа =Перечисления.LCG_СтатусыЗаказов.Отгружен;
                               ИзменяемЗаказ.Записать();
                           КонецЕсли;
                       КонецЕсли;
                       
                       НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
                       ОтгрузкаВыполнена    = Истина;
                       
                       //КонецЕсли;
                   Исключение
                       Попытка
                       НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
                       Сообщить("Не удалось провести документ:"+Символы.ПС+ОписаниеОшибки());
                       Исключение
                       Сообщить("Не удалось записать документ:"+Символы.ПС+ОписаниеОшибки());
                       КонецПопытки;
                   КонецПопытки;
           КонецЕсли;
           
       Иначе
           
           Сообщить("Товар по накладной "+ ВыборкаДетальныеЗаписи.Ссылка+ " отгружен полностью");
           Ответ=КодВозвратаДиалога.Нет;
           Ответ=Вопрос("Отменить отгрузку по накладной?  "+Символы.ПС+ВыборкаДетальныеЗаписи.Ссылка,РежимДиалогаВопрос.ДаНет,5, КодВозвратаДиалога.Нет,,КодВозвратаДиалога.Нет);
           Если ответ=КодВозвратаДиалога.Да тогда
               LCG_ОбщегоНазначения.ВыполнитьОтменуПроведенияРасходныхОрдеровПоНакладной(ВыборкаДетальныеЗаписи.Ссылка);
               ОтгрузкаВыполнена    = Ложь;
           КонецЕсли;
           
   КонецЕсли;        
           ДокументЗаказ    = ВыборкаДетальныеЗаписи.Сделка;
           Если ТипЗнч(ДокументЗаказ) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
               Попытка
                   ДокументЗаказОбъект    = ДокументЗаказ.ПолучитьОбъект();
               Исключение
                   //Возврат Истина;
               КонецПопытки;
               Если ОтгрузкаВыполнена = Истина Тогда
                   ДокументЗаказОбъект.LCG_СтатусЗаказа    = Перечисления.LCG_СтатусыЗаказов.Отгружен;
               Иначе
                   ДокументЗаказОбъект.LCG_СтатусЗаказа    = Перечисления.LCG_СтатусыЗаказов.Сформирован;
               КонецЕсли;
               
               Попытка
                   ДокументЗаказОбъект.Записать(РежимЗаписиДокумента.Запись);
               Исключение
                   //Возврат Истина;
               КонецПопытки;
           КонецЕсли;
           
           //Возврат Истина;
           КонецЦикла;
       КонецЕсли;    
   КонецЕсли;
   // } YA - LCG 2012.06.24
   
   Запрос = Новый Запрос(
   "ВЫБРАТЬ ПЕРВЫЕ 1
   |    СпрСН.Ссылка КАК СерийныйНомер
   |ИЗ
   |    Справочник.СерийныеНомера КАК СпрСН
   |ГДЕ
   |    (ВЫРАЗИТЬ(СпрСН.Код КАК СТРОКА(" + Формат(СтрДлина(ШК), "ЧН=0; ЧГ=0") + "))) = &Код");
   Запрос.УстановитьПараметр("Код", ШК);
   РезультатЗапроса = Запрос.Выполнить();
   Если Не РезультатЗапроса.Пустой() Тогда
       РезультатЗапроса = РезультатЗапроса.Выбрать();
       РезультатЗапроса.Следующий();

       Ответ = Клиент.СШКСерийныйНомер(РезультатЗапроса.СерийныйНомер, СШК);
       Если Ответ Тогда
           Возврат Результат;
       КонецЕсли;
   КонецЕсли;

   Если ЗначениеЗаполнено(мПрефиксВесовогоТовара)
        И ЗначениеЗаполнено(мДлинаКодаВесовогоТовара)
        И ТипШК = мEAN13
        И Лев(ШК, 2) = "2" + мПрефиксВесовогоТовара Тогда

       КодТовара        = Сред(ШК, 3, мДлинаКодаВесовогоТовара);
       КоличествоТовара = Сред(ШК, 3 + мДлинаКодаВесовогоТовара, 10 - мДлинаКодаВесовогоТовара);
       Запрос           = Новый Запрос(
       "ВЫБРАТЬ ПЕРВЫЕ 1
       |    РегКВТ.Номенклатура                         КАК Номенклатура,
       |    РегКВТ.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
       |    РегКВТ.ХарактеристикаНоменклатуры           КАК ХарактеристикаНоменклатуры,
       |    " + КоличествоТовара + " / 1000             КАК Количество,
       |    РегКВТ.СерияНоменклатуры                    КАК СерияНоменклатуры,
       |    ВЫБОР
       |        КОГДА РегКВТ.Качество = &КачествоПустаяСсылка ТОГДА
       |            &КачествоНовый
       |        ИНАЧЕ
       |            РегКВТ.Качество
       |    КОНЕЦ                                       КАК Качество
       |ИЗ
       |    РегистрСведений.КодыВесовогоТовара          КАК РегКВТ
       |ГДЕ
       |    РегКВТ.Код = &Код");
       Запрос.УстановитьПараметр("КачествоПустаяСсылка", мКачествоПустаяСсылка);
       Запрос.УстановитьПараметр("КачествоНовый",        мКачествоНовый);
       Запрос.УстановитьПараметр("Код",                  Число(КодТовара));

       РезультатЗапроса = Запрос.Выполнить();
       Если Не РезультатЗапроса.Пустой() Тогда
           РезультатЗапроса = РезультатЗапроса.Выбрать();
           РезультатЗапроса.Следующий();

           Ответ = Клиент.СШКНоменклатура(РезультатЗапроса.Номенклатура,
                                          РезультатЗапроса.ХарактеристикаНоменклатуры,
                                          РезультатЗапроса.СерияНоменклатуры,
                                          РезультатЗапроса.Качество,
                                          РезультатЗапроса.ЕдиницаИзмерения,
                                          РезультатЗапроса.Количество,
                                          СШК);
           Если Ответ Тогда
               Возврат Результат;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;

   Запрос = Новый Запрос(
   "ВЫБРАТЬ ПЕРВЫЕ 1
   |    РегШК.Владелец                   КАК Владелец,
   |    РегШК.ЕдиницаИзмерения           КАК ЕдиницаИзмерения,
   |    РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |    РегШК.СерияНоменклатуры          КАК СерияНоменклатуры,
   |    РегШК.Качество                   КАК Качество
   |ИЗ
   |    РегистрСведений.Штрихкоды        КАК РегШК
   |ГДЕ
   |    РегШК.Штрихкод = &Штрихкод");
   Запрос.УстановитьПараметр("Штрихкод", ШК);
   РезультатЗапроса = Запрос.Выполнить();
   Если Не РезультатЗапроса.Пустой() Тогда
       РезультатЗапроса = РезультатЗапроса.Выбрать();
       РезультатЗапроса.Следующий();
       Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.ИнформационныеКарты") Тогда
           Ответ = Клиент.СШКИнформационнаяКарта(РезультатЗапроса.Владелец, СШК);
           Если Ответ Тогда
               Возврат Результат;
           КонецЕсли;
       Иначе // Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.Номенклатура")
           Ответ = Клиент.СШКНоменклатура(РезультатЗапроса.Владелец,
                                          РезультатЗапроса.ХарактеристикаНоменклатуры,
                                          РезультатЗапроса.СерияНоменклатуры,
                                          РезультатЗапроса.Качество,
                                          РезультатЗапроса.ЕдиницаИзмерения,
                                          1,
                                          СШК);
           Если Ответ Тогда
               Возврат Результат;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;

   Ответ = Клиент.СШКНеизвестныйКод(ШК, ТипШК, СШК);
   Если Ответ Тогда
       Возврат Результат;
   КонецЕсли;

   Результат = мОшибкаНеизвестныйШтрихкод;
   Клиент.СШКОшибка(Результат, ШК, ТипШК, СШК);

   Возврат Результат;

КонецФункции // ОбработатьСобытиеСШК()
1 GLazNik
 
20.09.12
11:04
Ну это уже издевательство....
черным по белому написано:
  ИначеЕсли Лев(ШК,4) = "UIDR" Тогда

К какому Если это Иначе?
Ошибка? Это не ошибка, это системная функция.