Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 21:10
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Документ ссылается сам на себя?..  (Прочитано 6332 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Leviathan

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2010-12-21
  • Сайт: 
  • Профессия: Программист 8.1
Всем привет!

Пытаюсь в обработке удалять объекты. Столкнулся с непонятным - документы (например, РеализацияТоваровУслуг) ссылаются сами на себя. То есть вызываю НайтиПоСсылкам, и получаю НайтиПоСсылкам.Количество()=1.

При этом на инфостарте например есть обработка "УдалениеПомеченныхОбъектов82", где реализовано именно так:
         МассивКУдалению.Добавить(стр.ссылка);
         Если НайтиПоСсылкам(МассивКУдалению).Количество() = 0 тогда
            Сообщить(стр.ссылка);
            стр.ссылка.ПолучитьОбъект().Удалить();
            КолУд = КолУд + 1;
         КонецЕсли;

И вроде все довольны, все работает. В чем же дело?..


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
В итоге находит одну ссылку на этот эе объект? Покажи код.

Оффлайн Leviathan

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2010-12-21
  • Сайт: 
  • Профессия: Программист 8.1
Примерно так:

	КолУд = 0;
Для i = 0 по МассивКУдалению.Количество()-1 Цикл
Объект = МассивКУдалению[i];
Мас = Новый Массив();
Мас.Добавить(Объект);
Если НайтиПоСсылкам(Мас).Количество() = 0 тогда
Сообщить("   ссылок нет, удаляем");
Объект.ПолучитьОбъект().Удалить();
КолУд = КолУд + 1;
Иначе
Сообщить("   УДАЛИТЬ НЕЛЬЗЯ!");
КонецЕсли;
КонецЦикла;

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Ну и че содержится в таблице значений, которую возвращает метод НайтиПоСсылкам()?

Оффлайн Leviathan

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2010-12-21
  • Сайт: 
  • Профессия: Программист 8.1
Ссылка на этот же самый документ! Реализация товаров и услуг такая-то.
Да и собственно, если в интерфейсе открыть сам документ и посмотреть его структуру подчиненности - там опять же в окошке одна ссылка - на этот же самый документ!

Если что, версия 8.2 , 2.0.

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
А если найти такой документ и попробовать его удалить обычной обработкой удаления - удалит?
У меня тоже сам документ присутствует в этом списке, но это ничуть не мешает его удалить.
Более того - при удалении пишет, например, что на объект найдено 4 ссылки, из них
Удаляемых: 4  Неудаляемых: 0
При этом ставит зеленую галочку - что готов удалить
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн Leviathan

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2010-12-21
  • Сайт: 
  • Профессия: Программист 8.1
Да, обычной обработкой удалит.
Мне просто странно, что условие НайтиПоСсылкам.Количество()=0 не является достаточной проверкой допустимости/не допустимости удаления. Придется еще дописывать что ссылка должна быть не равна самой себе...

Ну ладно, все понятно, всем спасибо!

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
Думаю, в стандартной обработке удаления логика более сложная.
Видимо, ссылки на объект более сложно анализируются, причем, скорее всего, рекуррентно.
И какие-то объекты удаляются по ссылкам вместе с удаляемым объектом.
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн Leviathan

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2010-12-21
  • Сайт: 
  • Профессия: Программист 8.1
В стандартной обработке - да, сложнее. Там задумка такая - можно удалить, если все ссылки тоже помечены на удаление. И тогда, когда мы нажимаем "Удалить", 1С блокирует базу и не отпускает ее, пока все не сотрет.

Это эффективно по скорости, но не всегда приемлимо - мне нужно удалить более 500 тысяч объектов, поэтому решил удалять их в фоновом режиме без блокировки. Одна из обработок, которая так умеет, вот: http://katalog.forum-1c.ru/public/74177/
Оттуда я и стырил логику, а она глючная, судя по всему :-D


Теги:
 

не находить контрагента (Выбрать * Из Документ ГДЕ контрагент = "имя контрагента")

Автор Ivan94Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 234
Последний ответ 23 Окт 2017, 23:14
от Ivan94
Какова взаимосвязь объектов конфигурации "Договоры" и "Документ"?

Автор DDDРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 4396
Последний ответ 25 Ноя 2008, 10:43
от DDD
Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

Автор Елена6666666666Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 9331
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
не могу вывести отображение цен в "подборе" документ "Заявка покупателя" УТ 10.3

Автор Виталий ЕмельяновРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 3906
Последний ответ 05 Окт 2015, 19:22
от Виталий Емельянов
Как программно открыть документ программно

Автор СерьезныйЧеловекРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 19014
Последний ответ 10 Ноя 2010, 14:08
от Lexius

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
169 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
49 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 310
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal