Имя: Пароль:
1C
1С v8
Запрос не выводит значение "Проект"
,
0 nickname1c
 
10.11.14
09:49
ВЫБРАТЬ
    ВзаиморасчетыОстатки.Проект,
    ВзаиморасчетыОстатки.СуммаОстаток
ИЗ
    РегистрНакопления.Взаиморасчеты.Остатки(, ) КАК ВзаиморасчетыОстатки

УПОРЯДОЧИТЬ ПО
    ВзаиморасчетыОстатки.Проект.ДатаОплаты
Реквизит есть, справочник есть, связи..все здесь.
Но значение "проект" почему то запрос выдает как пустое поле
Подскажите причины
18 13_Mult
 
10.11.14
10:45
(16) + или Сумма есть, а Проета нет?
19 nickname1c
 
10.11.14
10:45
(9) Если кто не заметил тут полный код, может где ошибка?
20 Жан Пердежон
 
10.11.14
10:46
(19) попробуй итоги пересчитать, если не поможет - зови программиста
21 nickname1c
 
10.11.14
10:47
(18) Да , а если сгруппировать по проекту то ничего нет.
22 nickname1c
 
10.11.14
10:47
Я как бы и есть...начинающий)
23 hhhh
 
10.11.14
10:47
отладчик используй
24 GreatOne
 
10.11.14
10:49
ТИИ пересчет итогов?
25 13_Mult
 
10.11.14
10:49
Если ЗначениеЗаполнено(Проект) Тогда
    Прервать;
КонецЕсли;

точно этого нужно?
26 nickname1c
 
10.11.14
10:52
hhhh по отладчику я вижу что запрос не выполняется, ну он как бы пустой. Вот сижу ковыряю в консольке и спрашиваю ибо сам запрос ничего не выдает
27 13_Mult
 
10.11.14
10:52
(25) + может так
Если НЕ ЗначениеЗаполнено(Выборка.Проект) Тогда
    Прервать;
КонецЕсли;
28 nickname1c
 
10.11.14
10:52
(25) Могу закомментить врядли что то изменится
29 hhhh
 
10.11.14
10:54
уберите  И СуммаВсего>0
30 13_Mult
 
10.11.14
10:55
(26) отладь запрос в консоли потом и в код пихай )
31 nickname1c
 
10.11.14
10:56
(30) вот как раз не получается
32 nickname1c
 
10.11.14
10:57
(29) убрал...ноль на массу
33 hhhh
 
10.11.14
11:00
какая конфигурация?
34 nickname1c
 
10.11.14
11:00
(33) 8.3
35 hhhh
 
10.11.14
11:01
не платформа, конфигурация?
36 nickname1c
 
10.11.14
11:04
(35) предприятие
37 13_Mult
 
10.11.14
11:09
Покажи код как МоментВремени задаешь?
Попробуй так
МоментВремени = Новый МоментВремени(ЭтотОбъект.Дата, ЭтотОбъект.Ссылка);
38 nickname1c
 
10.11.14
11:09
(35) задача 1.9 специалист из раздела оперативный учет, не силен я еще в 1с сленге)
39 nickname1c
 
10.11.14
11:10
(37) я вообще его удалил
Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.Взаиморасчеты.Записывать = Истина;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВзаиморасчетыОстатки.Проект,
    |    ВзаиморасчетыОстатки.СуммаОстаток
    |ИЗ
    |    РегистрНакопления.Взаиморасчеты.Остатки(&МоментВремени, Контрагент = &Контрагент) КАК ВзаиморасчетыОстатки
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВзаиморасчетыОстатки.Проект.ДатаОплаты";
    
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Проект", Проект);
    
    Результат = Запрос.Выполнить();
    
    Выборка= Результат.Выбрать();
    СуммаВсего=Сумма;
    
    Пока Выборка.Следующий() И СуммаВсего>0 Цикл
        
        //погашение задолженности

        
        СуммаДвижения=МИН(Выборка.СуммаОстаток, СуммаВсего);
        
        Движение = Движения.Взаиморасчеты.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Проект = Выборка.Проект;
        Движение.Контрагент = Контрагент;
        Движение.Сумма = СуммаДвижения;
        
        СуммаВсего=СуммаВсего-СуммаДвижения;
        
        Если ЗначениеЗаполнено(Проект) Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
           Движения.Взаиморасчеты.Записать();

    Если СуммаВсего>0 Тогда //если сумма дока еще не равна нулю, то создается Аванс на контрагента

          //Перечисления.ВидыОплатыКонтрагента.Аванс = Истина ;

        Движение = Движения.Взаиморасчеты.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        //Если  Перечисления.ВидыОплатыКонтрагента.Аванс = Истина тогда

        Движение.Проект =  "Аванс";
    //Иначе

    //     Движение.Проект =  Проект;

    //     КонецЕсли;

        Движение.Контрагент = Контрагент;
        Движение.Сумма = СуммаВсего;
    КонецЕсли;
        Движения.Взаиморасчеты.Записать();
КонецПроцедуры
Вот полный код док.
40 13_Mult
 
10.11.14
11:12
(39) и что, все на месте
поставь в параметрах за место МоментВремени()
это  Новый МоментВремени(ЭтотОбъект.Дата, ЭтотОбъект.Ссылка);
41 nickname1c
 
10.11.14
11:13
(40) я проверяю запрос в консольке там момента времени нет я его удалил
42 13_Mult
 
10.11.14
11:14
(41) и что возвращает запрос без момента?
43 nickname1c
 
10.11.14
11:18
(42) сумму а проект нет
44 nickname1c
 
10.11.14
11:18
(42) в общем то тоже что и с ним
45 13_Mult
 
10.11.14
11:20
(43) Открой этот регистр и вручную сделай отбор по контрагенту. Что там с записями в Проекте?
46 ВРедная
 
10.11.14
11:21
(43) в твоем регистре у измерения проект стоит флаг Использование в итогах?
47 ВРедная
 
10.11.14
11:22
(46) а забей, это только для оборотных регистров
48 nickname1c
 
10.11.14
11:25
(46) да
49 nickname1c
 
10.11.14
11:25
(45) Тоже самое
50 13_Mult
 
10.11.14
11:27
(49) "Тоже самое" это Проект пустой?
51 nickname1c
 
10.11.14
11:28
(50) в точку
52 13_Mult
 
10.11.14
11:29
(51) так чего ты нам тут мозги паришь? )))
В регистре нет и нет в результате запроса.
53 nickname1c
 
10.11.14
11:33
(52) и я об этом) сорян, почему там нет то?
54 13_Mult
 
10.11.14
11:35
(53) ну например, ни кто не удосужился заполнять это измерение при записи регистра ))
55 nickname1c
 
10.11.14
11:42
(54) Подробнее
56 13_Mult
 
10.11.14
11:46
(55) http://helpme1c.ru/registry-nakopleniya-v-yazyke-1s-8-v-primerax
почитай книжки по разработке
57 nickname1c
 
10.11.14
11:50
(56) Зачем мне читать это все если ты  мне можешь сказать в одном предложении ? тем более что я записываю...движ есть но почему то не раб. и я пришел сюда для помощи..будте добрее
58 1sanekmaloi1
 
10.11.14
11:58
(55) Прочитай ему полный курс программирование 1с, тебе что жалко чтоли?
тем более он записывает :)
59 nickname1c
 
10.11.14
12:02
(58) смешно) но причем тут полный курс у меня где то сидит одна неточность которую я не вижу, и все, другое дело что вы скорее всего тоже ее не ведите, и начинаете отшучиваться
60 hhhh
 
10.11.14
12:02
(57) ну показывай, как движения в регистр записываешь.
61 nickname1c
 
10.11.14
12:05
Движения.Взаиморасчеты.Записать();
    Движения.Взаиморасчеты.Записывать = Истина;
62 nickname1c
 
10.11.14
12:42
Опаньки
63 nickname1c
 
10.11.14
13:02
(62) Апаньки
64 1sanekmaloi1
 
10.11.14
13:04
Вангую: тип у измерения "проект" не совпадает с типом который ты пишешь в движения
65 1sanekmaloi1
 
10.11.14
13:08
+ (64) хотя может и нет, но смысл тебе объяснили если в регистре Взаиморасчеты измерение не заполнено, то и во всех запросах оно не появится
66 hhhh
 
10.11.14
13:10
(61) не прикалывайся. Показывай всю запись, проект как записывается.
67 1sanekmaloi1
 
10.11.14
13:13
и если уж на то пошло, что сам ты задачу решать не хочешь, то структуру регистра тоже, какие доки пишут движения кроме этого, скорее всего в них ошибка и они при проведении не пишут проект, сделай его как минимум обязательным для заполнения
68 1sanekmaloi1
 
10.11.14
13:13
(67) это + к (61)
69 13_Mult
 
10.11.14
13:16
Не есть хорошо сначала запрос к пустым регистрам делать, а потом если есть результат пытаться в них чего-то записать. ))
70 nickname1c
 
10.11.14
13:46
(64) неа
71 nickname1c
 
10.11.14
13:47
(66) 10 раз скидывал полный код держи еще

Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.Взаиморасчеты.Записывать = Истина;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВзаиморасчетыОстатки.Проект,
    |    ВзаиморасчетыОстатки.СуммаОстаток
    |ИЗ
    |    РегистрНакопления.Взаиморасчеты.Остатки(&МоментВремени, Контрагент = &Контрагент) КАК ВзаиморасчетыОстатки
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВзаиморасчетыОстатки.Проект.ДатаОплаты";
    
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Проект", Проект);
    
    Результат = Запрос.Выполнить();
    
    Выборка= Результат.Выбрать();
    СуммаВсего=Сумма;
    
    Пока Выборка.Следующий() Цикл
                    //И СуммаВсего>0
        //погашение задолженности
        
        СуммаДвижения=МИН(Выборка.СуммаОстаток, СуммаВсего);
        
        Движение = Движения.Взаиморасчеты.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Проект = Выборка.Проект;
        Движение.Контрагент = Контрагент;
        Движение.Сумма = СуммаДвижения;
        
        СуммаВсего=СуммаВсего-СуммаДвижения;
           Движения.Взаиморасчеты.Записать();
        Если ЗначениеЗаполнено(Выборка.Проект) Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
          

    Если СуммаВсего>0 Тогда //если сумма дока еще не равна нулю, то создается Аванс на контрагента
          //Перечисления.ВидыОплатыКонтрагента.Аванс = Истина ;
        Движение = Движения.Взаиморасчеты.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        //Если  Перечисления.ВидыОплатыКонтрагента.Аванс = Истина тогда
        Движение.Проект =  "Аванс";
    //Иначе
    //     Движение.Проект =  Проект;
    //     КонецЕсли;
        Движение.Контрагент = Контрагент;
        Движение.Сумма = СуммаВсего;
    КонецЕсли;
        Движения.Взаиморасчеты.Записать();
КонецПроцедуры
72 nickname1c
 
10.11.14
13:47
(67) я хочу но уже 3 день не получва
73 vicof
 
10.11.14
13:47
(71) Тип указывается в метаданных, а не в коде
74 nickname1c
 
10.11.14
14:02
(73) указывал
75 vicof
 
10.11.14
14:04
(74) ну и какой он там?
76 nickname1c
 
10.11.14
14:30
(75) справочник проект
77 nickname1c
 
10.11.14
14:39
Какая то круговерть, получается что у меня нет ничего в запросе потому что нет ничего в рег а в рег у меня нет ничего потому что нет ничего в запросе
78 ВРедная
 
10.11.14
14:47
(76) Как тогда понимать эту строку:

Движение.Проект =  "Аванс";
79 1sanekmaloi1
 
10.11.14
14:47
еще раз спрашиваю кроме этого документа кто пишет в регистр?

Движение.Проект = Проект;
80 1sanekmaloi1
 
10.11.14
14:48
сделай так как в (79) чтоб проект брался из дока, а не из выборки
81 nickname1c
 
10.11.14
14:55
(76) Как тогда понимать эту строку:

Движение.Проект =  "Аванс";
если сумма переваливает за долг то должно на аванс ложить 2 движения должно быть
82 1sanekmaloi1
 
10.11.14
14:55
+(78) ему еще в (64)  наванговал, а он не понимает
83 nickname1c
 
10.11.14
14:56
(82) объясни более понятнее тогда
84 1sanekmaloi1
 
10.11.14
14:57
у тебя в регистре измерение" проект "тип - справончникссылка.проект, а ты ему строку пихаешь, платформа не могет его преобразовать и пишет пустое значение проетка, зафигач предопределенное значение проекта "аванс" и пихай в нужном месте
85 nickname1c
 
10.11.14
14:57
в 81 я описал идею....и почему тогда Движение.Проект = Выборка.Проект;
не берет а берет аванс причем текста так и не получили
86 nickname1c
 
10.11.14
14:58
84 а почему как в 85 происходит? пред идущее стирает?
87 nickname1c
 
10.11.14
14:58
1sanekmaloi1 спасибо первый дельный совет"!
88 nickname1c
 
10.11.14
14:59
но все равно оно мне запишит всю сумму кк авванс а нужно два движения одно долг другое аванс
89 hhhh
 
10.11.14
15:00
у вас должен быть второй документ, который пишет в регистр Взаиморасчеты.
90 Timon1405
 
10.11.14
15:01
либо вся ветка жесткий троллинг, либо ТС нужно сначала читать Радченко, а потом браться за "задачу 1.9 специалист из раздела оперативный учет"
91 1sanekmaloi1
 
10.11.14
15:02
когда неправильно спроектирован документ, регистр и т.д. получается как у тебя.
92 1sanekmaloi1
 
10.11.14
15:03
(90) +1, если не троль, то тогда рановато за задачи по спецу
93 nickname1c
 
10.11.14
15:04
1sanekmaloi1 все пред идущее решил) радченко прошел...
94 nickname1c
 
10.11.14
15:05
троль троль задолбала мода на это троль вы забываете о нубах)
95 Timon1405
 
10.11.14
15:08
что мешает спросить на тематическом форуме http://forum.chistov.pro/index.php?topic=992.msg1#msg1
качни пару чужих решений> сравни со своим> выкинь свое> напиши свое с нуля>профит
96 1sanekmaloi1
 
10.11.14
15:09
если решил, то должен понимать что при чистом регистре, первому документу никак 2 записи не сделать одновременно т.к. выборка 100% пустая, значит первое условие мимо и делается вся сумма как аванс.
вроде все верно
но даже второй док с такими же параметрами тоже не сделает 2 движения, т.к. выборка опять пустая из-за проект<>аванс, в регистре все на авансе и опять в аванс все попадет
вот тут возникает вопрос, где документ который делает расход???
97 nickname1c
 
10.11.14
15:10
(96) есть, а предопределенные это субконто?
98 1sanekmaloi1
 
10.11.14
15:10
(96) если "прорешал" все задачи так же как эту, то его похоже там забанили))
99 nickname1c
 
10.11.14
15:12
(98) нормально решал........эта сложнее там такого не было фифо лифо в основном....
100 1sanekmaloi1
 
10.11.14
15:16
(97) предопределенное значение это предопределенное значение, увы это не субконто
101 1sanekmaloi1
 
10.11.14
15:17
блин, сотку испортил
102 nickname1c
 
10.11.14
15:20
(100) (100) мне справочнике "проект" создать реквезит аванс булеыо и сделать проверку если истина то аванс иначе гасим так пойдет?
103 vicof
 
10.11.14
15:22
(102) не реквизит, а предопределенное значение. Не по реквизиту смотрим,а по регистру взаиморасчетов.
104 1sanekmaloi1
 
10.11.14
15:26
У тебя проект несет какую то левую функцию,кроме аванса что еще может быть?
105 1sanekmaloi1
 
10.11.14
15:28
с такой структурой если не будет докмента двигающего расход по проекту = "авансу", он у тебя никогда в "0" не закроектся
106 1sanekmaloi1
 
10.11.14
15:30
так коллеги, оставлю вас, пойду лучше полезным займусь чемнить
107 nickname1c
 
10.11.14
15:33
(105) да есть у меня расходник ну
108 vicof
 
10.11.14
15:58
(107) С таким отношением к предмету и окружающим успехов будешь добиваться очень долго.
109 Жан Пердежон
 
10.11.14
16:03
(107) зайди в регистр через все функции, сделай отбор по проекту, сделай скриншот и выложь сюда
110 nickname1c
 
10.11.14
16:20
(108) потому что надоели везде одни умники а подсказать толком не могут
111 nickname1c
 
10.11.14
16:24
Сделал так

Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.Взаиморасчеты.Записывать = Истина;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВзаиморасчетыОстатки.Проект,
    |    ВзаиморасчетыОстатки.СуммаОстаток
    |ИЗ
    |    РегистрНакопления.Взаиморасчеты.Остатки(&МоментВремени, Контрагент = &Контрагент) КАК ВзаиморасчетыОстатки
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВзаиморасчетыОстатки.Проект.ДатаОплаты";
    
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Проект", Проект);
    
    Результат = Запрос.Выполнить();
    
    Выборка= Результат.Выбрать();
    СуммаВсего=Сумма;
    
    Пока Выборка.Следующий() Цикл
                    //И СуммаВсего>0
        //погашение задолженности
        
        СуммаДвижения=МИН(Выборка.СуммаОстаток, СуммаВсего);
        
        Движение = Движения.Взаиморасчеты.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Проект = Выборка.Проект;
        Движение.Контрагент = Контрагент;
        Движение.Сумма = СуммаДвижения;
        
        СуммаВсего=СуммаВсего-СуммаДвижения;
           Движения.Взаиморасчеты.Записать();
        Если ЗначениеЗаполнено(Выборка.Проект) Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
          

    Если СуммаВсего>0 Тогда //если сумма дока еще не равна нулю, то создается Аванс на контрагента
        
        Движение = Движения.Взаиморасчеты.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Аванс =  "Аванс";
        Движение.Контрагент = Контрагент;
        Движение.Сумма = СуммаВсего;
    КонецЕсли;
        Движения.Взаиморасчеты.Записать();
КонецПроцедуры
112 nickname1c
 
10.11.14
16:28
предопределенное значение в 1 с это что измерение или что? в рег накоплени нет такого "предопределенное значение
113 nickname1c
 
10.11.14
16:29
ладно пофигу можно удалять пост буду с нуля поднимать..
114 vicof
 
10.11.14
16:41
(112) По справочник ПКМ - открыть предопределенные данные. (110) Вот поэтому сначала книжки читать надо.
115 nickname1c
 
10.11.14
16:46
114 с первого раза всего не запомнить
116 1sanekmaloi1
 
10.11.14
16:48
(114)а что такое ПКМ?

приблизительно так выглядят все вопросы автора

а убеждение в том что он "прорешал" задачи и не знает что такое предопределенное значение, ложно

поэтому отпадает желание объяснять
117 nickname1c
 
10.11.14
17:30
(116) лок только вот проблема в том что мне еще и по радченко 1 глава и по 1.1-1.9 не пригодились предопределенные, они решаются без них могу выложить решения...умники одни...(114)а что такое ПКМ? приблизительно так выглядят все вопросы автора
если вы их так видите не означает что так и есть....
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший