Имя: Пароль:
1C
1С v8
ЗуП вылетает при запуске определенной обработки, что делать?
0 svird
 
08.08.17
11:23
Есть дописка, которая обновляет документы расчета, введенные на основании увольнения. При запуске этой обработки программа тупо закрывается без каких либо сообщений. В отладчике ничего не видно. На тестовой дате, для которой сделал 1 документ проходит. Что делать еще? Тестирование запускал, вроде ошибок нету.
1 svird
 
08.08.17
11:34
где можно поковырять? замер производительности не помогает и остановка по ошибке тоже.
2 svird
 
08.08.17
12:46
происходит при записи регистра сведений из-за не уникального значения измерения. Но как это сообщить пользователю и почему вылетает программа?

Поставил на моменты записи:

Попытка
    НаборНомеровПриказа.Записать(Истина);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

Но они не срабатывают, ничего не сообщают, а прога просто закрывается.
3 Heckfy
 
08.08.17
12:48
Запусти сервер 1С Предприятия в режиме отладки.
4 piter3
 
08.08.17
12:48
и в журнале ничего?может посмотреть в модуль регистра еще
5 piter3
 
08.08.17
12:49
и кстати,а debug запущен,может просто не заходишь
6 svird
 
08.08.17
12:51
Отладка работает, я даже прохожу, но оно проявляется не на всех записях, а пока дойду до нужной уже не удается отследить на каком моменте оно выбрасывает конкретно, а перед выбросом не останавливается по ошибке.
(4) в модуле регистра тоже прерывания на ошибках поставил, но не натыкается.
7 piter3
 
08.08.17
12:52
(6) иди последовательно тогда.
8 svird
 
08.08.17
12:58
Я понял оно зависает в модуле регистра на такой конструкции:

Для Каждого Запись из ЭтотОбъект Цикл

начинает долбить ее до бесконечности и переполняется
9 svird
 
08.08.17
12:59
там возвращает одну и туже запись, как это преодолеть?
10 piter3
 
08.08.17
13:00
(9) Кто возвращает?Ничего не понятно
11 svird
 
08.08.17
13:02
Для Каждого Запись из ЭтотОбъект Цикл
        Если Запись.НомерПриказа = 0 Тогда
            Продолжить;
        КонецЕсли;
        Если СписокНомеров.НайтиПоЗначению(Запись.НомерПриказа) = Неопределено Тогда
            СписокНомеров.Добавить(Запись.НомерПриказа);
        Иначе
            ОбщегоНазначения.СообщитьОбОшибке("№ приказа "+Запись.НомерПриказа+" не уникален !!!",Отказ);
            Прервать;
        КонецЕсли;
    КонецЦикла;
12 svird
 
08.08.17
13:03
не срабатывает
Если СписокНомеров.НайтиПоЗначению(Запись.НомерПриказа) = Неопределено Тогда

оно добавляет один и тот же номер
13 piter3
 
08.08.17
13:09
(12) зачем в цикле поиск делать
14 svird
 
08.08.17
13:11
(13) Не я писал, сам удивляюсь, а как надо?
15 piter3
 
08.08.17
13:12
(14) Я задачу не понимаю.
16 svird
 
08.08.17
13:15
вот тема на подобии: Регистр сведений проверка на уникальность

Проверка уникальности измерения регистра сведений
17 svird
 
08.08.17
13:16
он в теме тоже через цикл сделал, еще и с запросом в цикле
18 piter3
 
08.08.17
13:22
замечательно,но цикл зачем нужен был.Есть записи уже тогда пиши не знаю там в журнал или еще как-то,нет тогда модифицируй или ничего не делай
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший