Имя: Пароль:
1C
1С v8
почему не могу очистить владельца у справочника?
0 LivingStar
 
08.11.11
14:56
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |        ДоговорыКонтрагентов.Ссылка,
                  |        ДоговорыКонтрагентов.Владелец,
                  |        ДоговорыКонтрагентов.Наименование,
                  |        ДоговорыКонтрагентов.Организация
                  |    ИЗ
                  |        Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                  |    ГДЕ
                  |        ДоговорыКонтрагентов.Организация = &Орг";
   Запрос.УстановитьПараметр("Орг", Организация);
   Результат = Запрос.Выполнить().Выбрать();
   Пока Результат.Следующий() Цикл
       Объект = Результат.Ссылка.ПолучитьОбъект();
       Объект.Владелец = Справочники.Контрагенты.ПустаяСсылка();
       Объект.Записать();
   КонецЦикла;
1 LivingStar
 
08.11.11
14:56
При записи выдает ошибку, не верно задан владелец (
2 Maxus43
 
08.11.11
14:57
у подчинёного справочника должен быть владелец
3 Maxus43
 
08.11.11
14:57
можно сменить, но не удалить
4 Wobland
 
08.11.11
14:57
меня слово Объект смущает. ну и хоть бы сказал, как ругается, что ли
5 SuperMario
 
08.11.11
14:58
(0) в модуле объекта стоит проверка на пустого владельца.
6 hhhh
 
08.11.11
15:00
(1) вроде тебе нужно удалить эти договоры. Зачем владельца у них менять?
7 DrShad
 
08.11.11
15:03
(0) ОбменДанными.Загрузка = Истина
и будет тебе счастие
8 Maxus43
 
08.11.11
15:04
несчастье будет, ибо смысла нет в пустом владельце) смысл то в чем у (0)?
9 DrShad
 
08.11.11
15:06
(8) ну наверняка есть какой-то тайный смысл
10 hhhh
 
08.11.11
15:22
(9) он организует пул свободных договоров?
11 DrShad
 
08.11.11
16:12
(10) у ТС и спросите, а ему просто подсказал бомбу замедленного действия :)
12 LivingStar
 
08.11.11
17:32
хочу отвязать договора от контрагентов и удалить
13 LivingStar
 
08.11.11
17:33
так не дает их удалить так как есть подчененные объекты, контрагенты
14 Maxus43
 
08.11.11
17:33
(12) ну удаляй, зачем отвязывать то?
15 Maxus43
 
08.11.11
17:33
не даёт удалить потому что данный договор используется в каких-то документах. имхо
16 LivingStar
 
08.11.11
17:33
только с контрагентами удалить их можно?
17 LivingStar
 
08.11.11
17:34
(14) не дает кдалить говорю же, есть подчиненные объекты, удалить хотел программно
18 Maxus43
 
08.11.11
17:34
договорам контрагент подчинён быть не может, наоборот всё
19 Maxus43
 
08.11.11
17:35
ПосикСсылокНаОбъект поюзай, увидиш где договор засветился ещё
20 LivingStar
 
08.11.11
17:36
(19) ок
21 въезжаю в 1с
 
08.11.11
17:39
(0) договор подчинен контрагенту
продажи ведутся через договор, надо удалить его из документов где он фигурирует, а потом уже чистите справочник договора
22 hhhh
 
08.11.11
17:49
(20) кто тебе вычистил весь мозг? Нереально тупишь.
Надо не удалять владельца - это тебе не поможет, а ПРОСТО надо в контрагенте почистить поле "Основной договор".
23 Жан Пердежон
 
08.11.11
18:02
вот что 1с за 7 лет с человеком делает,
неужели и я таким буду
24 Morphius
 
08.11.11
18:36
(0)
Попробуй так:
Пока Результат.Следующий() Цикл
       Объект = Результат.Ссылка.ПолучитьОбъект();
       Объект.Владелец = Справочники.Контрагенты.ПустаяСсылка();
Объект.ОбменДанными.Загрузка=Истина;
       Объект.Записать();
   КонецЦикла;
25 Morphius
 
08.11.11
18:36
к (24) не увидел (7)
26 Lys
 
08.11.11
18:40
(17) Город какой - не Москва случаем?
27 GROOVY
 
08.11.11
18:57
(24) Ну раз уж пошли такие советы то:

Пока Результат.Следующий() Цикл
       Объект = Результат.Ссылка.ПолучитьОбъект();
       Объект.Удалить();
КонецЦикла;
28 GROOVY
 
08.11.11
18:59
Еще лучше так:
УстановитьПривилегированныйРежим(Истина);
НачатьТранзакцию();
Пока Результат.Следующий() Цикл
       Объект = Результат.Ссылка.ПолучитьОбъект();
       Объект.Удалить();
КонецЦикла;
ЗафиксироватьТранзакцию();
УстановитьПривилегированныйРежим(Ложь);
29 Jaffar
 
08.11.11
19:33
вы бы еще drop table предложили бы :-)
(17) это не у договора владельца удалять нужно, а в подчиненных объектах - ссылку на договор.
30 catena
 
08.11.11
20:29
Мама...
(13)У тебя каша в голове.
Владелец не может мешать удалению.
Если в контрагенте есть ссылка на договор - это скорее всего Основной договор, а никак не Владелец договора.
31 МишельЛагранж
 
08.11.11
21:56
... и никто из москалей тру-1сников "отстатыщ" так и не ответил, почему же Владельца-то можно поменять, но нельзя сделать пустым...
(23) именно таким и будешь, если не хуже. 1с и мск - близнецы-братья.
32 GROOVY
 
08.11.11
22:12
(31) А никто так вопрос и не ставил. А правильный ответ в (2). И его можно сделать пустым.
33 МишельЛагранж
 
08.11.11
22:19
(32) Владелец не может быть пустым ))
иначе где в "типа объектной модели 1с" будет находится пустой владелец? ))
34 GROOVY
 
08.11.11
22:27
(33) ПустаяСсылка это тоже ссылка. По факту очистка поля с типом ссылка приводит к записи туда именно этого значения. А выражение "где в "типа объектной модели 1с" будет находится пустой владелец" я если честно не понял вообще.

Подчиненные справочники, и другие метаданные аналитики в системе 1С:Предприятие по сути реализуют класическое подчинение "одни-ко-многим", при чем тут "объектная модель"?...
35 GROOVY
 
08.11.11
22:27
*один-ко-многим
36 МишельЛагранж
 
08.11.11
23:04
(34) как это "причем"??
даже псевдообъектная модель 1с подразумевает, что объект "Владелец" либо существует, и привязан к справочнику-владельцу, либо он не владелец, а просто ссылка куда-нибудь.
Или уже не подразумевает?
37 GROOVY
 
08.11.11
23:08
У 1С объектная модель (я не про ООП).
"Владелец" это не объект, а свойство. Свойство содержит ссылку на объект. Пустая ссылка на объект не ссылается.
38 МишельЛагранж
 
08.11.11
23:25
(37) и что имеем? пустая ссылка становится Владельцем? )
39 GROOVY
 
09.11.11
00:21
(38) Да чтож такое... В свойство элемента справочника с названием "Владелец" записывается значение "ПустаяСсылка". Чем тебе это не нравится то? Если поле называется "ХренЗнаетЧто" то там Пустая ссылка тебя не смущает? А в поле "Владелец" какие то принципиальные отличия есть чтоли?
40 AndrewKiev
 
09.11.11
00:32
(39)
в СП о свойстве Владелец сказано следующее:

Содержит ссылку на владельца элемента справочника.
Важно! При попытке записать элемент подчиненного справочника без указания владельца будет выдаваться ошибка.


Все таки, поле Владелец это не обычное поле, а поле, которое проверяется платформой (если справочник подчиненный) или я сделал неправильный вывод?
41 Живой Ископаемый
 
09.11.11
00:35
2(40) вы сделали правильный вывод что поле важное, и немного отличается... но всегда остается (7) когда мы говорим платформе - слушай тетка, не следи пожалуйста некоторое время...
42 Живой Ископаемый
 
09.11.11
00:36
поэтому оно необычное только до тех пор пока программист согласен играть честно и считать его необычным... Если его это не устраивает - он применяет читерство, санкционированное платформой и вендором в другой главе.
43 GROOVY
 
09.11.11
00:39
Живой Ископаемый абсолютно прав. Но все это реализовано в платформе исключительно ради "совместимости" с разработчиками конфигураций прошлых версий. Поле "Владелец" просто поле.
44 AndrewKiev
 
09.11.11
00:39
(41)
указание того, что ОбменДанными.Загрузка = Истина нужно тогда, когда в ПередЗаписью если ОбменДанными.Загрузка то выполняется Возврат, вроде..
45 Живой Ископаемый
 
09.11.11
00:40
2(44) чего-чего?
46 Живой Ископаемый
 
09.11.11
00:42
давайте договоримся - говорим только о том, в чем уверенны, пробовали, покопались в кишках... догадки, представления, смутные воспоминания оставим для веток раздела ЛАЙФ... угу?
47 AndrewKiev
 
09.11.11
00:45
(46)
полностью согласен, обладал неверной информацией..

только-что попробовал, действительно ОбменДанными.Загрузка = истина пускает без Владельца.
48 LivingStar
 
09.11.11
06:02
(22) корпоративы!
49 LivingStar
 
09.11.11
06:03
(48+) сотрудники корпоративные в смысле
50 LivingStar
 
09.11.11
06:18
да (27) решает задачу...