Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Тамика
Котовчанин
931 / 471 / 200
Регистрация: 16.02.2010
Сообщений: 3,320
Записей в блоге: 37
1

Программа на останавливается на брейкпоинте

04.05.2016, 16:40. Просмотров 933. Ответов 14
Метки нет (Все метки)

Есть такой код, хочу проверить верно ли упорядочивает по датам результаты запроса. Поставила брейкпоинт, не реагирует... Не могу понять почему.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
&НаКлиенте
Процедура СуммаПриИзменении(Элемент)
          СуммаПриИзмененииНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура СуммаПриИзмененииНаСервере()
    Запрос = Новый Запрос();
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВзаиморассчётыПоПроектамОстатки.Контрагент,
                   |    ВзаиморассчётыПоПроектамОстатки.СуммаОстаток
                   |ИЗ
                   |    РегистрНакопления.ВзаиморассчётыПоПроектам.Остатки КАК ВзаиморассчётыПоПроектамОстатки
                   |ГДЕ 
                   |    ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент"
                   ;
        Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
               
    Остатки = Запрос.Выполнить();
    Если Объект.Проект = ""
        //Тогда 
        //Если Остатки.Выгрузить()[1] < 0
            Тогда 
                Запрос2 = Новый Запрос();
                Запрос2.Текст = "ВЫБРАТЬ
                               |    ВзаиморассчётыПоПроектам.Контрагент,
                               |    ВзаиморассчётыПоПроектам.Проект
                               |ИЗ
                               |    РегистрНакопления.ВзаиморассчётыПоПроектам КАК ВзаиморассчётыПоПроектам
                               |ГДЕ 
                               |    ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент
                               |УПОРЯДОЧИТЬ ПО
                               |    ВзаиморассчётыПоПроектам.Период"
                               ;
        Запрос2.УстановитьПараметр("Контрагент", Объект.Контрагент);
                
            Сумма = 0;      // ЗДЕСЬ СТОИТ БРЕЙКПОИНТ          
        //Иначе // Если остатки больше нуля
        //  Объект.Проект = Справочники.Проекты.Аванс;
        КонецЕсли 
    //КонецЕсли     
    
КонецПроцедуры
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2016, 16:40
Ответы с готовыми решениями:

Останавливается программа
Программа выводит на экран сообщения и если прислали сообщение &quot;привет&quot; , то она отвечает, но после...

Программа не останавливается в нужный момент
Программа должна выводить близнецов не выше числа n*2, но она это делает. Вот условие, если...

Программа останавливается без ошибок на fopen
Добрый вечер. Программа останавливается без ошибок или сообщений дебагера на строчке 190....

Программа останавливается без ошибок на fopen
Добрый вечер. Программа останавливается без ошибок или сообщений дебагера на строчке 190....

После ввода чисел программа останавливается
После ввода чисел программа просто останавливается. #include &lt;iostream&gt; #include &lt;cmath&gt;...

14
Tklwegsd
Эксперт 1С
787 / 564 / 195
Регистрация: 24.07.2013
Сообщений: 1,971
04.05.2016, 16:46 2
Перезапустите отладку еще раз.
1
SpiRUS
10 / 10 / 5
Регистрация: 23.06.2015
Сообщений: 74
04.05.2016, 16:48 3
Тамика, а
1C
1
Если Объект.Проект = ""
точно равен ""? Может на этой строчке поставить брейкпоинт попробовать
1
Тамика
Котовчанин
931 / 471 / 200
Регистрация: 16.02.2010
Сообщений: 3,320
Записей в блоге: 37
04.05.2016, 16:50  [ТС] 4
Tklwegsd, всё равно...

SpiRUS, а вот хз... Как правильно организовать проверку на пустую строку? Я плюсишница, потому думала что тут тоже так
0
04.05.2016, 16:50
SpiRUS
10 / 10 / 5
Регистрация: 23.06.2015
Сообщений: 74
04.05.2016, 16:53 5
Тамика, ну при установке брейкпоинта на пустую строку он пересходит на следующую не пустую.
Просто если не выполняетяс условие "Если" то он не перейдет на нее
1
Тамика
Котовчанин
931 / 471 / 200
Регистрация: 16.02.2010
Сообщений: 3,320
Записей в блоге: 37
04.05.2016, 17:28  [ТС] 6
SpiRUS, а как проверить, что в реквизите что-то записано или пусто?
0
SpiRUS
10 / 10 / 5
Регистрация: 23.06.2015
Сообщений: 74
04.05.2016, 17:44 7
Лучший ответ Сообщение было отмечено Тамика как решение

Решение

Тамика, после остановки выделяешь его, затем ПКМ -> "Вычислить выражение". Либо Shift+F9
Программа на останавливается на брейкпоинте
1
Тамика
Котовчанин
931 / 471 / 200
Регистрация: 16.02.2010
Сообщений: 3,320
Записей в блоге: 37
04.05.2016, 18:32  [ТС] 8
SpiRUS, простите за недалёкость - сделала как Вы сказали, посмотрела значение и теперь совсем в недоумении. Значение реквизита "", но почему не выполняются действия после? Условие ведь выполняется. Компилятор должен был зайти в блок Тогда... Что я не так понимаю?
0
SpiRUS
10 / 10 / 5
Регистрация: 23.06.2015
Сообщений: 74
04.05.2016, 18:40 9
Можно попробовать
1C
1
2
3
Если ПустаяСтрока(Объект.Проект) Тогда
        
    КонецЕсли;
Если ПустаяСтрока(Объект.Проект) будет равно Истине то он обязан будет перейти
1
Jackshi
59 / 59 / 6
Регистрация: 16.01.2013
Сообщений: 155
04.05.2016, 18:46 10
Тамика, Поможет великий и могучий скрин. Скрин в студию)))
1
GreenkA
Форумчанин
Эксперт 1С
3003 / 1923 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
04.05.2016, 18:57 11
Лучший ответ Сообщение было отмечено Тамика как решение

Решение

Тамика, какой тип Объект.Проект? Может через
1C
1
Если Не ЗначениеЗаполнено(Объект.Проект) Тогда //для ссылочных типов и для строк годится
1
Тамика
Котовчанин
931 / 471 / 200
Регистрация: 16.02.2010
Сообщений: 3,320
Записей в блоге: 37
06.05.2016, 15:26  [ТС] 12
Цитата Сообщение от GreenkA Посмотреть сообщение
какой тип Объект.Проект?
Справочник.Ссылка. Сейчас попробую Ваш способ.

Не по теме:

з.ы. у одной меня вчера весь день не работал форум?..



Добавлено через 1 минуту
GreenkA, работает! Но появилась новая ошибка... В гугле не нашла информацию о ней...
Текст ошибки
Кликните здесь для просмотра всего текста
{Документ.ПриходДенег.Форма.ФормаДокумента.Форма(38)}: Ошибка при вызове метода контекста (Выполнить)
УпорядоченныеПоДатеПроекты = Запрос2.Выполнить();
по причине:
{(7, 5)}: Поле не найдено "ВзаиморассчётыПоПроектамОстатки.Контрагент"
<<?>>ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент


Код
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Процедура СуммаПриИзмененииНаСервере()
    Запрос = Новый Запрос();
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВзаиморассчётыПоПроектамОстатки.Контрагент,
                   |    ВзаиморассчётыПоПроектамОстатки.СуммаОстаток
                   |ИЗ
                   |    РегистрНакопления.ВзаиморассчётыПоПроектам.Остатки КАК ВзаиморассчётыПоПроектамОстатки
                   |ГДЕ 
                   |    ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент"
                   ;
    Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);   
    Остатки = Запрос.Выполнить(); 
    //Если НЕ ЗначениеЗаполнено(Объект.Проект)
    //  Тогда 
    //  Если Остатки.Выгрузить()[0] < 0
    //      Тогда 
                Запрос2 = Новый Запрос();
                Запрос2.Текст = "ВЫБРАТЬ
                               |    ВзаиморассчётыПоПроектам.Контрагент,
                               |    ВзаиморассчётыПоПроектам.Проект
                               |ИЗ
                               |    РегистрНакопления.ВзаиморассчётыПоПроектам КАК ВзаиморассчётыПоПроектам
                               |ГДЕ 
                               |    ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент
                               |УПОРЯДОЧИТЬ ПО
                               |    ВзаиморассчётыПоПроектам.Период"
                               ;
        Запрос2.УстановитьПараметр("Контрагент", Объект.Контрагент);
        УпорядоченныеПоДатеПроекты = Запрос2.Выполнить();
        Сумма = 0;
        
        //Иначе 
        //  Объект.Проект = Справочники.Проекты.Аванс;
        //КонецЕсли 
    //КонецЕсли     
    
КонецПроцедуры
0
SpiRUS
10 / 10 / 5
Регистрация: 23.06.2015
Сообщений: 74
06.05.2016, 15:35 13
Лучший ответ Сообщение было отмечено Тамика как решение

Решение

1C
1
2
3
4
5
6
7
8
9
Запрос2.Текст = "ВЫБРАТЬ 
| ВзаиморассчётыПоПроектам.Контрагент, 
| ВзаиморассчётыПоПроектам.Проект 
|ИЗ 
| РегистрНакопления.ВзаиморассчётыПоПроектам КАК ВзаиморассчётыПоПроектам 
|ГДЕ 
| ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент 
|УПОРЯДОЧИТЬ ПО 
| ВзаиморассчётыПоПроектам.Период"
Наверно ВзаиморассчётыПоПроектамОстатки.Контрагент нужно заменить на ВзаиморассчётыПоПроектам.Контрагент.
1
Jackshi
59 / 59 / 6
Регистрация: 16.01.2013
Сообщений: 155
06.05.2016, 15:38 14
Лучший ответ Сообщение было отмечено Тамика как решение

Решение

Тамика, Добавлено через 1 минуту
В тексте второго запроса вместо "ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент" вставьте "ВзаиморассчётыПоПроектам.Контрагент = &Контрагент"
1
Тамика
Котовчанин
931 / 471 / 200
Регистрация: 16.02.2010
Сообщений: 3,320
Записей в блоге: 37
06.05.2016, 15:49  [ТС] 15
Jackshi, SpiRUS, точно! Спасибо большое!
0
06.05.2016, 15:49
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2016, 15:49

По Лафору пример, программа останавливается на строке delete[] name;
#include &lt;iostream&gt; #include &lt;cstring&gt; char *getname(void); using namespace std; int main()...

Программа останавливается во время чтения строк из массива
// . . . . . // . . . # # // . . # # # // . . . # # // . . . . . var a:array of...

Программа останавливается после ввода имени файла
В файле данные типа 1 2 45 1 3 60 1 4 60 и их надо считать в map и вывести, проблема, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.