Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Помогите разобраться с Попытка/Исключение/КонецПопытки;

Помогите разобраться с Попытка/Исключение/КонецПопытки;
Я
   LeoKeyn
 
23.10.17 - 15:09
Не могу понять, пытаюсь создать новый документ и стадию Документ.Записать() помещаю в Попытку. Но выходит не понятная мне на этом этапе ошибка. Код;
<code>Попытка
    Документ.Записать();
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" успешно создан";
    Сообщение.КлючДанных = Документ.Ссылка;
    Сообщение.Сообщить();
    Исключение
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" не удалось записать. "+ОписаниеОшибки();
    Сообщение.КлючДанных = Документ.Ссылка;
    Сообщение.Сообщить();
    КонецПопытки;</code>
В итоге мне выдается такая ошибка:
{ВнешняяОбработка.ЗагрузкаДокументовБУХ.МодульОбъекта(93,14)}: Обнаружено логическое завершение исходного текста модуля
КонецПопытки<<?>> (Проверка: Сервер)
Никаких лишних ";" в конце процедур нет. Голову уже сломал, помогите кто знает, пожалуйста :)
 
 
   LeoKeyn
 
1 - 23.10.17 - 15:10
А главное, забыл добавить, если убрать конструкцию попытки, то ошибка не выходит в других местах. А значит, я так думаю, закралась у меня ошибка именно в этой Попытке :)
   Сергиус
 
2 - 23.10.17 - 15:18
(0)После КонецПопытки должна быть ;
   ejikbeznojek
 
3 - 23.10.17 - 15:20
   ejikbeznojek
 
4 - 23.10.17 - 15:23
(3) Полностью скопипастил твой текст.
Добавив 2 строчки перед твоим текстом
Документ=Документы.МониторингПодробный.ПустаяСсылка().ПолучитьОбъект();    
Счетчик=1;

у меня не ругается
   LeoKeyn
 
5 - 23.10.17 - 15:24
(3) Так вот оно и должно по идее работать, но не выходит именно в моей обработке) Значит сделал ошибки где то раньше получается?
   Fedor-1971
 
6 - 23.10.17 - 15:24
(0) измени: Срока(Счетчик)
Сообщение.КлючДанных = Документ.Ссылка; - т.е. ты хочешь нечто сообщить в привязке к созданному документу?
(3) так в (2) сказали "поставь ; после КонецПопытки". И да, это кусок текста, проверь что ДО Попытка, там точно ";" в конце строки есть?
   1c_July
 
7 - 23.10.17 - 15:24
(3) +1

Автору можно попробовать в его коде закомментировать все в попытке, кроме обрамляющих строк "попытка-исключение-конецпопытки" - если синтакс-контроль пройдет - раскомментировать по одной и проверять.
Ошибка вообще в неожиданном месте может оказаться.
   ejikbeznojek
 
8 - 23.10.17 - 15:26
(5)
А что у тебя в строчке 93?
.МодульОбъекта(93,14)
   LeoKeyn
 
9 - 23.10.17 - 15:26
(8) КонецПопытки;
   LeoKeyn
 
10 - 23.10.17 - 15:27
(7) Попробовал. Все равно выходит та же ошибка
 
 Рекламное место пустует
   Ёпрст
 
11 - 23.10.17 - 15:28
(10)
;
поставь
   Ёпрст
 
12 - 23.10.17 - 15:28
ну и больше текста
   1c_July
 
13 - 23.10.17 - 15:28
(10) в какой момент? когда еще пустая конструкция попытка-исключение-..?
   Ёпрст
 
14 - 23.10.17 - 15:29
кода.
   LeoKeyn
 
15 - 23.10.17 - 15:29
Для Счетчик = 1 По ВсегоСтрок Цикл
    Документ = Документы.АЭ_ЗаймПредоставленный.СоздатьДокумент();
    
    Документ.Номер = Строка();
    Документ.ДатаДокумента = ;
    Документ.Организация = Справочники.Организации.НайтиПоНаименованию(Строка());
    Документ.Ответственный = Справочники.Пользователи.НайтиПоНаименованию(Строка());
    Документ.Комментарий = Строка();
    Документ.РучнаяКорректировка = ;
    Документ.Подразделение = Справочники.Подразделения.НайтиПоНаименованию(Строка());
    Документ.Заявка = Документы.АЭ_ЗаявкаНаПредоставлениеЗайма.НайтиПоНомеру();
    Документ.ФинансовыйПродукт = Справочники.АЭ_ФинансовыеПродукты.НайтиПоНаименованию(Строка());
    Документ.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(Строка());
    Документ.СрокЗайма = Число();
    Документ.СрокЗаймаПериодичность = Перечисления["АЭ_ВидыДвижения"][Значение];
    Документ.СуммаЗайма = Число();
    Документ.Валюта = Справочники.Валюты.НайтиПоНаименованию(Строка());
    Документ.ПроцентнаяСтавкаВид = Перечисления["АЭ_ВидыПроцентнойСтавки"][Значение];
    Документ.ПроцентнаяСтавка = Число();
    Документ.ПроцентнаяСтавкаПериодичность = Перечисления["АЭ_ПериодичностьПроцентнойСтавки"][Значение];
    Документ.ПроцентнаяСтавкаВидСтавки = Справочники.АЭ_ВидыСтавок.НайтиПоНаименованию(Строка());
    Документ.ПроцентнаяСтавкаПериодичностьИнтервалов = Перечисления["АЭ_ПериодичностьПлатежа"][Значение];
    Документ.ВидПлатежаДляРасчетаГрафика = Перечисления["АЭ_ВидыПлатежейДляРасчетаГрафика"][Значение];
    Документ.ПереноситьДатуПлатежаНаРабочийДень = ;
    Документ.ОсновнойДолгСпособПогашения = Перечисления["АЭ_СпособыПогашенияЗаймов"][Значение];
    Документ.ОсновнойДолгПериодичностьПогашения = Перечисления["АЭ_ПериодичностьПлатежа"][Значение];
    Документ.ОсновнойДолгКоличествоПериодичностейПогашения = Число();
    Документ.ПроцентыСпособПогашения = Перечисления["АЭ_СпособыПогашенияЗаймов"][Значение];
    Документ.ПроцентыПериодичностьПогашения = Перечисления["АЭ_ПериодичностьПлатежа"][Значение];
    Документ.ПроцентыКоличествоПериодичностейПогашения = Число();
    Документ.ДатаНачала = ;
    Документ.ДатаОкончания = ;
    Документ.ДеньПлатежа = Число();
    Документ.ДополнительноеСоглашение = ;
    Документ.ОсновнойЗайм = Документы.АЭ_ЗаймПредоставленный.НайтиПоНомеру(Строка());
    Документ.СпособВыдачиЗайма = Справочники.АЭ_ФормыОплатыЗаймов.НайтиПоНаименованию(Строка());
    Документ.ОбеспеченныйЗайм = ;
    Документ.ИспользоватьКомиссии = ;
    Документ.НомерДоговора = Строка();
    Документ.ДатаДоговора = ;
    Документ.Агент = Справочники.Контрагенты.НайтиПоНаименованию(Сторока));
    Документ.ДоговорАгента = Документы.АЭ_АгентскийДоговорПоЗаймамПредоставленным.НайтиПоНомеру();
    Документ.СпособПодачиЗаявления = Перечисления["АЭ_СпособыПодачиЗаявления"][Значение];
    Документ.НазначениеЗайма = Справочники.АЭ_НазначенияЗаймов.НайтиПоНаименованию(Строка());
    Документ.Реструктуризирован = ;
    Документ.ГруппаЗаймаРВПЗ = Перечисления["АЭ_ГруппыЗаймовРВПЗ"][Значение];
    Документ.ИспользоватьЧленскиеВзносы = ;
    Документ.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(Строка());
    Документ.ДоговорКредитаДепозита = Справочники.БНФОДоговорыКредитовИДепозитов.НайтиПоНаименованию(Строка());
    Документ.ВидЗаймаБУ = Перечисления["АЭ_ГруппыСчетовПоЗаймам"][Значение];
    Документ.ИспользоватьШтрафы = ;
    Документ.ГрафикПлатежейЗайма = Документы.АЭ_ГрафикПлатежейЗаймаПредоставленного.НайтиПоНомеру();
    Документ.ОбеспеченныйЗаймЗалоги = ;
    Документ.ОбеспеченныйЗаймПоручительство = ;
    Документ.ОбеспеченныйЗаймБанковскаяГарантия = ;
    Документ.ПроцентнаяСтавкаНеСоответствуетРыночной = ;
    Документ.РыночнаяПроцентнаяСтавка = Число();
    Документ.СрокДоговораБолееГода = ;
    Документ.РазницаАСпоЭСПсущественна = ;
    Документ.МетодРасчетаПроцентов = Перечисления["АЭ_МетодыРасчетаПроцентовВРеглУчете"][Значение];
    Документ.ФормаОплаты = Справочники.АЭ_ФормыОплатыЗаймов.НайтиПоНаименованию(Строка());
    Документ.БанковскийСчетКонтрагента = Справочники.БанковскиеСчета.НайтиПоНаименованию(Строка());
    Документ.ЛьготныйПериодПросрочки = Число();
    Документ.Нерезидент = ;
    Документ.Идентификатор = Строка();
    Документ.ПлатежВПоследнийДеньМесяца = ;
    Документ.ОбособленныйУчетДопСоглашений = ;
    Документ.РасчетыВУсловныхЕдиницах = ;
    Документ.ПроцентнаяСтавкаПредставление = Строка();
    Документ.ВидДополнительногоСоглашения = Справочники.АЭ_ВидыДополнительныхСоглашенийЗаймов.НайтиПоНаименованию(Строка());
    Документ.Менеджер = Справочники.ФизическиеЛица.НайтиПоНаименованию(Строка());
    Документ.БазаРасчетаПроцентов = Перечисления["АЭ_БазыРасчетаНачислений"][Значение];
    Документ.ПрофильРаспределенияОплат = Справочники.АЭ_ПрофилиРаспределенияПлатежей.НайтиПоНаименованию(Строка());

    Попытка
    //Документ.Записать();

    //Сообщение = Новый СообщениеПользователю;

    //Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" успешно создан";

    //Сообщение.КлючДанных = Документ.Ссылка;

    //Сообщение.Сообщить();

    Исключение
    //Сообщение = Новый СообщениеПользователю;

    //Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" не удалось записать. "+ОписаниеОшибки();

    //Сообщение.КлючДанных = Документ.Ссылка;

    //Сообщение.Сообщить();

    КонецПопытки;

    КонецЦикла;
   Гипервизор
 
16 - 23.10.17 - 15:29
(0) Возможно где-то присутствует КонецПроцедуры; или КонецФункции;
   LeoKeyn
 
17 - 23.10.17 - 15:29
(15) Вот полный код процедуры(она единственная в модуле объекта)
   LeoKeyn
 
18 - 23.10.17 - 15:30
(16) Про это прочел, и десять раз убедился, что такого нет)
   LeoKeyn
 
19 - 23.10.17 - 15:30
(13) Даже при пустой
   Timon1405
 
20 - 23.10.17 - 15:30
//Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" успешно создан";

Сообщение.Текст = ""+Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" успешно создан";
   LeoKeyn
 
21 - 23.10.17 - 15:32
Ну и еще вопросик) Логично ли так заполнять новый документ или есть более оптимальный способ. Увы через запрос придумать не смог :( Не осуждайте, я пытаюсь как можно быстрее учиться :)
   mehfk
 
22 - 23.10.17 - 15:33
(15) Что за бред ?
 Документ.ДатаНачала = ;
    Документ.ДатаОкончания = ;
    Документ.ДеньПлатежа = Число();
    Документ.ДополнительноеСоглашение = ;
   Гипервизор
 
23 - 23.10.17 - 15:33
А вот такие конструкции вида:
"Документ.ДатаНачала = ;" - это нормально??
   Ёпрст
 
24 - 23.10.17 - 15:34
>>>
Документ.ПроцентнаяСтавка = Число();

Очень оригинально
   LeoKeyn
 
25 - 23.10.17 - 15:35
(22) (23) Извините, я понимаю, что выглядет глупо. Это заготовка под загрузку (пока не в курсе откуда вообще грузить Excel dbf или еще что). простите за такую глупость)
   1c_July
 
26 - 23.10.17 - 15:35
(15) если закомментировать все что выше попытки внутри цикла - у меня синтакс-контроль проходит. пробовать заполнять пустышки - неохота, попробуйте также и раскомментировать по кусочку - в какой момент появится ошибка отследить
   Ёпрст
 
27 - 23.10.17 - 15:36
>>>
 Документ.ВидПлатежаДляРасчетаГрафика = Перечисления["АЭ_ВидыПлатежейДляРасчетаГрафика"][Значение];

Очень современно, модно, мролодежно!
   LeoKeyn
 
28 - 23.10.17 - 15:37
(26) то есть вся проблема где-то в заполнении? и проверить точно получится(нормально) когда получу и начну нормально грузить документы? Хорошо, спасибо большое всем за помощь.
P.S. спасибо в принципе за этот форум и за ответы. Очень часто нахожу тут ответы на свои вопросы :) тему создал первый раз
   LeoKeyn
 
29 - 23.10.17 - 15:37
(27) я вычитал, что так можно :) а что не так?)
   LeoKeyn
 
30 - 23.10.17 - 15:38
(27) В теории даже проверил на работоспособность(получаю нужную ссылку)
   1c_July
 
31 - 23.10.17 - 15:38
(25) так это не для конфиденциальности "упрощено"? и что же, без попытки это ошибок не выдавало? в таком виде про конецпопытк это должна быть ошибка где-то в конце большого списка других - надо смотреть верх списка :)
   LeoKeyn
 
32 - 23.10.17 - 15:40
(31) да, естественно туча ошибок, но они в полне ясны и понятно из-за чего вылезли. А вот эта сильно смутила :) больше спортивный интерес понять, чем крайне критично на самом деле :) Поэтому спасибо всем еще раз за участие :)
   LeoKeyn
 
33 - 23.10.17 - 15:41
(31) И упрощено потому что мне сказали надо сделать, а откуда и как пока не известно)
 
 
   1c_July
 
34 - 23.10.17 - 15:41
(32) очень вероятно, что она уйдет, когда другие исправите
   LeoKeyn
 
35 - 23.10.17 - 15:42
(34) Ну тогда остается смотреть на практике и надеяться) спасибо


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует