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

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

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

    Попытка
    //Документ.Записать();
    //Сообщение = Новый СообщениеПользователю;
    //Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" успешно создан";
    //Сообщение.КлючДанных = Документ.Ссылка;
    //Сообщение.Сообщить();
    Исключение
    //Сообщение = Новый СообщениеПользователю;
    //Сообщение.Текст = Счетчик+". Документ "+Документ.НомерДоговора+" от "+Документ.Дата+" не удалось записать. "+ОписаниеОшибки();
    //Сообщение.КлючДанных = Документ.Ссылка;
    //Сообщение.Сообщить();
    КонецПопытки;

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

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

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