Имя: Пароль:
1C
1С v8
Как заменить тип NULL на пустое значение типа СправочникСсылка
0 Yukka
 
02.09.11
09:16
Доброе утро всем!

В базе есть документы ОперацияБух, где в полях ВалютаДт и ВалютаКт пустое значение типа NULL. Можно ли как-то заменить его на Справочники.Валюты.ПустаяСсылка()?

Дело в том, что в отчетах, если стоит галка "Валюта" такие операции выделяются в отдельный блок.

Пишу:


НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Значение = Результат.Регистратор;
НаборЗаписей.Прочитать();

Для каждого ЗаписьНЗ Из НаборЗаписей Цикл
                       
   Если записьНЗ.ВалютаДт = NULL Тогда
       записьнз.ВалютаДт = Справочники.Валюты.ПустаяСсылка();
   конецесли;
   Если ЗаписьНЗ.ВалютаКт = NULL Тогда
       записьнз.ВалютаКт = Справочники.Валюты.ПустаяСсылка();
   КонецЕсли;
           
конеццикла;
НаборЗаписей.Записать();

Но это не работает.
1 lxs
 
02.09.11
09:17
Отладчиком смотрел? Там точно null? Может неопределено?
2 lxs
 
02.09.11
09:18
*смотрелА
3 Ненавижу 1С
 
гуру
02.09.11
09:18
ща, подождите, кофе схожу налью себе
4 catena
 
02.09.11
09:18
"= NULL " <=> "= Неопределено "
5 Нуф-Нуф
 
02.09.11
09:18
может быть счет не валютный и соответственно там пусто?
6 lxs
 
02.09.11
09:18
Хотя в регистре Неопределено.. Это отголоски переноса?
7 lxs
 
02.09.11
09:19
(5) Если пусто, значит при нормальной ситуации будет пустая ссылка.
8 lxs
 
02.09.11
09:19
(3) круассаны не забудь
9 Yukka
 
02.09.11
09:22
Точно NUll, да результат переноса. Причем, часть проводкой с пустой ссылкой на справочник, а часть с NULL.
10 catena
 
02.09.11
09:24
(9)Поменяй в коде NULL на Неопределено!
11 lxs
 
02.09.11
09:26
(10) в (1) уже сказано.. Пока не реагирует..)
12 Ненавижу 1С
 
гуру
02.09.11
09:26
Если Не ЗначениеЗаполнено(ЗаписьНЗ.ВалютаКт) Тогда
13 catena
 
02.09.11
09:27
(11)Может она намек не поняла...
14 Ненавижу 1С
 
гуру
02.09.11
09:27
гыгы
15 hhhh
 
02.09.11
09:29
(9) ТИИ попробуйте.
16 Yukka
 
02.09.11
09:29
(10), (11), (12)  

там действительно стоит не неопределно, а NULL/
Условие

Если записьНЗ.ВалютаДт = NULL Тогда

срабатывает. И даже происходит присвоение пустой ссылки. Но после записи набора все равно остатся NULL
17 hhhh
 
02.09.11
09:31
(16) ну тогда (5) читайте.
18 Ненавижу 1С
 
гуру
02.09.11
09:41
подождите закрывать тему
19 ptiz
 
02.09.11
09:51
Валюты в записи по невалютному счету не существует в принципе. Туда нельзя ничего записать.
20 Yukka
 
02.09.11
09:52
(17), (19) признак валютный у счета не стоит. Но у субконто стоит галка "Валюта".
21 ZanderZ
 
02.09.11
10:00
(20) может в модуле набора записей код который не дает записывать Валюту на не валютный счет.
22 Mort
 
02.09.11
10:02
АДЪ
23 hhhh
 
02.09.11
10:04
(20) ну если счет не валютный, то валюта там будет MULL всегда. Придется вам как-то с этим жить.
24 hhhh
 
02.09.11
10:04
(23)+ NULL
25 Ненавижу 1С
 
гуру
02.09.11
10:08
26 Лефмихалыч
 
02.09.11
10:16
(0) на прошлой работе была такая же проблема. Мы ее кажись прямым запросом по замене значений решили. Если не забуду, вечером кину скрипт - он дома, а я на работе.
27 Mort
 
02.09.11
10:18
Эти пляски с бубном либо от некорректно поставленной задачи или от некомпетентности исполнителей.
28 acsent
 
02.09.11
10:19
Если НЕ Проводка.СчетДт.Валютный Тогда
 Проводка.ВалютаДт = Неопределено;
КонецЕсли;
29 Лефмихалыч
 
02.09.11
10:21
(27) либо от того, что признак валютного учета в счете поменяли, когда по нему уже были каике-то проводки.
Хотя - это тоже рукожопость и головтяпство...
30 acsent
 
02.09.11
10:23
31 acsent
 
02.09.11
10:24
(29) Не из-за этого. Причины появления такой ошибки пока не установлены
32 vde69
 
02.09.11
10:28
1. сделай тестирование и исправление, есть старый косяк в 13 платформе (некорректная реструктуризация)

2. НаборЗаписей неправильно работает с сабщем причина - набор содержит записи разных счетов (и валютные и не валютные) и по этому в набор можно записать значение которое в базу не будет записано в принцепе
33 NcSteel
 
02.09.11
11:10
(26) Не публикуйте алгоритмы взлома и ссылки на такие алгоритмы, а также всевозможные "патчи", "крэки", "эмуляторы", "серийные номера", "коды активации" и т.д.
34 zak555
 
02.09.11
11:18
может переписать запрос, по получении всех движений с условием на пустую ссылку

ЕСТЬNULL(РегистрыБухгалтерииХозрасчетный.ВалютаДт , Справочники.Валюты.ПустаяСсылка()) КАК ВалютаДт,
ЕСТЬNULL(РегистрыБухгалтерииХозрасчетный.ВалютаКт , Справочники.Валюты.ПустаяСсылка()) КАК ВалютаКт

и если он выполнился загрухить в регистр ?
35 zak555
 
02.09.11
11:24
или так нельзя ?
36 Yukka
 
02.09.11
11:36
(34), (35)

я пробовала - не просто переписывать в существущей записи набора валюту,
а очищать и создавать новые записи. Все равно null. похоже это связано со счетами, т.е. потому что не установлен признак валютного учета.
37 zak555
 
02.09.11
11:38
(36) 8ку не знаю
предположил - может этот вариант покатит